<h1 class="ptitle">GREENHOUSE</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/greenhouse/competition.jpg']]
</center>
<br /><br />
<<set _randomPersons = setup.getRandomPersonIds($game.greenhouseCompetition, 2)>>
<<set _npc1 = setup.getNpcByKey($game.greenhouseCompetition[_randomPersons[0]])>>
<<set _npc1SplitKey = $game.greenhouseCompetition[_randomPersons[0]].split(':')>>
<<set _npc2 = setup.getNpcByKey($game.greenhouseCompetition[_randomPersons[1]])>>
<<set _npc2SplitKey = $game.greenhouseCompetition[_randomPersons[1]].split(':')>>
Just as you entered through the door, both <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> call you from the middle of the room. A small discussion has arisen between them, and they believe that each of the vegetables they have grown is more beautiful than the others. They want you to determine the winner. Both giggling, they try to grab your attention so that you choose their vegetables specifically.
<br /><br />
<<linkreplace 'Decide'>>
<<run $('#option1').hide()>>
You approach closer, and both girls extend their hands with the vegetables they have grown in them. You carefully examine both, one and then the other.
<br /><br />
<center>
[img[setup.ImagePath+'places/greenhouse/competition_flash.webp']]
</center>
<br /><br />
Since you don't respond immediately and seem to be genuinely giving an honest assessment, <<=setup.displayName(_npc1)>> takes advantage of the moment without the <<=setup.displayName(_npc2)>> noticing. She unbuttons her blouse with a broad smile on her face and winks at you.
<br /><br />
<div id="option2">
<<linkreplace _npc1.name>>
<<run $('#option3').hide()>>
<strong>Relationship with <<=_npc1.name>> increased by 5</strong>
<br />
<strong>Relationship with <<=_npc2.name>> decreased by 4</strong>
<<setNpcStats _npc2SplitKey[0] _npc2SplitKey[1] 'relationship' -4>>
<<setNpcStats _npc1SplitKey[0] _npc1SplitKey[1] 'relationship' +5>>
<br /><br />
<<=setup.displayName(_npc1)>> flashes a smile without taking her eyes off you. When <<=setup.displayName(_npc2)>> turns away a bit disappointed, <<=setup.displayName(_npc1)>> points to a spot behind the tall plants.
<br /><br />
<<linkreplace 'Follow her'>>
<<video 'greenhouse/competition1'>>
<br /><br />
As soon as you both get behind plants, she grabs your hand and pulls you deeper behind and drops on her knees. She unbuttons her top, unzips your pants and takes your cock inside her mouth.
<br /><br />
<<linkreplace 'Cum'>>
<center>
[img[setup.ImagePath+'places/greenhouse/competition_cum.webp']]
</center>
<br /><br />
<<horny_reset>>
Playfully she opens her mouth wide open and with tongue movements tries to catch each drop of your warm cum...
<br /><br />
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Greenhouse'>>
<</link>>
<</linkreplace>>
</div>
<div id="option3">
<<linkreplace _npc2.name>>
<<run $('#option2').hide()>>
<center>
[img[setup.ImagePath+'places/greenhouse/competition_happy.webp']]
</center>
<br /><br />
<<=setup.displayName(_npc2)>> Starts to jump from happiness and is very pleased with your decision.
<br /><br />
<strong>Relationship with <<=_npc2.name>> increased by 5</strong>
<br />
<strong>Relationship with <<=_npc1.name>> decreased by 4</strong>
<<setNpcStats _npc1SplitKey[0] _npc1SplitKey[1] 'relationship' -4>>
<<setNpcStats _npc2SplitKey[0] _npc2SplitKey[1] 'relationship' +5>>
<br /><br />
<<link 'Leave'>>
<<goto 'Greenhouse'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<div id="option1">
<<link 'Let them sort it out on their own'>>
<<goto 'Greenhouse'>>
<</link>>
</div><ul>
<li>Forest: 8:00-18:00</li>
<li>Garden: 8:00-16:00</li>
<li>Kitchen: 8:00-22:00</li>
<li>Mistress: 12:00-22:00</li>
<li>Streets: 14:00-6:00</li>
<li>Scavenging: 12:00-20:00</li>
<li>Nightclub: 20:00-4:00</li>
<li>Hospital: 8:00-22:00</li>
<li>Maid: 10:00-13:00</li>
<li>Garage: 10:00-18:00</li>
<li>School: 09:00-15:00</li>
</ul><h1 class="ptitle">OUTSIDE</h1>
<br />
Without warning, the your instincts kick in, and in a split second decision, you lunge forward with a hard punch aimed at the traveler's jaw.
<br />
The blow lands with a sickening thud, the force behind it amplified by the desperation of survival.
The traveler staggers back, stunned by the unexpected attack. Blood trickles from his split lip as he tries to regain his footing.
But before he can fully recover, you strikes again, this time with a precise strike to the temple. The impact is devastating, sending the traveler crashing to the ground, unmoving.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/teacher_killed.jpg']]
</center>
<br /><br />
You check his pulse and he's not moving.
<br /><br />
Feeling a mix of remorse and necessity, you start to search through the traveler's belongings.
Among the items strapped to his person, you find a few weathered books, their pages worn but still readable.
<br /><br />
Aside from the books, your hand brushes against a substantial knife, well-maintained and clearly a tool for both defense and utility.
<br /><br />
<strong>You picked up a <strong class="iitem">knife</strong><br />
<strong>You picked up <strong class="iitem">3 books</strong>
<<pickup $backpack 'knife' 1>>
<<pickup $backpack 'book' 3>>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<<set $player.quests.teacher_killed = true>>
<</link>><<widget 'achievement'>>
<<if !$player.achievements>><<set $player.achievements = {}>><</if>>
<<if !($player.achievements[$args[0]] ?? false)>>
<<set $player.achievements[$args[0]] = true>>
<<set _achData = setup.achievements[$args[0]]>>
<<notify 5s>><<=(_achData?.icon ?? '🏆')>> Achievement: <<=(_achData?.name ?? $args[0])>><</notify>>
<</if>>
<</widget>><<if tags().includes('sex') || tags().includes('girlview')>>
<<if $warriorViewActive ?? false>><<set _forceKnown = true>><</if>>
<<include 'NPC info'>>
<<if tags().includes('sex')>>
<<if !tags().includes('no-redirect') && $player.energy < 5>>
<<set $tiredNoTime = false>>
<<goto 'Mc fuck - tired'>>
<<elseif !timeBetween('08:00', '04:00') && $tmpGirlBack>>
<<set $tiredNoTime = false>>
<<if passage().includes('Mc fuck')>>
<<set $tiredNoTime = true>>
<<goto 'Mc fuck - tired'>>
<<else>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<<elseif typeof $charId !== 'undefined'>>
<<set $characters[$charId] = $tmpGirl>>
<</if>>
<<goto $tmpGirlBack>>
<</if>>
<</if>>
<</if>>
<</if>>
/* restore companion after hero being alone with Blair or Isabel */
<<if typeof $player.companionsHome !== 'undefined' && passage().search(/^(Blair|Fight|Isabel|Laura|Elsa|Octavia|Eve)/) == -1>>
<<set $player.companions = $player.companionsHome>>
<<run delete $player.companionsHome>>
<</if>>
<<if tags().includes('nightclub') && !timeBetween('20:00', '04:00')>>
<<goto 'Nightclub'>>
<</if>>
<<if typeof $storage === 'undefined'>>
<<newinv $storage>>
<</if>>
<<include 'background'>>
<<include 'NPC schedule'>>
<<if $game.introFinished>>
<div id="mobile_clock">
<<time24hr>>
</div>
<</if>><<set $suppCode = 'Patreon0.89'>>
<<if $player.energy > $player.maxEnergy>>
<<set $player.energy = $player.maxEnergy>>
<</if>>
<<if $player.hunger > $player.maxHunger>>
<<set $player.hunger = $player.maxHunger>>
<</if>>
<<updatemeter '$energyBar' `$player.energy / $player.maxEnergy`>>
<<updatemeter '$hungerBar' `$player.hunger / $player.maxHunger`>>
<<updatemeter '$hornyBar' `$player.horny / 100`>>
<<set _charactersInLocation = {
kitchen: [],
bedroom: [],
church: [],
settlement_church: [],
farm: [],
lab: [],
guesthouse: [],
underground_office: [],
hottub: [],
bathhouse: [],
youth_district: [],
strip_club: [],
octavia: [],
outside: []
}>>
<<set
$game.avatars = {},
$game.avatars.blair = 'people/blair/avatar.png',
$game.avatars.rodger = 'people/rodger/avatar.png',
$game.avatars.laura = 'people/laura/avatar.jpg',
$game.avatars.isabel = 'people/isabel.png',
$game.avatars.octavia = 'people/octavia/avatar.png',
$game.avatars.dom = 'people/dom/avatar.png',
$game.avatars.eve = 'people/eve/avatar.png',
$game.avatars.elsa = 'people/elsa/avatar.png'
>>
<<if isMetChar('blair') && $characters.blair.quests.cabinType > 0>>
<<if timeBetween('08:00', '09:00')>>
<<run _charactersInLocation['kitchen'].push('blair')>>
<</if>>
<<if timeBetween('12:00', '14:00')>>
<<run _charactersInLocation['farm'].push('blair')>>
<</if>>
<<if timeBetween('22:00', '23:30') && [4, 7].includes(($gameDate.getDay() || 7)) && ($game.location?.hottub ?? false)>>
<<run _charactersInLocation['bathhouse'].push('blair')>>
<<run _charactersInLocation['hottub'].push('blair')>>
<<elseif timeBetween('22:00', '08:00')>>
<<if $characters.blair.livingLocation === 'guesthouse'>>
<<run _charactersInLocation['guesthouse'].push('blair')>>
<<else>>
<<run _charactersInLocation['bedroom'].push('blair')>>
<</if>>
<</if>>
<</if>>
<<if isMetChar('eve') && $characters.eve.quests.cabinType > 0>>
<<if timeBetween('08:00', '09:00')>>
<<run _charactersInLocation['bathhouse'].push('eve')>>
<<else>>
<<if $characters.eve.quests.cabinType === 1>>
<<run _charactersInLocation['guesthouse'].push('eve')>>
<<else>>
<<run _charactersInLocation['youth_district'].push('eve')>>
<<run _charactersInLocation['church'].push('eve')>>
<</if>>
<</if>>
<</if>>
<<if isMetChar('rodger')>>
<<run _charactersInLocation['settlement_church'].push('rodger')>>
<</if>>
<<if isMetChar('laura') && $characters.laura.quests.living>>
<<if timeBetween('08:00', '11:00') || timeBetween('14:00', '20:00')>>
<<run _charactersInLocation['lab'].push('laura')>>
<<run _charactersInLocation['guesthouse'].push('laura')>>
<<elseif timeBetween('11:00', '11:30')>>
<<run _charactersInLocation['bathhouse'].push('laura')>>
<</if>>
<</if>>
<<if isMetChar('octavia') && $characters.octavia.quests.next_move && !$characters.octavia.quests.emberclaw_ready_day>>
<<if timeBetween('09:00', '09:30')>>
<<run _charactersInLocation['bathhouse'].push('octavia')>>
<<else>>
<<run _charactersInLocation['guesthouse'].push('octavia')>>
<</if>>
<<elseif isMetChar('octavia') && $characters.octavia.quests.emberclaw_ready_day>>
<<set _octWeekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]>>
<<set _octToday = _octWeekday[$gameDate.getDay()]>>
<<set _octYesterday = _octWeekday[$gameDate.getDay() == 0 ? 6 : $gameDate.getDay() - 1]>>
<<set _octVisitDays = [$characters.octavia.visitDay1, $characters.octavia.visitDay2].filter(d => d && d !== 'none')>>
<<if _octVisitDays.some(d => (d === _octToday && timeBetween('18:00', '23:59')) || (d === _octYesterday && timeBetween('00:00', '12:00')))>>
<<if ($characters.octavia.visitWarriorId ?? 'none') !== 'none' && !$characters.octavia.visitWarriorResolvedId>>
<<if $characters.octavia.visitWarriorId === 'random'>>
<<set _octWList = ($characters.octavia.quests.warriors ?? [])>>
<<if _octWList.length > 0>>
<<set $characters.octavia.visitWarriorResolvedId = either(..._octWList).id>>
<</if>>
<<else>>
<<set $characters.octavia.visitWarriorResolvedId = $characters.octavia.visitWarriorId>>
<</if>>
<</if>>
<<if timeBetween('09:00', '10:00')>>
<<run _charactersInLocation['bathhouse'].push('octavia')>>
<<else>>
<<run _charactersInLocation['guesthouse'].push('octavia')>>
<</if>>
<<else>>
<<unset $characters.octavia.visitWarriorResolvedId>>
<<run _charactersInLocation['octavia'].push('octavia')>>
<<run _charactersInLocation['outside'].push('octavia')>>
<</if>>
<</if>>
<!-- Isabel -->
<<if isMetChar('dom') && isMetChar('isabel') && $characters.isabel.quests.saved && !$characters.isabel.quests.dom_return && !$characters.dom?.quests?.alt_route>>
<<run _charactersInLocation['guesthouse'].push('isabel')>>
<<elseif isMetChar('dom') && ($characters.dom?.quests?.return_city_done || ($characters.dom?.quests?.alt_route && $characters.dom?.dead))>>
<<if !$characters.dom?.dead>>
<<run _charactersInLocation['underground_office'].push('dom')>>
<</if>>
<<set _weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]>>
<<if typeof $characters.isabel.visitDay !== 'undefined' && (($characters.isabel.visitDay === _weekday[$gameDate.getDay()] && timeBetween('18:00', '02:00')) || ($characters.isabel.visitDay === _weekday[$gameDate.getDay() == 0 ? 6 : $gameDate.getDay() - 1] && timeBetween('08:00', '12:00'))) && ($game.location.strip_club ?? false)>>
<<run _charactersInLocation['guesthouse'].push('isabel')>>
<<elseif timeBetween('18:00', '02:00') && $game.location.strip_club>>
<<run _charactersInLocation['strip_club'].push('isabel')>>
<<else>>
<<run _charactersInLocation['underground_office'].push('isabel')>>
<</if>>
<</if>>
<<if isMetChar('elsa') && $characters.elsa.quests.new_home>>
<<run _charactersInLocation['guesthouse'].push('elsa')>>
<</if>>
<!-- Blair -->
<<if isMetChar('blair') && !$game.debugBlair>>
<<set $game.debugBlair = $characters.blair.quests.metOnDay>>
<</if>>
<<if $game.debugBlair && (typeof $characters.blair.quests === 'undefined' || typeof $characters.blair.quests.metOnDay === 'undefined' || $game.debugBlair !== $characters.blair.quests.metOnDay)>>
<<script>>
Dialog.setup("Blair bug warning", "Blair bug warning");
Dialog.wiki(Story.get("Blair bug warning").processText());
Dialog.open();
$('#ui-dialog-close').hide();
$('#ui-overlay').css('pointer-events', 'none');
<</script>>
<</if>>
<<script>>
Object.keys(variables().packs ?? {}).forEach(key => {
if (!variables().packs[key] || typeof setup.actions === 'undefined' || typeof setup.packs === 'undefined') {
return;
}
if (typeof setup.actions[key] == 'undefined' && typeof setup.packs[key] !== 'undefined') {
importScripts(setup.Path + "packs/" + setup.packs[key].name + "/actions.js")
.then(function() {
if (setup.packs[key].extended ?? false) {
setup.actions = setup.mergeObjects(setup.actions, setup.actions[setup.packs[key].name], setup.packs[key].name + '/actions');
setup.actions[key] = true;
}
memorize('actions', setup.actions);
}).catch(function(error) { // eslint-disable-line
alert("Error: Could not load pack 'packs/" + setup.packs[key].name + "/actions.js'.");
}
);
}
if (typeof setup.actions[key] == 'undefined' && typeof setup.packsCustom[key] !== 'undefined') {
importScripts(setup.Path + "packs/" + setup.packsCustom[key].name + "/actions.js")
.then(function() {
if (setup.packsCustom[key].extended ?? false) {
setup.actions = setup.mergeObjects(setup.actions, setup.actions[setup.packsCustom[key].name], setup.packsCustom[key].name + '/actions');
setup.actions[key] = true;
}
memorize('actions', setup.actions);
}).catch(function(error) { // eslint-disable-line
alert("Error: Could not load pack 'packs/" + setup.packsCustom[key].name + "/actions.js'.");
}
);
}
});
<</script>><img src="https://twinery.org/homepage/img/logo.svg" width="64" height="64"><div id="blink-screen"></div>
<link href='https://css.gg/css' rel='stylesheet'>
<div id="sidebar-wrapper" @class="'' + settings.sidebarBackground + ''">
<<if $game.introFinished>>
<center><div style="position: relative;" id="sidebar-content">
<<weatherIcon>>
<<if $game.showFlag>><<flag>><</if>>
<<if ($player.horse ?? false)>>
<div id="horse-avatar"></div>
<</if>>
</div></center>
<br />
<<set _uiBarGameDate = $gameDate.getDate() + ' ' + $gameDate.toLocaleString('default', { month: 'long' }) + ', ' + $gameDate.getFullYear()>>
<<set _dayTimeImage = setup.ImagePath+'game/' + setup.getDayTimeName() + '.png'>>
<div id="t1" class="grid-s-def">
<span class="grid-i-cs4 caut-bar"></span>
<span class="grid-i-rs3">[img[_dayTimeImage]]</span>
<span class="grid-i-rs3 grid-i-pos-hc"><hr class="vdark"></span>
<span class="glyph"></span><span><<timeDay>></span>
<span class="glyph"></span><span><<time24hr>></span>
<span class="glyph" data-balloon-length="medium" @aria-label="'' + _uiBarGameDate + ''" data-balloon-pos="left"></span>
<span class="glyph" data-balloon-length="medium" @aria-label="'' + _uiBarGameDate + ''" data-balloon-pos="left"> Day <<=$game.day>></span>
<span class="grid-i-cs4 caut-bar"></span>
</div>
<div id="companions-list">
<<companionList>>
</div>
<br />
<div id="t2">
<span class="glyph" data-balloon-length="medium" aria-label="Energy" data-balloon-pos="right"></span><<showmeter '$energyBar' '$player.energy / $player.maxEnergy'>>
<span class="glyph" data-balloon-length="medium" aria-label="Satiety" data-balloon-pos="right"></span><<showmeter '$hungerBar' '$player.hunger / $player.maxHunger'>>
<span class="glyph" data-balloon-length="medium" aria-label="Horny" data-balloon-pos="right"></span><<showmeter '$hornyBar' '$player.horny / $player.maxHorny'>>
</div>
<br /><br />
<div id="t3" class="grid-s-def">
<span class="grid-i-cs5 caut-bar"></span>
<span class="money">$player.money</span>
<span class="glyph" data-balloon-length="medium" aria-label="Bottle caps" data-balloon-pos="up-left"></span>
<span class="grid-i-pos-hc"><hr class="vdark"></span>
<span class="glyph" data-balloon-length="medium" aria-label="Food amount" data-balloon-pos="up-right"></span>
<span class="food"><<=($backpack.count('food') + $storage.count('food'))>></span>
<span class="grid-i-cs5 grid-i-pos-vc"><hr class="dark"></span>
</div>
<div id="t3s" class="grid-s-def">
<!--//##Later can be hidden in tooltip##//-->
<span>STR</span>
<span>END</span>
<span>INT</span>
<!--//##########################//-->
<span class="glyph" data-balloon-length="medium" aria-label="Determines your luck in capturing girls and your attack power in fights." data-balloon-pos="right"></span>
<span class="glyph" data-balloon-length="medium" aria-label="Determines how much defense you have in fights." data-balloon-pos="up-left"></span>
<span class="glyph" data-balloon-length="medium" aria-label="For high-end crafting you'll need more intelligence." data-balloon-pos="up-right"></span>
<span>$player.strength</span>
<span><<=($player.endurance ?? 0)>></span>
<span>$player.int</span>
</div>
<div id="t3m" class="grid-s-def">
<span class="grid-i-cs5 grid-i-pos-vc"><hr class="dark"></span>
<span class="glyph" data-balloon-length="small" aria-label="Journal" data-balloon-pos="up-left">
<<link "">><<script>>Dialog.setup("Journal", "Journal"); Dialog.wiki(Story.get("Journal").processText()); Dialog.open();<</script>><</link>>
</span>
<span class="glyph" data-balloon-length="small" aria-label="Inventory" data-balloon-pos="up-right">
<<link "">><<script>>Dialog.setup("Inventory", "Inventory"); Dialog.wiki(Story.get("Inventory").processText()); Dialog.open();<</script>><</link>>
</span>
<span class="glyph" data-balloon-length="small" aria-label="Cheats" data-balloon-pos="up-right">
<<link "">><<script>>Dialog.setup("Cheat menu", "Cheat menu"); Dialog.wiki(Story.get("Cheat menu").processText()); Dialog.open();<</script>><</link>>
</span>
<span class="grid-i-cs5 caut-bar"></span>
</div>
<<perkList>>
<<if tags().includes('Place') && settings.fastTravelEnabled && !$weather?.sandStorm>>
<div id="fast-travel">
<div>
<<link '<div data-balloon-length="small" data-balloon-pos="up-right" aria-label="Fast travel to bedroom" class="fast-travel-item">[img[setup.ImagePath+"places/cabin/bedroom_icon.jpg"]]</div>'>>
<<addmins 10>>
<<goto 'Bedroom'>>
<</link>>
</div>
<div>
<<link '<div data-balloon-length="small" data-balloon-pos="up-right" aria-label="Fast travel to cabin" class="fast-travel-item">[img[setup.ImagePath+"places/cabin/cabin_icon.jpg"]]</div>'>>
<<addmins 10>>
<<goto 'Wood cabin'>>
<</link>>
</div>
<div>
<<link '<div data-balloon-length="small" data-balloon-pos="up-right" aria-label="Fast travel to outside" class="fast-travel-item">[img[setup.ImagePath+"places/cabin/outside_icon.jpg"]]</div>'>>
<<addmins 10>>
<<goto 'Outside'>>
<</link>>
</div>
<<if $game?.location?.garage>>
<div>
<<link '<div data-balloon-length="small" data-balloon-pos="up-right" aria-label="Fast travel to garage" class="fast-travel-item">[img[setup.ImagePath+"places/cabin/garage_icon.jpg"]]</div>'>>
<<addmins 10>>
<<goto 'Garage'>>
<</link>>
</div>
<</if>>
</div>
<</if>>
<</if>>
<br /><br />
<div id="support">
<<link "SUPPORT [img[setup.ImagePath+'game/misc/support.png']]">>
<<script>>
Dialog.setup("Support", "Support");
Dialog.wiki(Story.get("Support").processText());
Dialog.open();
<</script>>
<</link>>
<<link "CHANGELOG">>
<<script>>
Dialog.setup("Changelog", "Changelog");
Dialog.wiki(Story.get("Changelog").processText());
Dialog.open();
<</script>>
<</link>>
<<link "PACKS">>
<<goto 'Packs'>>
<</link>>
<<link "ACHIEVEMENTS">>
<<script>>Dialog.setup("Achievements", "Achievements"); Dialog.wiki(Story.get("Achievements").processText()); Dialog.open();<</script>>
<</link>>
</div>
</div><<script>>
if (document.location.href.toLowerCase().includes("/maris/appdata/local")) {
setup.Path = "C:/Users/maris/Desktop/Game - Twine/";
if (navigator.userAgent.match(/firefox/i)) {
setup.Path = 'file:///' + setup.Path;
}
} else {
setup.Path = "";
}
setup.ImagePath = setup.Path + "images/";
setup.videoPath = setup.Path + "videos/";
setup.audioPath = setup.Path + "audio/";
setup.lockID = LoadScreen.lock(); // Lock loading screen
let _timestamp = Math.floor(Date.now() / 1000);
importScripts(setup.Path + "js/actions.js?v=" + _timestamp)
.then(function() {
memorize('actions', setup.actions);
// Reload current passage since imported scripts can function now.
Engine.play(passage(), true);
LoadScreen.unlock(setup.lockID); // Unlock loading screen
}).catch(function(error) { // eslint-disable-line
alert("Error: Could not find file 'actions.js'.");
}
);
importScripts(setup.Path + "js/portraits.js?v=" + _timestamp)
.then(function() {
Engine.play(passage(), true);
LoadScreen.unlock(setup.lockID);
}).catch(function(error) { // eslint-disable-line
alert("Error: Could not find file 'portraits.js'.");
}
);
importScripts(setup.Path + "packs/packs.js?v=" + _timestamp)
.then(function() {
memorize('packs', setup.packs);
}).catch(function(error) { // eslint-disable-line
alert("Error: Could not find file 'packs/packs.js'.");
}
);
importScripts(setup.Path + "packs/packs_custom.js?v=" + _timestamp)
.then(function() {
memorize('packsCustom', setup.packsCustom);
}).catch(function(error) { // eslint-disable-line
alert("Error: Could not find file 'packs/packs_custom.js'.");
}
);
importScripts("https://www.googletagmanager.com/gtag/js?id=G-XVQJZNSBZ6")
.then(function() {
window.dataLayer = window.dataLayer || [];
window.gtag = function (){ dataLayer.push(arguments); };
gtag('js', new Date());
gtag('config', 'G-XVQJZNSBZ6');
}).catch(function(error) {
console.log("Error: Could not load 'gtag.js'.");
}
);
<</script>>
<<set $game to {}, $game.cycle to {}>>
<<set $game.location to {
forest: false,
farm: false,
basement: false,
underground: false,
workbench: false,
greenhouse: false,
streets: false,
slave_market: false,
bar: false,
guesthouse: false,
settlement: false,
bathhouse: false
}>>
<<set
$player to {},
$player.name to "",
$player.money to 0,
$player.strength to 0,
$player.int to 0,
$player.cannibal to 0,
$player.reputation = 0,
$player.reputation_bounty_hunter = 0,
$player.goodwill = 0,
$player.sexp = 0,
$player.showered to false,
$player.mast to false,
$player.drunk = 0,
$player.gambler = 0,
$player.endurance = 0,
$player.companions = {},
$player.quests = {},
$player.stats = {},
$player.achievements = {}
>>
<<set $game.day = 0>>
<<set $slaves to []>>
<<set $tmpGirl to {}>>
<<set $morningMessages to []>>
<<set $basementLimit = 3>>
<<set $guesthouseLimit = 3>>
<<set $workersLimitGarden = 10>>
<<set $workersLimitHunter = 10>>
<<set $workersLimitHospital = 3>>
<<set $companionsLimit = 8>>
<<set $guests = []>>
<<set
$characters to {
vincent: {
quests: {},
relationship: 0
},
blair: {},
rose: {},
eve: {
relationship: 0,
quests: {}
},
rodger: {
relationship: 0,
quests: {}
},
dom: {
relationship: 0,
quests: {}
},
isabel: {
relationship: 0,
quests: {}
},
octavia: {
relationship: 0,
quests: {}
}
}>>
<<set $locationEvents = {}>>
<<character 'grandfather' setup.ImagePath+'/people/grandfather/avatar.png'>>
<<character 'you' "$player.name" setup.ImagePath+'/people/you/avatar.png'>>
<<character 'vincent' setup.ImagePath+'/people/vincent/avatar.png'>>
<<character 'boris' setup.ImagePath+'/people/boris/avatar.png'>>
<<character 'blair' setup.ImagePath+'/people/blair/avatar.png'>>
<<character 'dom' setup.ImagePath+'/people/dom/avatar.png'>>
<<character 'eve' setup.ImagePath+'/people/eve/avatar.png'>>
<<character 'rodger' setup.ImagePath+'/people/rodger/avatar.png'>>
<<character 'octavia' setup.ImagePath+'/people/octavia/avatar.png'>>
<<character 'elsa' setup.ImagePath+'/people/elsa/avatar.png'>>
<<character 'anonguy' 'Guy' setup.ImagePath+'/people/anonguy.png'>>
<<character 'anongirl' 'Girl' setup.ImagePath+'/people/anongirl.png'>>
<<character 'ashley' 'Ashley' setup.ImagePath+'/people/ashley.png'>>
<<character 'harper' setup.ImagePath+'/people/harper/avatar.png'>>
<<character 'isabel' setup.ImagePath+'/people/isabel.png'>>
<<character 'laura' setup.ImagePath+'/people/laura/avatar.jpg'>>
<<character 'negan' setup.ImagePath+'/people/negan/avatar.png'>>
<<set $player.energy to 100, $player.maxEnergy to 100>>
<<newmeter '$energyBar' '$player.energy / $player.maxEnergy'>>
<<sizing '100%'>>
<<label '$player.energy'>>
<</newmeter>>
<<set $player.hunger to 100, $player.maxHunger to 100>>
<<newmeter '$hungerBar' 1>>
<<sizing '100%'>>
<<label '$player.hunger'>>
<<colors 'yellow' 'red' 'black'>>
<</newmeter>>
<<set $player.horny to 0>>
<<newmeter '$hornyBar' 1>>
<<sizing '100%'>>
<<label '$player.horny'>>
<<colors '#ff00ee' '#ff00ee' 'black'>>
<</newmeter>>
<<newmeter '$npcHornyBar' 1>>
<<sizing '100%'>>
<<label '$tmpGirl.horny / 100 arousal'>>
<<colors '#ff00ee' '#ff00ee' 'black'>>
<</newmeter>>
<<newinv $backpack>>
<<newinv $storage>>
<<include "Inventory items">>
<<cacheaudio "bg-rain" "audio/bg/rain.mp3">>
<<cacheaudio "bg-storm" "audio/bg/storm.mp3">>
<<cacheaudio "bg-sun" "audio/bg/sun.mp3">>
<<cacheaudio "single-shot" "audio/misc/single_shot.mp3">>
<<createaudiogroup ":bg">>
<<track "bg-rain">>
<<track "bg-storm">>
<<track "bg-sun">>
<</createaudiogroup>><div id="version">v0.89a</div><table id="edit_npc">
<tr>
<td>
Name:
</td>
<td>
<<textbox "_name" $player.name>>
</td>
</tr>
</table>
<<link 'Save'>>
<<set $player.name = _name>>
<<goto `passage()`>>
<<dialogclose>>
<</link>><<set _traits = {}>>
<<set _traitsLocked = {}>>
<<set _skills = {}>>
<<set _likes = {}>>
<<set $editTraits = $editTraitsLocked = $editSkills>>
<<set $tmpGirl.strength = $tmpGirl.strength ?? 0>>
<<set $tmpGirl.anal = $tmpGirl.anal ?? 0>>
<<set $tmpGirl.horny = $tmpGirl.horny ?? 0>>
<table id="edit_npc">
<tr>
<td>
Name:
</td>
<td>
<<textbox "_name" $tmpGirl.name>>
<<set _isVirgin = $tmpGirl.virgin ? 'checked' : null>>
virgin <<checkbox "_virgin" false true _isVirgin>>
</td>
</tr>
<tr>
<td>
Birth date:
</td>
<td>
<<textbox "_birthDate" setup.formatDate($tmpGirl.birthDate)>> <span id="npc_edit_age"></span>
</td>
</tr>
<tr>
<td>
Beauty:
</td>
<td>
<<numberbox "_beauty" $tmpGirl.beauty>>
</td>
</tr>
<tr>
<td>
Strength:
</td>
<td>
<<numberbox "_strength" $tmpGirl.strength>>
</td>
</tr>
<<if setup.getAge($tmpGirl) >= 18>>
<tr>
<td>
Submission:
</td>
<td>
<<numberbox "_sub" $tmpGirl.sub>>
</td>
</tr>
<tr>
<td>
Horny:
</td>
<td>
<<numberbox "_horny" $tmpGirl.horny>>
</td>
</tr>
<</if>>
<tr>
<td>
Relationship:
</td>
<td>
<<numberbox "_relationship" $tmpGirl.relationship>>
</td>
</tr>
<<if setup.getAge($tmpGirl) >= 18>>
<tr>
<td>
Anal:
</td>
<td>
<<numberbox "_anal" $tmpGirl.anal>>
</td>
</tr>
<</if>>
<tr>
<td>
Gender:
</td>
<td>
<<set _gender = $tmpGirl.gender>>
<label><<radiobutton "_gender" 0 autocheck>> Female</label>
<label><<radiobutton "_gender" 1 autocheck>> Male</label>
<label><<radiobutton "_gender" 2 autocheck>> Transfemale</label>
</td>
</tr>
<<if [0,2].includes($tmpGirl.gender) && setup.getAge($tmpGirl) >= 18>>
<tr>
<td>
Breasts:
</td>
<td>
<<set _breasts = $tmpGirl.breasts>>
<label><<radiobutton "_breasts" "small" autocheck>> Small</label>
<label><<radiobutton "_breasts" "medium" autocheck>> Medium</label>
<label><<radiobutton "_breasts" "big" autocheck>> Big</label>
</td>
</tr>
<tr>
<td>
Pregnant:
</td>
<td>
<<set _isPregnant = typeof $tmpGirl.pregnancy !== 'undefined'>>
<<set _pregnancyDays = $tmpGirl.pregnancy ?? 0>>
<<set _pregnantChecked = _isPregnant ? 'checked' : null>>
<<checkbox "_isPregnant" false true _pregnantChecked>> pregnant
days: <<numberbox "_pregnancyDays" _pregnancyDays>>
<span style="opacity:0.6">(0 = just started, ~270 = near birth)</span>
</td>
</tr>
<</if>>
<tr>
<td>
Long Lost Family:
</td>
<td>
<<set _isOffspring = ($tmpGirl.family?.father ?? '') === 'mc' || ($tmpGirl.family?.mother ?? '') === 'mc'>>
<<set _siblingRole = ($tmpGirl.gender === 1) ? 'brother' : 'sister'>>
<<set _parentRole = ($tmpGirl.gender === 1) ? 'father' : 'mother'>>
<<set _existingParentId = ($tmpGirl.gender === 1) ? ($player.family?.father ?? '') : ($player.family?.mother ?? '')>>
<<if _isOffspring>>
<span style="opacity:0.5">
<input type="checkbox" disabled> Sibling (<<=_siblingRole>>)<br>
<input type="checkbox" disabled> Parent (<<=_parentRole>>)<br>
<em>(already your offspring)</em>
</span>
<<else>>
<<set _isSiblingChecked = ($player.family?.siblings ?? []).includes($tmpGirl.id) ? 'checked' : null>>
<<set _isParentChecked = _existingParentId === $tmpGirl.id ? 'checked' : null>>
<<if $player.baseManagement?.noIncest>>
<div style="opacity:0.5; font-size: 0.85em; margin-bottom: 4px;">Options cannot both be selected, as it implies a forbidden relationship in the MC's bloodline</div>
<</if>>
<div><<checkbox "_isSibling" false true _isSiblingChecked>> Sibling (<<=_siblingRole>>)</div>
<div>
<<if $tmpGirl.virgin>>
<span style="opacity:0.5">
<input type="checkbox" disabled> Parent (<<=_parentRole>>)
</span>
<em style="font-size:0.85em;">(A virgin cannot be your parent... or were you immaculately conceived?)</em>
<<else>>
<<checkbox "_isParent" false true _isParentChecked>> Parent (<<=_parentRole>>)
<<if _existingParentId && _existingParentId !== $tmpGirl.id>>
<<set _replacedParentNpc = setup.getNpcById(_existingParentId)>>
<span style="color: #c66; font-size: 0.85em;">Will replace <<=_replacedParentNpc?.name ?? _existingParentId>> as the <<=_parentRole>> if selected.</span><br>
<</if>>
<</if>>
</div>
<</if>>
</td>
</tr>
<tr>
<td>
Race:
</td>
<td>
<<set _race = $tmpGirl.race>>
<label><<radiobutton "_race" "white" autocheck>> White</label>
<label><<radiobutton "_race" "black" autocheck>> Black</label>
<label><<radiobutton "_race" "asian" autocheck>> Asian</label>
<label><<radiobutton "_race" "latina" autocheck>> Latina</label>
<label><<radiobutton "_race" "indian" autocheck>> Indian</label>
</td>
</tr>
<tr>
<td>
Eye color:
</td>
<td>
<<set _eyes = $tmpGirl.eyes>>
<label><<radiobutton "_eyes" "blue" autocheck>> Blue</label>
<label><<radiobutton "_eyes" "brown" autocheck>> Brown</label>
<label><<radiobutton "_eyes" "gray" autocheck>> Gray</label>
<label><<radiobutton "_eyes" "green" autocheck>> Green</label>
<label><<radiobutton "_eyes" "hazel" autocheck>> Hazel</label>
</td>
</tr>
<tr>
<td>
Hair:
</td>
<td>
<<set _hair = $tmpGirl.hair>>
<label><<radiobutton "_hair" "bald" autocheck>> Bald</label>
<label><<radiobutton "_hair" "white" autocheck>> White</label>
<label><<radiobutton "_hair" "gray" autocheck>> Gray</label>
<label><<radiobutton "_hair" "brown" autocheck>> Brown</label>
<label><<radiobutton "_hair" "black" autocheck>> Black</label>
<label><<radiobutton "_hair" "blonde" autocheck>> Blonde</label>
<label><<radiobutton "_hair" "ginger" autocheck>> Ginger</label>
</td>
</tr>
<<if setup.getAge($tmpGirl) >= 18>>
<tr>
<td>
Traits:
</td>
<td>
<<for _traitKey, _trait range setup.traits>>
<<capture _traits, _traitKey>>
<div>
<<set _checked = $tmpGirl.traits.includes(_traitKey) ? 'checked' : null>>
<<checkbox "_traits[_traitKey]" false true _checked>> <<=setup.traits[_traitKey].title>>
</div>
<</capture>>
<</for>>
</td>
</tr>
<tr>
<td>
Unavailable traits:
</td>
<td>
<<for _traitKey, _trait range setup.traits>>
<<capture _traitsLocked, _traitKey>>
<div>
<<set _checked = ($tmpGirl.traitsLocked ?? []).includes(_traitKey) ? 'checked' : null>>
<<checkbox "_traitsLocked[_traitKey]" false true _checked>> <<=setup.traits[_traitKey].title>>
</div>
<</capture>>
<</for>>
</td>
</tr>
<</if>>
<tr>
<td>
Skills:
</td>
<td>
<<for _skillKey, _skill range setup.skills>>
<<capture _skills, _skillKey>>
<div>
<<set _checked = $tmpGirl.skills.includes(_skillKey) ? 'checked' : null>>
<<checkbox "_skills[_skillKey]" false true _checked>> <<=setup.skills[_skillKey].title>>
</div>
<</capture>>
<</for>>
</td>
</tr>
<<if setup.getAge($tmpGirl) >= 18>>
<tr>
<td>
Sexualities:
</td>
<td>
<<for _sexuallityKey, _sexuallity range ['likesGirls', 'likesGuys', 'likesTGirls', 'likesTGuys']>>
<<capture _sexuallity, _sexuallityKey>>
<div>
<<set _checked = $tmpGirl[_sexuallity] ? 'checked' : null>>
<<checkbox "_likes[_sexuallity]" false true _checked>> <<=_sexuallity>>
</div>
<</capture>>
<</for>>
</td>
</tr>
<</if>>
</table>
<style>
table#edit_npc {
width: 100%;
}
table#edit_npc tr {
border-top: 1px solid white;
}
</style>
<<link 'Save'>>
<<if setup.getAge($tmpGirl) >= 18>>
<<set $tmpGirl.anal = _anal>>
<<set $tmpGirl.sub = _sub>>
<<set $tmpGirl.horny = Math.min(100, Math.max(0, _horny))>>
<<set $tmpGirl.traits = []>>
<<for _traitKey, _enabled range _traits>>
<<if _enabled>>
<<run $tmpGirl.traits.push(_traitKey)>>
<</if>>
<</for>>
<<set $tmpGirl.traitsLocked = []>>
<<for _traitKey, _enabled range _traitsLocked>>
<<if _enabled>>
<<run $tmpGirl.traitsLocked.push(_traitKey)>>
<</if>>
<</for>>
<</if>>
<<set $tmpGirl.name = _name>>
<<set $tmpGirl.virgin = _virgin>>
<<set $tmpGirl.beauty = _beauty>>
<<set $tmpGirl.strength = _strength>>
<<set $tmpGirl.eyes = _eyes>>
<<set $tmpGirl.hair = _hair>>
<<set $tmpGirl.gender = _gender>>
<<set $tmpGirl.relationship = _relationship>>
<<set $tmpGirl.skills = []>>
<<for _skillKey, _enabled range _skills>>
<<if _enabled>>
<<run $tmpGirl.skills.push(_skillKey)>>
<</if>>
<</for>>
<<set $tmpGirl.birthDate = setup.formatDateToObject(_birthDate)>>
<<if [0,2].includes($tmpGirl.gender) && setup.getAge($tmpGirl) >= 18>>
<<set $tmpGirl.breasts = _breasts>>
<<if _isPregnant>>
<<set $tmpGirl.pregnancy = Math.max(0, Math.floor(_pregnancyDays))>>
<<else>>
<<run delete $tmpGirl.pregnancy>>
<</if>>
<</if>>
<<set $tmpGirl.race = _race>>
<<if !(($tmpGirl.family?.father ?? '') === 'mc' || ($tmpGirl.family?.mother ?? '') === 'mc')>>
<<set $player.family ??= {}>>
<<set _parentRoleSave = ($tmpGirl.gender === 1) ? 'father' : 'mother'>>
<<set $player.family.siblings ??= []>>
<<if _isSibling>>
<<if !$player.family.siblings.includes($tmpGirl.id)>>
<<run $player.family.siblings.push($tmpGirl.id)>>
<</if>>
<<set $tmpGirl.family ??= {}>>
<<set $tmpGirl.family.siblings ??= []>>
<<if !$tmpGirl.family.siblings.includes('mc')>>
<<run $tmpGirl.family.siblings.push('mc')>>
<</if>>
<<else>>
<<set $player.family.siblings = $player.family.siblings.filter(id => id !== $tmpGirl.id)>>
<<if $tmpGirl.family?.siblings>>
<<set $tmpGirl.family.siblings = $tmpGirl.family.siblings.filter(id => id !== 'mc')>>
<</if>>
<</if>>
<<set _priorParentId = (_parentRoleSave === 'father') ? ($player.family?.father ?? '') : ($player.family?.mother ?? '')>>
<<if _isParent>>
<<if _priorParentId && _priorParentId !== $tmpGirl.id>>
<<set _oldParentNpc = setup.getNpcById(_priorParentId)>>
<<if _oldParentNpc?.family?.kids>>
<<set _oldParentNpc.family.kids = _oldParentNpc.family.kids.filter(id => id !== 'mc')>>
<</if>>
<</if>>
<<if _parentRoleSave === 'father'>>
<<set $player.family.father = $tmpGirl.id>>
<<else>>
<<set $player.family.mother = $tmpGirl.id>>
<</if>>
<<set $tmpGirl.family ??= {}>>
<<set $tmpGirl.family.kids ??= []>>
<<if !$tmpGirl.family.kids.includes('mc')>>
<<run $tmpGirl.family.kids.push('mc')>>
<</if>>
<<else>>
<<if _priorParentId === $tmpGirl.id>>
<<if _parentRoleSave === 'father'>>
<<run delete $player.family.father>>
<<else>>
<<run delete $player.family.mother>>
<</if>>
<<if $tmpGirl.family?.kids>>
<<set $tmpGirl.family.kids = $tmpGirl.family.kids.filter(id => id !== 'mc')>>
<</if>>
<</if>>
<</if>>
<</if>>
<<if setup.getAge($tmpGirl) >= 18>>
<<set $tmpGirl.likesGirls = _likes.likesGirls>>
<<set $tmpGirl.likesGuys = _likes.likesGuys>>
<<set $tmpGirl.likesTGirls = _likes.likesTGirls>>
<<set $tmpGirl.likesTGuys = _likes.likesTGuys>>
<</if>>
<<goto `passage()`>>
<<dialogclose>>
<</link>>
<script>
function calculateNpcAge (birthDateStr) {
const gameDateStr = SugarCube.State.variables.gameDate;
if (!birthDateStr || !gameDateStr) return;
const birthDate = new Date(birthDateStr);
const gameDate = new Date(gameDateStr);
let age = gameDate.getFullYear() - birthDate.getFullYear();
const m = gameDate.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && gameDate.getDate() < birthDate.getDate())) {
age--;
}
return age;
};
$(document).one(":dialogopened", function () {
$("#npc_edit_age").text("Age: " + calculateNpcAge($('input[name="textbox--birthdate"]').val()));
$(document).on('input', 'input[name="textbox--birthdate"]', function() {
$("#npc_edit_age").text("Age: " + calculateNpcAge($(this).val()));
});
if (SugarCube.State.variables.player?.baseManagement?.noIncest) {
var $sib = $('input[name="checkbox--issibling"]');
var $par = $('input[name="checkbox--isparent"]');
$sib.on('change', function() {
if (this.checked && $par.prop('checked')) {
$par.prop('checked', false).trigger('change');
}
});
$par.on('change', function() {
if (this.checked && $sib.prop('checked')) {
$sib.prop('checked', false).trigger('change');
}
});
}
});
</script><table id="edit_npc">
<tr>
<td>Strength:</td>
<td><<numberbox "_strength" $player.strength>></td>
</tr>
<tr>
<td>Intelligence:</td>
<td><<numberbox "_int" $player.int>></td>
</tr>
<tr>
<td>Endurance:</td>
<td><<numberbox "_endurance" $player.endurance>></td>
</tr>
<tr>
<td>Reputation:</td>
<td><<numberbox "_reputation" $player.reputation>></td>
</tr>
<tr>
<td>Money (caps):</td>
<td><<numberbox "_money" $player.money>></td>
</tr>
</table>
<<link 'Save'>>
<<set $player.strength = Math.min(300, Math.max(0, Math.floor(_strength)))>>
<<set $player.int = Math.max(0, Math.floor(_int))>>
<<set $player.endurance = Math.max(0, Math.floor(_endurance))>>
<<set $player.reputation = Math.max(0, Math.floor(_reputation))>>
<<set $player.money = Math.max(0, Math.floor(_money))>>
<<goto `passage()`>>
<<dialogclose>>
<</link>><<if ($guests ?? []).filter(g => g.id).length < 2>>
<p>Need at least 2 guests in the guesthouse.</p>
<<else>>
<table id="edit_npc">
<tr>
<td>NPC A:</td>
<td><select id="relBetweenNpcA" onchange="window.awCheatRelUpdate()" style="background:#222;color:#eee;border:1px solid #555;padding:2px 4px;"></select></td>
</tr>
<tr>
<td>NPC B:</td>
<td><select id="relBetweenNpcB" onchange="window.awCheatRelUpdate()" style="background:#222;color:#eee;border:1px solid #555;padding:2px 4px;"></select></td>
</tr>
<tr>
<td>Value (−100 to 100):</td>
<td><input type="number" id="relBetweenValue" value="0" min="-100" max="100" style="background:#222;color:#eee;border:1px solid #555;padding:2px 4px;width:80px;"></td>
</tr>
</table>
<br />
<<link 'Set relationship'>>
<<script>>
(function() {
var idA = (document.getElementById('relBetweenNpcA') || {}).value;
var idB = (document.getElementById('relBetweenNpcB') || {}).value;
var valInp = document.getElementById('relBetweenValue');
var val = Math.max(-100, Math.min(100, Math.floor(Number(valInp ? valInp.value : 0) || 0)));
if (!idA || !idB || idA === idB) return;
var guests = variables().guests ?? [];
var npcA = guests.find(function(g) { return g.id === idA; });
var npcB = guests.find(function(g) { return g.id === idB; });
if (!npcA || !npcB) return;
npcA.relationshipBetween = npcA.relationshipBetween ?? { stats: {}, likes: null, dislikes: [] };
npcB.relationshipBetween = npcB.relationshipBetween ?? { stats: {}, likes: null, dislikes: [] };
npcA.relationshipBetween.stats[idB] = val;
npcB.relationshipBetween.stats[idA] = val;
if (val === 100 && npcA.gender + npcB.gender === 1) {
npcA.relationshipBetween.likes = idB;
npcB.relationshipBetween.likes = idA;
}
})();
<</script>>
<<dialogclose>>
<</link>>
<<script>>
window.awCheatRelUpdate = function() {
var selA = document.getElementById('relBetweenNpcA');
var selB = document.getElementById('relBetweenNpcB');
var inp = document.getElementById('relBetweenValue');
if (!selA || !selB || !inp) return;
var idA = selA.value;
var idB = selB.value;
if (!idA || !idB || idA === idB) return;
var guests = variables().guests ?? [];
var npcA = guests.find(function(g) { return g.id === idA; });
inp.value = npcA ? (((npcA.relationshipBetween || {}).stats || {})[idB] ?? 0) : 0;
};
setTimeout(function() {
var guests = (variables().guests ?? []).filter(function(g) { return g.id; });
var selA = document.getElementById('relBetweenNpcA');
var selB = document.getElementById('relBetweenNpcB');
if (!selA || !selB) return;
guests.forEach(function(g) {
var label = g.name || g.id;
[selA, selB].forEach(function(sel) {
var opt = document.createElement('option');
opt.value = g.id;
opt.textContent = label;
sel.appendChild(opt);
});
});
selB.selectedIndex = Math.min(1, guests.length - 1);
window.awCheatRelUpdate();
}, 0);
<</script>>
<</if>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set $characters.isabel.quests.dom_return = true>>
<<set $characters.isabel.quests.dom_return_day = $game.day>>
The tension in the air was suffocating.
You could feel it in the murmurs of panic echoing through the settlement as you stepped outside, greeted by the sight of the approaching group.
They moved with purpose, a small army of scavengers, each one armed to the teeth.
No vehicles, no grand show of force, just hardened survivors marching through the dust, their eyes scanning the area like predators on the hunt.
<br /><br />
<center>
<<image 'people/dom/return1.jpg'>>
</center>
<br />
And at the front of them all was Dom.
<br /><br />
He stood tall and menacing, his eyes sharp and calculating as they locked onto you.
The scavengers behind him fanned out in a loose formation, their weapons held casually but ready.
The people of your settlement kept their distance, wary of the armed group but knowing better than to intervene. The tension was palpable, thick enough to cut with a knife.
<br /><br />
<center>
<<image 'people/dom/return2.jpg'>>
</center>
<br />
As you made your way to the front, a knot tightened in your stomach.
You knew what this was. You had expected Dom to return, but not like this—so soon, and with such an air of certainty about him.
As you stepped forward to meet him, you saw that old, familiar smirk tug at the corner of his lips, but there was no warmth behind it. Just business.
<br /><br />
Dom wasted no time, cutting straight to the point.
<br /><br />
<<dom>>
I'm almost ready to strike my enemies. They'll never see it coming. But I'm expecting you to stand with me when the time comes.
<</dom>>
<br />
His words lingered, but you barely had a chance to respond before he continued, his eyes narrowing slightly as he shifted the conversation.
<br /><br />
<<dom>>
I know Isabel is with you. I'm grateful you saved her. Really, I owe you for that.
<</dom>>
<br />
He took a step closer, his smile fading as he fixed you with a cold, calculating stare.
<br /><br />
<<dom>>
But now it's time for her to come back. I'm here to collect what's mine. Bring her to me.
<</dom>>
<br />
For a brief moment, your mind raced, searching for a way out.
You could see the options narrowing, none of them good. If you refused, it would mean war—now, not later. Dom would turn his scavengers loose on your settlement, and people would die. But if you complied, if you handed Isabel over to him, you knew it would be the end of any hope she had for freedom. And there was no telling what Dom would do once he discovered the truth about the child.
<br /><br />
<div id="option_no">
<<linkreplace "Tell him no">>
<<run $('#option_yes').hide()>>
<<run $('#continue').show()>>
<</linkreplace>>
</div>
<div id="option_yes">
<<linkreplace "Bring Isabel">>
<<run $('#option_no').hide()>>
<<run $('#continue').show()>>
<</linkreplace>>
</div>
<div id="continue" style="display:none">
Just as you were about to speak, you heard footsteps behind you. Isabel.
<br /><br />
<center>
<<image 'people/dom/return4.jpg'>>
</center>
<br />
She stepped into view, her expression calm, but her eyes—her eyes told you everything.
The fear, the reluctance, the silent plea that passed between you in that brief moment of eye contact. She didn't want to go. Not really.
But she knew, just as you did, that there was no other way right now. Not with Dom standing here, surrounded by his men.
<br /><br />
Isabel forced a smile as she approached, her hand resting gently on her stomach, as if to remind herself of what she was protecting.
Dom reached out, grabbing her hand as she got close enough. He pulled her to him in a way that made it clear to everyone watching that she belonged to him.
She was his prize, his possession, and he wasn't going to let anyone forget it.
<br /><br />
Dom looked at you one last time, giving you that same cold, calculating smirk.
<br /><br />
<<dom>>
Thank you again for everything. I knew I could count on you.
<</dom>>
<br />
And with that, he turned, leading Isabel away.
The scavengers followed, their weapons still at the ready, their eyes scanning the settlement as they began to move.
Isabel glanced back at you once, just for a second, and in that brief look, you saw everything she couldn't say out loud.
She didn't want to go, but there was no other choice. Not today.
<br /><br />
<center>
<<image 'people/dom/return3.jpg'>>
</center>
<br />
Dom may have taken Isabel today, but the real fight was still ahead. And when the time came, you would have to decide how far you were willing to go to protect her, the child, and your settlement from the storm that was about to break.
<br /><br />
<<link 'Leave'>>
<<addmins 45>>
<<goto 'Outside'>>
<</link>>
</div><br /><br />
<h1 class="ptitle">ELSA'S HOUSE</h1>
<br /><br />
Silence rolled across the clearing, broken only by your breathing and the faint creak of the damaged house.
<br /><br />
Then the front door opened.
<br /><br />
Elsa’s mother stepped out first, crossbow in hand, jaw tight.<br />
Elsa followed, face pale, eyes wide.
<br /><br />
<center>
<<image 'people/elsa/attack3.jpg' sfw>>
</center>
<br />
For a long moment, all three of you just stood there, staring at the bodies, at the shattered windows, at the wreckage of their quiet life.
<br /><br />
Then Elsa’s mother exhaled sharply, shoulders slumping.
<br /><br />
<<sayNpc $characters.elsa.mother>>
…Enough.
<</sayNpc>>
<br />
Her voice wasn’t angry.<br />
It was exhausted down to the bone.
<br /><br />
<<sayNpc $characters.elsa.mother>>
This was the last time.
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
We are done pretending we can protect this place with just two pairs of hands. We’re leaving.
<</sayNpc>>
<br />
<<elsa>>
Ma-
<</elsa>>
<br />
<<sayNpc $characters.elsa.mother>>
We’re going with him
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
To his settlement. Tonight if we can. I just… I need time to gather what matters.
<</sayNpc>>
<br />
She didn’t look at the house anymore.
<br />
Just at you.
<br /><br />
The sun set by the time you loaded the final crates into your vehicle.
Elsa climbed into the back seat, clutching a small bag of her things.
<br /><br />
<<video 'elsa/get_in_car'>>
<br /><br />
The sun set by the time you loaded the final crates into your vehicle.
Elsa climbed into the front seat, clutching a small bag of her things.
Her mother sat in the back seat, silent, staring out the window as the forest receded behind you for the last time.
<br /><br />
<<linkreplace 'Drive'>>
Nobody spoke during the drive.
<br /><br />
Grief and fear and relief wove together into a quiet that felt too heavy to disturb.
<br /><br />
You opened your settlement gates and drove in.
<br /><br />
Elsa looked overwhelmed but grateful, brushing hair from her face as she followed you toward the guest house.
<br /><br />
<center>
<<image 'places/cabin/guesthouse.jpg' sfw>>
</center>
<br /><br />
<<you>>
This is yours for now. Until you settle in properly.
<</you>>
<br />
Elsa nodded, managing a tired smile.
<br /><br />
<<elsa>>
Thank you… really.
<</elsa>>
<br />
Behind you, her mother stood waiting.<br />
Watching you.<br />
Her expression unreadable.
<br /><br />
When Elsa put down her bag on the bed and got into the bed to rest, her mother stepped closer.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Show me where you are staying
<</sayNpc>>
<br />
When you told her you’d show her where you slept, <<=setup.displayName($characters.elsa.mother)>> followed you silently.
<br />
Blair’s absence made the room unusually still, strangely private.
<br /><br />
She didn’t look around.
She didn’t inspect the place.
She simply sat on the edge of your bed, her posture stiff and controlled — the way someone sits when they are using discipline to keep themselves from falling apart.
<br /><br />
<<sayNpc $characters.elsa.mother>>
I was so wrong...
<</sayNpc>>
<br />
Then, slowly, she began to loosen her coat.<br />
Unlacing it.<br />
Unbuttoning the travel-stiff fabric.
<br /><br />
Her hand slipped under the sheets, warm fingers brushing against your thigh before wrapping around your cock.
She started stroking you slowly, her grip firm and deliberate, sliding up and down your shaft as she murmured
<br /><br />
<<sayNpc $characters.elsa.mother>>
Thank you so much
<</sayNpc>>
<br /><br />
<<video 'elsa/mother_attack5'>>
<br /><br />
Once you were rock-hard, throbbing in her hand, she didn't pause. With a swift motion, she yanked the sheets off you both, exposing your bodies to the cool air of the room. Before you could react, she swung her leg over you, straddling your hips, her wet pussy hovering just above your hard dick.
<br /><br />
<<video 'elsa/mother_attack1'>>
<br /><br />
She lowered herself down, guiding your cock into her slick heat with one hand, sinking onto you inch by inch until you were buried deep inside her.
<br /><br />
She whispered again, starting to rock her hips, riding you with a steady rhythm. Her breasts bounced with each rise and fall, nipples stiff as she ground down, taking you fully each time.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Oh, thank you
<</sayNpc>>
<br />
She leaned forward, hands pressing into your chest for leverage, her pussy clenching around your dick.
<br /><br />
<<video 'elsa/mother_attack2'>>
<br /><br />
Your hands gripped her ass, pulling her down harder as you thrust up into her, increasing the speed. You drove deep into her pussy, slamming against her walls with forceful strokes.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Yes, use me! You have earned that.
<</sayNpc>>
<br />
<<video 'elsa/mother_attack3'>>
<br /><br />
She moaned loudly, the sounds filling the space, her body trembling as she fought to keep her cries from turning into full screams.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Fuck me, yes! Just like that.
<</sayNpc>>
<br />
Her fingers dug into the mattress on either side of you, knuckles white as she clenched the sheets, her back arching while you pounded relentlessly.
<br /><br />
<<video 'elsa/mother_attack4'>>
<br /><br />
Her moans grew wilder, ragged gasps mixing with whimpers as you hit that spot inside her over and over, her pussy tightening like a vice around your cock.
Sweat slicked your skin, her thighs quivering against yours.
She rode through it, matching your thrusts, but you took control, bucking up harder, faster, feeling her juices coat you completely.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Fill me up—thank you for this.
<</sayNpc>>
<br />
<<linkreplace 'Cum inside her'>>
<<horny_reset>>
<<if setup.pregnancyChance($characters.elsa)>>
<<set $characters.elsa.pregnancy_father = 'mc'>>
<<set $characters.elsa.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<center>
<<image 'game/misc/creampie_cowgirl.webp'>>
</center>
<br />
You thrust deep one last time, your cock pulsing as you exploded, shooting thick ropes of cum straight into her pussy, flooding her depths.
<br /><br />
Exhausted from the intensity, she collapsed forward, her body going limp against yours. Her head dropped onto your chest, sweat-dampened hair splaying across your skin as her breathing slowed to a deep, rhythmic pattern.
<br /><br />
<<link 'Sleep'>>
<<set $characters.elsa.quests.attack_day = $game.day>>
<<sleep>>
<</link>>
<</linkreplace>>
<</linkreplace>><br /><br />
<h1 class="ptitle">ELSA'S HOUSE</h1>
<br /><br />
The forest road was quiet—too quiet—until the sound hit you.
<br /><br />
A scream.
<br />
Shrill.
<br />
Pained.
<br />
Echoing across the trees.
<br /><br />
You slammed the brakes before the mind could finish the thought.
The engine barely stopped when you were already throwing the door open.
<br /><br />
You ran.
<br /><br />
Branches whipped past you as you burst through the last line of pines and into the clearing around the homestead.
<br /><br />
And then you froze
<br /><br />
<strong>
At least five men surrounded the house.
</strong>
<br /><br />
<center>
<<image 'people/elsa/attack1.jpg' sfw>>
</center>
<br />
Not the same group from the well—these were leaner, hungrier, more confident.<br />
Two stood near the front door throwing stones, heavy ones, shattering wood and glass.<br />
Another kicked over the rabbit cages.<br />
Two more circled toward the back.
<br /><br />
They were jeering, calling out mockery as they pelted the house.
<br />
<br />
From inside, a crossbow bolt shot through a window—<br />
wild, panicked—<br />
and lodged uselessly in a tree.<br />
<br /><br />
<center>
<<image 'people/elsa/attack2.jpg' sfw>>
</center>
<br />
<<newguy>>
<<set _npc1 = $tmpGuy>>
<<sayNpc _npc1>>
Try again, sweetheart!
<</sayNpc>>
<br />
You stepped forward, boots crunching loudly on the forest floor.
<br /><br />
One of the men heard it first and turned.
<br /><br />
His smirk died when he saw you striding toward them—
not hesitating, not slowing, not hiding.
<br /><br />
The others gradually turned too, their amusement leaking away into something darker, speculative.
<br /><br />
<<newguy>>
<<set _npc2 = $tmpGuy>>
<<sayNpc _npc2>>
Well, look what wandered in.
<</sayNpc>>
<br />
<<link 'Attack them'>>
<<generateEnemies 3 0>>
<<set _npc1.inventory = {
knife: 1
}>>
<<set _npc2.inventory = {
knife: 1
}>>
<<run $enemies.push(_npc1)>>
<<run $enemies.push(_npc2)>>
<<set $game.death_reason = 'bleeding out'>>
<<fight $enemies 'Elsa - Attack won' 'Dead'>>
<<set
$fight.canRunAway = false,
$fight.skipEnding = true
>>
<</link>><br /><br />
<h1 class="ptitle">ELSA'S HOME</h1>
When you woke, the faint smell of firewood and cooked grains filled the small cabin. The bed beside you was empty, the blankets pulled neatly away.
For a moment, you simply lay there, listening. The soft murmur of voices, the scrape of cups on the wooden table —
<<=setup.displayName($characters.elsa.mother)>> and <<=setup.displayName($characters.elsa)>> were already awake.
<br /><br />
<center>
<<image 'people/elsa/morning_drink.jpg' sfw>>
</center>
<br />
<<sayNpc $characters.elsa.mother>>
You’re up.
<</sayNpc>>
<br />
Then, after a moment’s pause, she added something that caught you completely off guard
<br /><br />
<<sayNpc $characters.elsa.mother>>
I’m not dumb, you know.
<</sayNpc>>
<br />
The bluntness made you stop in your tracks. You glanced at Elsa, who was staring down at her plate, nervously fiddling with her food. Your eyes returned to <<=$characters.elsa.mother.name>>.
<br /><br />
She leaned forward slightly, her voice steady but quiet, carrying weight
<br /><br />
<<sayNpc $characters.elsa.mother>>
I know what you want. A man doesn’t come back here again and again, risking himself for strangers, unless he sees something worth keeping.
I know it’s not just the food or the safety. I know… it’s her.
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
When you walked into our lives, everything changed. Before that, it was just fear. Waiting for someone worse than you to find us. Now?
<</sayNpc>>
<br />
Her eyes flicked toward Elsa briefly, then back to you.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Now it feels like life is possible again. Like maybe we’re not just surviving, but… living.
<</sayNpc>>
<br />
Now it feels like life is possible again. Like maybe we’re not just surviving, but… living.
<br /><br />
<<sayNpc $characters.elsa.mother>>
This house, this life — it’s all I have left. If you want it, if you want us, then take it. I’m ready to accept that. Ready to accept you... And Elsa...
<</sayNpc>>
<br />
For a long moment, you were silent, the fire crackling in the corner filling the air between her words. Then, slowly, she moved closer.
<br /><br />
As she approached you, you could feel the heat of her body, the way her presence seemed to fill the room, drawing you in, captivating your senses.
She reached out, her hands finding your hips, her fingers deft and sure as she worked the buckle of your belt, her eyes locked on yours, a wicked glint in her gaze.
<br /><br />
<<video 'elsa/mother_bj1'>>
<br /><br />
<<elsa>>
Mom?
<</elsa>>
<br />
Elsa watched, her eyes wide with a mix of surprise and curiosity, her body tense, her fingers digging into the edge of the table,
seeking something to ground her in this sudden, intense moment.
You could see the discomfort in her eyes, the way her body tensed as <<=$characters.elsa.mother.name>> sucked your cock right in front of Elsa.
<br /><br />
<<video 'elsa/mother_bj2'>>
<br /><br />
<<=$characters.elsa.mother.name>> looked up at her, a soft smile playing on her lips, her eyes filled with a mix of tenderness and determination.
<br /><br />
<<sayNpc $characters.elsa.mother>>
It's okay, Elsa. We've talked about this. This is what needs to happen.
<</sayNpc>>
<br />
Suddenly, Elsa rose from her seat, her body shaking slightly with anticipation, her eyes wide with a mix of surprise and curiosity.
<br /><br />
<<elsa>>
I... I should go.
<</elsa>>
<br />
Her voice barely above a whisper, her body tensing as she took a step back, trying to put some space between her and the intense scene unfolding before her.
<br /><br />
But <<=setup.displayName($characters.elsa.mother)>> was quick to stop her, her hand reaching out, her fingers wrapping around Elsa's wrist, pulling her back, her eyes locked on hers,
a look of determination in her gaze.
<br /><br />
<<sayNpc $characters.elsa.mother>>
No, Elsa. Stay. This is what needs to be done. Go lay on the bed and spread your legs. It's time.
<</sayNpc>>
<br />
Elsa hesitated, her body shaking slightly with anticipation, her eyes wide with a mix of surprise and curiosity.
But you could see the trust in her gaze, the way she looked to her mother for guidance, for reassurance.
With a soft nod, she turned and made her way to the bed, her body tense, her movements uncertain, but her eyes filled with a newfound determination.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Relax, Elsa. This was going to feel good. I promised.
<</sayNpc>>
<br />
<center>
<<image 'people/elsa/before_penetration.webp'>>
</center>
<br /><br />
As she lay back on the bed, her legs spreading, revealing her wet, glistening pussy, you and <<=$characters.elsa.mother.name>> approached,
your bodies pressing against hers, your cock hard and ready, pressing against her entrance, demanding entry.
<br /><br />
<<linkreplace 'Enter Elsa'>>
<<if $characters.elsa.virgin>><<run setup.npc.addHistory($characters.elsa, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $characters.elsa.virgin = false>>
<<video 'elsa/penetration1'>>
<br /><br />
<strong>Elsa lost her virginity!</strong>
<br /><br />
With that, you began to move, your hips thrusting forward, your cock sliding into her with one swift, deep movement. Elsa let out a sharp gasp,
her body tensing as you filled her, her pussy clenching around your shaft, the pain of her first time mingling with the pleasure of your touch.
<br /><br />
<<=$characters.elsa.mother.name>> watched, her eyes filled with a mix of desire and concern, her body pressing against Elsa's,
her hands roaming her curves, her fingers tracing the contours of her body, her touch soothing and supportive.
<br /><br />
<<video 'elsa/penetration2'>>
<br /><br />
As Elsa began to relax, her body pressing more fully against yours, her breaths evening out, her eyes locked on yours, a look of trust and
desire in her gaze, you started to pick up the pace. Your hips moved faster,
your cock sliding in and out of her with increased force, the sound of flesh meeting flesh echoing in the room.
<br /><br />
<<elsa>>
Ouch..
<</elsa>>
<br />
<<sayNpc $characters.elsa.mother>>
Elsa, turn around. It will feel better this way. Trust me.
<</sayNpc>>
<br />
Elsa hesitated for a moment, her body tense, her eyes wide with a mix of surprise and curiosity.
But you could see the trust in her gaze, the way she looked to her mother for guidance, for reassurance.
With a soft nod, she began to turn, her body shifting beneath yours, her movements slow and uncertain.
<br /><br />
<<video 'elsa/penetration3'>>
<br /><br />
You reached out, your hands finding Elsa's hips, pulling her closer, your cock hard and ready, pressing against her entrance. Then you shoved your dick back into Elsa.
<br /><br/>
<<elsa>>
Mhmmmmm...
<</elsa>>
<br />
Elsa's body tensed, her pussy clenching around your cock as you felt her orgasm building, her moans turning to screams of pleasure, her hips bucking wildly against yours
<br /><br />
<<sayNpc $characters.elsa.mother>>
Fill her up.
<</sayNpc>>
<br />
<div id="cum_inside">
<<linkreplace 'Cum inside her'>>
<<horny_reset>>
<<if setup.pregnancyChance($characters.elsa)>>
<<set $characters.elsa.pregnancy_father = 'mc'>>
<<set $characters.elsa.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<center>
<<image 'game/misc/creampie.webp'>>
</center>
<br />
With a final, deep thrust, you sent her over the cliff. Her body convulsed as she came undone, her pussy clenching around your cock as you cummed deep into Elsa's pussy.
<br /><br />
<<set $characters.elsa.horny = 0>>
<<set $characters.elsa.orgasms ??= 0>>
<<set $characters.elsa.orgasms++>>
<<set $characters.elsa.quests.champagne_delivery = true>>
<<set $characters.elsa.quests.penetration_day = $game.day>>
<br /><br />
You held her there, your cock still pulsing inside her, your bodies pressed together, your breaths coming in ragged gasps.
<br /><br />
You helped her up, your arms around her waist as you both stood there, your bodies still connected, your breaths slowly returning to normal.
The room was filled with the scent of sex and the sound of your ragged breathing, the dim light casting a warm glow over your entwined forms.
<br /><br />
<<sayNpc $characters.elsa.mother>>
I hope this help you to make your choice.
<</sayNpc>>
<br />
<<=$characters.elsa.mother.name>> helped Elsa to get dressed.
<br /><br />
<<link 'Leave'>>
<<addhours 3>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>><br /><br />
<h1 class="ptitle">ELSA'S HOUSE</h1>
<br /><br />
The forest had been quiet since the encounter near the abandoned village— <strong>too quiet</strong>.
<br /><br />
You felt it the moment you came up the ridge overlooking Elsa’s home: the little clearing, the garden beds, the thin smoke rising from the chimney.
Everything looked normal… but the air carried a tension you couldn’t name.
<br /><br />
<<video 'elsa/chopping_wood'>>
<br /><br />
You found Elsa outside, splitting firewood beside the shed.
She stopped mid-swing when she saw you.
<br /><br />
Her hair was tied back, sleeves rolled, sweat on her brow—
but it wasn’t the work that made her look exhausted.
It was fear.
A fear she was trying very hard not to show.
<br /><br />
<<elsa>>
I didn't expect you... Good. I’m glad you’re here.
<</elsa>>
<br />
Elsa lowered the axe, leaning on the handle.
<br /><br />
<<elsa>>
Someone came back.
<</elsa>>
<br />
She motioned for you to follow and led you behind the house.
Her mother sat on a stool by the cellar door, sharpening a kitchen knife.
<br /><br />
Elsa crouched and lifted the corner of a tarp on the ground.
Beneath it were tracks—bootprints—leading out of the woods and stopping just a few feet from the house.
<br /><br />
<<video 'elsa/homestead2'>>
<br /><br />
<<elsa>>
They watched us. They stood here. Right here. Long enough that the ground settled beneath their weight.
<</elsa>>
<br />
You studied the prints.
<br />
Large.
<br />
Deep.
<br />
One of them dragged slightly, as if the man favored one side.
<br /><br />
Her mother sheathed the kitchen knife with a decisive snap.
<br /><br />
<<sayNpc $characters.elsa.mother>>
We counted at least three sets. They weren’t trying to hide their presence. That worries me more than anything.
<</sayNpc>>
<br />
She took a breath, steadying herself.
<br /><br />
<<you>>
You shouldn’t stay here anymore. Not after this. Pack what you need and come with me. Both of you.
<</you>>
<br />
Elsa blinked, surprised at how firmly you said it.
Her mother, though, reacted instantly.
<br /><br />
<<sayNpc $characters.elsa.mother>>
No
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
We counted at least three sets. They weren’t trying to hide their presence. That worries me more than anything.
<</sayNpc>>
<br />
Elsa rubbed her arms, conflicted.
<br /><br />
<<elsa>>
Ma...
<</elsa>>
<br />
Her mother shook her head—once, sharply.
<br /><br />
<<sayNpc $characters.elsa.mother>>
What we will do… is prepare. Traps. Alerts. Markers on the trails. We know these woods better than whoever is stalking them
<</sayNpc>>
<br />
Elsa’s eyes flicked between the two of you.
The tension was thick enough to choke.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Maybe when you visit us you could bring some weapons for us? Nothing fancy, maybe <strong class="iitem">two crossbows</strong>?
<</sayNpc>>
<br />
<<you>>
I will do that.
<</you>>
<br />
Elsa stepped closer to you, voice barely above a murmur.
<br /><br />
<<elsa>>
Thank you. I… I don’t think she understands how close this feels. I’m glad you’re here.
<</elsa>>
<br />
<<link 'Leave'>>
<<addhours 3>>
<<set $characters.elsa.quests.homestead_day = $game.day>>
<<goto 'Garage'>>
<</link>><br />
<h1 class="ptitle">ELSA'S ROOM</h1>
<br />
Just… Elsa.<br />
Hair tied back, face soft, eyes clearer than you’d seen since the attack.
<br /><br />
<center>
<<image 'people/elsa/introduction_camp1.jpg'>>
</center>
<br />
<<elsa>>
Hey!
<</elsa>>
<br />
<<elsa>>
I was wondering if… maybe you could show me around? I think I’m ready to see the place properly.
<</elsa>>
<br />
<<you>>
Of course.
<</you>>
<br />
Her smile grew, small but sincere.
<br /><br />
<center>
<<image 'people/elsa/introduction_camp2.jpg'>>
</center>
<br />
You walked side by side through the central path — the gardens, the crafting sheds, the communal fire pit.
People nodded to you both, some offering cautious smiles. Elsa nodded back each time, shoulders relaxing bit by bit.
<br /><br />
<<elsa>>
It’s… beautiful here
<</elsa>>
<br />
She said as you passed the greenhouse where people tended the soil.
<br /><br />
<<elsa>>
Not like the forest, but still… alive. Safe.
<</elsa>>
<br />
She pointed at the workshop.
<br /><br />
<<elsa>>
And that’s where you fix things, right?
<</elsa>>
<br />
She stopped walking, turned to you, and took a quiet breath.
<br /><br />
<<elsa>>
Can I help?
<</elsa>>
<br />
You raised an eyebrow.
<br /><br />
<<you>>
With repairs?
<</you>>
<br />
She lifted her chin a little, not stubborn, just determined.
<br /><br />
<<elsa>>
I don’t want to be a burden. I want to earn my place here. Keep busy. Learn things. Whatever you need done, I’ll do it.
<</elsa>>
<br />
Elsa had just finished saying she wanted to earn her place, to do whatever was needed, when her eyes drifted toward the garage at the edge of the settlement.
<br /><br />
<center>
<<image 'people/elsa/introduction_camp3.jpg'>>
</center>
<br /><br />
Your car sat half-lit inside, dust settling around its tires.
<br /><br />
She went quiet for a second.<br />
Then she reached out, took your hand gently — not in panic this time, but with purpose — and tugged you toward the garage.
<br /><br />
<<elsa>>
Come with me
<</elsa>>
<br />
You didn’t resist.
She guided you inside, slid the door halfway closed, and walked around to the passenger seat, opening it and sitting down like she had done it a hundred times.
<br /><br />
She looked at you across the car interior, her eyes a mix of memory, hope, and something unresolved.
<br /><br />
<<elsa>>
I want to help you. My mother told me I should do whatever I need to stay here.
<</elsa>>
<br />
Elsa’s eyes locked onto yours with a mix of hunger and hesitation, her fingers trembling slightly as they reached for the zipper of your pants.
<br /><br />
Her hand slipped inside, wrapping around your hardening cock through the thin fabric, squeezing gently as she freed it fully.
<br /><br />
<<video 'elsa/car6'>>
<br /><br />
Pre-cum slicked her fingers, making the slide smoother, and she let out a quiet gasp, her eyes widening at the sight and feel of you throbbing in her hold.
<br /><br />
<<elsa>>
You’re already so hard for me.
<</elsa>>
<br />
Emboldened by your low moan, Elsa shifted lower in the passenger seat, her knees pressing into the floorboard as she brought her face near your lap.
She hesitated for just a second, glancing up with those wide, nervous eyes.
<br /><br />
Then, without another word, she extended her tongue, starting with a slow, flat lick along the underside of your dick, tracing the vein from root to tip.
The wet heat of her mouth made your hips twitch, and she hummed in response, the vibration sending sparks up your spine.
<br /><br />
<<video 'elsa/car1'>>
<br /><br />
She sucked lightly at first, her tongue pressing against the slit, drawing out more pre-cum that she swallowed with a soft, appreciative sound.
<br /><br />
The suction pulled at you, warm and wet, her cheeks hollowing as she bobbed shallowly, taking just the head while her hand twisted below.
<br /><br />
<<elsa>>
Is that okay?
<</elsa>>
<br />
<<video 'elsa/car5'>>
<br /><br />
Her eyes watered, but she didn’t stop, bobbing with increasing rhythm, her head moving faster now, slurping sounds filling the car as she hollowed her cheeks for tighter suction.
<br /><br />
Deeper she went, determined, until her lips met her hand at the base, your cock buried in the tight heat of her throat.
<br /><br />
<<elsa>>
I want you now... inside me...
<</elsa>>
<br />
In a fluid motion, she climbed over the console, throwing her leg across your lap to straddle you, her skirt riding up to reveal her bare, dripping pussy.
<br /><br />
<<video 'elsa/car2'>>
<br /><br />
Then she pushed down harder, grinding in circles, her pussy gripping you like a vice as she started to ride, the car creaking with each bounce
<br /><br />
<<video 'elsa/car3'>>
<br /><br />
Faster she went, rising and falling with increasing urgency, her ass lifting higher each time so she could slam down harder, the force making your balls slap up against her perineum.
Sweat beaded on her forehead, trickling down her neck as she rode you relentlessly, her pussy gripping like a fist, milking you with every thrust
<br /><br />
<<elsa>>
Oh, this feels good.
<</elsa>>
<br />
<<video 'elsa/car4'>>
<br /><br />
he windows fogged from your shared breaths, the air thick with the scent of sex—her musky arousal and the salty tang of your pre-cum mixing inside her.
Elsa's pace quickened, her bounces turning erratic, chasing her building pleasure, her clit grinding against you on every downstroke until her thighs quivered and her moans grew louder, unrestrained.
<br /><br />
<<linkreplace 'Cum inside her'>>
<center>
<<image 'game/misc/creampie_cowgirl.webp'>>
</center>
<<horny_reset>>
<<if setup.pregnancyChance($characters.elsa)>>
<<set $characters.elsa.pregnancy_father = 'mc'>>
<<set $characters.elsa.pregnancy = 0>>
<</if>>
<br /><br />
The first hot spurt of cum erupting from your tip, flooding her tight pussy with thick ropes of semen.
You gripped her hips, thrusting up instinctively to bury yourself deeper as you unloaded, jet after jet coating her walls, filling her until you felt the excess leak out
<br /><br />
For a moment, she froze there, still impaled on your cock, her chest heaving as aftershocks rippled through her.
Then, with a soft, satisfied sigh, she lifted herself off you slowly, your spent dick slipping free with a wet pop, a trail of your mixed cum trailing from her swollen pussy lips down her thigh.
She reached for the door handle, swinging it open to let in the cool night air, the scent of the woods rushing in.
<br /><br />
<<elsa>>
I... I need to keep exploring the settlement on my own a bit more
<</elsa>>
<br />
<<link 'Leave'>>
<<set
$characters.elsa.horny = 0,
$characters.elsa.canTalk = true,
$characters.elsa.canFuck = true,
$characters.elsa.quests.introduction_day = $game.day,
$characters.elsa.relationship = randomInteger(60, 80),
$characters.elsa.likesGuys = true,
$characters.elsa.likesGirls = true,
$characters.elsa.breasts = 'small'
>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>><br /><br />
<h1 class="ptitle">ELSA'S HOME</h1>
The smell of something cooking reached you before the light did. The crackling of the small stove blended with the soft sound of a woman’s voice humming, low and almost playful.
<br /><br />
You blinked awake and saw her at the stove, her bare ass catching the firelight.
She moved with a quiet energy, every step light, as if the weight of the world had lifted from her shoulders for the first time in years.
<br /><br />
<center>
<<image 'people/elsa/mother_kitchen_morning.webp'>>
</center>
<br />
Her voice carried through the small home as she hummed a tune — not quite a song, more like a memory of one. It was soft, almost absent-minded, but there was joy in it. A kind of joy you hadn’t heard since before the world fell apart.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Good morning. I thought I’d make something warm for us. It’s not much, but it’s better than starting the day hungry.
<</sayNpc>>
<br />
<<set $player.hunger to 100>>
<<updatemeter '$hungerBar' `$player.hunger / $player.maxHunger`>>
Soon Elsa stirred as well, rubbing her eyes before sitting up, shyly nodding toward you before joining her mother at the table.
<center>
<<image 'people/elsa/introduction2.jpg'>>
</center>
<br />
The three of you shared breakfast, simple but filling, the mood far lighter than it had been the night before.
<br /><br />
When the dishes were cleared away and you began readying your pack, the mother stepped closer. Her hand found yours, and for a moment she simply looked at you — as if weighing whether she should speak. Finally, she did.
<br /><br />
<<sayNpc $characters.elsa.mother>>
If… if it’s not too much trouble, there are a few things we could really use.
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
Medicine, mostly. Just to be safe if one of us gets sick.
<</sayNpc>>
<br />
She hesitated, her eyes flicking toward the window
<br /><br />
<<sayNpc $characters.elsa.mother>>
Wolf pelts. I’ve heard them at night, closer and closer. The cold is bad enough, but if I had pelts, I could keep Elsa warm. Keep her safe.
<</sayNpc>>
<br />
Her voice wavered on that last word, but her grip on your hand was steady.
<br /><br />
<center>
<<image 'people/elsa/mother_kiss.webp'>>
</center>
<br />
Before you could answer, she leaned in and kissed you — soft, tender, and unhurried. It wasn’t the desperate closeness of the night before, but something quieter
<br /><br />
Elsa had turned her eyes away, pretending to busy herself with her rabbit, though you noticed she sneaked a shy glance when she thought no one was looking.
<br /><br />
<<link 'Leave'>>
<<addhours 4>>
<<set $characters.elsa.quests.morning_request2 = true>>
<<goto 'Garage'>>
<</link>><br /><br />
<h1 class="ptitle">ELSA'S HOME</h1>
The first thing you noticed was not the smell of food, but the sound of quiet movement.
The soft scrape of a pot being shifted, the creak of the wooden floor, the low crackle of fire.
You opened your eyes to find Elsa still sleeping in bed right next to you.
<br /><br />
<center>
<<image 'people/elsa/morning_sleep.jpg'>>
</center>
<br /><br />
Her mother was already awake. She wasn’t humming this time — instead, she was speaking softly to herself as she worked at the stove, as though going over thoughts
she hadn’t dared to say aloud. You caught fragments: “<i>wood’s running low… maybe stretch this a bit more…</i>” Her voice was calm, thoughtful.
<br /><br />
When she glanced back and noticed you were awake, her face changed instantly. She smiled, that same small but radiant smile you’d started to crave seeing. “You’re up,” she said warmly, brushing a loose strand of hair back. “I hope the bed wasn’t too crowded last night.”
<br /><br />
<center>
<<image 'people/elsa/breakfast.jpg'>>
</center>
<br /><br />
<<set $player.hunger to 100>>
<<updatemeter '$hungerBar' `$player.hunger / $player.maxHunger`>>
<<sayNpc $characters.elsa.mother>>
Good morning. Sorry for the last night. Elsa sometimes gets nightmares
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
But last night… with you here… it felt like more than just survival. It felt… safe
<</sayNpc>>
<br />
You stood and joined her by the stove, catching her eyes.
<br /><br />
<<you>>
That’s how it should feel. That’s why I keep coming back.
<</you>>
<br />
<div id="option_grope">
<<linkreplace 'Grope her ass'>>
<center>
<<image 'people/elsa/kitchen_grope.webp'>>
</center>
<<set _grope = true>>
<br />
<<sayNpc $characters.elsa.mother>>
Oh you have earned that, hehe. It's all yours and maybe more...
<</sayNpc>>
<br />
She turned around and you leaned down, your lips capturing hers in a deep, passionate kiss, your tongues dancing, your breaths mingling.
You could taste the coffee on her lips, the sweetness of her tongue, the musk of her arousal, all combining to create a heady,
intoxicating cocktail that sent your senses reeling.
<br /><br />
<<video 'elsa/crotch_grab'>>
<br /><br />
As your kiss deepened, she reached down, her hand finding your crotch, squeezing gently, teasingly, a promise of what was to come.
You let out a low groan, your body shaking with the intensity of her touch, your cock hardening further, pressing against her palm, demanding more
<br /><br />
Just as she was about to free your cock, a soft, sleepy voice called out from across the room.
<br /><br />
<<elsa>>
Good morning, everyone.
<</elsa>>
<br />
You smiled, a sense of warmth and contentment washing over you as you realized that your presence had brought her comfort and security, even if it had been in the midst of a passionate encounter with her mother.
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Wait for breakfast'>>
<<if !_grope>>
<<run $('#option_grope').hide()>>
<</if>>
She blinked toward you and her mother at the stove, still drowsy but slowly realizing she wasn’t alone in the room.
<br /><br />
<center>
<<image 'people/elsa/introduction2.jpg'>>
</center>
<br /><br />
Before long, the mother placed bowls in front of you both. The food was simple — broth, bread torn into pieces, and the faint scent of herbs. Yet in this world, it felt like a feast.
<br /><br />
The three of you sat together, the quiet broken only by the sound of spoons scraping against bowls. Elsa ate slowly, careful and polite, sneaking little looks at you when she thought you weren’t paying attention. Her mother, meanwhile, kept smiling in that soft way that never seemed to leave her face when you were around.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Will you be leaving today?
<</sayNpc>>
<br />
<<you>>
Yes
<</you>>
<br />
The mother hesitated, almost embarrassed. Then her lips curved into a small, almost playful smile.
<br /><br />
<<sayNpc $characters.elsa.mother>>
There is one thing. It’s silly, really… I’ve never tasted champagne. Maybe you could?...
<</sayNpc>>
<br />
You smiled as you rose from the table, gathering your pack.
<br />
She stood as well, walking you to the door. Her daughter stayed at the table, hugging her rabbit and watching silently. The mother’s hand brushed yours one last time at the doorway.
<br /><br />
<<link 'Leave'>>
<<horny 40>>
<<addhours 4>>
<<set $characters.elsa.quests.morning_request3 = true>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>><br /><br />
<h1 class="ptitle">ELSA'S HOME</h1>
<br />
The morning came quietly, the pale sun filtering weakly through the cracks in the boarded windows.
The smell of woodsmoke lingered in the air, mixed with something faintly warm and comforting.
When you sat up, the girl was already awake, watching you curiously from her mother’s bed.
<br /><br />
<center>
<<image 'people/elsa/bed.jpg'>>
</center>
<br /><br />
The mother gave you a tired but genuine smile as she stirred a small pot over the hearth.
<br /><br />
<center>
<<image 'people/elsa/kitchen.gif'>>
</center>
<br /><br />
<<sayNpc $characters.elsa.mother>>
It’s not much, but it’ll do for breakfast.
<</sayNpc>>
<br />
Vincent stepped back in from outside, brushing frost from his coat, muttering about the cold night in the car. He sat heavily by the table, rubbing his hands together.
The three of you shared a meager meal — hard bread, a thin broth, and a handful of dried berries the mother had carefully saved.
Despite its simplicity, it felt like a feast after the chaos of the night before.
<br /><br />
As the meal ended, the woman folded her hands in front of her, hesitant at first, before finally speaking.
<br /><br />
<<sayNpc $characters.elsa.mother>>
I… I hate to ask this of you, especially after all you’ve already done, but…
<</sayNpc>>
<br />
Her eyes shifted toward her daughter, then back to you.
<br /><br />
<<sayNpc $characters.elsa.mother>>
We’re running low on food. And the woodpile outside is almost gone. If I could trouble you, maybe… you might bring us something back? Whatever you can find.
<</sayNpc>>
<br />
The daughter lowered her gaze, pretending to fuss with something in her hands, though you could tell she was listening closely.
<br /><br />
<center>
<<image 'people/elsa/introduction2.jpg'>>
</center>
<br />
For a moment, the room was silent, only the faint crackle of the fire filling the air.
<br /><br />
You nodded slowly, the decision already made in your mind.
<br /><br />
<<you>>
I’ll see what I can do.
<</you>>
<br />
Relief washed over her face, and for the first time since meeting her, her shoulders eased.
<br /><br />
Vincent gave you a long look, one that said more than words: <i>be careful what you promise.</i>
<br /><br />
<<link 'Leave'>>
<<addhours 4>>
<<set $game.location.elsa = true>>
<<set $characters.elsa.quests.morning_request = true>>
<<goto 'Garage'>>
<</link>><br /><br />
The forest greeted you with its usual quiet — the crunch of old leaves, the whisper of branches swaying overhead, the distant cry of a lone bird.
<br /><br />
<center>
<<image 'places/farm/wood_house5.jpg' sfw>>
</center>
<br /><br />
But something felt… off.
A tension in the air you couldn’t quite place.
<br /><br />
As you approached the clearing, you stopped.
<br /><br />
<center>
<<image 'people/elsa/shower1.jpg' sfw>>
</center>
<br />
The man you had taken in — the stranger you had saved — stood behind the cabin, half-hidden by the wooden wall.
<br /><br />
He leaned forward, peering around the corner with intent focus.
<br /><br />
He looked healthier now.
<br />
Color in his cheeks.
<br />
Stronger posture.
<br />
Able to stand on his own.
<br />
You narrowed your eyes and stepped closer, silent as a shadow.
<br />
It wasn’t until you were almost beside him that you saw what he was staring at:
<br /><br />
<center>
<<image 'people/elsa/shower1.webp'>>
</center>
<br />
Elsa’s mother, rinsing water from her hair in the makeshift outdoor shower behind the cabin.
<br />
Her hands moved over her body with a familiar, almost ritualistic touch, soaping and rinsing,
cleansing the layers of dirt and sweat that had accumulated over the course of her labors.
But as the water continued to flow, her movements took on a different quality, a shift from necessity to something more intimate and personal.
<br /><br />
<div id="option_scold">
<<linkreplace 'Scold him'>>
<<run $('#option_look').hide()>>
<<run $('#option_continue').show()>>
He jumped, stumbling back, nearly tripping over a stump behind him.
<br /><br />
<<set $player.goodwill++>>
<<you>>
What the hell do you think you’re doing?
<</you>>
<br />
Your glare hardened.
<br /><br />
He swallowed, breath shaking.
<br /><br />
<<sayNpc $characters.elsa.stranger>>
I’m sorry. Really… I’m sorry.
<</sayNpc>>
<br />
<<you>>
You’re alive because we let you stay. Don’t ever mistake that for permission to spy on her.
<</you>>
<br />
He turned and walked away toward the front of the cabin, shame visibly weighing on him.
<br /><br />
<</linkreplace>>
</div>
<div id="option_look">
<<linkreplace 'Look together'>>
<<run $('#option_continue').show()>>
<<horny 10>>
<<run $('#option_scold').hide()>>
<<set $player.goodwill-->>
<<set $characters.elsa.quests.shower_look = true>>
<center>
<<image 'people/elsa/shower2.webp'>>
</center>
<br />
At times, her movements became more deliberate, more purposeful, her fingers tracing patterns and paths that sent shivers of pleasure coursing through her body. She leaned against the wood wall, her breath coming in soft, ragged gasps, her eyes closed, lost in the sensations that washed over her.
<br /><br />
As the water began to cool and the light faded, she reluctantly stepped out of the shower, her body still tingling with the aftershocks of her self-exploration. She wrapped herself in a tattered towel
<br /><br />
<</linkreplace>>
</div>
<div id="option_continue" style="display:none">
Elsa’s mother emerged from behind the shower curtain’s frame, wrapped in the towel, her hair dripping, strands clinging to her collarbone.
Her face was calm, but her eyes carried the faint concern of someone who sensed tension without knowing why.
<br /><br />
<center>
<<image 'people/elsa/shower2.jpg' sfw>>
</center>
<br />
<<sayNpc $characters.elsa.mother>>
Oh, <<=$player.name>>, hey!. Good that you are here. I wanted to talk about something. Because something happened yesterday…
<</sayNpc>>
<br />
She hesitated, then stepped a little closer, lowering her voice.
<br /><br />
<<sayNpc $characters.elsa.mother>>
I went out collecting berries near the old path. And I saw… men.
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
Three of them. Standing by the village well.
<</sayNpc>>
<br />
<<you>>
Did they see you?
<</you>>
<br />
<<sayNpc $characters.elsa.mother>>
No. I left as soon as I realized they weren’t travelers. They were searching for something. Or someone.
<</sayNpc>>
<br />
<<you>>
I will investigate it later.
<</you>>
<br />
A small breath of relief escaped her.
<br /><br />
<<link 'Leave'>>
<<addhours 2>>
<<set $characters.elsa.quests.shower_day = $game.day>>
<<goto 'Garage'>>
<</link>>
</div><br /><br />
It was late afternoon by the time you reached Elsa’s home again.
Birds circled lazily above the tree line.
A calm day — one of the few left in this world.
<br /><br />
<center>
<<image 'places/farm/wood_house5.jpg' sfw>>
</center>
<br />
But the moment you approached the cabin, you sensed something was wrong.
<br /><br />
Elsa’s mother stood outside, arms crossed tightly over her chest.
Elsa peeked from behind her, eyes wide and anxious.
Both of them were staring at the same thing.
<br /><br />
<center>
<<image 'people/elsa/stranger1.jpg' sfw>>
</center>
<br />
<strong>
A man sat slumped against the wall of the cabin
</strong>
<br /><br />
Dirty.
<br />
Bloodied.
<br />
Barely conscious.
<br />
Not one of Negan’s men — you would’ve recognized the markings immediately.
He wore no insignia, no weapon you could see. His breathing was shallow, strained.
<br /><br />
Elsa’s mother looked at you with a storm of uncertainty in her eyes.
<br /><br />
<<sayNpc $characters.elsa.mother>>
He staggered out of the woods an hour ago… and collapsed right there.
I didn’t touch him. I didn’t move him.
<</sayNpc>>
<br />
Elsa whispered.
<br /><br />
<<elsa>>
Mom said not to go near him.
<</elsa>>
<br />
<<sayNpc $characters.elsa.mother>>
Could be scouting. Could be bait.
Could be dying.
<</sayNpc>>
<br />
She stepped closer to you, lowering her voice.
<br /><br />
<<sayNpc $characters.elsa.mother>>
I don’t know if we should help him… or send him away before trouble comes.
<</sayNpc>>
<br />
The man groaned faintly.
His eyes cracked open just enough to meet yours — weary, terrified, pleading.
<br /><br />
<center>
<<image 'people/elsa/stranger2.jpg' sfw>>
</center>
<br />
He tried to speak.
<br /><br />
<<newguy>>
<<set $characters.elsa.stranger = $tmpGuy>>
<<sayNpc $tmpGuy>>
P… plea… se… don’t let them… find me…
<</sayNpc>>
<br />
Elsa flinched, clutching her mother’s arm.
<br /><br />
<<elsa>>
He’s scared…
<</elsa>>
<br />
Her mother’s jaw tightened.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Or pretending. That’s how groups lure people out. They leave someone half-dead, and when you help—
the rest come out of the trees.
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
I trust you. So you decide.
<</sayNpc>>
<br />
<div id="option_int">
<<linkreplace 'Interrogate him'>>
<<set _int = true>>
Elsa stood a few steps back, watching anxiously.
Her mother hovered near the doorway, hand resting on the handle of a kitchen knife — not trusting the stranger, but trusting you.
<br /><br />
You tapped the man’s cheek lightly.
<br /><br />
<<you>>
Hey. Wake up.
<</you>>
<br />
His eyes fluttered open. They were unfocused, glassy, but alive.
<br /><br />
<<sayNpc $tmpGuy>>
D… don’t… don’t send me back…
<</sayNpc>>
<br />
His voice was thin, trembling.
He tried lifting his head, failed, then forced himself again.
<br /><br />
<<you>>
Who were you running from?
<</you>>
<br />
<<sayNpc $tmpGuy>>
Group… six of ‘em… hunters… not the animal kind…
<</sayNpc>>
<br />
His throat worked as he swallowed painfully.
<br /><br />
<<sayNpc $tmpGuy>>
They take people… trade them… sell what’s left…
<</sayNpc>>
<br />
You watched him carefully.
His breathing, the twitch in his hands, the terror behind his voice — it all felt real.
<br /><br />
<<you>>
What do you want from us?
<</you>>
<br />
His head drooped again, exhausted.
<br /><br />
<</linkreplace>>
</div>
<div id="option_leave">
<<linkreplace 'He stays'>>
<<if !_int>>
<<run $('#option_int').hide()>>
<</if>>
<<you>>
He stays
<</you>>
<br />
<<=setup.displayName($characters.elsa.mother)>> eyes widened — not in disagreement, but in surprise at how confidently you said it.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Here? In this house?
<</sayNpc>>
<br />
<<you>>
Outside he’ll die. Inside he’ll live. And he won’t be a threat in this condition
<</you>>
<br />
<<sayNpc $characters.elsa.mother>>
Fine.
<br />
But he sleeps on the floor near the stove. And I’m keeping the knife.
<</sayNpc>>
<br />
Her mother looked at you.
For a moment, her stern expression softened.
<br /><br />
<<sayNpc $characters.elsa.mother>>
You’re putting a lot of trust in a stranger…
<</sayNpc>>
<br />
You nodded.
<br /><br />
<<link 'Leave'>>
<<set $characters.elsa.quests.stranger_at_doors_day = $game.day>>
<<goto 'Elsa - Wood house'>>
<</link>>
<</linkreplace>>
</div><br /><br />
The forest was quiet again.
<br /><br />
Too quiet.
<br /><br />
Leaves settled slowly around the bodies of the two men you’d put down.
The third — lay on his back, groaning, clutching his ribs where your strike had dropped him.
<br /><br />
His eyes snapped open, wide and panicked now — the confident predator gone, replaced by a cornered animal.
<br /><br />
<<you>>
Talk
<</you>>
<br />
Your voice was low, steady.
<br /><br />
He tried to smirk, but blood dribbled from his lip instead.
<br /><br />
<<sayNpc $prevFight.defeatedEnemies[0]>>
I told you… it’s a runaway.
<</sayNpc>>
<br />
His breathing was ragged as your boot kept him pinned.
<br /><br />
<<sayNpc $prevFight.defeatedEnemies[0]>>
Because he’s dangerous.
<</sayNpc>>
<br />
<<you>>
What. Did. He. Do?
<</you>>
<br />
For a moment he looked like he might break completely — but then something changed.
His expression hardened into something bitter, resigned, almost… protective?
But not in the way you expected.
<br /><br />
<<sayNpc $prevFight.defeatedEnemies[0]>>
I ain’t sayin’. Not to you. Not to anyone outside the camp.
<</sayNpc>>
<br />
<<sayNpc $prevFight.defeatedEnemies[0]>>
FUCK YOU!
<</sayNpc>>
<br />
<<linkreplace 'Kill them all'>>
You instantly took out your sharp knife and sliced his throat.
<br />
The other wounded bandit — the one who’d been crawling away — didn’t make it any farther.
One step.
One strike.
<br /><br />
<<linkreplace 'Search him'>>
You checked his pockets, methodical, precise — not for loot, but for answers.
<br /><br />
<center>
<<image 'people/elsa/note1337.jpg'>>
</center>
<br />
<<pickup $backpack 'note1337' 1>>
<strong>You found note with text "1337" on it</strong>
<br /><br />
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>><br /><br />
The drive to the old village felt wrong from the moment you turned onto the cracked dirt road.
<br /><br />
By the time you reached the outskirts of the abandoned settlement, nothing moved.
No animals.
No wind.
Just an unsettling stillness pressing against the world.
<br /><br />
You killed the engine.
<br /><br />
Silence dropped like a stone.
<br /><br />
Near the stone well — half-collapsed, coated in moss — you saw them.
<br /><br />
<center>
<<image 'people/elsa/well1.jpg' sfw>>
</center>
<br />
<strong>
Three men.
</strong>
<br /><br />
Not travelers.
<br />
Not scavengers.
<br /><br />
Predators
<br /><br />
The men sat around it, laughing at something — a cruel, unrestrained kind of laughter that made your stomach knot.
<br /><br />
Over the fire hung a large iron pot.
<br /><br />
And whatever they were cooking…
<br /><br />
It wasn’t food.
<br /><br />
You couldn’t see the details — just shapes, fragments, something unmistakably wrong.
A piece of someone’s past life tossed into a pot like it meant nothing.
<br /><br />
<center>
<<image 'people/elsa/well2.jpg' sfw>>
</center>
<br />
One man jabbed a stick into the pot, poked something inside, and flicked it aside with childish amusement.
<br /><br />
The others roared with laughter.
<br /><br />
Your breath hardened.
<br /><br />
These weren’t men surviving the apocalypse.
<br /><br />
They were thriving in it.
<br /><br />
<<generateEnemies 3 0 3>>
<<set _npc1 = $enemies[0]>>
<<set _npc2 = $enemies[1]>>
<<set _npc3 = $enemies[2]>>
<<linkreplace 'Apprach them'>>
<<run $('#option_attack').hide()>>
At about thirty feet away, the tall one with the jagged scar across his skull noticed you.
His grin widened into something feral.
<br /><br />
<<sayNpc _npc1>>
Well, look at this. You lost, friend?
<</sayNpc>>
<br />
The other two rose slowly, stretching like bored wolves who just smelled meat.
<br /><br />
You didn’t answer. You simply stood there, chin high, eyes locked on all three.
<br /><br />
<<sayNpc _npc1>>
We’re looking for someone. A man. Early forties. Thin. Limp in his left leg.
<</sayNpc>>
<br />
Your pulse tightened.
<br /><br />
That description fit <strong>the stranger you found</strong>, the one recovering at Elsa’s home.
<br /><br />
<<sayNpc _npc1>>
He ran from one of our camps a few days ago. Took some things that weren’t his.
<</sayNpc>>
<br />
<<sayNpc _npc2>>
And he hurt someone on his way out. Hurt her real bad.
<</sayNpc>>
<br />
<<sayNpc _npc3>>
We don’t aim to kill him. Just want justice.
<</sayNpc>>
<br />
Their words sounded rehearsed.
<br /><br />
Too clean.
<br />
Too aligned.
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
<<link 'Attack them'>>
<<for _enemyI, _enemy range $enemies>>
<<set _enemy.cantKill = true>>
<<set _enemy.strength += randomInteger(10, 20)>>
<</for>>
<<set $player.goodwill -= 5>>
<<fight $enemies 'Elsa - Village well won' 'Garage'>>
<</link>>
<<set $characters.elsa.quests.well_day = $game.day>><br /><br />
<h1 class="ptitle">ELSA'S HOUSE</h1>
<br />
<<elsa>>
Hey...
<</elsa>>
<br />
<<sayNpc $characters.elsa.mother>>
Hey! What's bring you here?
<</sayNpc>>
<br />
<<if $characters.elsa.quests.penetration_day && !$characters.elsa.quests.stranger_at_doors_day && ($characters.elsa.quests.penetration_day + 3) < $game.day>>
<<goto 'Elsa - The Stranger at the Door'>>
<<elseif $characters.elsa.quests.stranger_at_doors_day && !$characters.elsa.quests.shower_day && ($characters.elsa.quests.stranger_at_doors_day + 6) < $game.day>>
<<goto 'Elsa - Shadows at the Well'>>
<<elseif $characters.elsa.quests.well_day && !$characters.elsa.quests.homestead_day && ($characters.elsa.quests.well_day + 3) < $game.day>>
<<goto 'Elsa - Homestead'>>
<<elseif $characters.elsa.quests.crossbow_day && !$characters.elsa.quests.attack_day && ($characters.elsa.quests.crossbow_day + 5) < $game.day>>
<<goto 'Elsa - Attack'>>
<</if>>
<<if !$characters.elsa.quests.food_delivery && $backpack.count('food') >= 30 && $backpack.count('wood') >= 30>>
<<link 'Give them food and wood'>>
<<goto 'Elsa - food delivery'>>
<</link>>
<<linkdesc>>
-30 food, -30 wood
<</linkdesc>>
<<elseif $characters.elsa.quests.food_delivery && !$characters.elsa.quests.medicine_delivery && $backpack.count('antibiotics') >= 10 && $backpack.count('pelt_wolf') >= 10>>
<<link 'Give medicine and wolf pelts'>>
<<goto 'Elsa - medicine delivery'>>
<</link>>
<<linkdesc>>
-10 antibiotics, -10 wolf pelts
<</linkdesc>>
<<elseif $characters.elsa.quests.medicine_delivery && !$characters.elsa.quests.champagne_delivery && $backpack.count('champagne') >= 2>>
<<link 'Give her champagne'>>
<<goto 'Elsa - champagne delivery'>>
<</link>>
<<linkdesc>>
-2 champagne
<</linkdesc>>
<<elseif $characters.elsa.quests.homestead_day && !$characters.elsa.quests.crossbow_day && $backpack.count('crossbow') >= 2>>
<<link 'Give them crossbows'>>
<<goto 'Elsa - crossbow day'>>
<</link>>
<<linkdesc>>
-2 crossbows
<</linkdesc>>
<</if>>
<<link 'Leave'>>
<<addhours 2>>
<<goto 'Garage'>>
<</link>><br /><br />
<h1 class="ptitle">ELSA'S HOUSE</h1>
<br /><br />
<<=setup.displayName($characters.elsa.mother)>>'s eyes widened as though you had pulled treasure straight from the earth itself.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Is that…?
<</sayNpc>>
<br />
She whispered, stepping closer.
<br /><br />
She laughed — a full, rich sound you hadn’t heard from her before — and threw her arms around you
<br /><br />
<<sayNpc $characters.elsa.mother>>
I can’t believe it. I was only half-serious! You actually found some.
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
Please stay a night and lets try it.
<</sayNpc>>
<br />
That evening, the three of you sat at the small table.
<br /><br />
<center>
<<image 'people/elsa/dinner.jpg' sfw>>
</center>
<br />
The fire glowed warm, casting light across the wood as <<=setup.displayName($characters.elsa.mother)>> carefully uncorked one of the bottles.
The fizz made her laugh again as <<=setup.displayName($characters.elsa.mother)>> poured two cups — and then, after a pause, poured a third for Elsa.
<br /><br />
<center>
<<image 'places/cabin/house_party_champagne.webp'>>
</center>
<br />
<<elsa>>
For me?
<</elsa>>
<br />
<<sayNpc $characters.elsa.mother>>
Just a little. A taste. You’re old enough to join us.
<</sayNpc>>
<br />
Elsa held her cup with both hands, sniffing at the strange sparkling liquid as if unsure what to make of it.
When she took a sip, her nose wrinkled and she gave a quiet cough, making <<=setup.displayName($characters.elsa.mother)>> chuckle.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Not what you expected, hmm?
<</sayNpc>>
<br />
The three of you talked long into the evening.
The champagne loosened the air, making it feel less like survival and more like something from another lifetime.
<br /><br />
<center>
<<image 'people/elsa/champagne_drink.jpg'>>
</center>
<br /><br />
At one point, <<=setup.displayName($characters.elsa.mother)>> turned the question on you.
<<sayNpc $characters.elsa.mother>>
What about you?
<</sayNpc>>
<br />
She asked, leaning forward slightly, her eyes glimmering in the firelight.
<br /><br />
<<sayNpc $characters.elsa.mother>>
If you could shape the world again… what would you want it to look like?
<</sayNpc>>
<br />
<div id="option1">
<<linkreplace 'Safe. Peaceful'>>
<<run $('#option2').hide()>>
<<you>>
Safe. Peaceful. A place where no one has to hide, or fear, or lose what they love.
<</you>>
<br />
<<=setup.displayName($characters.elsa.mother)>>'s gaze softened. She lifted her glass toward you in a quiet toast.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Then that’s the world we’ll hope for.
<</sayNpc>>
<br />
<<run $('#continue').show()>>
<</linkreplace>>
</div>
<div id="option2">
<<linkreplace "I’d build it new. My way">>
<<run $('#option1').hide()>>
<<you>>
The world’s gone too far for peace. There’s no going back. If I had my way, I’d build it new. My way. No false promises, no leaders pretending they care.
Just strength. The strong survive, the weak learn to follow. That’s the only way it works now.
<</you>>
<br />
<<=setup.displayName($characters.elsa.mother)>>’s smile faded a little. She studied you in silence, not recoiling — but clearly weighing your words.
Finally, she lifted her glass again.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Maybe you’re right. Maybe kindness isn’t enough anymore.
<</sayNpc>>
<br /><br />
<<run $('#continue').show()>>
<</linkreplace>>
</div>
<div id="continue" style="display: none">
Elsa, though curious, wasn’t built for drink. Before long, her head was resting on her folded arms, the rabbit still clutched to her chest.
<<=setup.displayName($characters.elsa.mother)>> brushed Elsa's hair back gently, a tenderness in her eyes.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Go on, sweetheart. Bedtime.
<</sayNpc>>
<br />
Elsa mumbled a few words before stumbling off to her bed, leaving the two of you alone at the table.
<br /><br />
<center>
<<image 'places/cabin/house_party_champagne_skirt.webp'>>
</center>
<br /><br />
The fire had burned lower, but the warmth between you and <<=setup.displayName($characters.elsa.mother)>> was stronger than ever.
She leaned back, studying you, her empty glass between her fingers. The silence that fell wasn’t awkward — it was thick with meaning.
<br /><br />
Then, without a word, she stood and pulled you gently up with her. Her hand never left yours as she guided you toward her bed.
<br /><br />
<<sayNpc $characters.elsa.mother>>
I am so horny. Fuck me.
<</sayNpc>>
<br />
<center>
<<image 'people/elsa/mother_undress.webp'>>
</center>
<br />
Without any further preamble, she straddled you, her pussy hot and wet, pressing against your cock, demanding entry.
You could feel the heat of her, the wetness of her arousal, coating your shaft as she slowly lowered herself onto you, taking you inch by inch, her tight, wet walls enveloping you, milking you with each movement.
<br /><br />
<<video 'elsa/mother_fuck1'>>
<br /><br />
<<sayNpc $characters.elsa.mother>>
Oh yes. Fuck me, fuck me hard.
<</sayNpc>>
<br />
She began to move, her body rising and falling, her hips rolling and grinding against yours, creating a friction that was almost too much to bear.
You reached up, your hands finding her breasts, your thumbs circling her nipples, teasing and tormenting them, sending shocks of pleasure straight to her core.
She let out a loud moan, her body arching off of you, her pussy clenching around your cock, milking you with each movement.
<br /><br />
<<video 'elsa/mother_fuck2'>>
<br /><br />
<<sayNpc $characters.elsa.mother>>
Yes, just like that
<</sayNpc>>
<br />
<<video 'elsa/sleeping_sex_wakeup'>>
<br /><br />
Suddenly as you looked at Elsa you noticed that she's awake and looking at you both. A moment later mother saw that too.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Elsa, what's wrong? Did you have a bad dream?
<</sayNpc>>
<br />
The mother got out of the bed and moved to comfort her, pulling her into a tight embrace, her hands soothing her back, her lips pressing gentle kisses to her forehead.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Come to bed with us. You'll feel safer that way. I promise.
<</sayNpc>>
<br />
<<video 'elsa/elsa_go_bed'>>
<br /><br />
As they approached the bed, the mother reached down, her hands pulling back the sheets, revealing your naked, hard cock, still glistening with her wetness
<br /><br />
She got in the bed right in the middle of you two.
<br /><br />
But the mother, still tipsy from the champagne, had other ideas.
She reached down, her hand finding Elsa's, guiding it to your naked dick, her fingers tracing the contours of your body.
You could feel Elsa's body tensing, her breath hitching slightly as her hand moved lower.
<br /><br />
<<elsa>>
Mom?...
<</elsa>>
<br />
<<sayNpc $characters.elsa.mother>>
It's okay sweetheart. He has done so much for us.
<</sayNpc>>
<br />
<<video 'elsa/elsa_hand'>>
<br /><br />
She reached out, her hand finding your cock, her fingers wrapping around your shaft, stroking you slowly, teasingly.
<br /><br />
<<video 'elsa/elsa_hand3'>>
<br /><br />
<<sayNpc $characters.elsa.mother>>
Yes, just like that
<</sayNpc>>
<br />
The mother watched, her eyes filled with a mix of desire and approval, her body pressing against Elsa's, her hands roaming her curves,
her fingers tracing the contours of her body, her touch hungry and desperate.
<br /><br />
Her hand moved with a newfound confidence, her grip tightening slightly, her strokes becoming more purposeful, more demanding.
<br /><br />
<<video 'elsa/elsa_hand2'>>
<br /><br />
You could hear the wet, slurping sounds of her hand working your cock, the way her saliva coated your shaft, lubricating your movements, making it easier for her to take you deeper, to stroke you harder.
<br /><br />
But as the night wore on, the intensity of the moment began to fade, the champagne taking its toll on both of you. The mother's eyes grew heavy, her body pressing against yours, her breaths evening out as she drifted off to sleep, her arm still wrapped protectively around Elsa.
<br /><br />
Elsa, too, began to relax, her body pressing against yours, her hand still wrapped around your cock, her strokes slowing, her breaths evening out as she, too, drifted off to sleep.
<br /><br />
<<link 'Sleep'>>
<<horny 20>>
<<sleep 'Elsa - Day after hand'>>
<</link>>
</div><br /><br />
<h1 class="ptitle">ELSA'S HOME</h1>
<br />
<<you>>
I thought you two might want these
<</you>>
<br />
<<=setup.displayName($characters.elsa.mother)>> wiped her hands on her apron.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Well, that’s very generous
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
I’ve got work to do. You teach Elsa. She’ll show me later.
<</sayNpc>>
<br />
Elsa shot her a look that said, Really? Now?
Her mother simply shrugged and turned back to her work.
<br /><br />
So you and Elsa went alone into the forest.
<br /><br />
You found a quiet patch of woods, the trees spaced wide, the ground soft with fallen needles.
You set up a crude target—a knot on a thick pine trunk.
Elsa loaded her crossbow awkwardly.
<br /><br />
<<elsa>>
This feels heavier than it looks,
<</elsa>>
<br />
<<you>>
It will get easier.
<</you>>
<br />
She took aim.
Pulled the trigger.
<br /><br />
The bolt buried itself in the roots… nowhere near the mark.
<br /><br />
Elsa groaned.
<br /><br />
<<elsa>>
I swear it moved.
<</elsa>>
<br />
She missed again.<br />
And again.<br />
And again.<br />
<br /><br />
Her frustration built like a storm cloud.
<br /><br />
<<video 'elsa/crossbow1'>>
<br /><br />
But on the fifth shot, the bolt struck the trunk with a sharp, satisfying snap.
<br /><br />
Elsa froze.
<br /><br />
<<elsa>>
I did it!
<</elsa>>
<br />
Before you could answer, she turned forward, throwing her arms around you.
Her body pressed against yours with pure exhilaration, not hesitation.
<br /><br />
<<elsa>>
Do you…
<</elsa>>
<br />
She slowly lifted her shirt a bit, revealing her naked body under dirty white long shirt.
<br /><br />
<<video 'elsa/crossbow2'>>
<br /><br />
<<elsa>>
Want me...?
<</elsa>>
<br />
<div id="option_yes">
<<linkreplace 'Yes'>>
<<run $('#option_leave').show()>>
<<run $('#option_no').hide()>>
Elsa suddenly grabbed your hand.
<br /><br />
And she pulled you.
<br /><br />
Your car came into view through the trees, the metal glinting in the fractured sunlight. Elsa rushed to it, yanked the passenger door open, then practically dragged you inside with her before slamming it shut.
<br /><br />
Elsa didn't waste a moment. Her hands were on your belt before you could blink, fingers deftly unbuckling it with practiced urgency. She tugged your zipper down, shoving your pants and boxers aside in one rough motion. Your cock sprang free, already half-hard from the adrenaline of the chase through the trees.
<br /><br />
<<video 'elsa/car6'>>
<br /><br />
<<horny 40>>
She started jerking you off with deliberate strokes, her fist sliding up and down your shaft, twisting slightly at the head to spread the bead of pre-cum that had already formed. Her eyes flicked up to meet yours, dark and hungry, a smirk playing on her lips as she watched your face contort with pleasure.
<br /><br />
<<elsa>>
This is good?
<</elsa>>
<br />
After just a few more pumps, her impatience won out. Elsa leaned over the center console, her breath hot against your skin, and parted her lips. She took your cock into her tight, small mouth without hesitation, enveloping the head in wet heat.
<br /><br />
<<video 'elsa/car1'>>
<br /><br />
Elsa had just sunk her lips around the head of your cock, her tongue pressing flat against the slit to lap up the salty pre-cum oozing out, when a sharp voice pierced the steamy haze inside the car.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Elsa! Where are you?
<</sayNpc>>
<br />
Her mother's call echoed from the trailhead, distant but insistent, cutting through the wet sounds of her mouth working you.
<br /><br />
She froze for a split second, her eyes widening in annoyance as she pulled off with a frustrated pop, strings of saliva connecting her lips to your glistening dick.
<br /><br />
Elsa bolted out, her sneakers hitting the dirt path with urgent thuds, heading straight toward the sound of her mother's voice. She glanced back once, her cheeks flushed from the interrupted heat
<br /><br />
<<elsa>>
Bye!
<</elsa>>
<br />
<</linkreplace>>
</div>
<div id="option_no">
<<linkreplace "We need to train a bit more">>
<<run $('#option_leave').show()>>
<<set $characters.elsa.strength += 20>>
<<set $characters.elsa.skills ??= []>>
<<run $characters.elsa.skills.push('fighter')>>
The target tree stood ahead, the last bolt still embedded in its bark.
<br /><br />
Elsa took a breath, squared her shoulders, and loaded another bolt.
<br /><br />
She hit almost the exact spot she had before—clean, solid, confident.
<br /><br />
This time she didn’t laugh.
<br />
She didn’t celebrate.
<br /><br />
She just looked at the bolt, then at you, breathing hard but proud.
<br /><br />
<<elsa>>
You were right
<</elsa>>
<br />
And so you practiced.
<br />
Shot after shot.
<br />
Until the sun slid lower and the forest shadows thickened.
<br /><br />
Elsa never looked over her shoulder again.
Not once.
<br /><br />
<<run $('#option_yes').hide()>>
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
<<link 'Leave'>>
<<set $characters.elsa.quests.crossbow_day = $game.day>>
<<drop $backpack 'crossbow' 2>>
<<addhours 4>>
<<goto 'Garage'>>
<</link>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
You find an old rubber ball in the storage and nod toward the door.
<br /><br />
<<you>>
Come on. Outside.
<</you>>
<br />
Elsa raises an eyebrow, then grins.
<br /><br />
<<elsa>>
Are you serious? Like... just playing?
<</elsa>>
<br />
<<you>>
Just playing.
<</you>>
<br />
You find a clear patch of ground near the settlement — a bit uneven, a few rocks to dodge, but enough space. She kicks off her shoes without a word and you toss her the ball.
<br /><br />
<<video 'elsa/ball1'>>
<br /><br />
She catches it against her chest, laughing already.
<br /><br />
<<elsa>>
I'm warning you. I am almost good.
<</elsa>>
<br />
<<you>>
Sure you are.
<</you>>
<br />
For a while it's just that — the two of you kicking, throwing, chasing the ball across the dirt. She's quick and she cheats at every chance she gets, and when you call her on it she just laughs louder and then turns around to pick up the ball.
<br /><br />
<<linkreplace 'Grab her ass'>>
<<video 'elsa/ball2'>>
<br /><br />
When she bends over to pick up the ball you step up behind her and give her ass a firm squeeze. She yelps and spins around, half-laughing, half-shocked.
<br /><br />
<<elsa>>
Hey! That is cheating!
<</elsa>>
<br />
She holds the ball against her chest, catching her breath, a grin fighting its way onto her face.
<br /><br />
<<elsa>>
I haven't done anything like this in... a long time.
<</elsa>>
<br />
There's something quieter in her voice now. She takes a step closer, eyes on yours.
<br /><br />
<<elsa>>
Maybe we don't need the ball anymore.
<</elsa>>
<br />
She drops it. It rolls away into the grass.
<br /><br />
<<linkreplace 'Pull down her shorts'>>
<<set _fuck = true>>
You hook your fingers into the waistband of her shorts and tug them down in one smooth motion. She lets out a small breath, glancing around — but there's no one out here.
<br /><br />
<<video 'elsa/ball3'>>
<br /><br />
She stands there in just her top, bottom bare, looking up at you with that look she tries to hide but never quite manages. You sit down against the fence and pull her toward you.
<br /><br />
<<elsa>>
Right here? Outside?
<</elsa>>
<br />
<<you>>
No one's watching.
<</you>>
<br />
She drops to her knees without another word, pulls your dick out, and wraps her lips around the tip with a big smile on her face.
<br /><br />
<<video 'elsa/ball4'>>
<br /><br />
Her hands grip your dick as she takes you deeper, working you slowly at first — teasing — then picking up the pace, head bobbing with purpose, tongue pressing along the underside on every stroke.
<br /><br />
<<video 'elsa/ball5'>>
<br /><br />
<<elsa>>
I want you inside me.
<</elsa>>
<br />
She stands and turns around, leaning forward against the fence, looking back at you over her shoulder.
<br /><br />
You step up behind her and push inside. She bites her lip and grips the fence tighter.
<br /><br />
<<video 'elsa/ball6'>>
<br /><br />
Your hands find her hips and you set a rhythm — steady, deep. She pushes back to meet you, quiet sounds escaping between her teeth every time you bottom out.
<br /><br />
<<video 'elsa/ball7'>>
<br /><br />
<<linkreplace 'Cum'>>
<<run $('#option_leave').hide()>>
<<horny_reset>>
<<if setup.pregnancyChance($characters.elsa)>>
<<set $characters.elsa.pregnancy_father = 'mc'>>
<<set $characters.elsa.pregnancy = 0>>
<</if>>
<<set $characters.elsa.relationship = Math.min(100, ($characters.elsa.relationship ?? 0) + 5)>>
<<set $characters.elsa.happy = Math.min(100, ($characters.elsa.happy ?? 0) + 10)>>
You finish inside her with a low groan. She stays leaned against the fence for a moment, breathless, then lets out a short laugh.
<br /><br />
<<elsa>>
We are never playing ball again without this happening, are we.
<</elsa>>
<br />
<<link 'Head back'>>
<<addhours 1>>
<<goto 'Elsa room'>>
<</link>>
<<linkdesc>>
+5 relationship | +10 happy
<</linkdesc>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<div id="option_leave">
<<link 'Leave'>>
<<if _fuck>>
<<addhours 1>>
<</if>>
<<goto 'Elsa room'>>
<</link>>
</div><h1 class="ptitle">ELSA</h1>
<br /><br />
<<carFuel 20>>
<<addmins 30>>
You told her you had something different in mind. She asked where. You said she'd see. She grabbed her jacket and followed you to the garage without another word — which was answer enough.
<br /><br />
The road out past the gate was empty, the way it usually was this far from anything. Elsa leaned back in the passenger seat with her boots on the dash, watching the broken landscape roll by. The engine noise filled the silence between you in a way that felt comfortable.
<br /><br />
<<video 'elsa/trip1'>>
<br /><br />
<<elsa>>
I forget sometimes that the world used to have more of this. Just... driving somewhere.
<</elsa>>
<br />
You said you remembered long drives that used to feel boring. She laughed at that — said she'd give anything to be bored like that again. The conversation drifted, easy and unhurried, the kind you only manage when neither of you has anywhere to be.
<br /><br />
<<linkreplace 'Pull over somewhere quiet'>>
<<addmins 15>>
You found a flat stretch off the road, shaded, nothing moving for miles. She dug into the bag she'd thought to bring — smarter than you, as usual — and pulled out some dried fruit and flatbread.
<br /><br />
<<video 'elsa/trip2'>>
<br /><br />
She ate slowly, watching you sideways, a hint of something in her expression.
<br /><br />
<<elsa>>
Mmm. You want to taste something?
<</elsa>>
<br />
<<linkreplace 'Say yes'>>
She set down the food and pulled her shirt up over her head, letting it drop into the back seat. Her breasts fell free — full and bare, her nipples already stiffening in the open air.
<br /><br />
<<video 'elsa/trip3'>>
<br /><br />
<<elsa>>
Go on then. Don't be shy.
<</elsa>>
<br />
You reached over and palmed them, feeling their weight, rolling her nipples between your fingers. She bit her lip and let you, watching your hands on her skin like it was entertainment.
<br /><br />
She leaned across the centre console, fingers going straight to your belt.
<br /><br />
<<video 'elsa/trip4'>>
<br /><br />
<<elsa>>
God, I've been thinking about this since we left.
<</elsa>>
<br />
She worked you out of your jeans and took you in her mouth — no buildup, no teasing, just straight down to the base with a wet, hungry suck. Her head bobbed in your lap, one hand wrapped around the shaft, the other braced on your thigh.
<br /><br />
She pulled off with a slick pop, sat back in her seat, and kicked off her boots.
<br /><br />
<<video 'elsa/trip5'>>
<br /><br />
She pressed the soles of both feet against your cock, trapping it between them, and started stroking — slow, deliberate, watching your face the whole time with the kind of focus that made it harder to breathe.
<br /><br />
<<elsa>>
Like that?
<</elsa>>
<br />
Without waiting for an answer, she shifted — turning around in the seat, presenting you with her bare ass and the glistening split of her pussy between her thighs. The footjob didn't stop.
<br /><br />
<<video 'elsa/trip6'>>
<br /><br />
The view alone nearly finished you. She knew it.
<br /><br />
<<elsa>>
Come here.
<</elsa>>
<br />
She turned back, straddled you right there in the seat, and sank down onto your cock in one smooth drop. Her pussy took you completely. She grabbed the headrest behind you and started riding — hard, fast, not interested in being gentle about it.
<br /><br />
<<video 'elsa/trip7'>>
<br /><br />
<<elsa>>
Fuck — yes — don't stop —
<</elsa>>
<br />
You grabbed her hips and pushed her forward, bending her against the windscreen, hands flat on the glass. She arched her back and took it — your cock driving into her from behind, her breasts pressed against the cold window as she moaned into the open air.
<br /><br />
<<video 'elsa/trip8'>>
<br /><br />
<<elsa>>
I'm going to cum — don't you dare stop —
<</elsa>>
<br />
Her body shuddered through it, clenching tight around you. You were right behind her.
<br /><br />
<div id="et_pussy">
<<linkreplace 'Cum inside her'>>
<<run $('#et_back').hide()>>
<<horny_reset>>
<center>
<<image 'game/misc/creampie_prone.webp'>>
</center>
<br /><br />
You buried yourself to the hilt and let go — thick spurts of cum flooding her pussy, her walls clenching around you as she whimpered through the last of her own orgasm.
<br /><br />
<<elsa>>
God... I can feel all of it.
<</elsa>>
<br />
<<if setup.pregnancyChance($characters.elsa)>>
<<set $characters.elsa.pregnancy_father = 'mc'>>
<<set $characters.elsa.pregnancy = 0>>
<</if>>
<br />
<<link 'Drive home'>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<div id="et_back">
<<linkreplace 'Pull out and cum on her back'>>
<<run $('#et_pussy').hide()>>
<<horny_reset>>
<center>
<<image 'game/misc/cum_on_back.webp'>>
</center>
<br /><br />
You pulled out at the last second and came across her back in long, hot stripes — she sucked in a sharp breath and held still, letting you finish.
<br /><br />
<<elsa>>
Messy. I like it.
<</elsa>>
<br />
<br />
<<link 'Drive home'>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle">ELSA</h1>
<br /><br />
The dim lights of the room cast a warm glow over the massage table as Elsa and you stepped inside, the door clicking shut behind you. The air smelled faintly of lavender oil, and the padded surface looked inviting under the soft sheets. Elsa's eyes sparkled with mischief as she turned to you, her fingers already trailing down your arm.
<br /><br />
<center>
<<image 'places/bathhouse/massage_table.jpg' sfw>>
</center>
<br /><br />
<<elsa>>
You know what we should do? Let me give you a massage. Lie down for me.
<</elsa>>
<br />
You stripped off your shirt and pants, climbing onto the table face down, your body relaxing into the firm padding. Elsa poured warm oil into her palms, rubbing them together before pressing them firmly against your shoulders. Her hands were strong yet sensual, kneading the knots from your muscles with slow, deliberate strokes. She worked her way down your back, her thumbs digging into the tension along your spine, making you groan softly.
<br /><br />
As her fingers glided lower, toward the small of your back, you felt a shift in the air—a rustle of fabric. She was undressing.
<br /><br />
<center>
<<image 'people/elsa/remove_top.webp'>>
</center>
<br /><br />
Then, her bare skin touched yours. She climbed onto the table, straddling your legs, her naked body pressing down right on top of your back.
<br /><br />
<<video 'elsa/massage1'>>
<br /><br />
Her full, heavy breasts squished against you, slick with the oil she'd slathered on herself. She started grinding, her tits sliding up and down your oiled skin, the nipples hardening into stiff peaks that dragged teasingly over your muscles.
<br /><br />
<<elsa>>
Fuck, you feel so good under me. Turn around
<</elsa>>
<br />
Your turned around.
<br /><br />
<<video 'elsa/massage6'>>
<br /><br />
Your cock twitched hard beneath you, trapped against the table and growing painfully stiff. Elsa noticed, her hand snaking around your hip to reach under. She wrapped her fingers around your throbbing dick, gripping it tight at the base.
<br /><br />
<<elsa>>
Look at this hard cock.
<</elsa>>
<br />
<<video 'elsa/massage7'>>
<br /><br />
She murmured, starting to jerk you off with firm, twisting strokes. Her palm slid up and down the shaft, the oil making every pump slick and intense.
<br /><br />
She licked her lips, then leaned down, her mouth hovering over the tip.
Without warning, she slid lower and started to lick your cock from top to bottom.
<br /><br />
<<video 'elsa/massage2'>>
<br /><br />
<<elsa>>
God, your cock tastes so fucking good.
<</elsa>>
<br />
The dual sensation—her wet mouth engulfing the top half of your cock and her hand jerking the rest in perfect sync—sent jolts of pleasure racing through your veins. She bobbed her head shallowly at first, slurping noisily, her saliva coating everything in a messy sheen that mixed with the oil.
<br /><br />
<<video 'elsa/massage3'>>
<br /><br />
Finally, she pulled off with a wet pop, strings of spit connecting her lips to your glistening cock.
<br /><br />
<<elsa>>
I need this inside me now.
<</elsa>>
<br />
She grabbed your dick, lining it up with her dripping pussy, and sank down slowly.
<br /><br />
<<video 'elsa/massage_insert'>>
<br /><br />
Her tight, soaked walls clenched around your cock as she took every inch of it, her clit grinding against your pelvis when she bottomed out.
<br /><br />
<<video 'elsa/massage4'>>
<br /><br />
Elsa started riding you like a woman possessed, her hips slamming down, pussy juices soaking your balls with each bounce. Her tits jiggled wildly, still slick with oil, and she pinched her own nipples, twisting them as she fucked herself on your cock
<br /><br />
<<elsa>>
Fuck yes, stretch my pussy with that thick dick.
<</elsa>>
<br />
You didn't waste a second. Rolling her onto her side on the massage table, her body slick with oil and sweat, you positioned yourself behind her.
Her leg lifted instinctively, exposing her dripping pussy—swollen lips parted and glistening, begging for more
<br /><br />
<<video 'elsa/massage5'>>
<br /><br />
Gripping her hip with one hand, you thrust forward in one smooth motion, burying your full length inside her tight cunt.
<br />
You set a brutal rhythm, pulling out almost to the tip before slamming back in, your cock stretching her pussy with each plunge.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
<<image 'game/misc/creampie_side.webp'>>
</center>
<br /><br />
Hot spurts of cum erupted from your dick deep inside her, flooding her tight pussy. Her pussy clenched rhythmically.
<br /><br />
Elsa collapsed forward with a satisfied sigh, her body glistening with sweat and oil, a lazy smile on her face as she glanced back at you.
<br /><br />
<<elsa>>
Mmm, that was incredible... look at the mess you made inside me.
<</elsa>>
<br />
<<if setup.pregnancyChance($characters.elsa)>>
<<set $characters.elsa.pregnancy_father = 'mc'>>
<<set $characters.elsa.pregnancy = 0>>
<</if>>
<</linkreplace>>
<<link 'Leave'>>
<<addmins 60>>
<<run delete $player.perks.beaten>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">ELSA</h1>
<br /><br />
The guest house was quiet. Elsa pulled you down onto the long couch in the common room, tucked her legs up under herself and leaned into your shoulder, still dressed, in no hurry about any of it.
<br /><br />
<<video 'elsa/couch_threesome1'>>
<br /><br />
She talked for a while about nothing much — the wood store, the crossbow she still hadn't cleaned — and then went quiet, her fingers walking along your thigh.
<br /><br />
<<elsa>>
Nobody's going to come through here. Not for hours.
<</elsa>>
<br />
<<set _tsEligible = []>>
<<for _tsI, _tsFilterNpc range $guests>>
<<if _tsFilterNpc.gender === 0 && setup.getAge(_tsFilterNpc) >= 18 && (_tsFilterNpc.race === 'white' || _tsFilterNpc.race === 'latina') && (_tsFilterNpc.hair === 'black' || _tsFilterNpc.hair === 'brown') && (_tsFilterNpc.likesGuys ?? true) && (_tsFilterNpc.likesGirls ?? false) && typeof _tsFilterNpc.sick === 'undefined' && (_tsFilterNpc.drunk ?? 0) < 50>>
<<run _tsEligible.push(_tsI)>>
<</if>>
<</for>>
<<if _tsEligible.length>>
<<set _tsGuestId = _tsEligible.random()>>
<<set _tsNpc = $guests[_tsGuestId]>>
<<set _tsName = setup.displayName(_tsNpc)>>
She was wrong about that. The door swung open and <<=_tsName>> walked in mid-sentence, halfway through saying something about the water barrels — and got one look at how the two of you were sitting.
<br /><br />
<<video 'elsa/couch_threesome2'>>
<br /><br />
She didn't apologise and she didn't back out. She kicked the door shut behind her, crossed the room in three strides and dropped onto the couch on Elsa's other side, folding her legs up under herself like she'd been sitting there all along.
<br /><br />
<<sayNpc _tsNpc>>
Don't stop on my account.
<</sayNpc>>
<br />
<div id="ts_go">
<<linkreplace 'Smile at her'>>
<<run $('#ts_stop').hide()>>
<<addmins 10>>
You told her she was welcome exactly where she was — and that if she'd rather not be, she could walk back out and nobody would mention it again.
<br /><br />
<<sayNpc _tsNpc>>
I know what I walked in on. I sat down anyway.
<</sayNpc>>
<br />
For a while it was just talk — the three of you passing a bottle back and forth, the conversation drifting somewhere warmer. Then you asked Elsa whether she'd ever kissed a girl.
<br /><br />
<<elsa>>
Once. Before all this. She was prettier than me and I wanted to know what it was like, and I've thought about it more than I've admitted.
<</elsa>>
<br />
She said it looking at <<=_tsName>>, not at you.
<br /><br />
<<sayNpc _tsNpc>>
And now?
<</sayNpc>>
<br />
<<elsa>>
Tell me to stop if you don't want it.
<</elsa>>
<br />
<<linkreplace 'Watch what she does'>>
<<addmins 10>>
<<set $characters.elsa.horny = Math.min(($characters.elsa.horny ?? 0) + 30, 100)>>
<<set _tsNpc.horny = Math.min((_tsNpc.horny ?? 0) + 30, 100)>>
<<=_tsName>> didn't tell her to stop. Elsa leaned across the gap between them, took her jaw in one hand and kissed her — slow at first, testing it, then not testing it at all.
<br /><br />
<<video 'elsa/couch_threesome3'>>
<br /><br />
Their mouths stayed together while Elsa's hand went flat on <<=_tsName>>'s stomach and pushed up under her top.
<br /><br />
<<video 'elsa/couch_threesome4'>>
<br /><br />
<<=_tsName>> pulled the top off over her head herself and dropped it on the floor, and Elsa bent to her tits, licking and sucking at her nipples while she squirmed.
<br /><br />
<<video 'elsa/couch_threesome5'>>
<br /><br />
Clothes came off — hers, Elsa's, yours — until the three of you were naked on the couch and both women had turned their attention to you.
<br /><br />
<<sayNpc _tsNpc>>
Go on. I want to watch her do it.
<</sayNpc>>
<br />
<<linkreplace 'Pull your pants down'>>
<<addmins 10>>
<<set $characters.elsa.bj = Math.min(($characters.elsa.bj ?? 0) + 5, 100)>>
<<set $characters.elsa.statsSex ??= {}, $characters.elsa.statsSex.bj = ($characters.elsa.statsSex.bj ?? 0) + 1>>
You worked your pants down past your hips and Elsa slid off the couch onto her knees between your legs before you'd even got them clear. <<=_tsName>> stayed where she was, one hand flat on Elsa's back, and watched her take your cock in her mouth.
<br /><br />
<<video 'elsa/couch_threesome6'>>
<br /><br />
Elsa took it deep and slow, working the rest with her hand, and <<=_tsName>> talked her through every inch of it — telling her how good she looked with her mouth full, pushing her down a little further whenever she came up for air.
<br /><br />
<<sayNpc _tsNpc>>
That's it. All the way down.
<</sayNpc>>
<br />
<<elsa>>
Enough of that. Bend me over the arm of this thing.
<</elsa>>
<br />
<<linkreplace 'Bend Elsa over and fuck her pussy'>>
<<addmins 10>>
<<set _tsElsaFucked = true>>
<<set $characters.elsa.pussy = Math.min(($characters.elsa.pussy ?? 0) + 5, 100)>>
<<set $characters.elsa.statsSex ??= {}, $characters.elsa.statsSex.pussy = ($characters.elsa.statsSex.pussy ?? 0) + 1>>
Elsa put herself over the arm of the couch and you pushed your cock into her pussy from behind, one hand in the small of her back. <<=_tsName>> stretched out alongside her with two fingers working her own clit, watching Elsa's face the whole time.
<br /><br />
<<video 'elsa/couch_threesome7'>>
<br /><br />
<<elsa>>
Fuck — don't you dare stop.
<</elsa>>
<br />
<<sayNpc _tsNpc>>
Don't forget about me over here.
<</sayNpc>>
<br />
<<linkreplace 'Put them both on the couch'>>
<<addmins 10>>
<<set _tsPartner = 'elsa'>>
<<replace '#ts_scene'>>
<<=_tsName>> lay down flat on her front along the couch, and Elsa climbed over her on her hands and knees, the two of them stacked together. You knelt in behind Elsa and slid your cock back into her pussy.
<br /><br />
<<video 'elsa/couch_threesome8'>>
<br /><br />
Elsa braced on her forearms and pushed back onto you, her tits dragging against <<=_tsName>>'s back with every thrust. <<=_tsName>> turned her head to watch her face from underneath, grinning at every sound Elsa made.
<br /><br />
<<elsa>>
Fuck, right there — keep going.
<</elsa>>
<br />
<</replace>>
<<replace '#ts_controls'>>
<<set _tsSwapGuestLabel = 'Pull out and fuck ' + _tsName + "'s pussy">>
<div id="ts_swap_guest">
<<link _tsSwapGuestLabel>>
<<addmins 10>>
<<set _tsPartner = 'guest'>>
<<run $('#ts_swap_guest').hide()>>
<<run $('#ts_swap_elsa').show()>>
<<if !_tsGuestFucked>>
<<set _tsGuestFucked = true>>
<<set _tsNpc.pussy = Math.min((_tsNpc.pussy ?? 0) + 5, 100)>>
<<set _tsNpc.statsSex ??= {}, _tsNpc.statsSex.pussy = (_tsNpc.statsSex.pussy ?? 0) + 1>>
<</if>>
<<replace '#ts_scene'>>
<<=_tsName>> rolled onto her back underneath Elsa and hooked one leg up over your shoulder, holding it there herself, and you pushed your cock into her pussy instead.
<br /><br />
<<video 'elsa/couch_threesome9'>>
<br /><br />
She took it hard, one hand gripping the couch above her head, while Elsa stayed pressed against her side and kissed her through it.
<br /><br />
<<sayNpc _tsNpc>>
God — don't stop, don't stop.
<</sayNpc>>
<br />
<</replace>>
<</link>>
</div>
<div id="ts_swap_elsa" style="display:none">
<<link "Pull out and fuck Elsa's pussy">>
<<addmins 10>>
<<set _tsPartner = 'elsa'>>
<<run $('#ts_swap_elsa').hide()>>
<<run $('#ts_swap_guest').show()>>
<<replace '#ts_scene'>>
Elsa took her place again, climbing over <<=_tsName>> on her hands and knees, and you pushed back into her pussy from behind.
<br /><br />
<<video 'elsa/couch_threesome8'>>
<br /><br />
<<=_tsName>> lay underneath them both, running her nails down Elsa's arms while Elsa rocked back onto you.
<br /><br />
<<elsa>>
That's it. Don't you dare stop this time.
<</elsa>>
<br />
<</replace>>
<</link>>
</div>
<div>
<<link 'Cum on their faces'>>
<<addhours 1>>
<<horny_reset>>
<<set $characters.elsa.horny = 0>>
<<set _tsNpc.horny = 0>>
<<set $characters.elsa.orgasms ??= 0>>
<<set $characters.elsa.orgasms++>>
<<set _tsNpc.orgasms ??= 0>>
<<set _tsNpc.orgasms++>>
<<set $characters.elsa.relationship = Math.min(($characters.elsa.relationship ?? 0) + 10, 100)>>
<<set $characters.elsa.happy = Math.min(($characters.elsa.happy ?? 0) + 15, 100)>>
<<set _tsNpc.relationship = Math.min((_tsNpc.relationship ?? 0) + 10, 100)>>
<<set _tsNpc.happy = Math.min((_tsNpc.happy ?? 0) + 15, 100)>>
<<run $('#ts_controls').hide()>>
<<replace '#ts_scene'>>
You told them you were close. They untangled themselves without being asked twice and went down onto their knees in front of the couch, shoulder to shoulder, faces tipped up and mouths open.
<br /><br />
<<elsa>>
On us. Both of us.
<</elsa>>
<br />
You stroked your cock over them and came across their faces, thick spurts landing on their cheeks and tongues while they held still for it. <<=_tsName>> caught what she could and swallowed, and Elsa wiped her chin with her thumb and sucked it clean.
<br /><br />
<<video 'elsa/couch_threesome10'>>
<br /><br />
<<sayNpc _tsNpc>>
Well. That's one way to do it.
<</sayNpc>>
<br />
<</replace>>
<<run $('#ts_after').show()>>
<</link>>
</div>
<div>
<<link 'Cum in her pussy'>>
<<addhours 1>>
<<horny_reset>>
<<set $characters.elsa.horny = 0>>
<<set _tsNpc.horny = 0>>
<<set $characters.elsa.orgasms ??= 0>>
<<set $characters.elsa.orgasms++>>
<<set _tsNpc.orgasms ??= 0>>
<<set _tsNpc.orgasms++>>
<<set $characters.elsa.relationship = Math.min(($characters.elsa.relationship ?? 0) + 10, 100)>>
<<set $characters.elsa.happy = Math.min(($characters.elsa.happy ?? 0) + 15, 100)>>
<<set _tsNpc.relationship = Math.min((_tsNpc.relationship ?? 0) + 10, 100)>>
<<set _tsNpc.happy = Math.min((_tsNpc.happy ?? 0) + 15, 100)>>
<<if _tsPartner === 'elsa'>>
<<if setup.pregnancyChance($characters.elsa)>>
<<set $characters.elsa.pregnancy_father = 'mc'>>
<<set $characters.elsa.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<<else>>
<<if setup.pregnancyChance(_tsNpc)>>
<<set _tsNpc.pregnancy_father = 'mc'>>
<<set _tsNpc.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<</if>>
<<run $('#ts_controls').hide()>>
<<replace '#ts_scene'>>
<<if _tsPartner === 'elsa'>>
<<elsa>>
Inside. Don't you dare pull out.
<</elsa>>
<br />
You buried yourself in Elsa's pussy and came, holding her hips against you until you were empty. <<=_tsName>> watched it happen from a few inches away, one hand still between Elsa's legs.
<br /><br />
<<else>>
<<sayNpc _tsNpc>>
Finish in me. I want to feel it.
<</sayNpc>>
<br />
You drove into <<=_tsName>>'s pussy one last time and came inside her, her leg still hooked over your shoulder. Elsa held her through it, murmuring something filthy against her ear.
<br /><br />
<</if>>
<center>
<<image 'game/misc/creampie.webp'>>
</center>
<br /><br />
<<elsa>>
Stay there a second. Don't move.
<</elsa>>
<br />
<</replace>>
<<run $('#ts_after').show()>>
<</link>>
</div>
<</replace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="ts_stop">
<<linkreplace 'Tell her to give you the room'>>
<<run $('#ts_go').hide()>>
<<addmins 5>>
You told her you'd catch up with her tomorrow. She raised both hands, said something about the water barrels again, and pulled the door shut on her way out.
<br /><br />
Elsa waited until the footsteps were gone before she started laughing.
<br /><br />
<<elsa>>
Her face. God.
<</elsa>>
<br />
<<link 'Stay on the couch with her'>>
<<addmins 30>>
<<goto 'Elsa room'>>
<</link>>
<</linkreplace>>
</div>
<div id="ts_scene"></div>
<div id="ts_controls"></div>
<div id="ts_after" style="display:none">
The three of you ended up sprawled across the couch, sticky and wrung out, nobody in any hurry to find their clothes.
<br /><br />
<strong>(Elsa: Relationship +10, Happy +15)</strong>
<br />
<strong>(<<=_tsName>>: Relationship +10, Happy +15)</strong>
<br /><br />
<<link 'Get dressed'>>
<<goto 'Elsa room'>>
<</link>>
</div>
<<else>>
You stayed there with her a while, and nobody walked in on you.
<br /><br />
<<link 'Stay on the couch with her'>>
<<addmins 30>>
<<goto 'Elsa room'>>
<</link>>
<</if>><h1 class="ptitle">ELSA</h1>
<br /><br />
<<elsa>>
What you have on your mind?
<</elsa>>
<br /><br />
<<if recall($suppCode)>>
<<link 'Throwing ball'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Elsa - date [ball]'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Throwing ball
<<notPatreonIcon>>
</div>
<</if>>
<<if recall($suppCode)>>
<<link 'Massage'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Elsa - date [massage]'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Massage
<<notPatreonIcon>>
</div>
<</if>>
<<if !($player.car.explore ?? false) || ($player.car.fuel ?? 0) < 20 || ($player.car.health ?? 0) < 20>>
<div class="link-internal disabled" style="background: #ccc">
Car trip <span style="font-size:0.8em">(car not ready or low fuel)</span>
</div>
<<elseif recall($suppCode)>>
<<link 'Car trip'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Elsa - date [car trip]'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Car trip
<<notPatreonIcon>>
</div>
<</if>>
<<set _tsHasGuest = false>>
<<for _tsNpc range $guests>>
<<if _tsNpc.gender === 0 && setup.getAge(_tsNpc) >= 18 && (_tsNpc.race === 'white' || _tsNpc.race === 'latina') && (_tsNpc.hair === 'black' || _tsNpc.hair === 'brown') && (_tsNpc.likesGuys ?? true) && (_tsNpc.likesGirls ?? false) && typeof _tsNpc.sick === 'undefined' && (_tsNpc.drunk ?? 0) < 50 && (_tsNpc.relationship ?? 0) >= 30>>
<<set _tsHasGuest = true>>
<</if>>
<</for>>
<<if !_tsHasGuest>>
<div class="link-internal disabled" style="background: #ccc">
Relax on the couch
</div>
<<linkdesc>>
Needs a guest she trusts nearby (relationship 30+)
<</linkdesc>>
<<elseif recall($suppCode)>>
<<link 'Relax on the couch'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Elsa - date \[threesome\]'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Relax on the couch
<<notPatreonIcon>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Elsa room'>>
<</link>><br /><br />
<h1 class="ptitle">ELSA'S HOUSE</h1>
<br /><br />
<<set $characters.elsa.quests.food_delivery = true>>
<<drop $backpack 'food' 30>>
<<drop $backpack 'wood' 30>>
You gave a small nod and set the bundle down inside.
<br /><br />
<<you>>
It should last you a while. And the wood’ll keep the fire going through the colder nights.
<</you>>
<br />
She didn’t answer right away. Instead, she stepped forward and wrapped her arms tightly around you, pressing herself close.
The warmth of her embrace was unexpected, but it spoke of more than just gratitude — it was relief, and hope, and the comfort of knowing someone cared enough to return.
<br /><br />
<center>
<<actionImage $characters.elsa.mother hug>>
</center>
<br />
When she finally pulled back, her hands lingered, one holding yours. She looked up into your eyes, her voice soft but trembling with sincerity
<br /><br />
<<sayNpc $characters.elsa.mother>>
Thank you. Truly. I… I don’t know how to repay you.
<</sayNpc>>
<br />
For a long moment, her gaze held yours, unbroken, before she finally released your hand. Then, with a small, nervous smile, she added
<br /><br />
<<sayNpc $characters.elsa.mother>>
If… if you’d like, stay the night again. I’ll make something with what you’ve brought. It won’t be much, but it’ll be warm, and shared.
<</sayNpc>>
<br />
<center>
<<image 'people/elsa/introduction2.jpg'>>
</center>
<br />
Elsa peeked from the corner, her stuffed rabbit in her arms, watching the exchange quietly.
The mother noticed her and then, as though making a decision in that instant, turned back to you.
<br /><br />
<<sayNpc $characters.elsa.mother>>
This time… you can share my bed. She’ll sleep in her own tonight.
<</sayNpc>>
<br />
The words carried a weight that went beyond practicality.
It was an invitation — not just into their home, but into their trust, into the fragile little family they were building out of the ruins of the world.
<br /><br />
<<linkreplace 'Wait for the dinner'>>
<center>
<<image 'people/elsa/dinner.jpg' sfw>>
</center>
<br />
Dinner was simple but warm — rice boiled with herbs she’d dried months ago, a few slices of canned fruit, and a pot of weak tea brewed from foraged leaves.
Still, it tasted like a feast.
The three of you sat close around the small wooden table, the fire crackling behind you, filling the room with its gentle warmth.
<br /><br />
Elsa sat quietly with her rabbit in her lap, eating slowly, stealing glances at you but never holding your eyes for long.
<br />
Her mother spoke more freely, relieved now that the tension of the fight and hunger were behind her.
Laughter even escaped her once, though quickly stifled, as if she feared it might sound too foreign in this ruined world.
<br /><br />
When the bowls were empty and the fire had burned lower, you finally spoke.
<br /><br />
<<you>>
You don’t have to stay out here. I could take you both back to the settlement.
It’s not perfect — nothing is anymore — but it’s safer than this. You wouldn’t have to fight off men like that again.
<</you>>
<br />
The words hung in the air. For a moment, the mother looked thoughtful, her fingers brushing Elsa's hair as the girl leaned against her side.
Then her eyes softened, though her voice was steady.
<br /><br />
<<sayNpc $characters.elsa.mother>>
I’m grateful. More than you know. But… no.
<</sayNpc>>
<br />
You gave a small shrug.
<br /><br />
<<you>>
Offer is open anytime you want.
<</you>>
<br />
<center>
<<image 'people/elsa/yawn.jpg' sfw>>
</center>
<br />
When Elsa yawned and rubbed her eyes, the mother guided her gently toward her bed.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Come on, darling. Time to sleep.
<</sayNpc>>
<br />
<<video 'elsa/ok'>>
<br /><br />
She tucked Elsa in, smoothing her hair until her breathing slowed and softened. Then the mother rose quietly and returned to the table.
<br /><br />
<center>
<<image 'people/elsa/dinner2.jpg'>>
</center>
<br />
This time, she sat beside you instead of across. The firelight flickered between you, shadows dancing along her features.
<br /><br />
<<sayNpc $characters.elsa.mother>>
I’m glad you stayed
<</sayNpc>>
<br />
The mother’s hand lingered on yours a moment longer before she rose quietly.
She didn’t speak at first. Instead, she moved with quiet confidence, her eyes meeting yours in the firelight.
Then, with a soft but certain grip, she took your hand leading you to her bed.
<br /><br />
Her movements were fluid, almost predatory, as she began to undress, her clothes falling to the floor in a discarded heap.
<br /><br />
<center>
<<image 'people/elsa/mother_undress.webp'>>
</center>
<br /><br />
<<sayNpc $characters.elsa.mother>>
It's been so long...
<</sayNpc>>
<br />
She smiled, a wicked glint in her eyes as she began to undress you, her fingers deft and sure as they worked the buttons of your shirt, her lips capturing yours in a deep, passionate kiss
<br /><br />
She straddled you, her pussy pressing against your cock, her wetness coating your shaft, lubricating your movements.
You reached down, your hands finding her hips, positioning her.
<br /><br />
With that, she lowered herself onto your cock, inch by inch, her tight, wet pussy enveloping you, milking you with each movement.
<br /><br />
<<video 'elsa/mother_fuck1'>>
<br /><br />
She began to move, her body rising and falling, her hips rolling and grinding against yours, creating a friction that was almost too much to bear.
You could feel every inch of her, her walls clenching around your shaft, her body responding to yours, her moans filling the air, mingling with your own
grunts of pleasure.
<br /><br />
<<sayNpc $characters.elsa.mother>>
You're so deep. I can feel you everywhere. Don't stop, please don't stop.
<</sayNpc>>
<br />
<<video 'elsa/mother_fuck2'>>
<br /><br />
You had no intention of stopping. You reached around, your fingers finding her clit, rubbing it in quick, firm circles, pushing her towards her own climax.
<br /><br />
<<linkreplace 'Cum inside her'>>
<<horny_reset>>
<center>
<<image 'game/misc/creampie_cowgirl.webp'>>
</center>
<br />
With a final, deep thrust, you sent her over the cliff. Her body convulsed as she came undone, her pussy clenching around your cock as you cummed deep inside her.
<br /><br />
<<set $characters.elsa.mother.horny = 0>>
<<set $characters.elsa.mother.orgasms ??= 0>>
<<set $characters.elsa.mother.orgasms++>>
She smiled, a look of pure contentment on her face as she pulled back slightly, her eyes locked on yours.
<br /><br />
You held her there, your cock still pulsing inside her, your bodies pressed together, your breaths coming in ragged gasps.
Her head rested on your shoulder, her body shaking slightly with the aftershocks of her orgasm.
<br /><br />
<<sayNpc $characters.elsa.mother>>
That was fucking incredible
<</sayNpc>>
<br />
<br />
<<link 'Sleep'>>
<<sleep 'Elsa - Morning request #2'>>
<</link>>
<</linkreplace>>
<</linkreplace>><br /><br />
<h1 class="ptitle">ELSA'S HOUSE</h1>
<br /><br />
<<set $characters.elsa.quests.medicine_delivery = true>>
<<drop $backpack 'antibiotics' 10>>
<<drop $backpack 'pelt_wolf' 10>>
Her hand went to her mouth as though she might cry, but instead she smiled, eyes glistening.
<br /><br />
<<sayNpc $characters.elsa.mother>>
You actually got them…
<</sayNpc>>
<br />
She took the supplies gently, as if they were more valuable than gold. Then she set them aside and stepped forward, wrapping her arms tightly around you and kissing you.
<br /><br />
<center>
<<image 'people/elsa/mother_kiss.webp'>>
</center>
<br />
Her warmth pressed against you as she whispered.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Thank you… thank you so much.
<</sayNpc>>
She lingered in the embrace, her breath soft against your neck, before pulling back only enough to look you in the eyes.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Please… stay the night. Let me make you something. You’ve done so much for us already.
<</sayNpc>>
<br />
<center>
<<image 'people/elsa/dinner.jpg'>>
</center>
<br />
Dinner was humble, as before, but filled with quiet laughter.
Elsa remained shy, though you noticed she smiled a little more than before, especially when her mother teased her gently.
The house, small and fragile as it was, felt like it held a strange kind of peace.
<br /><br />
When Elsa finally drifted off to her bed, the mother’s hand found yours under the table. Her fingers curled into yours as she whispered
<br /><br />
<<sayNpc $characters.elsa.mother>>
Come with me
<</sayNpc>>
<br />
She led you to her bed again, just as she had before, this time pushing you on your back onto the bed as she started to undress.
<br /><br />
<center>
<<image 'people/elsa/mother_undress.webp'>>
</center>
<br />
With that, she turned around, her ass pressing against your cock, teasing and tantalizing.
You reached down, your hands gripping her hips, pulling her closer, your cock hard and ready, pressing against her entrance, demanding entry.
<br /><br />
<center>
<<actionImage $characters.elsa.mother 'pussy_insert'>>
</center>
<br />
She let out a loud moan, her body convulsing as you filled her, her pussy clenching around your shaft, milking you with each movement.
You could feel every inch of her, her tight, wet walls pulsing with pleasure, her body responding to yours, her moans filling the air, mingling with your own grunts of pleasure.
<br /><br />
<<video 'elsa/mother_fuck3'>>
<br /><br />
You began to move, your hips thrusting in a relentless rhythm, your cock slamming into her with increased force, the sound of flesh meeting flesh echoing in the room.
The sensation was overwhelming, her pussy hot and tight, her body responding to yours, her moans turning to screams of pleasure, her hips bucking against yours,
urging you to go deeper, to take her harder.
<br /><br />
<<video 'elsa/sleeping_sex1'>>
<br /><br />
<<sayNpc $characters.elsa.mother>>
Oh take me, take me all.
<</sayNpc>>
<br />
<<video 'elsa/mother_fuck4'>>
<br /><br />
Her body moving with a rhythm that was both primal and sensual, her pussy hot and tight, her body responding to yours,
her moans turning to screams of pleasure, her hips bucking against yours, urging you to go deeper, to take her harder.
<br /><br />
<<video 'elsa/nightmare'>>
<br /><br />
Suddenly, a blood-curdling scream pierced the air, shattering the intimate moment. You both froze, your bodies tensing as you turned to see the source of the disturbance.
In the corner of the room, Elsa, sat upright in bed, her eyes wide with terror, her body shaking with the aftershocks of a nightmare.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Elsa, what's wrong? Did you have a bad dream? It's all good, we are safe.
<</sayNpc>>
<br />
Elsa clung to her, her body shaking with sobs, her fingers digging into her mother's back, seeking comfort and security.
The mother held her, rocking her gently, her eyes locked on yours, a silent plea in her gaze.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Come to bed with us. You'll feel safer that way. I promise.
<</sayNpc>>
<br />
<<video 'elsa/elsa_go_bed'>>
<br /><br />
As they approached the bed, the mother reached down, her hands pulling back the sheets, revealing your naked cock, still glistening with her wetness.
Elsa's eyes widened, her mouth forming a perfect 'O' of surprise, her cheeks flushing a deep red as she took in the sight before her.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Oh, I am sorry.. But Elsa... It's fine. Its natural. Come to the bed.
<</sayNpc>>
<br />
<<video 'elsa/elsa_dizzy'>>
<br /><br />
Elsa hesitated, her eyes wide with a mix of surprise and curiosity, her body shaking slightly with anticipation.
But you could see the desire in her eyes, the way her body responded to yours, the way her nipples hardened beneath her thin shirt, begging for your touch.
<br /><br />
Then mother took her hand and gently pulled her into the bed, right between you too.
<br /><br />
<<sayNpc $characters.elsa.mother>>
Hug will make you feel better, right <<=$player.name>>?
<</sayNpc>>
<br />
<<video 'elsa/elsa_bed_hug'>>
<br /><br />
You could see the discomfort in Elsa's eyes, the way her body tensed as she felt your cock pressing against her back,
the way she shifted slightly, trying to put some space between you.
<br /><br />
Soon enough, you could hear the soft, even breaths of sleep, the gentle rise and fall of Elsa's chest, the way her body molded against yours, trusting and vulnerable.
<br /><br />
<<link 'Sleep'>>
<<sleep 'Elsa - Morning request #3'>>
<</link>><br />
<h1 class="ptitle">GUESTHOUSE</h1>
<br />
As soon as you rounded the corner toward the guest house, you heard it:
<br /><br />
<strong>Elsa crying</strong>
<br /><br />
Soft, choked sobs.
<br /><br />
You hurried your pace.
<br /><br />
In Elsa's corner, Elsa sat on the bed, face buried in her hands.
Her mother was standing beside her, folding clothes, packing a small travel bundle with movements that were sharp, practiced, and painfully final.
<br /><br />
<center>
<<image 'people/elsa/new_home1.jpg' sfw>>
</center>
<br /><br />
When she heard you enter, she didn’t greet you.<br />
She didn’t smile.<br />
She turned slowly, eyes hollow from a night of no sleep.
<br /><br />
<<sayNpc $characters.elsa.mother>>
We need to talk
<</sayNpc>>
<br />
Elsa lifted her tear-streaked face, looking at you with pleading eyes — but she didn’t speak.<br />
She only clutched her mother’s coat tighter, as if she could hold her there by force.
<br /><br />
Her mother set down the pack and faced you.
<br /><br />
<<sayNpc $characters.elsa.mother>>
There’s something I never told you.
<</sayNpc>>
<br />
Her voice wavered, then hardened.
<br /><br />
<<sayNpc $characters.elsa.mother>>
I had another daughter.
<</sayNpc>>
<br />
Elsa shut her eyes, already knowing where it was going.
<br /><br />
<<sayNpc $characters.elsa.mother>>
She was taken.
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
Three years ago. Men in white armor — not raiders, not scavengers. Organized. Equipped. Trained.
<</sayNpc>>
<br />
<<sayNpc $characters.elsa.mother>>
They came through the forest like ghosts. They took her, and anyone who tried to stop them.
<</sayNpc>>
<br />
Elsa shook her head, voice shaking:
<br /><br />
<<elsa>>
Ma, no… please don’t…
<</elsa>>
<br />
Her mother knelt in front of her, cupping her face gently.
<br /><br />
<center>
<<image 'people/elsa/new_home2.jpg' sfw>>
</center>
<br /><br />
<<sayNpc $characters.elsa.mother>>
I stayed all this time because you needed me. You weren’t ready. But now…
<</sayNpc>>
<br />
She glanced at you.
<br /><br />
<<sayNpc $characters.elsa.mother>>
…you have someone who can protect you. Someone I trust.
<</sayNpc>>
<br />
Elsa cried harder, burying her face in her mother’s shoulder.
<br /><br />
<<elsa>>
I’ll wait for you. I’ll wait here. Every day. Just come back, Ma… please…
<</elsa>>
<br />
She slung the pack over her shoulder.
Elsa clung to her one last time, trembling.
<br /><br />
Her mother kissed her forehead.
<br /><br />
<center>
<<image 'people/elsa/new_home3.jpg' sfw>>
</center>
<br /><br />
<<elsa>>
Come back, please.
<</elsa>>
<br />
<<sayNpc $characters.elsa.mother>>
I will. If the world lets me.
<</sayNpc>>
<br />
Then she turned and walked out.
<br /><br />
Elsa stumbled after her to the settlement gate, gripping your arm for balance.
Together, you watched her mother cross the boundary, her silhouette growing smaller against the empty landscape.
<br /><br />
She didn’t look back.
<br /><br />
Not once.
<br /><br />
And when the gate closed with a heavy clank, Elsa broke completely, burying her face in your chest.
<br /><br />
<<elsa>>
Please leave me alone for now. I want to be alone.
<</elsa>>
<br />
<<link 'Leave'>>
<<addmins 30>>
<<set $characters.elsa.quests.new_home = true>>
<<set $characters.elsa.quests.new_home_day = $game.day>>
<<set $game.location.elsa = false>>
<<goto 'Guest house'>>
<</link>><br />
<h1 class="ptitle">ELSA'S ROOM</h1>
<br />
<<if ($characters.elsa.quests.new_home_day + 5) < $game.day && !$characters.elsa.quests.introduction_day>>
<<goto 'Elsa - Introduction'>>
<</if>>
<<elsa>>
<<if !$characters.elsa.canTalk>>
Please leave me alone for now.
<<else>>
Hey! What's up?
<</if>>
<</elsa>>
<br />
<<if $characters.elsa.quests.introduction_day>>
<<link 'Approach her'>>
<<set $charId = 'elsa'>>
<<unset $slaveId, $guestId, $childId>>
<<set $tmpGirl = $characters.elsa>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirlBack = 'Elsa room'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<goto 'NPC view - character'>>
<</link>>
<<link 'Date'>>
<<goto 'Elsa - date'>>
<</link>>
<</if>>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">EVE</h1>
<br /><br />
The room was warmer than the rest of the settlement—lantern lit, neat, quiet.
The small window let in pale light, illuminating her seated at the edge of her bed, hands clasped together as if she’d been thinking for a long time.
<br /><br />
<center>
<<image 'people/eve/church_talk.jpg' sfw>>
</center>
<br />
When she looked up at you, her expression was calm, but there was something heavier behind her eyes.
<br /><br />
<<eve>>
I’ve been waiting for you. There’s… something I want to talk about.
<</eve>>
<br />
She took a breath, steadying herself.
<br /><br />
<<eve>>
I know I had my differences with Rodger. More than differences, sometimes. We didn’t agree on a lot of things. And I know… he wasn’t the man he pretended to be.
<</eve>>
<br />
Her voice shook slightly, but she didn’t look away.
<br /><br />
<<eve>>
But his work—the idea of it—meant something to people.
<</eve>>
<br />
You stayed quiet, letting her speak.
<br /><br />
<<eve>>
He used to say that the world ended twice. Once with fire, and once with silence.
<</eve>>
<br />
<<eve>>
The fire destroyed everything, but the silence… that’s what’s killing people now. No hope. No purpose. No place to go when the night feels too long.
<</eve>>
<br />
She hesitated, looking back to you, searching your face.
<br /><br />
Eve reached out suddenly and placed her hand on top of yours.
<br /><br />
<center>
<<image 'people/eve/hands.gif' sfw>>
</center>
<br />
Her touch was warm, steady, but there was a tremor beneath it—like someone gathering courage before speaking a truth they’d held too long.
<br />
You looked down at her fingers curled lightly against your own, then back into her eyes. She didn’t pull away.
<br /><br />
<<eve>>
Maybe you could build a church here. Even a small one. Just four walls and a roof to start. Something humble.
<</eve>>
<br />
Her thumb brushed the back of your hand—not romantic, not suggestive. Just grateful. Grounded.
<br /><br />
She looked at you with quiet determination, but also with the fragile vulnerability of someone asking for a piece of stability in a world that kept trying to take it from her.
<br /><br />
<<eve>>
I can’t build the walls alone. But I can fill them. If you’ll help me.
<</eve>>
<br />
Her hand remained on yours—waiting. Not demanding. Just hopeful.
<br /><br />
And the room around you felt suddenly heavier, fuller, like her request had opened a door neither of you had realized was there.
<br /><br />
<<if !$backpack.has('blueprint_church')>>
<<pickup $backpack 'blueprint_church' 1>>
<strong>She placed the scroll in your hands.</strong>
<br /><br />
<<eve>>
It’s the blueprint of his church.
<</eve>>
<br />
<</if>>
<<eve>>
You don’t have to decide right now.
<</eve>>
<br />
<<link 'Leave'>>
<<set $characters.eve.quests.church_talk = true>>
<<set $characters.eve.quests.relationship += randomInteger(5, 10)>>
<<notify 5s>>
You received church blueprint. Can be built in base building.
<</notify>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">CITY</h1>
<br /><br />
<<addhours 5>>
<center>
<<image 'places/settlement/rodger_bottles_tavern.jpg' 'sfw'>>
</center>
<br /><br />
After a few hours of walking, you finally reached Roger’s friend’s pub — or what was left of it. The front door hung by a single hinge, and the outer walls were scorched black.
The wooden sign that once read The Silver Barrel lay half-buried in ash.
<br /><br />
<center>
<<image 'places/settlement/rodger_bottles_basement.jpg' 'sfw'>>
</center>
<br /><br />
Inside, the air was thick with the scent of burnt oak and damp earth.
You carefully stepped over the collapsed beam that blocked part of the entrance, your flashlight beam slicing through the darkness.
<br /><br />
<<pickup $backpack 'champagne' 3>>
<strong>You picked up <span class="iitem">3 champagne</span> bottles</strong>
<br /><br />
<center>
<<image 'places/settlement/rodger_bottles_basement_storage.jpg' 'sfw'>>
</center>
<br /><br />
You collected the bottles.
<br /><br />
<<linkreplace 'Suggest that you could spend the night here'>>
<center>
<<image 'places/settlement/eve_bottles_undress.webp'>>
</center>
<br /><br />
You undress and turn around, but in front of you, Eve has already taken off her clothes, leaving only a top. You help her get rid of that too.
<br /><br />
<<video '/settlement/champagne_eve_repeatable1'>>
<br /><br />
Both of you crawl under the covers, but instead of lying down next to you, she settles on top of you.
<br />
She grabs your dick and puts it between her breasts.
<br /><br />
<<video '/settlement/champagne_eve_repeatable2'>>
<br /><br />
After sloppy titfuck and some giggles a wide smile appears on her face. <br />
She leans lower and puts your dick in her mouth.
<br /><br />
<<video '/settlement/champagne_eve_repeatable3'>>
<br /><br />
Her blowjob isn't the best you had but I guess she's trying. Her pussy from the other hand is something else.
<br />
She's almost as tight as Blair..
<br /><br />
<<video '/settlement/champagne_eve_repeatable4'>>
<br /><br />
She quietly moans as you tell her that you will cum soon.
<br />
She grabs your dick and pulls it out, letting you cum all over pussy but not inside.
<br /><br />
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Eve room'>>
<</link>><h1 class="ptitle">EVE</h1>
<br /><br />
<<eve>>
What you have on your mind?
<</eve>>
<br /><br />
<<if timeBetween('08:00', '20:00')>>
<<if recall($suppCode)>>
<<link 'Go find some champagne'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Eve - date [champagne]'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Go find some champagne
<<notPatreonIcon>>
</div>
<</if>>
<</if>>
<<link 'Leave'>>
<<goto 'Eve room'>>
<</link>><h1 class="ptitle">CHURCH</h1>
<br /><br />
The church you had built stood quietly in the center of the settlement, its walls solid, the doors polished, and the interior surprisingly warm
despite its humble construction. You stepped inside, letting the light spill across the wooden pews and the small altar, the quiet calm of
the space settling over you.
<br /><br />
<center>
<<image 'places/church/intro1.jpg' sfw>>
</center>
<br />
A soft shuffle behind you made you turn, and Eve was there, her eyes bright with something new—hope, maybe, or determination.
<br /><br />
<<eve>>
I wanted to show you something, come with me.
<</eve>>
<br />
She led you through the church, her hand lightly touching your arm, guiding you towards a small,
secluded room adjacent to the main sanctuary. As you entered, you were greeted by a simple yet cozy space,
adorned with a few personal touches—a small bed, a desk with a few books, and a window that let in a soft, ethereal light.
<br /><br />
<center>
<<image 'places/church/intro2.jpg' sfw>>
</center>
<br />
<<eve>>
This will be my room from now on. A place where I can feel like I’m part of something bigger.
<</eve>>
<br />
She turned to face you fully, her expression softening.
<br /><br />
<<eve>>
I’ve been holding a lot in… fears, doubts, grief. But here, with this church, with you helping me build it.
<</eve>>
<br />
She took a small step closer, her hand brushing yours lightly.
<br /><br />
<center>
<<image 'people/eve/hands.gif' sfw>>
</center>
<br />
<<video 'eve/new_church1'>>
<br /><br />
She looked up at you, her eyes filled with a mix of innocence and lust, a contrast that sent a jolt of desire straight to your core. Slowly, she reached out, her fingers wrapping around your shaft, her touch both tentative and exploratory.
<br /><br />
You let out a low groan as she began to stroke you, her movements slow and deliberate, her eyes never leaving yours.
<br /><br />
<<video 'eve/new_church2'>>
<br /><br />
Eve leaned in, her lips parting as she took the head of your cock into her mouth, her tongue swirling around the sensitive tip, tasting and teasing.
You could feel the wet heat of her mouth, the way her lips created a tight, suctioning seal
<br /><br />
<<video 'eve/new_church3'>>
<br /><br />
She took you deeper, her head bobbing up and down with a rhythm that was both hypnotic and intoxicating. Her cheeks hollowed as she sucked hard, her tongue swirling and exploring every inch of your shaft
<br /><br />
<<video 'eve/new_church4'>>
<br /><br />
She gagged slightly but pushed through, her throat opening to accommodate your length. You could feel the constriction, the wet heat enveloping you.
<br /><br />
You pulled her up, your bodies pressing together, your cock still hard and ready. You turned her around, your hands finding her hips, pulling her back against you.
<br /><br />
You thrust into her with a single, deep movement, your cock sliding into her tight, wet pussy with ease.
<br /><br />
<<video 'eve/new_church5'>>
<br /><br />
You could feel every inch of her, her tight, wet walls pulsing with pleasure, her body responding to yours, her moans filling the air, mingling with your own grunts of pleasure.
<br /><br />
<<eve>>
Yes, just like that.
<</eve>>
<br />
<<video 'eve/new_church6'>>
<br /><br />
<div id="option_cum">
<<linkreplace 'Cum in her'>>
<<run $('#option_pull').hide()>>
<<run $('#option_leave').show()>>
<<horny_reset>>
<center>
<<image 'game/misc/creampie.webp'>>
</center>
<br /><br />
You let out a loud groan, your body shaking as you found your release, your hot cum shooting into her.
<br /><br />
<<if setup.pregnancyChance($characters.eve)>>
<<set $characters.eve.pregnancy_father = 'mc'>>
<<set $characters.eve.pregnancy = 0>>
<</if>>
<</linkreplace>>
</div>
<div id="option_pull">
<<linkreplace 'Pull out'>>
<<run $('#option_cum').hide()>>
<<run $('#option_leave').show()>>
<<horny_reset>>
<center>
<<image 'game/misc/cum_on_back.gif' sfw>>
</center>
<br /><br />
You let out a loud groan, your body shaking as you found your release, but instead of cumming inside, you pulled out, your cock pulsing as streams of hot cum shot onto her back, coating her smooth, pale skin with your essence.
<br /><br />
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
As she dressed, you couldn't help but admire the contrast of her modest attire against the memory of her bare skin, the way the fabric seemed to cling to her curves, hinting at the passion that lay beneath.
<br /><br />
<center>
<<actionImage $characters.eve 'dress_up'>>
</center>
<br />
She turned to face you, her eyes sparkling with a mix of satisfaction and something deeper—a gratitude that seemed to transcend the physical act you had just shared.
<br /><br />
<<eve>>
I need to walk around the church a bit more to enjoy the view, to feel the peace and tranquility that this place offers.
<</eve>>
<br />
<<link 'Leave'>>
<<set $characters.eve.quests.church_built_day = $game.day>>
<<set $characters.eve.quests.cabinType = 2>>
<<addmins 40>>
<<goto 'Church'>>
<</link>>
</div><h1 class="ptitle"><<cabinName>></h1>
<br />
The morning air was sharp and still, carrying with it the scent of dew and rusted metal. You stepped outside your settlement, stretching your arms as you prepared to begin the day’s journey—just another routine check on the outer perimeters. The sky was dull, blanketed in the kind of gray that always seemed to warn of something unspoken. You glanced down the dirt road, expecting the usual silence.
<br /><br />
Then you saw her.
<br /><br />
Eve.
<br /><br />
<center>
<<image 'people/eve/new_home.jpg' sfw>>
</center>
<br />
She was running—barefoot, wild, her dress torn at the edges, hair tangled and wind-blown. Her breath came in ragged gasps, and though her face lit up when she saw you, her eyes betrayed the truth. Red. Swollen. Hollow. The kind of eyes that had cried so hard there was nothing left.
<br /><br />
She stumbled, then collapsed at your feet, falling hard to her knees in the dirt. Her hands clutched at your pants, trembling. When she looked up at you, her face was soaked in fresh tears.
<br /><br />
<center>
<<image 'people/eve/new_home2.jpg' sfw>>
</center>
<br />
<<eve>>
They’re dead. They’re all dead. Everyone.
<</eve>>
<br />
You dropped to your knees beside her, trying to catch her shoulders, to steady her.
<br /><br />
<<if $player?.quests?.settlement_burned>>
You didn’t answer at first.
<br /><br />
<strong>
Because you did know.
</strong>
<br /><br />
<<else>>
<<you>>
Eve—what are you talking about? What happened?
<</you>>
<</if>>
<br />
She broke then, truly broke. Her whole body folded into itself as she sobbed, pressing her forehead against your chest like she was trying to bury herself
in the only familiar thing left. You held her, your heart thudding louder with every second.
<br /><br />
<<eve>>
I went for a walk—just a walk, I wasn’t gone long...
<</eve>>
<br />
You held her tighter, rage and disbelief boiling beneath your skin. Rodger’s settlement hadn’t been perfect—it had been twisted in its own ways—but it had been stable. A haven, compared to most. And now, it was gone.
<br /><br />
<<eve>>
There was blood everywhere. I didn’t see who did it—I didn’t see anything. I just saw what was left.
<</eve>>
<br />
<<eve>>
What will I do now? They were my family. I have noone else.
<</eve>>
<br />
<<you>>
You can stay with me. As long as you need
<</you>>
<br />
Eve looked at you for a long moment. Her features were still raw with exhaustion, but her expression changed—softened.
<br /><br />
<<eve>>
Are you sure?
<</eve>>
<br />
<center>
<<image 'people/eve/new_home3.jpg' sfw>>
</center>
<br />
You helped her carry what few belongings she had—just a threadbare satchel and a pendant that had somehow survived the burning.
It was all that remained of the old world she’d just lost.
<br /><br />
Back in your place, you guided her down the narrow hallway, past your own quarters and into one of the empty rooms you’d long ago kept closed.
It still smelled faintly of cedar and dust. Sheets were clean, a lantern was ready. A small window looked out toward the edge of the settlement.
<br /><br />
<center>
<<image 'people/eve/new_home4.jpg' sfw>>
</center>
<br />
Eve stood in the center of the room, silent. Then slowly, she sat on the bed and let out a long, trembling breath.
<br /><br />
<<eve>>
Thank you!
<</eve>>
<br />
You closed the door behind you, leaving her in peace for the first time in days.
As you walked down the hall, you felt something settle in your chest — a quiet certainty that, even in this broken world, small acts of refuge still mattered.
<br /><br />
<<link 'Leave'>>
<<if !$player?.quests?.settlement_burned>>
<<set $player.quests.settlement_burned = true>>
<<set $characters.rodger.quests.dead = true>>
<<set $characters.rodger.quests.dead_day = $game.day>>
<</if>>
<<set $characters.eve.quests.new_home = true>>
<<set $characters.eve.quests.new_home_day = $game.day>>
<<set $characters.eve.quests.cabinType = 1>>
<<set $characters.eve.canTalk = true>>
<<set $characters.eve.canFuck = true>>
<<goto 'Guest house'>>
<<addhours 2>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<<set $characters.eve.quests.shower_day = $game.day>>
<br />
As you step outside your makeshift dwelling, you notice Eve making her way into your settlement. She appears dirty and slightly distressed.
<br /><br />
<center>
[img[setup.ImagePath+'people/eve/shower.jpg']]
</center>
<br />
She approached you, her expression a mix of weariness and anxiety.
<br /><br />
<<eve>>
Hey, I had a fight with Rodger. Can I... Can I take a shower at your place? I just need to cool down a bit.
<</eve>>
<br />
<div id="option_alone">
<<linkreplace 'Sure. You know where it is'>>
<<set $characters.eve.corruption = Math.min($characters.eve.corruption + 1, 100)>>
<<run $('#option_leave').show()>>
<<run $('#option_join').hide()>>
<<set _askedAlone = true>>
<<eve>>
Thank you so much! It won't take long. I will be gone before you even notice me.
<</eve>>
<br />
<</linkreplace>>
</div>
<div id="option_join">
<<linkreplace 'Sure. Follow me'>>
<<set _join = true>>
<<run $('#option_alone').hide()>>
<<run $('#option_leave').show()>>
Together, we made our way inside, leaving behind the harsh realities of the outside world, if only for a moment. As Eve stepped into the warmth of my shelter, I couldn't help but wonder what trials awaited us beyond the safety of these walls.
But for now, in this fleeting moment of respite, all that mattered was extending a helping hand to a friend in need.
<br /><br />
As Eve undressed while you were still in the room, you tried to avert your gaze out of respect,
but curiosity got the better of you, and you couldn't resist stealing a quick glance.
<br /><br />
<<linkreplace 'Pull out dick and jerk'>>
<<set $characters.eve.corruption = Math.min($characters.eve.corruption + 5, 100)>>
<<video 'eve/shower1'>>
<br /><br />
<<eve>>
<<= $player.name>>!!
<</eve>>
<br />
<<video 'eve/shower2'>>
<br /><br />
<<eve>>
Well, knowing how you've helped us, it seems like we should give something in return as well.
<</eve>>
<br />
She leans against the wall and, pouring the hot water over herself, looks at you casually biting her lower lip as she looks at your dick.
<br /><br />
After a moment, she turns off the water, sets the showerhead down on the floor, and stepping out of the shower,
she walks towards you. Without saying a word, she slowly strokes your stomach, places her palm on your chest, and guides you onto the bed
<br /><br />
<<video 'eve/shower3'>>
<br /><br />
With a smile, she grabs your dick and tightly embraces it before slowly placing it in her mouth as she gently starts to suck it.
<br /><br />
<div id="option_balls">
<<linkreplace 'Push her down towards your balls'>>
<<set $characters.eve.corruption = Math.min($characters.eve.corruption + 2, 100)>>
<<set _balls = true>>
<<video 'eve/shower4'>>
<br /><br />
You grab her hair and with small force push her lower. She understands the task and lets your dick go as she goes lower and sucks your balls in her mouth instead.
<br /><br />
<<eve>>
Like this? Oh, I haven't seen balls so close for a long time.
<</eve>>
<br />
<</linkreplace>>
</div>
<<linkreplace 'Fuck her'>>
<<set $characters.eve.corruption = Math.min($characters.eve.corruption + 2, 100)>>
<<if !_balls>>
<<run $('#option_balls').hide()>>
<</if>>
<<video 'eve/shower5'>>
<br /><br />
As she lays down on her back to embrace your dick, you slowly slide it inside her while looking in her eyes. As your hard dick slides into her moist pussy she lets out moan without taking eyes off you.
<br /><br />
<<eve>>
Oh my... Slowly, please...
<</eve>>
<br />
<div id="option_thrust">
<<linkreplace 'Thrust your dick hard'>>
<<set _thrust = true>>
<<video 'eve/shower6'>>
<br /><br />
Unexpectedly, you suddenly drive your dick into her with all your strength.
She gasps, bites her lip, and with pleading eyes, looks at you as you continue to fuck her with big thrusts while her head bangs against the wall.
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Cum'>>
<<if !_thrust>>
<<run $('#option_thrust').hide()>>
<</if>>
<<horny_reset>>
<<if setup.pregnancyChance($characters.eve)>>
<<set $characters.eve.pregnancy_father = 'mc'>>
<<set $characters.eve.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<center>
[img[setup.ImagePath+'game/misc/cum_in_pussy.webp']]
</center>
<br />
Without pulling out you cum in her pussy. She is not surprised and with help of her hands opens it and lets your cum drip out.
<br /><br />
<<eve>>
I should probably go...
<</eve>>
<br />
<<addmins 30>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
<<link 'Leave'>>
<<if _join>>
<<goto 'Wood cabin'>>
<<else>>
<<goto 'Outside'>>
<</if>>
<</link>>
</div><h1 class="ptitle">BATHHOUSE</h1>
<br />
The water traced the contours of her shoulders, flowing down her arms and back in smooth rivulets. Her fingers ran through her hair, lathering shampoo slowly, deliberately, as fragrant suds blossomed and clung before rinsing away.
The scent of lavender and sandalwood filled the air, heady and grounding.
<br /><br />
<center>
<<image 'people/eve/shower.webp'>>
</center>
<br /><br />
Her movements were unhurried, deliberate — a ritual of care. Her hands glided over her skin, massaging in soap, her touch gentle yet intentional.
The droplets shimmered against her skin, catching the soft glow of the bathroom light through the mist.
<br /><br />
<<linkreplace 'Pull out dick and jerk'>>
<<run $('#option_leave2').hide()>>
<<video 'eve/shower1'>>
<br />
You managed to take your dick out and make a few strokes before she casually turned around and noticed you.
<br /><br />
<<eve>>
<<=$player.name>>!! What are you doing?
<</eve>>
<br />
She didn’t shy away. If anything, her movements became more deliberate. Her hands glided over her skin with unhurried ease, lathering soap in gentle circles along her collarbone, her arms, down her sides. The
<br /><br />
<<video 'eve/shower2'>>
<br /><br />
<<eve>>
Need some help with that?
<</eve>>
<br />
<<linkreplace 'Invite her to your bedroom'>>
<<run $('#option_leave').hide()>>
She turned off the water and grabbed towel, covering herself while you both walked to your bedroom.
As you entered your room, she gently put hand on your chest and pushed you onto the bed, getting your dick and putting in her mouth.
<br /><br />
<<video 'eve/shower3'>>
<br /><br />
<div id="option_balls">
<<linkreplace 'Push her down towards your balls'>>
<<set _balls = true>>
<<video 'eve/shower4'>>
<br /><br />
You grabbed your dick and almost with force pulled it out of her mouth.
You let it rest as she, with small smirk on her face, went down and started to suck your balls into her mouth.
<br /><br />
<<eve>>
Seems that your friend really likes this move, hehe.
<</eve>>
<br />
<</linkreplace>>
</div>
<<linkreplace 'Fuck her'>>
<<if !_balls>>
<<run $('#option_balls').hide()>>
<</if>>
<<video 'eve/shower5'>>
<br /><br />
As she laid down on her back to embrace your dick, you slowly slide it inside her while looking in her eyes.
With a thrust you forced your dick deep inside her pussy, she let out moan without taking eyes off you.
<br /><br />
<<eve>>
Oh my... Slowly, please...
<</eve>>
<br />
<div id="option_thrust">
<<linkreplace 'Fuck her harder'>>
<<set _thrust = true>>
<<video 'eve/shower6'>>
<br /><br />
Unexpectedly, you suddenly shoved your dick deep into her pussy with all your strength.
She gasped and bite her lip, and with pleading eyes, looked at you as you continued to fuck her with big thrusts while her head banged against the wall.
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Cum'>>
<<if !_thrust>>
<<run $('#option_thrust').hide()>>
<</if>>
<<horny_reset>>
<center>
<<image 'game/misc/cum_in_pussy.webp'>>
</center>
<br />
Without pulling out you cummed in her pussy. She wasn't surprised and with help of her hands opened her pussy, letting your cum drip out.
<br /><br />
<<eve>>
I should probably go...
<</eve>>
<br />
<<if setup.pregnancyChance($characters.eve)>>
<<set $characters.eve.pregnancy_father = 'mc'>>
<<set $characters.eve.pregnancy = 0>>
<<if $characters.eve.virgin>><<run setup.npc.addHistory($characters.eve, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $characters.eve.virgin = false>>
<</if>>
<<addmins 30>>
<<link 'Leave'>>
<<goto 'Bedroom'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<div id="option_leave">
<<link 'Leave'>>
<<addmins 30>>
<<set $characaters.eve.relationship -= 10>>
<<set $characters.eve.happy -= 15>>
<<goto 'Bathhouse'>>
<</link>>
</div>
<</linkreplace>>
<div id="option_leave2">
<<link 'Leave'>>
<<addmins 5>>
<<goto 'Bathhouse'>>
<</link>>
</div><h1 class="ptitle">EVE</h1>
<br /><br />
<<eve>>
Thank you for doing what you do.
<</eve>>
<br /><br />
<<if ((!$characters.rodger.quests.dead_day && $characters.rodger.quests.dead) || ($characters.rodger.quests.dead_day + 20) < $game.day) && !$game.location.church && !$characters.eve.quests.church_talk>>
<<goto 'Eve - Church talk'>>
<</if>>
<<link 'Date'>>
<<goto 'Eve - date'>>
<</link>>
<<link 'Approach her'>>
<<set $charId = 'eve'>>
<<unset $slaveId, $guestId, $childId>>
<<set $tmpGirl = $characters.eve>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirlBack = 'Eve room'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<goto 'NPC view - character'>>
<</link>>
<<link 'Leave'>>
<<addmins 5>>
<<if $characters.eve.quests.cabinType === 1>>
<<goto 'Guest house'>>
<<else>>
<<goto 'Church'>>
<</if>>
<</link>><div id="custom_portraits">
<div class="custom_portrait_item">
<div class="custom_portrait_item_img">
[img[setup.ImagePath + '/people/you/avatar.png']]
</div>
<div class="custom_portrait_item_link">
<<link 'Choose'>>
<<run delete $player.portrait>>
<<dialogclose>>
<<goto 'Mirror'>>
<</link>>
</div>
</div>
<div class="custom_portrait_item">
<div class="custom_portrait_item_img">
Use your custom image from link
<br />
Need to add full link to the image, with starting http protocol.
<br />
Ratio: [1:1]
<br /><br />
<<set _customValue = (($player.portrait ?? '').includes('http') ? $player.portrait : '')>>
<<textbox '_portraitUrl' _customValue>>
</div>
<div class="custom_portrait_item_link">
<<link 'Choose'>>
<<set $player.portrait = _portraitUrl>>
<<dialogclose>>
<<goto 'Mirror'>>
<</link>>
</div>
</div>
<div class="custom_portrait_item">
<div class="custom_portrait_item_img">
Use your custom image from pc
<br />
File needs to be under game/custom_portraits
<br />
Ratio: [1:1]
<br /><br /><br />
<input type="file" name="_mcPortraitPath" id="mcPortraitPath">
<script>
$('#mcPortraitPath').on('change', function () {
SugarCube.State.variables.tmpPortraitPath = this.files[0].name || null;
});
</script>
</div>
<div class="custom_portrait_item_link">
<<link 'Choose'>>
<<set $player.portrait = $tmpPortraitPath>>
<<unset $tmpPortraitPath>>
<<dialogclose>>
<<goto 'Mirror'>>
<</link>>
</div>
</div>
</div>
<style>
#custom_portraits {
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}
.custom_portrait_item {
width: 200px;
padding: 10px;
}
.custom_portrait_item img {
width: 200px;
height: 200px;
}
.custom_portrait_item_img {
position: relative;
height: 200px;
}
.custom_portrait_item_img input {
width: 100%;
min-width: auto;
}
</style><h1 class="ptitle">BEDROOM - MIRROR</h1>
<br />
<<set _mcPortraitSrc = $player.portrait
? ($player.portrait.includes('http') || $player.portrait.includes('packs/')
? $player.portrait
: setup.ImagePath + 'custom_portraits/' + $player.portrait)
: setup.ImagePath + 'people/you/avatar.png'>>
<div id="mc-mirror-portrait">
<div class="mc-mirror-portrait-wrapper">
<div class="mc-mirror-portrait-frame">
<img @src="_mcPortraitSrc">
</div>
<<capture _mcPortraitSrc>>
<span class="mc-mirror-expand-btn">
<<link '⤢'>>
<<dialog 'Portrait'>>
<div class="mc-mirror-full-portrait">
<img @src="_mcPortraitSrc">
</div>
<</dialog>>
<</link>>
</span>
<</capture>>
</div>
</div>
<br />
<<link 'Change name'>>
<<dialog 'Change name'>>
<<textbox "_mcName" `$player.name ?? ''`>>
<<link 'OK'>>
<<set $player.name = _mcName>>
<<dialogclose>>
<<goto 'Mirror'>>
<</link>>
<</dialog>>
<</link>>
<<link 'Change portrait'>>
<<script>>
Dialog.setup("MC - change portrait", "MC - change portrait");
Dialog.wiki(Story.get("MC - change portrait").processText());
Dialog.open();
<</script>>
<</link>>
<<link 'Leave'>>
<<addmins 5>>
<<goto 'Bedroom'>>
<</link>>
<style>
#mc-mirror-portrait {
display: flex;
justify-content: center;
margin-bottom: 10px;
}
.mc-mirror-portrait-wrapper {
position: relative;
display: inline-block;
width: 200px;
height: 200px;
}
.mc-mirror-portrait-frame {
display: flex;
justify-content: center;
width: 200px;
height: 200px;
border: 1px solid brown;
border-radius: 12px;
overflow: hidden;
}
.mc-mirror-portrait-frame img {
display: block;
object-fit: contain;
max-width: 100%;
max-height: 100%;
margin: 0;
}
.mc-mirror-expand-btn {
position: absolute;
right: 20px;
top: 4px;
text-shadow: 2px 2px 0px #000000;
}
.mc-mirror-expand-btn a.link-internal {
background: none !important;
color: white !important;
width: auto !important;
display: inline !important;
padding: 0 !important;
border-radius: 0 !important;
margin: 0 !important;
box-shadow: none !important;
font-size: 18px !important;
font-weight: normal !important;
}
.mc-mirror-full-portrait {
max-height: 100%;
display: flex;
justify-content: center;
overflow: hidden;
}
.mc-mirror-full-portrait img {
display: block;
max-height: 100%;
object-fit: contain;
margin: 0;
}
</style><h1 class="ptitle">FOREST</h1>
<br />
<center>
[img[setup.ImagePath+'places/travel/horse_mud.jpg']]
</center>
<br />
As you navigate the dense forest on a rainy day, the sound of raindrops pattering against the leaves fills the air, creating a serene ambiance.
Your journey is interrupted by the sight of a lone merchant or traveler struggling with his horse and carriage, stuck deep in the mud.
<br /><br />
<<linkreplace 'Help him'>>
<<if setup.percentageChance(50)>>
Despite the harsh conditions, you offer your assistance without hesitation. Together, you work to free the horse and carriage from the thick, unforgiving mud.
<br />
<br />
Once the merchant's carriage is liberated, he expresses his gratitude with a genuine smile. In a gesture of appreciation, he insists on sharing some of his meager possessions with you.
<br /><br />
<<for _i = 0; _i < 2; _i++>>
<<set _item = either('glass', 'plastic', 'rope', 'cloth')>>
<<set _count = randomInteger(1, 5)>>
<<pickup $backpack _item _count>>
<strong>You received <strong class="iitem"><<=_count>> <<=Item.get(_item).name>></strong></strong>
<br />
<</for>>
<br />
<<else>>
However, as you step closer to lend a hand, a chilling realization dawns upon you. This isn't a mere mishap; it's a carefully orchestrated ambush.
<br /><br />
Before you can react, shadowy figures emerge from the surrounding foliage, their faces obscured by hoods as they brandish weapons with malicious intent. You find yourself surrounded, trapped between the mud-caked carriage and the menacing figures closing in on you.
<br /><br />
<<run $('#option_leave').hide()>>
<<link 'Fight'>>
<<set $enemies = []>>
<<generateEnemies 4>>
<<fight $enemies $travelPassage $travelPassage>>
<</link>>
<</if>>
<</linkreplace>>
<div id="option_leave">
<<link 'Leave'>>
<<goto $travelPassage>>
<</link>>
</div><h1 class="ptitle">FOREST</h1>
<br />
As you journey through the serene depths of the forest, the rustling leaves above you create a soothing symphony.
Amidst this tranquil melody, however, a series of peculiar noises catch your attention. Intrigued, you halt your steps and focus on the source of the sound.
<br /><br />
<center>
[img[setup.ImagePath+'places/travel/tribe_camp.jpg']]
</center>
<br />
With cautious steps, you approach the origin of the disturbance, your senses heightened with anticipation.
As you draw closer, the flickering glow of a fire pit illuminates the surroundings, casting dancing shadows upon the trees.
Your curiosity piqued, you cautiously part the foliage to reveal a group of tribal people gathered around the crackling flames.
<br /><br />
Their presence in this secluded part of the forest surprises you, and you watch in awe as they engage in animated conversation.
Their voices resonate through the forest, blending with the natural symphony of chirping crickets and rustling leaves.
The rhythmic cadence of their speech, punctuated by occasional laughter, fills the air with an enchanting aura.
<br /><br />
<<link 'Ambush them'>>
<<set $enemies = []>>
<<newguy>>
<<set $tmpGuy.inventory = {
knife: 1
}>>
<<run $enemies.push($tmpGuy)>>
<<newguy>>
<<set $tmpGuy.inventory = {
knife: 1,
tribe_medallion: 1
}>>
<<run $enemies.push($tmpGuy)>>
<<newgirl>>
<<set $tmpGirl.inventory = {
knife: 1
}>>
<<run $enemies.push($tmpGirl)>>
<<newguy>>
<<run $enemies.push($tmpGuy)>>
<<fight $enemies $travelPassage $travelPassage>>
<</link>>
<<link 'Leave'>>
<<goto $travelPassage>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
You walk through your wood cabin, the creaking of the wooden floor beneath your feet breaking the otherwise silent evening.
A faint murmur draws your attention toward the living room. There, you notice Blair sitting on the couch with another woman.
As you approach them, the soft glow of the lantern reveals that the other woman is Ashley, the girl you had saved some time ago.
<br /><br />
<center>
<<image 'people/blair/ashley_threesome1.jpg'>>
</center>
<br />
Seeing you, Ashley's eyes light up with recognition.
<br /><br />
<<if $characters.blair.virgin>><<run setup.npc.addHistory($characters.blair, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $characters.blair.virgin = false>>
<<set _firstTime = !$player?.quests?.ashley_threesome>>
<<if _firstTime>>
<<ashley>>
Thank you again for what you did! I wouldn't be here if not you.
<</ashley>>
<br />
Her voice filled with gratitude.
<<else>>
<<ashley>>
Hey you again! Have some time? Come sit down with us.
<</ashley>>
<br />
She smiles and moves a bit to make space for you.
<</if>>
<br /><br />
<<linkreplace 'Sit down next to them'>>
<<run $('#option_leave').hide()>>
<center>
<<image 'people/blair/ashley_threesome2.jpg'>>
</center>
<br />
Blair, with her characteristic mischievous smile, suddenly slides her finger across your leg while still talking to Ashley.
The touch sends a shiver up your spine, and you see Ashley notice the gesture. She smiles knowingly at Blair.
<br /><br />
<<if _firstTime>>
<<ashley>>
You've changed for the better, Blair. I don't know. You look more relaxed.
<</ashley>>
<br />
<</if>>
One thing leads to another, the air thick with a mix of unspoken words and palpable tension.
Blair stands, her movements deliberate and enticing, and grabs both of your hands.
With a confident, almost playful look in her eyes, she leads you toward the bedroom.
<br /><br />
<<blair>>
I know what you want...
<</blair>>
<br />
Blair unbuttons your pants and takes out your cock. With one hand she strokes you. You feel that your dick is getting harder as she slowly pulls down your panties fully with other hand.
<br /><br />
<<if _firstTime>>
<<video 'blair/ashley_threesome1'>>
<br /><br />
<<ashley>>
Where did you go?
<</ashley>>
<br />
<</if>>
Without breaking eye contact, Ashley seductively approaches you both. The air grows thick with anticipation as she slowly begins to undress. She slips out of her skirt, revealing the smooth legs, then removed her panties, letting them fall to the floor.
Her movements are deliberate and tantalizing, each piece of clothing discarded heightening the sense of intimacy in the room.
<br /><br />
<<blair>>
Come here. Lay on the bed.
<</blair>>
<br />
Blair's grabbed your dick with firm yet gentle touch as she started to position your dick.
Ashley's eyes locked onto yours, her breathing quickening with each passing moment.
<br />
Blair’s hand guided you until you pressed against Ashley's pussy, the warmth and softness of her skin sending a shiver through you.
<br />
Then Blair pushed you from behind inside Ashley...
<br /><br />
<<video 'blair/ashley_threesome2'>>
<br /><br />
Slowly, you enter Ashley, feeling her body envelop you. A soft moan escapes her lips. Blair moves beside you and started kissing Ashley.
With each thrust you increased your speed.
<br /><br />
Blair, her eyes smoldering with desire, leans over you.
<br /><br />
<<blair>>
Now, it's my turn
<</blair>>
<br />
With a graceful and confident movement, she straddles your hips, her hands resting on your chest, and you feel the heat of her body radiating against you.
<br /><br />
<<video 'blair/ashley_threesome3'>>
<br /><br />
Blair positions herself, her gaze never leaving yours, and you feel the tip of your still-hard cock press against her pussy.
With a slow, deliberate motion, she lowers herself onto you, her warmth and tightness enveloping you completely.
A gasp escapes her lips as she takes you in, her head tilting back in pleasure.
<br />
She giggles and laughs as she starts to lick Ashley's nipples.
<br />
You slowly speed up.
<br /><br />
<<video 'blair/ashley_threesome4'>>
<br /><br />
As you're going full thrust on Blair, your dick accidentally slips out of Blair's wet pussy and she lets out a satisfied sigh, nestling into the crook of your neck.
<br />
Before you can fully catch your breath, Ashley's hand wraps around your cock.
<br />
Her touch is firm and sure, and you feel a fresh wave of arousal coursing through you. She looks up at you with a mischievous smile as she puts your cock inside her mouth and she starts to suck it.
<br /><br />
<<ashley>>
I want it back inside me.
<</ashley>>
<br />
<<video 'blair/ashley_threesome5'>>
<br /><br />
With smirk on Blair's face she gets off you and Ashley gets onto you instead. She positions herself in reverse cowgirl position as she slowly slides into your dick.
<br /><br />
<<video 'blair/ashley_threesome6'>>
<br /><br />
She leans back and lets you grab her waist as she takes the lead and moves up and down, with each movement increasing the loudness of her moans.
Meanwhile Blair just looks at you two while playing with her asshole.
<br /><br />
<<blair>>
Now me, me...
<</blair>>
<br />
<<ashley>>
Wait, holly god..
<</ashley>>
<br />
Ashley's eyeballs roll backwards as she keeps jumping onto your dick. Her moans gets really load as she increases thrust more and more.
<br /><br />
<<video 'blair/ashley_threesome7'>>
<br /><br />
Ashley's pussy gets really wet as Blair starts to massage your balls. She squeezes them a bit before moving her hand towards Ashley's clit and rubbing it too.
<br /><br />
<<linkreplace 'Cum on their faces'>>
<<if timeBetween('21:30', '22:01')>>
<<addmins 60>>
<<else>>
<<addmins 30>>
<</if>>
<<horny_reset>>
<<run $('#option_leave').show()>>
<<video 'blair/ashley_threesome8'>>
<br /><br />
They both jump of the bed and gets on their knees right next to it. As you get up while stroking your dick you aim at them.
<br />
Seconds later you cum all over their faces...
<br /><br />
<</linkreplace>>
<<if _firstTime>>
<<set $player.quests.ashley_threesome = true>>
<</if>>
<</linkreplace>>
<div id="option_leave">
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
</div><h1 class="ptitle"><<cabinName>></h1>
<<addhours 4>>
You sat on the old couch beside Blair, her boots kicked off, her legs curled up comfortably.
The two of you had spent the last hour trading stories—some ridiculous enough to make her laugh until she doubled over, others heavy enough that
quiet seemed like the only proper response. Each time she laughed, she bumped her shoulder gently against yours. Each time the talk dug deeper, her voice softened in
a way she reserved only for moments she felt safe.
<br /><br />
<<blair>>
<<=setup.npc.getSayDialog($characters.blair)>>
<</blair>>
<br />
<center>
<<image 'people/blair/massage.jpg'>>
</center>
<br />
<<blair>>
You’re tense
<</blair>>
<br />
She remarked eventually, nudging your shoulder with her fingers.
<br /><br />
<<video 'blair/massage1'>>
<br /><br />
Her hands rested on your shoulders—warm, steady—and she began kneading the tight muscles near your neck with slow, careful circles.
<br /><br />
<<video 'blair/massage2'>>
<br /><br />
Her hands worked lower in smooth, thoughtful motions, and then she tugged lightly at the collar of your shirt.
<br /><br />
<<blair>>
Do you mind?
<</blair>>
<br >
You shook your head, and she eased the fabric down so she could continue. You leaned back, eventually sinking against the couch as her fingers traced gentle, calming paths across your chest—warm, grounding, almost reverent. The fire popped, filling the silence, and for a long moment neither of you felt the need to speak.
<br /><br />
<<linkreplace 'Grab her hand and put on your crouch'>>
<<video 'blair/massage3'>>
<br /><br />
You lifted your hips, allowing her to slide your pants down, your cock springing free, already hard and ready.
Blair leaned down, her lips parting as she took you into her mouth, her tongue swirling around the sensitive tip, tasting and teasing.
<br /><br />
<<video 'blair/massage4'>>
<br /><br />
You let out a low groan, your body arching as she took you deeper, her throat opening to
accommodate your length, her head bobbing up and down with a rhythm that was both hypnotic and intoxicating.
<br /><br />
<<video 'blair/massage5'>>
<br /><br />
Her cheeks hollowed as she sucked hard, her tongue swirling and exploring every inch of your shaft, sending waves of pleasure coursing through your body.
You reached down, your hands tangling in her hair, guiding her movements, urging her to take you deeper, to suck you harder.
<br /><br />
Soon enough Blair was already fully naked.
<br /><br />
She reached down, her hand wrapping around your cock, positioning it at her pussy.
With a single, fluid movement, she impaled herself on you, her pussy stretching while she hold your dick, her body sinking down until your dick was burried inside her.
<br /><br />
<<video 'blair/massage6'>>
<br /><br />
Blair began to move, her hips rolling and grinding, her body undulating with a rhythm that was both primal and sensual.
<br /><br />
<<video 'blair/massage7'>>
<br /><br />
She rode you hard, her ass twerking over your cock, her pussy clenching and releasing with each movement as she grabbed couch to get a better position.
<br />
With each thrust she got more and more relaxed untill she started to ride your dick as fast as she could.
<br /><br />
<<blair>>
Yes... Cum for me...
<</blair>>
<br />
<<video 'blair/massage8'>>
<br /><br />
<<linkreplace 'Cum inside her'>>
<<horny_reset>>
<<set $characters.blair.horny = 0>>
<<if setup.pregnancyChance($characters.blair)>>
<<set $characters.blair.pregnancy_father = 'mc'>>
<<set $characters.blair.pregnancy = 0>>
<</if>>
<<blair>>
Fuck, yes!
<</blair>>
<br />
<center>
<<image 'game/misc/creampie_cowgirl.webp'>>
</center>
<br />
Blair let out a loud moan, her body shuddering with the force of her own orgasm, her pussy pulsing around your cock.
<br /><br />
As the waves of pleasure began to subside, you both lay there, your bodies entwined, your breaths coming in ragged gasps, your hearts pounding in sync.
Blair collapsed on top of you, her body slick with sweat, her breath hot against your neck, her pussy still clenching and unclenching around your softening cock.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">HOT TUB</h1>
<br />
You had come outside for a moment of solitude, drawn by the steaming water promising brief relief from the weight of survival.
But as your eyes adjusted to the dim glow cast by the moon and the soft light of the generator-powered lanterns, you saw her.
<br /><br />
Blair.
<br /><br />
<center>
<<image 'places/bathhouse/wet_shirt.gif'>>
</center>
<br /><br />
She was already there, reclining in the tub, her head tilted back, dark hair slick and wet, reflecting the faint glow.
Her white bathing suit clung to her skin, the damp fabric revealing more than it concealed, the curves of her body accentuated beneath the water’s gentle ripple.
<br />
The moment she noticed you, she smiled—soft, inviting, with a flicker of something deeper in her gaze.
<br /><br />
<<blair>>
Couldn't sleep?
<</blair>>
<br />
<<you>>
Something like that.
<</you>>
<br />
Blair leaned forward, resting her arms on the tub’s edge, droplets tracing lazy paths down her forearms. She studied you for a moment before shifting, pushing herself up through the water.
<br /><br />
Then, without hesitation, she knelt before you.
<br /><br />
<<blair>>
I know what might help
<</blair>>
<br />
<<video 'blair/midnight_swim1'>>
<br /><br />
You felt a surge of excitement as she pulled out your cock, her eyes looking up at you with a mischievous glint. She took you in her mouth, her lips wrapping around you with a practiced ease.
You felt yourself getting harder, your hips thrusting forward as she began to suck you.
<br /><br />
<<video 'blair/midnight_swim2'>>
<br /><br />
The sensation was incredible, her tongue swirling around the head, sending shivers down your spine. You closed your eyes, letting out a low moan as she worked her magic. She took care of you, sucking and licking, her mouth moving up and down your shaft with a slow, deliberate rhythm.
<br /><br />
<<video 'blair/midnight_swim3'>>
<br /><br />
As Blair continued to suck you, her hands moved to the laces of her white swimsuit. She slowly began to untie them, her fingers working deftly as she continued to move her mouth up and down your shaft. The laces came undone, and she pulled them apart, revealing her breasts.
<br /><br />
Her boobs spilled out of the swimsuit, bouncing slightly as she moved her head. She didn't miss a beat, her mouth still wrapped around you as she sucked and licked. Her breasts swayed gently, the nipples hardening in the cool night air.
<br /><br />
<<video 'blair/midnight_swim4'>>
<br /><br />
Finally, you couldn't take it anymore. You reached down, lifting her up from the ground, and carried her over to the nearest table. You sat her down, her legs spreading apart as you stepped between them. You pushed her back, her body arching upwards as you entered her.
<br /><br />
<<video 'blair/midnight_swim5'>>
<br /><br />
You fucked her hard, your hips pounding against hers, your cock sliding in and out of her pussy. The sound of your bodies slapping together echoed through the night air, the rhythm intense and primal. Blair tried to silence her moans, her hands covering her mouth, but she couldn't.
<br /><br />
<<video 'blair/midnight_swim6'>>
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<set $characters.blair.horny = 0>>
<<if setup.pregnancyChance($characters.blair)>>
<<set $characters.blair.pregnancy_father = 'mc'>>
<<set $characters.blair.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<center>
<<image 'game/misc/cum_in_pussy2.webp'>>
</center>
<br /><br />
As you reached your climax, Blair's body shuddered, her eyes rolling back in her head. You felt her come, her pussy contracting around you, as you filled her with your semen. You pulled out, your chest heaving, as Blair lay back on the table, her body trembling with aftershocks.
<br /><br />
For a moment, you just looked at each other, the only sound the heavy breathing and the distant hum of the pool equipment. Then, Blair smiled, her eyes sparkling with satisfaction. "That was amazing," she whispered, her voice barely audible.
<br /><br />
<<link 'Leave'>>
<<addmins 60>>
<<goto 'Bathhouse'>>
<</link>>
<</linkreplace>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
Blair’s already in bed when you come in, curled under the blankets like this is just any ordinary night, like the world outside hasn’t fallen apart a hundred times over.
<br /><br />
<<blair>>
You smell like smoke.
<</blair>>
<br />
<<video 'blair/bed_laying'>>
<br /><br />
You slide into bed beside her, muscles sore and mind heavier than it should be. It’s quiet for a beat before she speaks again.
<br /><br />
<<blair>>
Now that you’ve actually got a real gate you should think about some policies. Real ones.
<</blair>>
<br />
<<you>>
Policies?
<</you>>
<br />
Her voice low and steady.
<br /><br />
<<blair>>
Yeah. Structure. Rules. You’re not just keeping people alive anymore—you’re running something. A settlement. And settlements need order.
<</blair>>
<br />
<<you>>
Like what?
<</you>>
<br />
She hesitates, then smirks a little.
<br /><br />
<<blair>>
Well... people are having sex in random places. Like, really random places. I caught a couple behind the food storage earlier. Didn’t even pretend to hide it.
<</blair>>
<br />
<<blair>>
It’s a bad look. Makes everything feel... chaotic. And not in the fun way. Especially with kids running around now.
<</blair>>
<br />
<<blair>>
You should set a rule about public decency. Make it clear this place isn’t just a free-for-all.
<</blair>>
<br />
<<video 'blair/bed_laying2'>>
<br /><br />
<<blair>>
Oh—and taxes.
<</blair>>
<br />
<<you>>
Taxes?
<</you>>
<br />
Blair just gives you that look—half amusement, half I’m right and you know it.
<br /><br />
<<blair>>
People are living here. Eating here. Sleeping behind your walls. You’re protecting them. It’s only fair they contribute.
<</blair>>
<br />
<<blair>>
Doesn’t have to be harsh—scrap, rations, labor hours. Just... something to help keep it going.
<</blair>>
<br />
You stare at the ceiling. The wind outside moans against the wall, dragging through the broken world like it always does. But inside, right now, there’s warmth. Purpose. A strange kind of calm.
<br /><br />
<<link 'Sleep'>>
<<set $player.quests.policy_talk = true>>
<<notify 5s>>
Under settlement management policies available.
<</notify>>
<<sleep>>
<</link>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<<set $characters.blair.quests.pregnancy_talk = true>>
<<set $locationEvents.cabin = true>>
<<blair>>
<<=$player.name>>! We need to talk. I've missed my period. I believe... I believe I may be pregnant.
<</blair>>
<br />
As the words left her lips, tears welled up in her eyes.
She collapsed into a nearby chair, her body shaking with sobs. It was a torrent of conflicting emotions, a tidal wave of fear, hope, and uncertainty.
<br /><br />
<<blair>>
In this harsh, post-apocalyptic world, bringing a child into existence seems like an almost impossible task.. I don't know what to do.
<</blair>>
<br />
Yet, as she wept, it was clear that another part of her longed for this child. It was a glimmer of hope, a beacon of light amidst the darkness.
The thought of cradling a tiny life in her arms, of nurturing and loving a new soul in this unforgiving world, filled her with a warmth that contrasted sharply with the cold reality around them.
<br /><br />
<div id="option_keep">
<<linkreplace 'You should keep it'>>
<<run $('#option_no').hide()>>
<<set $characters.blair.happy += 30>>
<<set $player.goodwill += 5>>
As you tell her that you believe she should keep the child, a mix of emotions washes over her face. Surprise, relief, and a flicker of hope light up her eyes.
She searches your gaze, seeking confirmation and finding it in your determined expression.
<br /><br />
<<blair>>
Okay. We'll do this. We'll find a way to make it work, for us and for the kid.
<</blair>>
<br />
From that moment forward, you both embark on a journey filled with challenges, but also with moments of profound joy and connection.
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_no">
<<linkreplace 'The world is too harsh for a kid'>>
<<run $('#option_keep').hide()>>
<<run delete $characters.blair.pregnancy>>
<<set $characters.blair.happy -= 30>>
<<set $player.goodwill -= 10>>
When you express your concerns about bringing a child into this harsh post-apocalyptic world, the atmosphere in the room grows heavy with the weight of reality.
She looks at you, her eyes still brimming with tears, and her face reflects a mixture of understanding and sorrow.
<br /><br />
<<blair>>
You're right. It's not fair to bring a child into this world. We'll find a way... I... I can't bear to imagine what their life would be like here.
<</blair>>
<br />
Together, you share a somber moment of understanding.
It's a decision borne out of love and a desire to protect the potential life that lingers in the balance.
The weight of the world outside remains, but you face it together, knowing that this decision, however painful, is made with the best intentions for the child that might have been.
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div><br />
<h1 class="ptitle">BLAIR'S ROOM</h1>
<br />
<<blair>>
Hey. Come in.
<</blair>>
<br />
<<link 'Approach her'>>
<<set $charId = 'blair'>>
<<unset $slaveId, $guestId, $childId>>
<<set $tmpGirl = $characters.blair>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirlBack = 'Blair room'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<goto 'NPC view - character'>>
<</link>>
<div id="blair_move_back">
<<linkreplace 'Ask her to move back into your room'>>
<<addmins 20>>
You told her the bed felt wrong without her in it.
<br /><br />
<<blair>>
Took you long enough to say so. Give me a minute to get my things.
<</blair>>
<br />
She was back in your room before you'd finished making space for her.
<br /><br />
<<set $characters.blair.livingLocation = 'bedroom'>>
<<set $characters.blair.happy = Math.min(($characters.blair.happy ?? 0) + 10, 100)>>
<strong>Blair moved back into your bedroom.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br />
<<set _mistressIds = setup.getPersonsForLocation($guests, 'mistress')>>
<<set _introPresenter = _mistressIds.length ? $guests[_mistressIds[0]] : null>>
<<set _introIsAttendant = false>>
<<if !_introPresenter>>
<<set _attGuestQual = setup.getPersonsForLocation($guests, 'attendant').find(id => $guests[id].relationship > 60)>>
<<set _attSlaveQual = setup.getPersonsForLocation($slaves, 'attendant').find(id => $slaves[id].relationship > 60)>>
<<if typeof _attGuestQual !== 'undefined'>>
<<set _introPresenter = $guests[_attGuestQual]>>
<<set _introIsAttendant = true>>
<<elseif typeof _attSlaveQual !== 'undefined'>>
<<set _introPresenter = $slaves[_attSlaveQual]>>
<<set _introIsAttendant = true>>
<</if>>
<</if>>
<<set _slaves = setup.getAvailablePersons18yo($slaves)>>
<<set _randomSlave = $slaves[setup.getRandomElement(_slaves[0] ?? _slaves[1])]>>
<<set _npc = _randomSlave>>
<<set _npc.location = 'basement'>>
<<set _url = _npc.gender == 1 ? 'male' : 'female'>>
<center>
[img[setup.ImagePath+'places/basement/mistress_' + _url + '.jpg']]
</center>
<br />
<<if _introIsAttendant>>
As you stepped into the basement, <<=setup.displayName(_introPresenter)>> paused mid-task, hands still damp, and turned to face you with a thoughtful look.
<br /><br />
<<sayNpc _introPresenter>>
I've been thinking... these people work hard. A proper gathering — food, something to drink — it might do them a world of good.
<</sayNpc>>
<br />
You raised an eyebrow, curious where this was going.
<br /><br />
<<you>>
Go on.
<</you>>
<br />
<<sayNpc _introPresenter>>
Clean bodies, full bellies, a little music. They'd feel human again for a night. Happier people cause less trouble, and they work better for it.
<</sayNpc>>
<br />
It was a practical argument, delivered with quiet sincerity.
<br /><br />
<<you>>
And what would you need?
<</you>>
<br />
<<sayNpc _introPresenter>>
Food enough for everyone, and something to celebrate with. Leave the rest to me.
<</sayNpc>>
<br />
<br />
<<else>>
As you descended into the dank basement, the <<=setup.displayName(_introPresenter)>>'s chilling presence hung heavy in the air, casting long shadows across the stone walls.
<<=setup.pronounceWho(_introPresenter, true)>> piercing gaze met yours as you approached.
<br /><br />
<<sayNpc _introPresenter>>
I have an idea. A way to tighten our grip on these wretched souls.
<</sayNpc>>
<br />
You braced yourself for what was to come, knowing all too well the depths of her depravity.
<br /><br />
<<you>>
Go on
<</you>>
<br />
<<sayNpc _introPresenter>>
We shall host a feast. A celebration of their submission, a testament to our absolute control.
<</sayNpc>>
<br />
Your stomach churned at the thought, but you dared not show weakness in the presence of such malevolence.
<br /><br />
<<you>>
And what purpose will this serve?
<</you>>
<br />
<<=setup.pronounceWho(_introPresenter, true)>> laughter echoed off the walls, a discordant symphony of madness and malice.
<br /><br />
<<sayNpc _introPresenter>>
To break them or to make them more happy?... Your choice.
<</sayNpc>>
<br />
You swallowed hard, the bitter taste of fear coating your tongue like poison.
<br /><br />
<</if>>
<<if _npc>>
<center>
<<actionImage _npc begging>>
</center>
<br />
<<sayNpc _npc>>
Please sir! We would do anything for a decent meal and something outside these cages.
<</sayNpc>>
<br />
<</if>>
<<linkreplace 'Leave'>>
<<if _introIsAttendant>>
You gave a slow nod. <<=setup.displayName(_introPresenter)>> smiled — the quiet, satisfied kind — and got back to work, already planning.
<<else>>
As you turned to leave, the Mistress's laughter followed you like a ghostly specter, a haunting reminder of the darkness that dwelled within us all.
And in the depths of that desolate basement, where shadows danced with the echoes of suffering, you knew that the true horrors had only just begun.
<</if>>
<<set $player.quests.slave_party = true>>
<<set $locationEvents.basement = true>>
<br /><br />
<strong>Now you can throw parties for slaves.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
You reached into your pocket, pulling out a length of rope, your movements swift and sure.
With a dominant grip, you took her wrists, pulling them behind her back, and began to tie her up, the rope biting into her soft flesh.
She let out a soft gasp, her eyes widening with a mix of surprise and excitement as you secured her bindings.
<br /><br />
<<sayNpc $tmpGirl>>
What are you doing? Stop!
<</sayNpc>>
<br />
<center>
<<image 'places/basement/first_visit_tied.jpg'>>
</center>
<br /><br />
<div id="option_finger">
<<linkreplace 'Finger her'>>
<<addmins 5>>
<<set _finger = true>>
Your hands roaming her curves, your fingers tracing the contours of her body, your touch hungry and desperate.
<br /><br />
<<video 'basement/first_visit2_1'>>
<br /><br />
You reached down, your fingers finding her pussy, slipping inside with ease, her wetness coating your digits.
<br /><br />
<<video 'basement/first_visit2_2'>>
<br /><br />
You began to finger her furiously, your fingers moving in and out with a relentless rhythm, your thumb circling her clit, pushing her towards the edge.
Her body shook with each movement, her screams turning to moans.
<br /><br />
<<video 'basement/first_visit2_3'>>
<br /><br />
She let out a loud moan, her body convulsing as you hit a particularly sensitive spot,
her pussy clenching around your fingers, milking them with each movement as she looked right into your eyes, begging to stop.
<br /><br />
<</linkreplace>>
</div>
<div id="option_dp">
<<linkreplace 'Put dick in her mouth'>>
<<addmins 5>>
<<set _dp = true>>
<<if !_finger>>
<<run $('#option_finger').hide()>>
<</if>>
With a swift, forceful movement, you pushed her head forward, your cock sliding into her mouth, inch by inch, until you hit the back of her throat.
<br /><br />
<<video 'basement/first_visit2_4'>>
<br /><br />
She let out a muffled moan, her body shaking with the intensity of the sensation, her hands reaching out, gripping your thighs, her nails digging into your skin,
marking you, claiming you as hers.
<br /><br />
<<video 'basement/first_visit2_5'>>
<br /><br />
She struggled, her body shaking with the effort of resisting, her hands pushing against your thighs, trying to create space between you.
But you overpowered her, your strength unyielding, your grip on her hair tightening, urging her to comply.
<br /><br />
<</linkreplace>>
</div>
<div id="option_fuck">
<<linkreplace 'Fuck her'>>
<<if $tmpGirl.virgin>><<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $tmpGirl.virgin = false>>
<<if !_finger>>
<<run $('#option_finger').hide()>>
<</if>>
<<if !_dp>>
<<run $('#option_dp').hide()>>
<</if>>
<<addmins 10>>
With a swift, dominant movement, you grabbed her ankles, pulling her towards you, her body sliding across the floor with a sickening scrape.
You spread her legs wide, exposing her most intimate parts, her pussy glistening with a mix of her own arousal and the remnants of your earlier activities.
She tried to close her legs, to resist your advances, but you overpowered her, your strength unyielding, your grip tight and unbreakable.
<br /><br />
<<video 'basement/first_visit2_6'>>
<br /><br />
With that, you thrust forward, sheathing yourself fully inside her with one swift, deep movement.
She let out a loud moan, her body convulsing as you filled her, her pussy clenching around your shaft, milking you with each movement.
You could feel every inch of her, her tight, wet walls pulsing with pleasure
<br /><br />
<<sayNpc $tmpGirl>>
Please stop! What I have done to you? Ahh
<</sayNpc>>
<br />
She struggled, her body shaking with the effort of resisting, her hands pushing against the floor, trying to create space between you.
But you overpowered her, your strength unyielding, your grip on her hips tightening, urging her to comply, to take every inch of you.
<br /><br />
<<video 'basement/first_visit2_7'>>
<br /><br />
She shook her head, her eyes flashing with defiance, her body shaking with the effort of resisting.
But you could see the truth in her eyes, the way her body responded to yours, the way her pussy gripped your cock, milking you with each movement.
You knew she wanted this, even if she couldn't admit it to herself.
<br /><br />
<<sayNpc $tmpGirl>>
STOP! PLEASE!
<</sayNpc>>
<br />
<<linkreplace 'Cum inside her'>>
<center>
<<image 'game/misc/creampie_on_back.webp'>>
</center>
<br />
<<horny_reset>>
<<set $tmpGirl.sexStats ??= {}>>
<<set $tmpGirl.sexStats.creampies ??= 0>>
<<set $tmpGirl.sexStats.creampies++>>
<<set $tmpGirl.horny = 0>>
<<set $tmpGirl.sub += randomInteger(20, 30)>>
<<set $tmpGirl.happy = randomInteger(5, 30)>>
With a final, deep thrust, you started to cum deep into her pussy.
You let out a loud groan, your body shaking as you found your release, your hot cum shooting into her, filling her completely, coating her walls, claiming her as yours.
<br /><br />
<<if setup.pregnancyChance($tmpGirl)>>
<<set $tmpGirl.pregnancy_father = 'mc'>>
<<set $tmpGirl.pregnancy = 0>>
<</if>>
<</linkreplace>>
<</linkreplace>>
</div>
<<link 'Leave'>>
<<addmins 5>>
<<goto 'NPC view'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br />
<<set _guest = $guests[$tmpEvent.guestId]>>
<<set _slave = $slaves[$tmpEvent.slaveId]>>
With a grateful nod, <<=setup.displayName(_guest)>> enters the prison cell, his gaze locked on the <<=setup.displayName(_slave)>> inside.
<br />
As the heavy door closes behind him, you can't help but feel a pang of unease.
The fragile balance of trust and survival weighs heavily on your mind.
You stand outside the cell, looking at them in the stale air of the basement.
<br /><br />
<<set $tmpGirl = _slave>>
<<set $tmpGirl.location = 'basement'>>
<<actionImage $tmpGirl 'undress' 'no-text'>>
<<=setup.displayName(_slave)>> looks shocked and takes a look at you for a brief moment. Meanwhile <<=setup.displayName(_guest)>> in excitement is forcefully taking off her clothes as she tries to resist.
<br /><br />
<<sayNpc _slave>>
Stop! Why? Don't touch me. Why are you letting him touch miihhh..
<</sayNpc>>
<br />
<<actionImage $tmpGirl 'bj' 'no-text'>>
<br /><br />
She couldn't finish her sentence as <<=setup.displayName(_guest)>> shoved his dick inside her mouth. She knew she can't resist or there might be consequences.
<br /><br />
<<actionImage $tmpGirl 'bj' 'no-text'>>
<br /><br />
With disappointment in her eyes she looked right at you while sucking <<=setup.displayName(_guest)>>'s dick.
<br /><br />
<<actionImage $tmpGirl 'pussy' 'no-text'>>
<br /><br />
<<=setup.displayName(_guest)>> threw <<=setup.displayName(_slave)>> on her bed and spread her legs. Then he slide his dick into her pussy and let out big moan. <<=setup.displayName(_slave)>> kept quiet all the time.
<br />
Looked that she just wanted this to be over.
<br /><br />
<<sayNpc _guest>>
You're dirty little tease, aren't you?
<</sayNpc>>
<br />
<<actionImage $tmpGirl 'pussy' 'no-text'>>
<br /><br />
<<=setup.displayName(_slave)>> kept quiet as he kept fucking her pussy. She clearly was in discomfort. With each stroke counting, you noticed that <<=setup.displayName(_guest)>> is ready to cum...
<br /><br />
<<actionImage $tmpGirl 'cum_on_back' 'no-text'>>
<br /><br />
He struggled to keep his breath as he pulled out and started to cum all over her back. His spray of semen landed on her back, bed and also some on the cold basement ground.
<br /><br />
<<sayNpc _guest>>
Thank you, I needed that.
<</sayNpc>>
<br />
With a final nod of gratitude, <<=setup.displayName(_guest)>> retreated to upstairs, leaving you to ponder the complexities of compassion and survival in a post-apocalyptic world.
The encounter serves as a reminder that even in the darkest of times, moments of connection and humanity are precious commodities, worth safeguarding amidst the chaos that surrounds you.
<br /><br />
<<link 'Leave'>>
<<horny 20>>
<<if $slaves[$tmpEvent.slaveId].assignedTo !== 'streets'>>
<<set $slaves[$tmpEvent.slaveId].happy -= randomInteger(20, 30)>>
<<set $slaves[$tmpEvent.slaveId].relationship -= randomInteger(20, 30)>>
<</if>>
<<set $slaves[$tmpEvent.slaveId].horny = 0>>
<<set $guests[$tmpEvent.guestId].horny = 0>>
<<set $guests[$tmpEvent.guestId].happy = Math.min(($guests[$tmpEvent.guestId].happy ?? 0) + randomInteger(20, 30), 100)>>
<<set $guests[$tmpEvent.guestId].relationship = Math.min(($guests[$tmpEvent.guestId].relationship ?? 0) + randomInteger(5, 10), 100)>>
<<unset $tmpEvent, $tmpGirl>>
<<goto 'Basement'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br />
<<addmins 30>>
<<set _guest = $guests[$tmpEvent.guestId]>>
<<set _slave = $slaves[$tmpEvent.slaveId]>>
<<=setup.displayName(_guest)>>'s gratitude is evident as he nods, understanding the unspoken agreement.
You step into the cell, the confined space feeling both intimate and suffocating. <<=setup.displayName(_slave)>> watches you cautiously, unsure of your intentions.
<br /><br />
<<video 'basement/guest_ask_threesome1'>>
<br /><br />
<<sayNpc _slave>>
What do you want?
<</sayNpc>>
<br />
<<sayNpc _guest>>
May I? I want to taste her really bad.
<</sayNpc>>
<br />
<<=setup.displayName(_guest)>> slowly removes all remaining <<=setup.displayName(_slave)>>'s clothes and bends her over the chair in the middle of the room. He gets down on his knees and
playfully slides his hand between her leg following with kisses on the outside her leg. When he reaches her pussy, he starts to lick her.
<br /><br />
<<video 'basement/guest_ask_threesome2'>>
<br /><br />
<<=setup.displayName(_slave)>> lets out soft moan as <<=setup.displayName(_guest)>>'s tongue plays with her pussy. Meanwhile you undress and start to stroke your dick. <br />
<<=setup.displayName(_slave)>> ignores <<=setup.displayName(_guest)>> and her eyes are fully on you and your dick. <<=setup.displayName(_guest)>> notices that all her attention is on you.
<br /><br />
<<video 'basement/guest_ask_threesome3'>>
<br /><br />
He grabs his dick, rubs it against her pussy and slides it in. <<=setup.displayName(_slave)>> bites her upper lip and lets out small moan but still focusing only on you.
She looks at your dick again and again before you decide to stand up and walk toward her.
<br /><br />
<<video 'basement/guest_ask_threesome4'>>
<br /><br />
As you reach her, without hesitation you stick your dick into her mouth. She doesn't resist and almost look like she was waiting for it.
As your dick slipes out of her mouth, she grabs it and puts it back in. She continues to suck it for a good time before taking it out and whispering to you something.
<br /><br />
<<sayNpc _slave>>
Fuck me.
<</sayNpc>>
<br />
<<video 'basement/guest_ask_threesome5'>>
<br /><br />
You pull <<=setup.displayName(_slave)>> off <<=setup.displayName(_guest)>>'s dick and throw her onto yours. On first entry she lets out very loud moan.
<br />
As you started pushing your hips slowly back and forth as you started fucking her, <<=setup.displayName(_guest)>> got behind her and put his dick into her asshole. She jumped by surprise but continued to ride you.
<br /><br />
<<video 'basement/guest_ask_threesome6'>>
<br /><br />
You decide to turn her around. <<=setup.displayName(_guest)>> sits down on the chair and you lift her on him. In the same moment you both slide dicks into her holes and start to thrust with good speed.
<br />
She starts to moan from joy as you both move your dicks back and forth into her wet pussy and stretched asshole.
<br /><br />
<<sayNpc _slave>>
Oh fuck, oh fuck....oh my god, oh my god.
<</sayNpc>>
<br />
Her legs start to shake and she tries to find the right place for her hands. She grabs her ass, your hand, <<=setup.displayName(_guest)>>'s hand and in the end grips hard into <<=setup.displayName(_guest)>>'s hands.
<br /><br />
<<linkreplace 'Cum'>>
<center>
[img[setup.ImagePath+'places/basement/guest_ask_fuck_cum.webp']]
</center>
<br /><br />
As you start to cum inside her pussy she leans towards you and <<=setup.displayName(_guest)>>'s dick slips out. He sprays all her back with his cum.
<br /><br />
When you eventually leave the cell, the atmosphere in the basement feels lighter, as if a weight has been lifted.
<<=setup.displayName(_guest)>> nods his thanks, a newfound understanding shining in his eyes. <<=setup.displayName(_slave)>> watches you go, a small smile playing at the corners of her lips.
<br /><br />
<<link 'Leave'>>
<<set $slaves[$tmpEvent.slaveId].anal = Math.min(($slaves[$tmpEvent.slaveId].anal + 1), 100)>>
<<set $slaves[$tmpEvent.slaveId].anal = Math.min(($slaves[$tmpEvent.slaveId].bj + 1), 100)>>
<<set $slaves[$tmpEvent.slaveId].happy += randomInteger(10, 20)>>
<<set $slaves[$tmpEvent.slaveId].relationship += randomInteger(5, 10)>>
<<set $slaves[$tmpEvent.slaveId].horny = 0>>
<<set $guests[$tmpEvent.guestId].horny = 0>>
<<set $guests[$tmpEvent.guestId].happy += randomInteger(10, 20)>>
<<unset $tmpEvent>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>><h1 class="ptitle">BASEMENT</h1>
<br />
<<addmins 30>>
<<set _guest = $guests[$tmpEvent.guestId]>>
<<set _slave = $slaves[$tmpEvent.slaveId]>>
A soft shuffle catches your attention, and you turn to see <<=setup.displayName(_guest)>>, one of your guests, peering cautiously around the corner.
His eyes fixated on <<=setup.displayName(_slave)>>. There's hunger and longing in his gaze, tinged with desperation that mirrors the bleakness of your existence.
<br /><br />
<center>
[img[setup.ImagePath+'places/basement/guests_asks_fuck_slave.jpg']]
</center>
<br />
When he finally notices you, his body jolts in surprise, and his request hangs heavy in the air.
You study his face, the lines of exhaustion etched deep into his skin, the fear and uncertainty in his eyes.
The post-apocalyptic world has stripped you of many things, but it seems some desires remain untouched by the ravages of time.
<br /><br />
<<sayNpc _guest>>
Sorry, <<=setup.npc.mcName(_guest)>>...
<</sayNpc>>
<<sayNpc _guest>>
It's just... it's been so long since...
<</sayNpc>>
<br />
His words trail off, lost in the abyss of unspoken yearning.
<br /><br />
<<sayNpc _guest>>
Maybe I can have sex with her? Just once.
<</sayNpc>>
<br />
<div id="option_allow">
<<link 'Allow him'>>
<<set _guest.relationship = (Math.min(100, _guest.relationship + 10))>>
<<goto 'Basement - guest asks to fuck slave - allow'>>
<</link>>
</div>
<div id="option_threesome">
<<if recall($suppCode)>>
<<link "Let's do it together">>
<<set _guest.relationship = (Math.min(100, _guest.relationship + 5))>>
<<goto 'Basement - guest asks to fuck slave - threesome'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Let's do it together
<<notPatreonIcon>>
</div>
<</if>>
</div>
<<linkreplace 'No'>>
<<run $('#option_allow, #option_threesome').hide()>>
<<set _guest.relationship = (Math.max(0, _guest.relationship - 10))>>
<br /><br />
As <<=setup.displayName(_guest)>> nods silently, retreating into the shadows of the basement, you can't help but wonder how much of your humanity you have already sacrificed in the name of survival.
The line between right and wrong blurs in the harsh light of a world that has crumbled, leaving you to pick up the shattered pieces of your existence.
<br /><br />
<<link 'Leave'>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>><h1 class="ptitle">
BATHHOUSE
</h1>
<br />
<<set _hasAttendants = ($massShowerAttendantCount ?? 0) > 0>>
<<set _mistressGuestId = $massShowerMistressId>>
<<set _hasMistress = !_hasAttendants && typeof _mistressGuestId !== 'undefined' && setup.isAtWork($guests[_mistressGuestId], $weather)>>
<<set _minsPerSlave = (_hasAttendants || _hasMistress) ? 2 : 5>>
<<set _happyBonus = _hasAttendants ? 10 : (_hasMistress ? 3 : 5)>>
<<set _washed = []>>
<<for _i to 0; _i lt $slaves.length; _i++>>
<<set _s = $slaves[_i]>>
<<if setup.isAtWork(_s, $weather)>>
<<continue>>
<</if>>
<<run setup.wash(_s, { beautyMultiplier: 7, washDays: 7, happyBonus: _happyBonus, markWashed: true })>>
<<set $slaves[_i] = _s>>
<<run _washed.push(setup.displayName(_s))>>
<<addmins _minsPerSlave>>
<</for>>
<<set _attendantNames = $massShowerAttendantNames ?? []>>
<<unset $massShowerMistressId, $massShowerAttendantCount, $massShowerAttendantNames>>
<center>
<<image 'game/misc/massshower.gif'>>
</center>
<br /><br />
<<if _hasAttendants>>
<<=_attendantNames.join(' and ')>> bring each slave through the shower individually, scrubbing them down with soap and water.
<<elseif _hasMistress>>
<<=setup.displayName($guests[_mistressGuestId])>> lines them up and runs them through the shower one by one while you watch.
<<else>>
You bring them upstairs one by one and let them wash under the hot water.
<</if>>
<br /><br />
<strong>Mass shower complete.</strong> <<=_washed.join(', ')>> washed and feeling better. <strong>+<<=_happyBonus>> happiness each.</strong>
<br /><br />
<<link 'Back'>>
<<goto 'Basement'>>
<</link>><h1 class="ptitle">SETTLEMENT</h1>
<br />
<<addhours 2>>
<<energy -20>>
/* Pick from all available adult slaves */
<<set _allSlaveIds = []>>
<<set _availF = setup.getAvailablePersons18yo($slaves)[0] ?? []>>
<<set _availM = setup.getAvailablePersons18yo($slaves)[1] ?? []>>
<<set _allSlaveIds = _availF.concat(_availM)>>
<<set _punishedIds = []>>
<<set _count = Math.min(_allSlaveIds.length, either(2, 2, 3))>>
<<for _pi to 0; _pi lt _count; _pi++>>
<<set _pick = setup.getRandomElement(_allSlaveIds.filter(id => !_punishedIds.includes(id)))>>
<<if typeof _pick !== 'undefined'>>
<<run _punishedIds.push(_pick)>>
<</if>>
<</for>>
<<set _p1 = $slaves[_punishedIds[0]] ?? null>>
<<set _p2 = $slaves[_punishedIds[1]] ?? null>>
<<set _p3 = $slaves[_punishedIds[2]] ?? null>>
/* Determine image variant based on majority gender */
<<set _maleCount = _punishedIds.filter(id => $slaves[id]?.gender === 1 || $slaves[id]?.gender === 3).length>>
<<set _imgVariant = _maleCount > _punishedIds.length / 2 ? 'm' : 'f'>>
<<set _mistressIds = setup.getPersonsForLocation($guests, 'mistress')>>
<<set _hasMistress = _mistressIds.length > 0>>
<<set _mistress = _hasMistress ? $guests[_mistressIds[0]] : null>>
<!-- #### public_punishment_f.jpg | Post-apocalyptic settlement square, crowd of survivors watching a public punishment of two women, man standing in the center, bright midday light, grim atmosphere --ar 5:3 --p -->
<!-- #### public_punishment_m.jpg | Post-apocalyptic settlement square, crowd of survivors watching a public punishment of two men kneeling, authoritative man standing over them, harsh daylight --ar 5:3 --p -->
<center>
<<image `'places/basement/public_punishment_' + _imgVariant + '.jpg'`>>
</center>
<br />
You had them brought up from the basement and marched out into the square. No announcement, no explanation. Word spread on its own — the way it always did here — and by the time you reached the centre, people had already stopped what they were doing.
<br /><br />
Settlers lined the edges. Everyone could see.
<br /><br />
<<if _hasMistress>>
<<sayNpc _mistress>>
Stay where you are. All of you. Watch.
<</sayNpc>>
<br />
<<=setup.displayName(_mistress)>> stepped out ahead of the group, ensuring no one looked away.
<<else>>
You pointed at <<=_p1 ? setup.displayName(_p1) : 'one of them'>> first. Then <<=_p2 ? setup.displayName(_p2) : 'another'>>.
The square went quiet.
<</if>>
<br /><br />
<<linkreplace 'Begin the punishment'>>
<!-- #### punishment_kneel_f.jpg | Two women kneeling in a post-apocalyptic settlement square in broad daylight, crowd watching silently, tense atmosphere --ar 5:3 --p -->
<!-- #### punishment_kneel_m.jpg | Two men forced to kneel in a post-apocalyptic settlement square, crowd of onlookers surrounding them, daylight, tense grim atmosphere --ar 5:3 --p -->
<center>
<<image `'places/basement/punishment_kneel_' + _imgVariant + '.jpg'`>>
</center>
<br />
<<if _p1>>
<<=setup.displayName(_p1)>> was brought forward first — made to kneel in the open, in plain sight, in front of everyone they'd spent months living beside. No explanation. No warning. Just the flat fact of it.
<</if>>
<<if _p2>>
<<=setup.displayName(_p2)>> followed, pulled up beside <<=_p1 ? setup.pronounceWho(_p1) : 'them'>> and forced into the same position.
<</if>>
<<if _p3>>
<<=setup.displayName(_p3)>> came on <<=_p3 ? setup.pronounceWhos(_p3) : 'their'>> own when you looked at <<=_p3 ? setup.pronounceWho(_p3) : 'them'>>.
<</if>>
<br /><br />
The square was completely still. No one looked away.
<br /><br />
You walked a slow circle around them. In public, out in the open, the silence carried further.
<br /><br />
<<linkreplace 'Continue'>>
<!-- #### punishment_action_f.jpg | Man publicly punishing a kneeling woman in a post-apocalyptic settlement square, crowd watching in silence, harsh daylight --ar 5:3 --p -->
<!-- #### punishment_action_m.jpg | Man publicly punishing a kneeling man in a post-apocalyptic settlement square, crowd of silent onlookers, harsh daylight --ar 5:3 --p -->
<center>
<<image `'places/basement/punishment_action_' + _imgVariant + '.jpg'`>>
</center>
<br />
The punishment was methodical and unhurried. Straps. Hands. Whatever was at hand. The sound of it carried across the square in the open air — and the square made no sound back.
<br /><br />
<<if _p1>>
<<if (_p1.traits ?? []).includes('masochist')>>
<<=setup.displayName(_p1)>> made a noise that wasn't quite pain. Which was its own kind of message to everyone watching.
<<else>>
<<=setup.displayName(_p1)>> didn't cry out until the third stroke. By the fifth <<=setup.pronounceWhat(_p1)>> had gone somewhere else entirely.
<</if>>
<</if>>
<<if _p2>>
<<if (_p2.traits ?? []).includes('masochist')>>
<<=setup.displayName(_p2)>> met your eyes at one point. There was something complicated in them.
<<else>>
<<=setup.displayName(_p2)>> kept <<=setup.pronounceWhos(_p2)>> head down and didn't fight it.
<</if>>
<</if>>
<br /><br />
Around the square, the watchers stood rigid. Some had gone pale. A few couldn't look — though they didn't dare turn away either.
<br /><br />
<<linkreplace 'Make them submit'>>
<<if _hasMistress>>
<<sayNpc _mistress>>
Say it. Loud enough for everyone to hear.
<</sayNpc>>
<br />
<</if>>
<<if _p1>>
<<=setup.displayName(_p1)>> said it. Loud enough. The words came out small and flat — submission stripped of anything except compliance.
<br /><br />
<</if>>
<<if _p2>>
<<=setup.displayName(_p2)>> followed. <<if (_p2.traits ?? []).includes('masochist')>>Said it with something almost like relief.<br /><<else>>Said it quietly and didn't raise <<=setup.pronounceWhos(_p2)>> head.<br /><</if>>
<</if>>
<<if _p3>>
<<=setup.displayName(_p3)>> didn't need to be asked twice.
<br />
<</if>>
<br />
You looked around the square once. Nobody moved.
<br /><br />
That was the point. Not the pain. Not the words. The stillness after — and the fact that everyone had seen it.
<br /><br />
/* Apply stat changes to punished slaves */
<<for _pi, _pid range _punishedIds>>
<<set _ps = $slaves[_pid]>>
<<if _ps>>
<<set _ps.sub = Math.min((_ps.sub ?? 0) + 20, 100)>>
<<if (_ps.traits ?? []).includes('masochist')>>
<<set _ps.happy = Math.min((_ps.happy ?? 0) + 5, 100)>>
<<else>>
<<set _ps.happy = Math.max((_ps.happy ?? 0) - 10, -100)>>
<</if>>
<</if>>
<</for>>
/* All other slaves watching: submission +10 */
<<for _si, _slave range $slaves>>
<<if !_punishedIds.includes(_si) && setup.getAge(_slave) >= 18>>
<<set $slaves[_si].sub = Math.min(($slaves[_si].sub ?? 0) + 10, 100)>>
<</if>>
<</for>>
/* Voluntary guests in basement witness it: submission +5 */
<<for _gi, _guest range $guests>>
<<if (_guest.basementVoluntary ?? false) && setup.getAge(_guest) >= 18>>
<<set $guests[_gi].sub = Math.min(($guests[_gi].sub ?? 0) + 5, 100)>>
<</if>>
<</for>>
<strong>
<<if _p1>><<=setup.displayName(_p1)>>: Sub +20<<if (_p1.traits ?? []).includes('masochist')>>, Happy +5<<else>>, Happy −10<</if>><br /><</if>>
<<if _p2>><<=setup.displayName(_p2)>>: Sub +20<<if (_p2.traits ?? []).includes('masochist')>>, Happy +5<<else>>, Happy −10<</if>><br /><</if>>
<<if _p3>><<=setup.displayName(_p3)>>: Sub +20<<if (_p3.traits ?? []).includes('masochist')>>, Happy +5<<else>>, Happy −10<</if>><br /><</if>>
All other slaves: Sub +10<br />
<<if ($guests.some(g => g.basementVoluntary))>>Watching guests: Sub +5<br /><</if>>
</strong>
<br />
<<link 'Return'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><<set _slavesAvailable = setup.getAvailablePersons18yo($slaves)>>
<<set _orgyFemales = setup.getRandomPersons((_slavesAvailable[0] ?? []).filter(i => !$slaves[i].chastityBelt), 4)>>
<<set _orgyMales = setup.getRandomPersons(_slavesAvailable[1], 4)>>
<<set _orgyMale1 = $slaves[_orgyMales[0]]>>
<<set _orgyMale2 = $slaves[_orgyMales[1]]>>
<<set _orgyMale3 = $slaves[_orgyMales[2]]>>
<<set _orgyMale4 = $slaves[_orgyMales[3]]>>
<<set _orgyFemale1 = $slaves[_orgyFemales[0]]>>
<<set _orgyFemale2 = $slaves[_orgyFemales[1]]>>
<<set _orgyFemale3 = $slaves[_orgyFemales[2]]>>
<<set _orgyFemale4 = $slaves[_orgyFemales[3]]>>
<<set _orgyFemale1.virgin = false>>
<<set _orgyFemale2.virgin = false>>
<<set _orgyFemale3.virgin = false>>
<<set _orgyFemale4.virgin = false>>
In the corner, near a half-collapsed wall, you notice a small group forming. <<=setup.displayName(_orgyMale1)>> and <<=setup.displayName(_orgyMale2)>>
leaning in close to a <<=setup.displayName(_orgyFemale1)>> perched on the edge of a battered couch as <<=setup.displayName(_orgyFemale2)>> walks behind her and rips open her top.
<br /><br />
<center>
<<image 'places/basement/orgy/intro1.webp'>>
</center>
<br />
<<=setup.displayName(_orgyFemale1)>>’s lips curled into a slow, knowing smile. She tilted her head, looking up at them through half-lidded eyes, taking another sip of her drink.
<br /><br />
<div id="option_stop">
<<linkreplace 'Stop them'>>
They look at you for a brief moment with submission in their eyes, nods and gets dressed and slowly spread across the room.
<<run $('#option_watch').hide()>>
<br /><br />
<</linkreplace>>
</div>
<div id="option_watch">
<<linkreplace 'Keep watching'>>
<<run $('#option_stop').hide()>>
The men exchanged glances, their confidence faltering for a heartbeat before one of them, emboldened by the alcohol, laughed.
<br /><br />
<<sayNpc _orgyMale1>>
We’ll take good care of you.
<</sayNpc>>
<br />
Then he pulled out his dick and started to stroke it as <<=setup.displayName(_orgyFemale3)>> watched him with a smirk on her face before sitting closer to him.
<br /><br />
<center>
<<image 'places/basement/orgy/intro2.webp'>>
</center>
<br />
The atmosphere in that corner shifted, turning darker, more heated. The men were no longer talking, their hands growing bolder, their breaths coming faster.
<br />
Soon enough <<=setup.displayName(_orgyMale1)>>'s dick was already in <<=setup.displayName(_orgyFemale3)>>'s hand as she stroked it.
<br /><br />
Around them, the party continued, people too lost in their own pleasures to notice the tableau unfolding in the shadows as <<=setup.displayName(_orgyFemale1)>> was helped to undress further.
<br /><br />
<center>
<<image 'places/basement/orgy/intro3.webp'>>
</center>
<br />
Meanwhile you looked back at <<=setup.displayName(_orgyFemale3)>>. She leaned towards <<=setup.displayName(_orgyMale1)>> and kissed him passionately.
In the same moment <<=setup.displayName(_orgyFemale4)>> already joined them. Why they were busy kissing, she got down and sucked <<=setup.displayName(_orgyMale1)>>
dick while he was busy with <<=setup.displayName(_orgyFemale3)>>.
<br /><br />
<center>
<<image 'places/basement/orgy/intro4.webp'>>
</center>
<br />
As you turned away for a moment, the music swelled, drowning out the sounds from the corner. Then you looked back at <<=setup.displayName(_orgyFemale1)>>.
She was already stripped of her clothes fully, lifted on the table and used by <<=setup.displayName(_orgyMale2)>> and <<=setup.displayName(_orgyMale3)>>.
<br /><br />
<center>
<<image 'places/basement/orgy/intro5.webp'>>
</center>
<br />
The lines between strangers blurred as hands found skin, as mouths met in heated kisses.
It was a raw, primal display, a reminder that even in the ruins of civilization, there were still some things that couldn’t be destroyed.
<br /><br />
<center>
<<image 'places/basement/orgy/intro6.webp'>>
</center>
<br />
They were fucking as there was no tomorrow. They forgot that they are slaves and enjoyed each moment of this. Soon enough They let her go and separated in couples and continued the action.
Some girls were sucking dicks, while others were already pressed against walls and tables and fucked raw.
<br /><br />
<center>
<<image 'places/basement/orgy/intro7.webp'>>
</center>
<br />
<<sayNpc _orgyFemale1>>
Fuck, fuck, fuck...
<</sayNpc>>
<br />
<<sayNpc _orgyFemale2>>
Oh yes! Don't stop!
<</sayNpc>>
<br />
<center>
<<image 'places/basement/orgy/intro8.webp'>>
</center>
<br />
<div id="option_join">
<<linkreplace 'Join them'>>
<<run $('#option_continue').hide()>>
<<=setup.displayName(_orgyFemale1)>> on the table looked up as you approached, her gaze locking onto yours. Her eyes were half-lidded, her smile both inviting and knowing, as if she’d sensed your interest from across the room.
She told guy to fuck off and spread her legs for you...
<br /><br />
<center>
<<image 'places/basement/orgy/join1.webp'>>
</center>
<br />
She locked eyes with yours as you got in front of her and with slow thrust, pushed your dick deep into her.
<br /><br />
<<sayNpc _orgyFemale1>>
Oh, yes. Fuck me right now. Show them how it's done.
<</sayNpc>>
<br />
Her laughter rang out, mingling with the low groans and gasps that filled the room.
<br /><br />
<center>
<<image 'places/basement/orgy/join2.webp'>>
</center>
<br /><br />
You felt hands sliding over your back, your shoulders, a shared rhythm taking over as you lost yourself in the moment.
Then you saw <<=setup.displayName(_orgyFemale2)>> dropping on her knees as guys stood around her and started to cum all over her face.
<br /><br />
<center>
<<image 'places/basement/orgy/cum4.webp'>>
</center>
<br />
<div id="option_cum_inside">
<<linkreplace 'Cum inside her'>>
<<run $('#option_ending').show()>>
<<run $('#option_cum_faces').hide()>>
<<horny_reset>>
<<if setup.pregnancyChance(_orgyFemale1)>>
<<set _orgyFemale1.pregnancy_father = 'mc'>>
<<set _orgyFemale1.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
And then, everything tightened, your body tensing as the wave of release crashed over you. A rush of heat and pleasure surged through you, powerful and overwhelming, your world shattering into a million pieces as filled her pussy.
<br /><br />
<center>
<<image 'game/misc/cum_in_pussy2.webp'>>
</center>
<br />
She lay there, completely at ease, her body still flushed and glowing with the aftermath of pleasure. One of the guys leaned down to kiss her shoulder, his touch gentle, reverent. She turned her head, meeting his lips with a slow, lingering kiss, her hand reaching out to caress his cheek.
The other man ran his fingers through her hair, his expression a mix of admiration and exhaustion.
<br /><br />
<</linkreplace>>
</div>
<div id="option_cum_faces">
<<linkreplace 'Cum on girls faces'>>
<<horny_reset>>
<<run $('#option_cum_inside').hide()>>
<<run $('#option_ending').show()>>
You pulled out and gathered all girls around yourself. You demanded that they drop on their knees - and they did.
<br /><br />
<center>
<<image 'places/basement/orgy/cum2.webp'>>
</center>
<br />
<<=setup.displayName(_orgyFemale1)>> and <<=setup.displayName(_orgyFemale2)>> in the front with their mouths wide open, catched all of your cum. Girls in the back giggled and hold other girl hairs.
<br /><br />
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="option_continue">
<<linkreplace 'Continue to watch'>>
<<run $('#option_join').hide()>>
<<run $('#option_ending').show()>>
The room seemed to pulse with their shared climax, a storm of bodies reaching that fevered peak.
The girl on the table shuddered again, her voice hoarse from crying out, her body limp with satisfaction as the men around her reached their own release.
One after another, moans turned to groans, movements slowed, and the frantic energy of the room began to ebb.
<br /><br />
<center>
<<image 'places/basement/orgy/cum1.webp'>>
</center>
<br />
<<=setup.displayName(_orgyMale2)>> cums into <<=setup.displayName(_orgyFemale2)>>'s pussy.
<br /><br />
<center>
<<image 'places/basement/orgy/cum3.webp'>>
</center>
<br />
<<=setup.displayName(_orgyMale1)>> cums on <<=setup.displayName(_orgyFemale1)>>'s face but not all of it as he turns towards <<=setup.displayName(_orgyFemale3)>>.
<br /><br />
<center>
<<image 'places/basement/orgy/cum4.webp'>>
</center>
<br />
Then rest of the guys stand around <<=setup.displayName(_orgyFemale3)>> as she is on her knees and cums all over her face.
<br /><br />
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="option_ending" style="display:none">
You turned away, leaving the others to their afterglow, the memory of what you’d seen lingering in your thoughts.
Outside, the world was still broken, still brutal—but for those few minutes, you’d witnessed something rare:
a spark of life, a reminder that even in the darkest places, people could still find a reason to feel alive.
<br /><br />
<<link 'Leave'>>
<<addhours 1>>
<<goto 'Basement'>>
<</link>>
</div><h1 class="ptitle">BASEMENT</h1>
<br />
<<addhours 6>>
As the slaves gathered, their weary faces lit up with anticipation. Some wore patched-up clothing, bearing the stains of labor and hardship, while others sported makeshift adornments or half naked, a feeble attempt to inject color into their bleak existence.
They all awaited the Overseer's signal, a nod from the shadowy figure who ruled their lives.
<br /><br />
With a gesture, the Overseer signaled the commencement of the festivities. Slaves sit down at the table.
<br /><br />
<center>
[img[setup.ImagePath+'places/basement/slave_party.jpg']]
</center>
<br /><br />
The air filled with the aroma of roasted meat and grilled vegetables, a rare treat in a world where sustenance was often meager and flavorless.
The slaves hesitated at first, unsure whether to embrace this moment of reprieve or remain cautious, conditioned by years of adversity.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_champagne.webp']]
</center>
<br /><br />
With each sip, the tension of survival ebbed away, replaced by a sense of camaraderie and fleeting joy.
Slaves who had once been strangers found themselves sharing stories and laughter, momentarily forgetting the harsh realities that awaited them after the party.
<br /><br />
<<set _slavesAvailable = setup.getAvailablePersons18yo($slaves)>>
<<for _slaveI, _slave range $slaves>>
<<set $slaves[_slaveI].happy = Math.min($slaves[_slaveI].happy + 20, 100)>>
<<set $slaves[_slaveI].relationship = Math.min($slaves[_slaveI].relationship + 10, 100)>>
<<set $slaves[_slaveI].quests ??= {}>>
<<set $slaves[_slaveI].quests.lastInteractionDay = $game.day>>
<</for>>
<<if setup.cabinInventory.count('champagne')>>
<div id="option_champagne">
<<linkreplace 'Bring another champagne'>>
<<set _champagne = true>>
<center>
[img[setup.ImagePath+'places/basement/slave_party_kiss.webp']]
</center>
<br /><br />
As the night progressed and the champagne continued to flow, the atmosphere grew increasingly charged with excitement and desire.
Slaves, emboldened by the heady concoction, cast aside their reservations and embraced one another with newfound fervor.
<br /><br />
<<for _slaveI, _slave range $slaves>>
<<set $slaves[_slaveI].happy = Math.min($slaves[_slaveI].happy + 10, 100)>>
<<set $slaves[_slaveI].relationship = Math.min($slaves[_slaveI].relationship + 5, 100)>>
<</for>>
<<if ((_slavesAvailable[0] ?? []).length) >= 4 && ((_slavesAvailable[1] ?? []).length) >= 3>>
<<include 'Basement - slave party orgy'>>
<</if>>
<</linkreplace>>
</div>
<</if>>
<<set _partyMistressIds = setup.getPersonsForLocation($guests, 'mistress')>>
<<set _partyMistress = _partyMistressIds.length ? $guests[_partyMistressIds[0]] : null>>
<<set _partyAttendant = null>>
<<if !_partyMistress>>
<<set _guestAttIds = setup.getPersonsForLocation($guests, 'attendant')>>
<<set _slaveAttIds = setup.getPersonsForLocation($slaves, 'attendant')>>
<<if _guestAttIds.length>>
<<set _partyAttendant = $guests[_guestAttIds[0]]>>
<<elseif _slaveAttIds.length>>
<<set _partyAttendant = $slaves[_slaveAttIds[0]]>>
<</if>>
<</if>>
<<set _partySignalLabel = _partyMistress ? 'Nod at your overseer' : 'Signal to the attendant'>>
<<linkreplace `_partySignalLabel`>>
<<if !_champagne>>
<<run $('#option_champagne').hide()>>
<</if>>
<<video 'basement/slave_party1'>>
<br /><br />
<<set _girlSlaves = setup.getRandomPersonIdsGirls($slaves.filter(s => !s.chastityBelt), 2)>>
<<set _npc1 = $slaves[_girlSlaves[0]]>>
<<set _npc2 = $slaves[_girlSlaves[1]]>>
<<if _partyMistress>>
With a commanding gesture, <<=setup.displayName(_partyMistress)>> presented the <<=setup.displayName(_npc1)>> before you, a silent offering in the midst of revelry.
The air grew heavy with anticipation as the settlers around you fell silent, their whispers hushed in anticipation of what would unfold.
<<else>>
With a warm smile, <<=setup.displayName(_partyAttendant)>> gently guided <<=setup.displayName(_npc1)>> toward you — <<=setup.pronounceWhos(_npc1)>> skin soft from lotion, smelling faintly of soap and perfume, freshly bathed and prepared for your pleasure.
The room quieted as the guests sensed what was unfolding, eyes turning toward you with knowing anticipation.
<</if>>
<br /><br />
As you unzipped your pants and pulled out your dick another girl from back of the room shouted.
<br /><br />
<<sayNpc _npc2>>
I want to help <<=setup.pronounceWho(_npc1)>>!
<</sayNpc>>
<br />
<<video 'basement/slave_party2'>>
<br /><br />
As they both were on their knees, they took turn on sucking your dick. In their eyes you noticed that they are drunk and probably almost for anything.
<br /><br />
<<video 'basement/slave_party3'>>
<br /><br />
So you spread <<=setup.displayName(_npc1)>> legs and slide your dick inside <<=setup.pronounceWhos(_npc1)>> ass. Meanwhile <<=setup.displayName(_npc2)>> leans closer and waits <<=setup.pronounceWhos(_npc2)>> turn when <<=setup.pronounceWhat(_npc2)>> will be able to suck your dick again...
<br />
And that happens some thrusts later as you move your dick from ass to mouth and let <<=setup.pronounceWho(_npc2)>> do <<=setup.pronounceWhos(_npc2)>> job.
<br /><br />
<<video 'basement/slave_party4'>>
<br /><br />
As <<=setup.displayName(_npc2)>> keeps sucking your hard dick, another slave decides to join for a taste. She instantly pushes both girls aside and takes the lead as other girls try to focus on other your body parts.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
<<image 'places/basement/slave_party_cum.webp'>>
</center>
<br />
As you cum on <<=setup.displayName(_npc1)>> face, <<=setup.displayName(_npc2)>> wants some of you and decides to lick your cum off <<=setup.pronounceWhos(_npc1)>> face.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<<linkreplace 'Bring slave to your bedroom'>>
<table id="slaves">
<<for _slaveI, _slave range $slaves>>
<<if setup.getAge(_slave) < 18 || _slave.chastityBelt>>
<<continue>>
<</if>>
<<capture _slaveI, _slave>>
<<set _genderClass = 'gender-' + setup.genderClass(_slave)>>
<tr>
<td>
<span @class="''+_genderClass+''">
<<link _slave.name>>
<<set $slaveId = _slaveI>>
<<set $tmpGirl = _slave>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirlBack = 'Bedroom'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirlViewBack = 'Bedroom'>>
<<set $tmpGirl.corruption += 20>>
<<set $tmpGirl.submission += 20>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 20, 100)>>
<<set $tmpGirl.drunk = randomInteger(50, 100)>>
<<fuck $tmpGirl>>
<</link>>
</span>
<<=setup.npcListInfo(_slave)>>
</td>
<td>
Beauty: <<print _slave.beauty>>
</td>
<td>
Age: <<=setup.getAge(_slave)>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<<set _npc = $slaves[$tmpEvent.id]>>
<br />
The heavy clank of the metal door echoes through the stale air as you approach the row of cells.
As you reach the one at the end, you notice the door is slightly ajar, the lock is broken. Panic seizes you as you fling the door open, revealing an empty cell.
<br /><br />
Heart pounding, you rush back upstairs, your mind racing with possibilities.
Fear grips you as you consider the consequences of a prisoner escaping into the lawless wasteland outside. The realization dawns upon you that your carefully constructed facade of control is crumbling.
<br /><br />
Without hesitation, you burst out into the daylight, squinting against the blinding sun.
Your focus sharpens as you spot a figure scrambling over the wood fence at the perimeter of your settlement. Adrenaline surges through your veins as you sprint toward the escapee.
<br /><br />
<<video 'basement/escape2_1'>>
<br /><br />
<<sayNpc _npc>>
Please! Let me go! I won't come back, I promise!
<</sayNpc>>
<br />
She begs, her voice choked with fear and desperation. Her eyes search yours for a hint of mercy, but you remain stoic, your own survival instincts kicking in.
<br /><br />
<<video 'basement/escape2_2'>>
<br /><br />
As you secure the makeshift bindings around her wrists, her struggles intensify, the frayed rope biting into her skin. The pleas for mercy grow louder,
echoing in the desolation that surrounds you.
<<if $slaves.length > 1>>
The wind carries her desperate cries, blending with the distant wails of other survivors, creating a haunting symphony of despair.
<</if>>
<br /><br />
<div id="option_fuck">
<<linkreplace 'Force blowjob'>>
<<set _fucked = true>>
<<set $player.goodwill-->>
<<you>>
Drop to your knees.
<</you>>
<br />
<<video 'basement/escape2_3'>>
<br /><br />
Her eyes, once filled with defiance, now reflect a mix of fear and submission. You pull out your dick and forcefully push it inside her mouth and force her to suck you.
<br /><br />
<<sayNpc _npc>>
Yes, sir! I am sorry! That won't happen again!
<</sayNpc>>
<br />
<<set $guests[$tmpEvent.id].sub += 10>>
<strong><<=setup.displayName(_npc)>> submission increased by 10</strong>
<br /><br />
<<linkreplace 'Fuck her'>>
<<set $player.goodwill-->>
<<video 'basement/escape2_4'>>
<br /><br />
You push <<=setup.displayName(_npc)>> against the ladder, her breasts colliding with the cool metal. The air thickens with tension as you lift her leg, accentuating the vulnerability of her position.
<br />
She begs one last time before you shove your dick inside her pussy and forcefully and aggressively fuck her pussy. She lets out moans mixed with cry.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<set $slaves[$tmpEvent.id].horny = 0>>
<<setNpcStats 'slave' $tmpEvent.id 'happy' 5>>
<<if setup.pregnancyChance($slaves[$tmpEvent.id])>>
<<set $slaves[$tmpEvent.id].pregnancy_father = 'mc'>>
<<set $slaves[$tmpEvent.id].pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<center>
[img[setup.ImagePath+'game/misc/creampie.webp']]
</center>
<br /><br />
You fill up her pussy with your warm cum and let it drip out of her as you pull out.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<<linkreplace 'Put her back in cell'>>
<<if !_fucked>>
<<run $('#option_fuck').hide()>>
<</if>>
You guide her back to basement, a dimly lit space with cold concrete walls that reverberate with the echoes of misery.
The once vibrant world outside feels like a distant memory as you grapple with the consequences of your actions. In this unforgiving landscape, every choice carries the weight of survival.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEvent>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>><h1 class="ptitle">BASEMENT</h1>
<br />
<<set _slave = $slaves[$tmpEvent.id]>>
After you manage to disarm the lone survivor a tense silence fills the basement. <<=setup.displayName(_slave)>> steps back, her eyes wide with shock and fear but with joy on her lips as
she sees what you have done with him.
<br /><br />
<<video 'basement/lone_survivor5'>>
<br /><br />
<<sayNpc _slave>>
I don't know what got into him. He seemed so normal when you brought him in.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<run delete $game.lone_survivor>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _slaveId = setup.getRandomElement(setup.getAvailablePersons18yo($slaves)[0])>>
<<set $tmpEvent = {id: _slaveId}>>
<<set _slave = $slaves[_slaveId]>>
<<newguy>>
As you make your way inside the cabin, the sound of a struggle reaches your ears from the basement.
It's a mixture of grunts, shouts, and the unmistakable sound of metal clashing against metal. You quicken your pace, knowing that something serious is happening down there.
<br /><br />
<<linkreplace 'Check it out'>>
<<run $('#option_ignore').hide()>>
Upon reaching the basement you notice that the lone survivor you accepted into your settlement today is abusing <<=setup.displayName(_slave)>>.
<br /><br />
<<video 'basement/lone_survivor1'>>
<br /><br />
She has been tied down and he slwoly rips her top open while telling her to keep her mouth shot or he will kill her.
<br /><br />
<<linkreplace 'Continue watching'>>
She throws her on her bed, spreads her legs and shows dick with hard thrust inside her as she makes scream once before he slaps her.
<br /><br />
<<sayNpc $tmpGuy>>
I said keep your mouth shut!
<</sayNpc>>
<br />
<<video 'basement/lone_survivor2'>>
<br /><br />
She doesn't resist as she clearly is scared for her life. He thrusts deep into her as her breasts bounce up and down.
She opens her mouth, cleary indicating that she's in distress and in pain but she manages not to let out single sound until...
<br /><br />
<<sayNpc _slave>>
Please don't. Stop!
<</sayNpc>>
<br />
You can see in survivor's eyes that he gets engry. He pulls out, forcefully throws her legs together and without hesitation sticks his dick into her ass.
<br /><br />
<<video 'basement/lone_survivor3'>>
<br /><br />
<<sayNpc _slave>>
Stop... I beg you, please...
<</sayNpc>>
<br />
With his first thrust deep into her ass she lets out very loud scream. You can see joy in his eyes as he puts pressure on her neck and increase speed and force with each thrust.
After some moment he speeds down, each time staying in her ass a bit longer then the cums inside her asshole.
<br /><br />
<<video 'basement/lone_survivor4'>>
<br /><br />
<<sayNpc _slave>>
You bastard... You're dead... Fucking bastard...
<</sayNpc>>
<br />
<</linkreplace>>
<<link 'Attack him'>>
<<newguy>>
<<set $enemies = [$tmpGuy]>>
<<fight $enemies 'Event - A lone survivor fuck won' 'Dead'>>
<</link>>
<<link 'Leave'>>
<<set $slaves[_slaveId].happy -= 100>>
<<set $slaves[_slaveId].sub -= randomInteger(20, 40)>>
<<set $slaves[_slaveId].relationship -= randomInteger(20, 40)>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<div id="option_ignore">
<<link 'Ignore'>>
<<set $slaves[_slaveId].happy -= 100>>
<<set $slaves[_slaveId].sub -= randomInteger(20, 40)>>
<<set $slaves[_slaveId].relationship -= randomInteger(20, 40)>>
<<goto 'Wood cabin'>>
<</link>>
</div><h1 class="ptitle">BASEMENT</h1>
<br />
<center>
<<image 'places/basement/group_workout.jpg' 'sfw'>>
</center>
<<addmins 60>>
<br />
In the dim, oppressive basement, the leader and a stern guard commanded a group of captured slaves. Makeshift exercise equipment lay scattered around.
<br /><br />
Group warmed up with jumping jacks, push-ups, and stretches.
The main workout involved lifting scrap metal, dragging tires, and high-intensity training, each station pushing them to their limits.
<br /><br />
<<for _workoutSlaveI, _workoutSlave range $slaves>>
<<if setup.getAge(_workoutSlave) < 5 || setup.percentageChance(50)>>
<<continue>>
<</if>>
<<set _genderClass = 'gender-' + setup.genderClass(_workoutSlave)>>
<<if $slaves[_workoutSlaveI].strength < 60>>
<<set $slaves[_workoutSlaveI].strength++>>
<<=setup.displayName(_workoutSlave)>> strength increased by 1
<br />
<<set $slaves[_workoutSlaveI].quests ??= {}>>
<<set $slaves[_workoutSlaveI].quests.lastInteractionDay = $game.day>>
<</if>>
<<set _enduranceGain = setup.fight.gainEndurance($slaves[_workoutSlaveI], 60)>>
<<if _enduranceGain>>
<<=setup.displayName(_workoutSlave)>> endurance increased by 1
<br />
<</if>>
<</for>>
<br />
As the session ended, you reflected on the day's impact, aware that today's choices could sow seeds of loyalty or defiance.
<br /><br />
<<set _randomGirls = setup.getRandomPersons(setup.getAvailablePersons18yo($slaves)[0])>>
<<set _npc1 = $slaves[_randomGirls[0]]>>
<<set _npc2 = $slaves[_randomGirls[1]]>>
<<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> are the only ones left as others leave.
<br /><br />
<<linkreplace 'Call them over and ask for a blowjob'>>
The women's expressions were a mix of fear and resignation as they approached, the flickering basement lights casting long shadows over their faces.
The leader's demand hung heavily in the air, a stark reminder of the harsh and brutal reality of their world.
<br /><br />
You unzipped your pants, they looked at each other and dropped on their knees.
<br /><br />
<center>
<<image 'places/basement/workout_end2.webp'>>
</center>
<br />
They both grab your dick, each with one hand and starts to stroke you. You see a bit of fear in their eyes but with each stroke they increase the speed.
<br /><br />
<center>
<<image 'places/basement/workout_end1.webp'>>
</center>
<br /><br />
As none of them takes initiative by puting your dick in their mouth, you stand up and as you hold their heads, you slide your hard dick between their lips.
They just kneel there in silence as they look in each other eyes.
<br /><br />
<center>
<<image 'places/basement/workout_end3.webp'>>
</center>
<br /><br />
As you cum, they don't stop but keeps what you started. Each of them with their sweet lips keep stroking your dick as you continue to cum all over them.
<br /><br />
<<horny_reset>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Basement'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br />
<center>
<<image 'places/cabin/guest_basement_invite.jpg' sfw>>
</center>
<br />
You pulled <<=setup.displayName($tmpGirl)>> aside and asked if she wanted to come spend some time with you down in the basement.
<br /><br />
<<if ($tmpGirl.likesGuys ?? true)>>
<<if ($tmpGirl.relationship ?? 0) >= 85>>
<<sayNpc $tmpGirl>>
The basement? Sure. Lead the way.
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
The basement? I — okay. Yeah.
<</sayNpc>>
<</if>>
<br />
She followed you to the basement door without another word.
<br /><br />
<<link 'Take her down'>>
<<run $guests[$guestId].basementVoluntary = true>>
<<goto 'Basement'>>
<</link>><<link 'Actually, never mind'>>
<<if $tmpGirlBack>><<goto $tmpGirlBack>><<else>><<goto 'Guest house'>><</if>>
<</link>>
<<else>>
<<sayNpc $tmpGirl>>
No thanks. That's not really my thing.
<</sayNpc>>
<br />
She walked away without another word.
<br /><br />
<<link 'Go back'>>
<<if $tmpGirlBack>><<goto $tmpGirlBack>><<else>><<goto 'Guest house'>><</if>>
<</link>>
<</if>><<set _availableGirlSlaves = setup.getAvailablePersons18yo($slaves)>>
<<if (_availableGirlSlaves[0] ?? []).length>>
<<for _offerSlaveSlaveI, _offerSlaveSlave range _availableGirlSlaves[0]>>
<<capture _offerSlaveSlaveI, _offerSlaveSlave>>
<<if _offerSlaveSlave.chastityBelt>>
<<continue>>
<</if>>
<<set _genderClass = 'gender-' + setup.genderClass($slaves[_offerSlaveSlave])>>
<div>
<span @class="''+_genderClass+''">
<<link $slaves[_offerSlaveSlave].name>>
<<set $slaveOfferId = _offerSlaveSlave>>
<<set $tmpGirl.offerSlave = true>>
<<dialogclose>>
<<goto 'Basement - Offer slave girl to slave guy: fuck'>>
<</link>>
</span>
</div>
<</capture>>
<</for>>
<</if>>
<br /><br />
<<link 'Back'>>
<<dialogclose>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<if setup.getAge($tmpGirl) > 55>>
<<sayNpc $tmpGirl>>
What the hell have you imagined? I'm not interested in your whores.
<</sayNpc>>
<br /><br />
<<link 'Leave'>>
<<goto 'NPC view'>>
<</link>>
<<elseif !$tmpGirl.likesGirls>>
<<sayNpc $tmpGirl>>
Thank you for the offer but I'm not interested.
<</sayNpc>>
<br /><br />
<<link 'Leave'>>
<<goto 'NPC view'>>
<</link>>
<<else>>
He nods affirmatively and <<=setup.displayName($slaves[$slaveOfferId])>> approaches closer to his cell door.
<br /><br />
<<video 'basement/slave_offer_slave1'>>
<br /><br />
He immediately unbuttons his pants and with a smile on his face looks at <<=setup.displayName($slaves[$slaveOfferId])>>. Unhappy, <<=setup.displayName($slaves[$slaveOfferId])>>, however, kneels down, taking <<=setup.displayName($tmpGirl)>> dick in her mouth. In an instant, he starts to shove his dick as deep as he can but you've trained <<=setup.displayName($slaves[$slaveOfferId])>> as she isn't bothered by that at all.
<br />
After few good thrusts he asks her to turn around. She obeys.
<br /><br />
<<video 'basement/slave_offer_slave2'>>
<br /><br />
He grabs her by the hips and pulls her as close as possible to his cell bars. She hesitates, but after a moment, it seems that she slowly starts to enjoy this whole process. It doesn't last long, and after a few more thrusts, he's almost done.
<br /><br />
<<set $slaves[$slaveOfferId].virgin = false>>
<strong>
Relationship with <<=$tmpGirl.name>> increased by 5
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 5, 100)>>
</strong>
<<set _slaveRelationshipDecrease = 10>>
<<if !$slaves[$slaveOfferId].likesGuys>>
<<set _slaveRelationshipDecrease += 10>>
<</if>>
<br /><br />
<<sayNpc $tmpGirl>>
Can I cum inside her?
<</sayNpc>>
<br />
<div id="option_no">
<<linkreplace 'No'>>
<<run $('#option_yes').hide()>>
<<run $('#option_end').show()>>
<center>
<<image 'places/cabin/workout_cum_outside.webp'>>
</center>
<br /><br />
<<=setup.displayName($slaves[$slaveOfferId])>> pushes away from <<=setup.displayName($tmpGirl)>> and lets him cum on the ground right outside his cell.
<br /><br />
<<if !($slaves[$slaveOfferId].traits ?? []).includes('nymphomaniac') && $slaves[$slaveOfferId].assignedTo !== 'streets'>>
<<setNpcStats 'slave' $slaveOfferId 'relationship' `-_slaveRelationshipDecrease`>>
<<setNpcStats 'slave' $slaveOfferId 'happy' `-_slaveRelationshipDecrease`>>
<<= setup.displayName($slaves[$slaveOfferId])>> relationship decreased by <<=_slaveRelationshipDecrease>>
<</if>>
<</linkreplace>>
</div>
<div id="option_yes">
<<linkreplace 'Yes'>>
<<run $('#option_no').hide()>>
<<run $('#option_end').show()>>
<<set _slaveRelationshipDecrease += 10>>
<<sayNpc $slaves[$slaveOfferId]>>
Please no!
<</sayNpc>>
<br />
<center>
<<image 'game/misc/creampie.webp'>>
</center>
<br />
<<=setup.displayName($tmpGirl)>> wraps his hands around <<=setup.displayName($slaves[$slaveOfferId])>> and holds her strongly as he cums inside her pussy.
<br /><br />
<<if setup.pregnancyChance($slaves[$slaveOfferId], $tmpGirl)>>
<<set $slaves[$slaveOfferId].pregnancy_father = $tmpGirl.id>>
<<set $slaves[$slaveOfferId].pregnancy = 0>>
<</if>>
<<if !($slaves[$slaveOfferId].traits ?? []).includes('nymphomaniac') && $slaves[$slaveOfferId].assignedTo !== 'streets'>>
<<setNpcStats 'slave' $slaveOfferId 'relationship' `-_slaveRelationshipDecrease`>>
<<setNpcStats 'slave' $slaveOfferId 'happy' `-_slaveRelationshipDecrease`>>
<<= setup.displayName($slaves[$slaveOfferId])>> relationship decreased by <<=_slaveRelationshipDecrease>>
<</if>>
<</linkreplace>>
</div>
<</if>>
<div id="option_end" style="display:none">
<br />
<<link 'Leave'>>
<<set $tmpGirl.horny = 0>>
<<set $slaves[$slaveOfferId].horny = 0>>
<<run delete $slaveOfferId>>
<<goto 'NPC view'>>
<</link>>
</div><<set _availableGirlSlaves = setup.getAvailablePersons18yo($slaves)>>
<<if (_availableGuySlaves[1] ?? []).length>>
<<for _offerSlaveSlaveI, _offerSlaveSlave range _availableGuySlaves[1]>>
<<capture _offerSlaveSlaveI, _offerSlaveSlave>>
<<if _offerSlaveSlave.chastityBelt>>
<<continue>>
<</if>>
<<if $tmpGirl.id !== $slaves[_offerSlaveSlave].id>>
<<set _genderClass = 'gender-' + setup.genderClass($slaves[_offerSlaveSlave])>>
<div>
<span @class="''+_genderClass+''">
<<link $slaves[_offerSlaveSlave].name>>
<<set $slaveOfferId = _offerSlaveSlave>>
<<set $tmpGirl.offerSlave = true>>
<<dialogclose>>
<<goto 'Basement - Offer slave guy to slave guy: fuck'>>
<</link>>
</span>
</div>
<</if>>
<</capture>>
<</for>>
<</if>>
<br /><br />
<<link 'Back'>>
<<dialogclose>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<if setup.getAge($tmpGirl) > 55>>
<<sayNpc $tmpGirl>>
What the hell have you imagined? I'm not interested in your Faggots
<</sayNpc>>
<br /><br />
<<link 'Leave'>>
<<goto 'NPC view'>>
<</link>>
<<elseif !$tmpGirl.likesGuys>>
<<sayNpc $tmpGirl>>
Thank you for the offer but I'm not interested in men.
<</sayNpc>>
<br /><br />
<<link 'Leave'>>
<<goto 'NPC view'>>
<</link>>
<<else>>
He nods affirmatively and <<=setup.displayName($slaves[$slaveOfferId])>> approaches closer to his cell door.
<br /><br />
<<video 'basement/slave_offer_slave3'>>
<br /><br />
He immediately unbuttons his pants and with a smile on his face looks at <<=setup.displayName($slaves[$slaveOfferId])>>. Unhappy, <<=setup.displayName($slaves[$slaveOfferId])>>, however, kneels down, taking <<=setup.displayName($tmpGirl)>> dick in his mouth. In an instant, he starts to shove his dick as deep as he can but you've trained <<=setup.displayName($slaves[$slaveOfferId])>> as he isn't bothered by that at all.
<br />
After few good thrusts he asks him to turn around. He obeys.
<br /><br />
<<video 'basement/slave_offer_slave4'>>
<br /><br />
He grabs him by the hips and pulls him as close as possible to his cell bars. He hesitates, but after a moment, it seems that he slowly starts to enjoy this whole process. It doesn't last long, and after a few more thrusts, he's done.
<br /><br />
<strong>
Relationship with <<=$tmpGirl.name>> increased by 5
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 5, 100)>>
</strong>
<<set _slaveRelationshipDecrease = 10>>
<<if !$slaves[$slaveOfferId].likesGuys>>
<<set _slaveRelationshipDecrease += 10>>
<</if>>
<<setNpcStats 'slave' $slaveOfferId 'relationship' `-_slaveRelationshipDecrease`>>
<<setNpcStats 'slave' $slaveOfferId 'happy' `-_slaveRelationshipDecrease`>>
<br /><br />
<<= setup.displayName($slaves[$slaveOfferId])>> relationship decreased by <<=_slaveRelationshipDecrease>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<set $tmpGirl.horny = 0>>
<<set $slaves[$slaveOfferId].horny = 0>>
<<run delete $slaveOfferId>>
<<goto 'NPC view'>>
<</link>><<set _availableGirlSlaves = setup.getAvailablePersons18yo($slaves)>>
<<if (_availableGuySlaves[1] ?? []).length>>
<<for _offerSlaveSlaveI, _offerSlaveSlave range _availableGuySlaves[1]>>
<<capture _offerSlaveSlaveI, _offerSlaveSlave>>
<<if _offerSlaveSlave.chastityBelt>>
<<continue>>
<</if>>
<<if $tmpGirl.id !== $slaves[_offerSlaveSlave].id>>
<<set _genderClass = 'gender-' + setup.genderClass($slaves[_offerSlaveSlave])>>
<div>
<span @class="''+_genderClass+''">
<<link $slaves[_offerSlaveSlave].name>>
<<set $slaveOfferId = _offerSlaveSlave>>
<<set $tmpGirl.offerSlave = true>>
<<dialogclose>>
<<goto 'Basement - Offer slave guy to slave trans girl: fuck'>>
<</link>>
</span>
</div>
<</if>>
<</capture>>
<</for>>
<</if>>
<br /><br />
<<link 'Back'>>
<<dialogclose>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<if setup.getAge($tmpGirl) > 55>>
<<sayNpc $tmpGirl>>
What the hell have you imagined? I'm not interested in your Faggots.
<</sayNpc>>
<<elseif !$tmpGirl.likesGuys>>
<<sayNpc $tmpGirl>>
Thank you for the offer but I'm not interested in men.
<</sayNpc>>
<<else>>
You grab <<=setup.displayName($slaves[$slaveOfferId])>> his cell and tie him to <<=setup.displayName($tmpGirl)>>'s bed. looking at him <<=setup.displayName($tmpGirl)>> whips her dick out and sits on his chest and orders <<=setup.displayName($slaves[$slaveOfferId])>> to suck her dick willingly or she will fuck his face by force, <<=setup.displayName($slaves[$slaveOfferId])>> opens his mouth and starts sucking.
<br /><br />
<<video 'basement/slave_offer_slave9'>>
<br /><br />
He immediately regrets it as <<=setup.displayName($tmpGirl)>> climbs over and shoves her dick down his throwat. After few good thrusts <<=setup.displayName($slaves[$slaveOfferId])>> face starts to change color and <<=setup.displayName($tmpGirl)>> pulls her dick and <<=setup.displayName($slaves[$slaveOfferId])>> gasps for air.
<br /><br />
<<video 'basement/slave_offer_slave10'>>
<br /><br />
<<=setup.displayName($tmpGirl)>> unbuttoins <<=setup.displayName($slaves[$slaveOfferId])>> pants and whips his dick out and start to masterbate both dicks with her hand.
<br /><br />
<<video 'basement/slave_offer_slave11'>>
<br /><br />
<<=setup.displayName($slaves[$slaveOfferId])>> starts to enjoy it and <<=setup.displayName($tmpGirl)>> decides to reward him by deapthroating his dick.
<br /><br />
<<video 'basement/slave_offer_slave12'>>
<br /><br />
<<=setup.displayName($tmpGirl)>> getting hard and horny grabs <<=setup.displayName($slaves[$slaveOfferId])>>'s legs push them up and shoves her dick up his tight ass while <<=setup.displayName($slaves[$slaveOfferId])>> screams.
<br /><br />
<<video 'basement/slave_offer_slave13'>>
<br /><br />
After few minutes of good fucking <<=setup.displayName($slaves[$slaveOfferId])>> starts to enjoy it and <<=setup.displayName($tmpGirl)>> unties him entie him and grabs him by the hair and push him to the cell wall and start to fuck his ass from behind.
<br /><br />
<<video 'basement/slave_offer_slave14'>>
<br /><br />
Asfter a good fucking <<=setup.displayName($slaves[$slaveOfferId])>> beggs her to cum on his face.
<br /><br />
<<video 'basement/slave_offer_slave15'>>
<br /><br />
<strong>
Relationship with <<=$tmpGirl.name>> increased by 5
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 5, 100)>>
</strong>
<<set _slaveRelationshipDecrease = 10>>
<<if !$slaves[$slaveOfferId].likesTGirls>>
<<set _slaveRelationshipDecrease += 10>>
<</if>>
<<setNpcStats 'slave' $slaveOfferId 'relationship' `-_slaveRelationshipDecrease`>>
<<setNpcStats 'slave' $slaveOfferId 'happy' `-_slaveRelationshipDecrease`>>
<br /><br />
<<= setup.displayName($slaves[$slaveOfferId])>> relationship decreased by <<=_slaveRelationshipDecrease>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<set $tmpGirl.horny = 0>>
<<set $slaves[$slaveOfferId].horny = 0>>
<<run delete $slaveOfferId>>
<<goto 'NPC view'>>
<</link>><<set _availableTransGirlSlaves = setup.getAvailablePersons18yo($slaves)>>
<<if (_availableTransGirlSlaves[2] ?? []).length>>
<<for _offerSlaveSlaveI, _offerSlaveSlave range _availableGirlSlaves[2]>>
<<capture _offerSlaveSlaveI, _offerSlaveSlave>>
<<if _offerSlaveSlave.chastityBelt>>
<<continue>>
<</if>>
<<set _genderClass = 'gender-' + setup.genderClass($slaves[_offerSlaveSlave])>>
<div>
<span @class="''+_genderClass+''">
<<link $slaves[_offerSlaveSlave].name>>
<<set $slaveOfferId = _offerSlaveSlave>>
<<set $tmpGirl.offerSlave = true>>
<<dialogclose>>
<<goto 'Basement - Offer slave trans girls to slave guy: fuck'>>
<</link>>
</span>
</div>
<</capture>>
<</for>>
<</if>>
<br /><br />
<<link 'Back'>>
<<dialogclose>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<if setup.getAge($tmpGirl) > 55>>
<<sayNpc $tmpGirl>>
What the hell have you imagined? I'm not interested in your whores.
<</sayNpc>>
<br /><br />
<<link 'Leave'>>
<<goto 'NPC view'>>
<</link>>
<<elseif !$tmpGirl.likesTGirls>>
<<sayNpc $tmpGirl>>
Thank you for the offer but I'm not interested.
<</sayNpc>>
<<else>>
He nods affirmatively you grab <<=setup.displayName($slaves[$slaveOfferId])>> and put her into his cell. She starts screaming and pleading to get out.
<br /><br />
<<video 'basement/slave_offer_slave5'>>
<br /><br />
He immediately unbuttons his pants and grabs <<=setup.displayName($slaves[$slaveOfferId])>>'s head and fucks her mouth . Unhappy, <<=setup.displayName($slaves[$slaveOfferId])>>, tries to stop him but <<=setup.displayName($tmpGirl)>> shoves his dick deeper down her throat.
<br />
After a few good thrusts she starts to enjoy it.
<br /><br />
<<video 'basement/slave_offer_slave6'>>
<br /><br />
He grabs her and pushes her on the bed. She hesitates, but after a moment, he spreads her ass and spit on his hard dick and shoves it in her ass.
<br /><br />
<<video 'basement/slave_offer_slave7'>>
<br /><br />
after two minutes of fucking, he grabs her, pushes her to the ground and cums on her face.
<br /><br />
<<video 'basement/slave_offer_slave8'>>
<br /><br />
<strong>
Relationship with <<=$tmpGirl.name>> increased by 5
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 5, 100)>>
</strong>
<<set _slaveRelationshipDecrease = 10>>
<<if !$slaves[$slaveOfferId].likesGuys>>
<<set _slaveRelationshipDecrease += 10>>
<</if>>
<<setNpcStats 'slave' $slaveOfferId 'relationship' `-_slaveRelationshipDecrease`>>
<<setNpcStats 'slave' $slaveOfferId 'happy' `-_slaveRelationshipDecrease`>>
<br /><br />
<<= setup.displayName($slaves[$slaveOfferId])>> relationship decreased by <<=_slaveRelationshipDecrease>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<set $tmpGirl.horny = 0>>
<<set $slaves[$slaveOfferId].horny = 0>>
<<run delete $slaveOfferId>>
<<goto 'NPC view'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<video 'basement/first_visit1'>>
<br /><br />
You go to visit your new captive <<=setup.displayName($tmpGirl)>>. She sits restlessly in her cell knowing that there are
only a few reasons why you would go to the trouble of keeping her warm, fed, and imprisoned.
<br /><br />
<<sayNpc $tmpGirl>>
Please let me go!
<</sayNpc>>
<br /><br />
<<addmins 10>>
You spend a moment telling her why she's here and what her options are. She's your slave and she will need to do whatever you ask her to do.
<br />
She spends a moment weighing her options, but it is clear <<=setup.displayName($tmpGirl)>> knows she would stand nochance of winning a fight.
<br /><br />
<<if $tmpGirl.sub < 10>>
<<sayNpc $tmpGirl>>
Oh screw you! I am gonna kill you! You're dead!
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
Yes... Just please don't hurt me
<</sayNpc>>
<</if>>
<br /><br />
<<linkreplace 'Whip her'>>
<<video 'basement/first_visit2'>>
<br /><br />
<<set $tmpGirl.sub += 3>>
<strong><<=setup.displayName($tmpGirl)>> submission increased by 3</strong>
<br /><br />
<</linkreplace>>
<<if recall($suppCode)>>
<<link 'Tie her up'>>
<<goto 'Basement - first girl visit - tie up'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Tie her up
<<notPatreonIcon>>
</div>
<</if>>
<<link 'Continue'>>
<<goto 'NPC view'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<set _image = 'release'>>
<<if [1,3].includes($tmpGirl.gender)>>
<<set _image = _image + '_male'>>
<</if>>
<<set _img = 'places/basement/' + _image + '.webp'>>
<center>
<<image _img>>
</center>
You look at <strong><<=setup.displayName($tmpGirl)>></strong> and open <<=setup.pronounceWhos($tmpGirl)>> cell door.
<br /><br />
<<=ucfirst(setup.pronounceWhat($tmpGirl))>> gets on <<=setup.pronounceWhos($tmpGirl)>> knees like <<=setup.pronounceWhat($tmpGirl)>> usually does when you come to visit <<=setup.pronounceWho($tmpGirl)>>, but you catch <<=setup.pronounceWho($tmpGirl)>> by surprise when you tell <<=setup.pronounceWho($tmpGirl)>> that you are going to release <<=setup.pronounceWho($tmpGirl)>>.
<br />
<<=ucfirst(setup.pronounceWhat($tmpGirl))>> is braced to once again face the perils and threats of the wasteland, when you surprise <<=setup.pronounceWho($tmpGirl)>> with an offer: to remain a part of the settlement, to work alongside the other settlers as a productive member, sheltered within the walls and free.
<br /><br />
<<you>>
This is no longer to be your prison. Now it can be your home.
<</you>>
<<=ucfirst(setup.pronounceWhos($tmpGirl))>> face softens with a mixture of relief and gratitude, reaching for your hand with a grip that speaks of survival,
of a person ready to build a life from the ground up, no matter how hard it may be.
<br /><br />
<<sayNpc $tmpGirl>>
Thank you so much!
<</sayNpc>>
<br />
You lead <<=setup.pronounceWho($tmpGirl)>> down the worn path through the heart of the settlement, the dirt packed hard from footsteps.
The air feels a little warmer here, out of the shadows of the basement, and <<=setup.pronounceWhat($tmpGirl)>> relaxes just a fraction as <<=setup.pronounceWhat($tmpGirl)>> realizes <<=setup.pronounceWhat($tmpGirl)>>'s actually free.
<br /><br />
<center>
<<image 'places/cabin/new_settlers2.jpg'>>
</center>
<br />
Finally, you arrive at one of the empty houses. The roof, though patched in places, holds strong, and the door swings open with a soft creak.
Dust hangs in the air, disturbed as they step inside, and though the place is bare, it's shelter, and freedom—a gift of unimaginable value in these times.
<br /><br />
<<link "Go back to basement">>
<<goto 'Basement'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<set _image = 'release'>>
<<if [1,3].includes($tmpGirl.gender)>>
<<set _image = _image + '_male'>>
<</if>>
<<set _img = 'places/basement/' + _image + '.webp'>>
<center>
<<image _img>>
</center>
You look at <strong><<=setup.displayName($tmpGirl)>></strong> and open <<=setup.pronounceWhos($tmpGirl)>> cell door.
<br /><br />
<<=ucfirst(setup.pronounceWhat($tmpGirl))>> gets on <<=setup.pronounceWhos($tmpGirl)>> knees like <<=setup.pronounceWhat($tmpGirl)>> usually does when you come to visit <<=setup.pronounceWho($tmpGirl)>>, but you catch <<=setup.pronounceWho($tmpGirl)>> by surprise when you tell <<=setup.pronounceWho($tmpGirl)>> that you are going to release <<=setup.pronounceWho($tmpGirl)>>.
<br /><br />
<<if $tmpGirl.relationship >= 30 && ($game.location.guesthouse ?? false)>>
"<strong>Are you sure?</strong>" <<=ucfirst(setup.pronounceWhat($tmpGirl))>> asks. <br />
"<strong>I really like it here with you. Is there any way I can stay?</strong>"
<</if>>
<br /><br />
<<set _linkMove = 'Move ' + setup.pronounceWho($tmpGirl) + ' to the guest house'>>
<<set _linkLeave = 'Leave ' + setup.pronounceWho($tmpGirl) + ' in cell'>>
<<set _linkRelease = 'Release ' + setup.pronounceWho($tmpGirl)>>
<<if $tmpGirl.relationship >= 30 && ($game.location.guesthouse ?? false) && (($guesthouseLimit ?? 3) - ($guests ?? []).length) > 0>>
<<link `_linkMove`>>
<<moveSlaveToGuest $tmpGirl $slaveId>>
<<unset $slaveId>>
<<goto 'Guest house'>>
<</link>>
<</if>>
<<link `_linkLeave`>>
<<goto 'Basement'>>
<</link>>
<<if setup.baseManagement.population.hasFreeHouse()>>
<<link 'Release as settler'>>
<<set $player.goodwill += 2>>
<<assignedTo $tmpGirl 'none'>>
<<slaveRemove $slaveId>>
<<statsAdd 'slaves_released'>>
<<unset $slaveId>>
<<set $player.baseManagement.settlers = ($player.baseManagement.settlers ?? 0) + 1>>
<<if !$tmpGirl.gender>>
<<set $player.baseManagement.settlersFemales ??= 0>>
<<set $player.baseManagement.settlersFemales += 1>>
<</if>>
<<goto 'Basement'>>
<</link>>
<</if>>
<<link `_linkRelease`>>
<<if ($tmpGirl.relationship ?? 0) >= 50>><<achievement 'slave_release_50rel'>><</if>>
<<run setup.npc.addHistory($tmpGirl, 'released')>>
<<set $player.goodwill += 2>>
<<assignedTo $tmpGirl 'none'>>
<<slaveRemove $slaveId>>
<<statsAdd 'slaves_released'>>
<<unset $slaveId>>
<<goto 'Basement'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<<set _npc = $slaves[$slaveId]>>
<br />
In the fading twilight, you made your way towards the decrepit basement, place where you held your slaves prisoners with this unforgiving wasteland above.
<br />
Just before reaching the iron door, a strange, haunting sound echoed through the damp corridors. Your heart raced, but you pressed on.
<br /><br />
As you descended, the feeble light of your lantern revealed the rows of cells, each one holding a weary figure, bound by chains and shadows.
The air was thick with despair. And then, in one corner, a silent figure swung limply from a frayed rope.
<br /><br />
<center>
<<image 'places/basement/hangman.jpg' 'sfw'>>
</center>
<br />
Time seemed to stop as you rushed forward, hands trembling as you fumbled to release <<=setup.displayName(_npc)>> from <<=setup.pronounceWhos(_npc)>> grim embrace.
But the life had already fled, leaving behind only the weight of futile regret.
<br /><br />
Gently, you lowered <<=setup.displayName(_npc)>> to the cold ground, their vacant eyes fixed on a world that could offer them no solace.
<br />
In this unforgiving realm, even the will to survive could prove to be the most elusive of all.
<br /><br />
<<run $slaves.splice($slaveId, 1)>>
<<if $slaves>>
<<for _slaveI, _slave range $slaves>>
<<set $slaves[_slaveI].happy -= 5>>
<</for>>
<strong>Happiness for all slaves dropped by 5 points</strong>
<br /><br />
<</if>>
<<link 'Leave'>>
<<goto 'Basement'>>
<</link>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<<set _npc = $slaves[$hornySlaveId]>>
<<set _npc.location = 'bedroom'>>
You unlocked her cell and led her upstairs. Once inside your room, you dropped onto the sofa and she climbed onto your lap — straight in, no hesitation, weight pressing close.
<br /><br />
<center>
<<video 'basement/horny_slave_invite2'>>
</center>
<br /><br />
<<if (_npc.traits ?? []).includes('feral')>>
She looked back at you over her shoulder, alert and waiting.
<<else>>
She looked back at you over her shoulder, bottom lip caught between her teeth.
<</if>>
<br /><br />
<<if (_npc.traits ?? []).includes('feral')>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*presses back against your chest and makes a low, eager sound, hips shifting already*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Up here I'll do whatever you want.
<</sayNpc>>
<</if>>
<br />
<div id="hsi_slap">
<<linkreplace 'Slap her ass'>>
<<run $('#hsi_skip').hide()>>
<center>
<<video 'basement/horny_slave_invite1'>>
</center>
<br /><br />
Your hand came down hard across her ass. She gasped, arching her back, a sharp moan escaping before she bit down on her lip.
<br /><br />
<<run $('#hsi_finger').show()>>
<</linkreplace>>
</div>
<div id="hsi_skip">
<<linkreplace 'Keep going'>>
<<run $('#hsi_slap').hide()>>
<<run $('#hsi_finger').show()>>
<</linkreplace>>
</div>
<div id="hsi_finger" style="display:none">
<<if (_npc.traits ?? []).includes('feral')>>
She parted her thighs and kept her eyes on you, open and offering.
<<else>>
She parted her thighs slightly, eyes on yours.
<</if>>
<br /><br />
<<linkreplace 'Pull her panties aside'>>
<center>
<<video 'basement/horny_slave_invite3'>>
</center>
<br /><br />
You pulled the thin fabric aside and slid two fingers into her wet pussy. She was already soaked. A low whimper left her as you worked them in and out, her hips rolling against your hand.
<br /><br />
<<if (_npc.traits ?? []).includes('feral')>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*drives her hips into your hand with a short, insistent sound, head dropping forward*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Don't stop...
<</sayNpc>>
<</if>>
<br />
<<linkreplace 'She gets on her knees'>>
<center>
<<video 'basement/horny_slave_invite4'>>
</center>
<br /><br />
She slid off your lap and dropped to her knees, fingers working at your pants, pulling them open. She looked up at you as she freed your cock, already hard.
<br /><br />
<<if (_npc.traits ?? []).includes('feral')>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*slides down without hesitation, hands already finding your zipper*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Let me take care of you.
<</sayNpc>>
<</if>>
<br />
<<linkreplace 'She takes you in her mouth'>>
<center>
<<video 'basement/horny_slave_invite5'>>
</center>
<br /><br />
She wrapped her lips around your cock and started to suck, tongue working the underside, her head bobbing in a slow deliberate rhythm.
<br /><br />
<<if (_npc.traits ?? []).includes('feral')>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*looks up at you with dark, patient eyes — waiting, holding still, ready for whatever*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Tell me what you want.
<</sayNpc>>
<</if>>
<br />
<div id="hsi_dt">
<<linkreplace 'Wrap her hair around your wrist'>>
<<run $('#hsi_dt_skip').hide()>>
<center>
<<video 'basement/horny_slave_invite6'>>
</center>
<br /><br />
You coiled her hair tight around your wrist and forced her head down until she gagged, eyes watering. You held her there until she couldn't take it anymore, then let her up gasping for air.
<br /><br />
She braced a hand against your knee, chest heaving, cheeks flushed and wet.
<br /><br />
<<if (_npc.traits ?? []).includes('feral')>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*braces against your thigh and gazes up at you, expression open and yielding, catching her breath*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Whatever you want... I'm yours.
<</sayNpc>>
<</if>>
<br />
<div id="hsi_dt_face">
<<linkreplace 'Cum on her face'>>
<<run $('#hsi_dt_cont').hide()>>
<<horny_reset>>
<<set _npc.horny = 0>>
<center>
<<video 'basement/horny_slave_invite10'>>
</center>
<br /><br />
You yanked her back by the hair and came across her face. She shut her eyes and took it, cum streaking down her cheeks and dripping from her chin.
<br /><br />
<<set _npc.relationship = Math.min(100, (_npc.relationship ?? 0) + 2)>>
<<set _npc.happy += 20>>
<strong><<= _npc.name>> relationship increased by 2</strong>
<br /><br />
<<link 'Leave'>>
<<unset $hornySlaveId>>
<<goto 'Bedroom'>>
<</link>>
<</linkreplace>>
</div>
<div id="hsi_dt_cont">
<<linkreplace 'Keep going'>>
<<run $('#hsi_dt_face').hide()>>
<<run $('#hsi_doggy').show()>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="hsi_dt_skip">
<<linkreplace 'Pull her up'>>
<<run $('#hsi_dt').hide()>>
<<run $('#hsi_doggy').show()>>
<</linkreplace>>
</div>
<div id="hsi_doggy" style="display:none">
She stood on slightly unsteady legs, waiting to see what you wanted next.
<br /><br />
<<linkreplace 'Turn her around'>>
<center>
<<video 'basement/horny_slave_invite7'>>
</center>
<br /><br />
You grabbed her by the hips, hauled her up and bent her over the arm of the sofa.
<br /><br />
<<if (_npc.traits ?? []).includes('feral')>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*arches into your hands with a sharp, hungry sound and offers herself*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Yes — take me.
<</sayNpc>>
<</if>>
<br />
<<linkreplace 'Push inside her'>>
<center>
<<video 'basement/horny_slave_invite8'>>
</center>
<br /><br />
You drove your cock into her pussy from behind. She let out a raw moan, hands gripping the cushions as you started fucking her hard, hips slamming into her ass with each thrust.
<br /><br />
<<if (_npc.traits ?? []).includes('feral')>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*slams back against every thrust with a raw, rhythmic cry — matching your pace and demanding more*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Harder — don't stop!
<</sayNpc>>
<</if>>
<br />
<<linkreplace 'Sit down, let her ride'>>
<center>
<<video 'basement/horny_slave_invite9'>>
</center>
<br /><br />
You dropped back onto the sofa and pulled her down onto your cock. She placed her hands on your chest and began to ride, hips grinding in slow circles before picking up speed.
<br /><br />
She looked down at you, chest heaving, eyes half-lidded.
<br /><br />
<<if (_npc.traits ?? []).includes('feral')>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*grabs your hands on her hips and holds them there, grinding down in tight, urgent circles, making a broken, pleading sound*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
I'm close — I don't want to stop.
<</sayNpc>>
<</if>>
<br />
<div id="hsi_end_inside">
<<linkreplace 'Cum inside her'>>
<<run $('#hsi_end_face').hide()>>
<<horny_reset>>
<<set _npc.horny = 0>>
<center>
<<image 'game/misc/creampie_cowgirl.webp'>>
</center>
<br /><br />
You grabbed her hips and buried yourself deep as you came, shooting your load into her pussy. She shuddered above you, body trembling through it.
<br /><br />
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<</if>>
<<set _npc.relationship = Math.min(100, (_npc.relationship ?? 0) + 2)>>
<<set _npc.happy += 20>>
<strong><<= _npc.name>> relationship increased by 2</strong>
<br /><br />
<<link 'Leave'>>
<<unset $hornySlaveId>>
<<goto 'Bedroom'>>
<</link>>
<</linkreplace>>
</div>
<div id="hsi_end_face">
<<linkreplace 'Cum on her face'>>
<<run $('#hsi_end_inside').hide()>>
<<horny_reset>>
<<set _npc.horny = 0>>
You lifted her off and pushed her down to her knees. She barely had time to look up before you came, covering her face in thick ropes of cum.
<br /><br />
<center>
<<video 'basement/horny_slave_invite10'>>
</center>
<br /><br />
<<set _npc.relationship = Math.min(100, (_npc.relationship ?? 0) + 2)>>
<<set _npc.happy += 20>>
<strong><<= _npc.name>> relationship increased by 2</strong>
<br /><br />
<<link 'Leave'>>
<<unset $hornySlaveId>>
<<goto 'Bedroom'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<set _npc = $slaves[$hornySlaveId]>>
<<set _npc.location = 'basement'>>
<center>
<<actionImage _npc begging>>
</center>
<br /><br />
You walk downstairs to the basement to check the girls and as you walk by
<<=$slaves[$hornySlaveId].name>> she starts to beg you that she wants you.<br />
She's horny and want you to take her.
<br /><br />
<<linkreplace 'Put dick inside her cell'>>
<center>
<<image 'places/basement/horny_slave_2.webp'>>
</center>
<br /><br />
She drops on her knees and grabs your dick with one hand, strokes it while looking at in and after a brief moment puts it all inside her mouth and sucks it.
<br /><br />
<<set $slaves[$hornySlaveId].relationship++>>
<strong><<=$slaves[$hornySlaveId].name>> relationship increased by 1</strong>
<br /><br />
<<linkreplace 'Tell her to turn around'>>
<<set _fucked = true>>
<center>
<<image 'places/basement/horny_slave_1.webp'>>
</center>
<br /><br />
Without hesitation she drops her pants and turns her ass and presses her asscheeks against cell bars.
<br />
You grab bars and hold them as you shove your dick inside her moist pussy<br />
She moans and begs you not to stop as she trembles while enjoying your dick.
<br /><br />
<<linkreplace 'Cum'>>
<<set $slaves[$hornySlaveId].horny = 0>>
<<horny_reset>>
<center>
<<image 'places/basement/horny_slave3.webp'>>
</center>
<br /><br />
She drops on her knees and tries to catch all your cum in her mouth but fails and a lot of it gets on her face.
<br /><br />
<<set $slaves[$hornySlaveId].relationship++>>
<strong><<=$slaves[$hornySlaveId].name>> relationship increased by 1</strong>
<<set $slaves[$hornySlaveId].happy += 10>>
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<if recall($suppCode)>>
<<link 'Bring her upstairs'>>
<<goto 'Basement - horny slave invite'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Bring her upstairs
<<notPatreonIcon>>
</div>
<</if>>
<<link 'Leave'>>
<<if !_fucked>>
<<set $slaves[$hornySlaveId].horny -=20>>
<</if>>
<<unset $hornySlaveId>>
<<goto 'Basement'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<center>
<<image 'places/basement/try_escape.webp' 'sfw'>>
</center>
<br /><br />
Your hear some noise and decide to check it out. You catch <strong><<=$slaves[$eventSlaveId].name>></strong> by surprise as she's trying to escape.
<br />
She notices you and stares at you with fear in her eyes.
<br /><br />
<div id="basement-event-button">
<<link 'Punish her'>>
<<addmins 15>>
<<run $('#basement-event-button').slideToggle()>>
<<run $('#basement-event-action').slideToggle()>>
<</link>>
</div>
<div id="basement-event-action" style="display:none;">
<center>
<<image 'places/basement/try_escape_punish.webp'>>
</center>
<br /><br />
You tie her against the wall and thrash her back as hard as you can with your whip.
<br /><br />
<<set $slaves[$eventSlaveId].sub++>>
<strong><<=$slaves[$eventSlaveId].name>> submission increased by 1</strong>
<br /><br />
</div>
<<link 'Leave'>>
<<goto 'Basement'>>
<</link>><<addhours 4>>
<<set $game.location.basement to true>>
You wake up more energized than ever and decide to explore around your cabin more. Just as you're ready to finish your walk you notice some strange bushes next to a wall. You decide to pull them aside and find a window behind it.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/basement_window.jpg']]
</center>
<br /><br />
You continue your search from inside, and soon enough you find a door leading to a basement behind an old behind an old shelving unit. Within the room is dark; hardly any light gets inside from the dirty windows. Taking a step further in, what you see shocks you.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/basement_head.jpg']]
</center>
<br /><br />
There are prison cells right under your cabin. You examine each cell, finding that while a few have broken locks, others are fine. Interesting, maybe you can find some use for these.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/basement.jpg']]
</center>
<br /><br />
[[Go upstairs|Wood cabin]]<<set _workingInGarden = 0>>
<<set _workingOnStreets = 0>>
<<set _showSlavesCount = 0>>
<h1 class="ptitle">
<<backButton 'Wood cabin'>>
BASEMENT
</h1>
<<set _voluntaryGuests = ($guests ?? []).map(function(g, i) { return { npc: g, idx: i }; }).filter(function(e) { return e.npc.basementVoluntary; })>>
<<if _voluntaryGuests.length > 0>>
<h3>Guests</h3>
<table id="guests" class="npc-list">
<<for _vgEntry range _voluntaryGuests>>
<<capture _vgEntry>>
<<set _vgGenderClass = 'gender-' + setup.genderClass(_vgEntry.npc)>>
<<set _vgColorStyle = (typeof _vgEntry.npc.color !== 'undefined') ? (' npc-color color-' + _vgEntry.npc.color) : ''>>
<tr class="item">
<td style="min-width: 25%">
<span @class="_vgGenderClass + _vgColorStyle">
<div class="tooltip">
<<set _tipSkills = (_vgEntry.npc.skills ?? []).filter(s => typeof setup.skills[s] !== 'undefined').length>>
<<set _tipBelow = (_vgEntry.npc.personality ?? []).length + (_vgEntry.npc.traits ?? []).length>>
<<set _tipTotal = _tipSkills * 22 + 106 + _tipBelow * 22>>
<<set _tipPct = Math.round((_tipSkills * 22 + 53) / Math.max(_tipTotal, 1) * 100)>>
<<set _tipStyle = "left: -130px; background-color: transparent; opacity: 1; top: 50%; transform: translateY(-" + _tipPct + "%); ">>
<span class="tooltiptext" @style="_tipStyle">
<<set _girlVisual to _vgEntry.npc>>
<<for _skill range (_vgEntry.npc.skills ?? [])>>
<<if typeof setup.skills[_skill] !== 'undefined'>>
<div class="trait tooltip">
<<=setup.skills[_skill].title>>
<span class="tooltiptext"><<=setup.skills[_skill].description>></span>
</div>
<</if>>
<br />
<</for>>
<div class="say npcsay npc-say-visual">
<div class="girl_info_picture">
<<if _vgEntry.npc.portrait>>
<div class="say_custom_portrait">
<<include 'NPC visual'>>
</div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<<for _pTrait range (_vgEntry.npc.personality ?? [])>>
<div class="trait trait-personality tooltip">
<<=_pTrait>>
<span class="tooltiptext"><<=setup.personality.info[_pTrait] ?? ''>></span>
</div>
<br />
<</for>>
<<for _trait range (_vgEntry.npc.traits ?? [])>>
<div class="trait tooltip">
<<=setup.traits[_trait].title>>
<span class="tooltiptext"><<=setup.traits[_trait].description>></span>
</div>
<br />
<</for>>
</span>
<<link _vgEntry.npc.name>>
<<set $tmpGirl = _vgEntry.npc>>
<<set $tmpGirl.location = 'basement'>>
<<set $tmpGirlBack = 'Basement'>>
<<set $tmpGirl.rape = false>>
<<set $tmpGirlCapture = false>>
<<set $tmpGirlInvite = false>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $guestId = _vgEntry.idx>>
<<unset $slaveId, $charId, $childId>>
<<goto 'NPC view - guest'>>
<</link>>
</div>
</span>
<<=setup.npcListInfo(_vgEntry.npc)>>
</td>
<td>
<<npcListView _vgEntry.npc _vgEntry.idx 'guest'>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br />
<</if>>
<h3>Slaves</h3>
<<set _basementLimitShow = ($basementLimit - $slaves.length)>>
<<if _basementLimitShow < 0>>
<<set _basementLimitShow = 0>>
<</if>>
Free rooms left: <strong><<=_basementLimitShow>></strong>
<<set _isSlaveInBasement = false>>
<<set _suicidalSlaves = []>>
<<set _lowSubmissionSlaves = []>>
<<set _slavesInBasement = []>>
<<set _isHeatWave = $weather?.heatWave ?? false>>
<<set _isSandStorm = $weather?.sandStorm ?? false>>
<<set _isColdSnap = $weather?.coldSnap ?? false>>
<<for _i to 0; _i lt $slaves.length; _i++>>
<<set _isSick = (typeof $slaves[_i].sick !== 'undefined')>>
<<set _isRest = (typeof $slaves[_i].rest !== 'undefined')>>
<<set _dayOff = _isSick || _isRest>>
<<if setup.isAtWork($slaves[_i], $weather)>>
<<if $slaves[_i].assignedTo === 'garden'>><<set _workingInGarden++>><</if>>
<<if $slaves[_i].assignedTo === 'streets'>><<set _workingOnStreets++>><</if>>
<<continue>>
<</if>>
<<set _showSlavesCount++>>
<<set _isSlaveInBasement = true>>
<</for>>
<<set _hornySlaveId = null>>
<<if $slaves.length < 1>>
<div style="margin-top: 20px;">
You have no slaves...
</div>
<<else>>
/* Detect mistress on duty */
<<set _girlGuest = setup.getPersonsForLocation($guests, 'mistress')>>
<<set _hasMistress = _girlGuest.length > 0 && setup.isAtWork($guests[_girlGuest[0]], $weather) && _isSlaveInBasement>>
<<if _hasMistress>>
<<set $tmpGirl = $guests[_girlGuest[0]]>>
<<set $tmpGirl.location = 'mistress'>>
<</if>>
/* Collect attendants who are on duty (work hours 10:00-20:00, not sick) */
<<set _attendantIds = []>>
<<for _attI range setup.getPersonsForLocation($guests, 'attendant')>>
<<if setup.isAtWork($guests[_attI], $weather) && _isSlaveInBasement>>
<<run _attendantIds.push({type: 'guest', id: _attI})>>
<</if>>
<</for>>
<<for _attI range setup.getPersonsForLocation($slaves, 'attendant')>>
<<if setup.isAtWork($slaves[_attI], $weather) && _isSlaveInBasement>>
<<run _attendantIds.push({type: 'slave', id: _attI})>>
<</if>>
<</for>>
/* Image area — toggle if both mistress and attendant are present */
<<if _hasMistress || _attendantIds.length > 0>>
<<if _hasMistress && _attendantIds.length > 0>>
<<set $player.baseManagement ??= {}>>
<<set $player.baseManagement.basementView ??= 'mistress'>>
<div id="basement-view-toggle" style="text-align:center; margin-bottom:6px">
View:
<label><<radiobutton "$player.baseManagement.basementView" "mistress" autocheck>> Mistress</label>
<label><<radiobutton "$player.baseManagement.basementView" "attendant" autocheck>> Attendant</label>
</div>
<<done>><<run jQuery('#basement-view-toggle input[type="radio"]').on('change', function() { Engine.play('Basement'); })>><</done>>
<<if $player.baseManagement.basementView === 'attendant'>>
<<set _attImgNpc = _attendantIds[0].type === 'guest' ? $guests[_attendantIds[0].id] : $slaves[_attendantIds[0].id]>>
<<set _attImgNpc.location = 'basement'>>
<center><<actionImage _attImgNpc 'attendant' 'no-text'>></center>
<<else>>
<center><<actionImage $tmpGirl basement>></center>
<</if>>
<<elseif _hasMistress>>
<center><<actionImage $tmpGirl basement>></center>
<<else>>
<<set _attImgNpc = _attendantIds[0].type === 'guest' ? $guests[_attendantIds[0].id] : $slaves[_attendantIds[0].id]>>
<<set _attImgNpc.location = 'basement'>>
<center><<actionImage _attImgNpc 'attendant' 'no-text'>></center>
<</if>>
<</if>>
/* Mistress description + approach link */
<<if _hasMistress>>
<<set _activeBehaviors = []>>
<<if ($player.baseManagement?.mistressPunish ?? true)>><<set _activeBehaviors.push('punish')>><</if>>
<<if ($player.baseManagement?.mistressDiscipline ?? false)>><<set _activeBehaviors.push('discipline')>><</if>>
<<if ($player.baseManagement?.mistressCondition ?? true)>><<set _activeBehaviors.push('condition')>><</if>>
<<set _mistressBehavior = _activeBehaviors.length > 0 ? setup.getRandomElement(_activeBehaviors) : 'idle'>>
<<set _mistressDescriptions = {
punish: [
'is whipping one of your slaves at the post, making an example.',
'is circling a kneeling slave with a riding crop.',
'has one of your slaves bound tightly in an uncomfortable position.',
'is trying out a new piece of equipment on one of your slaves.',
'has one of your slaves on the ground under her foot.'
],
discipline: [
'is putting one of your slaves through laps around the basement.',
'has a slave on the ground doing push-ups as she corrects their form sharply.',
'has one of your slaves hauling heavy loads across the room.',
'is shouting at one of your slaves for taking a break.',
'stands over one of your slaves, counting out sit-ups.'
],
condition: [
'is whispering something into a slave\'s ear that makes them blush deeply.',
'is teaching one of your slaves a challenging sexual position.',
'is forcing one of your slaves to do their work in the nude.',
'has one of your slaves tied up in a very exposing position.',
'is reminding one of your slaves that their body belongs to their master.'
],
idle: [
'is sitting in the corner, arms crossed, watching the slaves with idle disdain.',
'is leaning against the wall, picking at her nails, visibly unimpressed.',
'has found herself a chair and is staring at nothing in particular.',
'is pacing slowly, as if waiting for someone to give her a reason to move.',
'looks up as you enter, expression flat — she has nothing to do and everyone knows it.'
]
}>>
<<=setup.displayName($tmpGirl)>> <<=setup.getRandomElement(_mistressDescriptions[_mistressBehavior])>><br /><br />
<<set _girlGuestLink = 'Approach ' + $tmpGirl.name>>
<<link `_girlGuestLink`>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $tmpGirlBack = 'Basement'>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirl.rape to false>>
<<set $guestId = _girlGuest[0]>>
<<unset $slaveId, $charId, $childId>>
<<goto 'NPC view - guest'>>
<</link>>
<<set _mistressId = _girlGuest[0]>>
<</if>>
/* Display attendants — image already rendered above; text descriptions only here */
<<if _attendantIds.length > 0>>
<<set _attVerbs = ['cleaning', 'grooming', 'washing', 'drying off', 'scrubbing', 'rinsing']>>
<<if ($player.baseManagement?.attendantStimulate ?? true)>>
<<run _attVerbs.push('tickling', 'teasing')>>
<<if $slaves.some(s => s.gender === 0 || s.gender === 2)>>
<<run _attVerbs.push('fingering')>>
<</if>>
<<if $slaves.some(s => s.gender === 1 || s.gender === 3)>>
<<run _attVerbs.push('stroking')>>
<</if>>
<</if>>
<<set _attSelectedVerbs = _attendantIds.map(() => _attVerbs.random())>>
<<for _attI, _attEntry range _attendantIds>>
<<set _attNpc = _attEntry.type === 'guest' ? $guests[_attEntry.id] : $slaves[_attEntry.id]>>
<<=setup.displayName(_attNpc)>> is <<=_attSelectedVerbs[_attI]>> one of your slaves<br />
<</for>>
<br />
<<for _attEntry range _attendantIds>>
<<set _attNpc = _attEntry.type === 'guest' ? $guests[_attEntry.id] : $slaves[_attEntry.id]>>
<<set _attLink = 'Approach ' + _attNpc.name>>
<<capture _attEntry, _attNpc, _attLink>>
<<link `_attLink`>>
<<set $tmpGirl = _attNpc>>
<<set $tmpGirl.location = _attEntry.type === 'guest' ? 'shower' : 'basement'>>
<<set $tmpGirlBack = 'Basement'>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirl.rape to false>>
<<if _attEntry.type === 'guest'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $guestId = _attEntry.id>>
<<unset $slaveId, $charId, $childId>>
<<goto 'NPC view - guest'>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<set $slaveId = _attEntry.id>>
<<unset $guestId, $charId, $childId>>
<<goto 'NPC view'>>
<</if>>
<</link>>
<</capture>>
<</for>>
<br /><br />
<</if>>
<<if (!(typeof _mistressId === 'undefined') || _attendantIds.length > 0) && $player.quests.slave_party>>
<<if setup.cabinInventory.count('food') >= 20 && setup.cabinInventory.count('champagne') > 0 && timeBetween('15:00', '22:00') && (setup.getAvailablePersons18yo($slaves)[0] ?? []).length >= 4>>
<<link 'Throw a party'>>
<<goto 'Basement - slave party'>>
<</link>>
<<linkdesc>>
-20 food, -1 champagne
<</linkdesc>>
<<else>>
<div class="link-internal" style="background: #ccc">
Throw a party
</div>
<<linkdesc>>
20 food, 1 champagne and time between 15:00 - 22:00 and at least 4 women as slaves.
<</linkdesc>>
<</if>>
<</if>>
<<if (setup.getAvailablePersons18yo($slaves)[0] ?? []).length >= 2 && $player.energy >= 20 && timeBetween('08:00', '23:00')>>
<<link 'Public punishment'>>
<<set $locationEvents.basement = true>>
<<goto 'Basement - public punishment'>>
<</link>>
<<linkdesc>>
Gather all slaves and punish 2-3 in front of everyone. All slaves gain submission.
<</linkdesc>>
<</if>>
<<if (setup.getAvailablePersons18yo($slaves)[0] ?? []).length >= 3>>
<<if timeBetween('18:00','20:30') && $player.energy >= 40>>
<<link 'Group workout with slaves'>>
<<energy -40>>
<<addmins 90>>
<<goto 'Group workout - slaves'>>
<</link>>
<<else>>
<div>
<div class="link-internal" style="background: #ccc">
Group workout with slaves
</div>
<<linkdesc>>
Time between 19:00 - 20:30. Energy 40
<</linkdesc>>
</div>
<</if>>
<</if>>
<<if ($game.location.bathhouse ?? false) && _isSlaveInBasement>>
<<link 'Mass shower'>>
<<set $massShowerMistressId = _mistressId>>
<<set $massShowerAttendantCount = _attendantIds.length>>
<<set $massShowerAttendantNames = _attendantIds.map(a => setup.displayName(a.type === 'guest' ? $guests[a.id] : $slaves[a.id]))>>
<<goto 'Basement - mass shower'>>
<</link>>
<</if>>
<<set _slaveSorter = setup.npcSortedIndices($slaves, $bsortBy, $player.companions, 'slave:')>>
<<set $bSortPanelOpen ??= false>>
<<set _bsSelfReload = State.history.length > 1 && State.history[State.history.length - 2].title === 'Basement'>>
<<if !_bsSelfReload>>
<<set $bSortPanelOpen = false>>
<</if>>
<table id="slaves" class="npc-list">
<tr class="item">
<td colspan="2">
<details id="bs-sort-details">
<summary class="sort-summary"><small>Sort options</small></summary>
<div class="sort-options" style="display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 0.5rem;">
<span>
<<if ($bsortBy !== 'N')>>
Sort by: <<link 'Name'>><<set $bsortBy = 'N'>><<goto 'Basement'>><</link>>
<<else>>
Sort by: <strong>Name</strong>
<</if>>
</span>
<span>
<<if ($bsortBy !== 'A')>>
<<link 'Assignment'>><<set $bsortBy = 'A'>><<goto 'Basement'>><</link>>
<<else>>
<strong>Assignment</strong>
<</if>>
</span>
<span>
<<if ($bsortBy !== 'P')>>
<<link 'Pregnancy'>><<set $bsortBy = 'P'>><<goto 'Basement'>><</link>>
<<else>>
<strong>Pregnancy</strong>
<</if>>
</span>
<span>
<<if (!$bsortBy || $bsortBy !== 'D')>>
<<link 'Arrival (default)'>><<set $bsortBy = 'D'>><<goto 'Basement'>><</link>>
<<else>>
<strong>Arrival (default)</strong>
<</if>>
</span>
</div>
</details>
<<done>>
<<run document.getElementById('bs-sort-details').open = State.variables.bSortPanelOpen>>
<<run jQuery('#bs-sort-details').on('toggle', function() { State.variables.bSortPanelOpen = this.open; })>>
<</done>>
</td>
</tr>
<<for _sortOrder, _i range _slaveSorter>>
<<capture _i>>
<<set _isSick = (typeof $slaves[_i].sick !== 'undefined')>>
<<set _isRest = (typeof $slaves[_i].rest !== 'undefined')>>
<<set _dayOff = _isSick || _isRest>>
<<set _genderClass = 'gender-' + setup.genderClass($slaves[_i])>>
<<set _customColorStyle = ''>>
<<if typeof $slaves[_i].color !== 'undefined' >>
<<set _customColorStyle = ' npc-color color-' + $slaves[_i].color >>
<</if>>
<<if setup.isAtWork($slaves[_i], $weather)>>
<<continue>>
<</if>>
<<if $slaves[_i].horny > 70 && _hornySlaveId === null>>
<<set _hornySlaveId = _i>>
<</if>>
<<set $showSlavesCount++>>
<<if $slaves[_i].happy < -70>>
<<run _suicidalSlaves.push(_i)>>
<</if>>
<<if $slaves[_i].sub < 50>>
<<run _lowSubmissionSlaves.push(_i)>>
<</if>>
<<run _slavesInBasement.push(_i)>>
<<if (timeBetween('20:00', '23:59') && setup.npcInventoryHas($slaves[_i], 'alcohol') && !($slaves[_i].pregnancy >= 7) && $slaves[_i].drunk <= ($slaves[_i].happy >= 50 ? 55 : ($slaves[_i].happy >= 0 ? 60 : 70)) && setup.percentageChance($slaves[_i].happy >= 50 ? 5 : ($slaves[_i].happy >= 0 ? 15 : 45)))>>
<<set $slaves[_i].drunk = Math.min(99, $slaves[_i].drunk + randomInteger(20, 55))>>
<<set $slaves[_i].happy = Math.min(100, $slaves[_i].happy + ($slaves[_i].drunk <= 50 ? 1 : ($slaves[_i].drunk <= 75 ? 2 : ($slaves[_i].drunk < 95 ? 0 : -5))))>>
<<if setup.percentageChance(50)>>
<<run setup.npcInventoryRemove($slaves[_i], 'alcohol')>>
<</if>>
<</if>>
<tr class="item">
<td style="min-width: 25%">
<<if setup.getAge($slaves[_i]) < 18>>
<span @class="_genderClass" @style="_customColorStyle">
<<link $slaves[_i].name>>
<<set $slaveId = _i>>
<<unset $guestId, $charId, $childId>>
<<set $tmpGirl = $slaves[_i]>>
<<set $tmpGirlBack = 'Basement'>>
<<set $tmpGirlViewBack = 'Child view'>>
<<goto 'Child view'>>
<</link>>
</span>
<<else>>
<span @class="_genderClass + _customColorStyle">
<div class="tooltip">
<<set _tipSkills = ($slaves[_i].skills ?? []).filter(s => typeof setup.skills[s] !== 'undefined').length>>
<<set _tipBelow = ($slaves[_i].personality ?? []).length + ($slaves[_i].traits ?? []).length>>
<<set _tipTotal = _tipSkills * 22 + 106 + _tipBelow * 22>>
<<set _tipPct = Math.round((_tipSkills * 22 + 53) / Math.max(_tipTotal, 1) * 100)>>
<<set _tipStyle = "left: -130px; background-color: transparent; opacity: 1; top: 50%; transform: translateY(-" + _tipPct + "%); ">>
<<set _girlVisual to $slaves[_i]>>
<span class="tooltiptext" @style="_tipStyle">
<<for _skill range ($slaves[_i].skills ?? [])>>
<<if typeof setup.skills[_skill] !== 'undefined'>>
<div class="trait tooltip">
<<=setup.skills[_skill].title>>
<span class="tooltiptext"><<=setup.skills[_skill].description>></span>
</div>
<</if>>
<br />
<</for>>
<div class="say npcsay npc-say-visual">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait">
<<include 'NPC visual'>>
</div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<<for _pTrait range ($slaves[_i].personality ?? [])>>
<div class="trait trait-personality tooltip">
<<=_pTrait>>
<span class="tooltiptext"><<=setup.personality.info[_pTrait] ?? ''>></span>
</div>
<br />
<</for>>
<<for _trait range ($slaves[_i].traits ?? [])>>
<div class="trait tooltip">
<<=setup.traits[_trait].title>>
<span class="tooltiptext"><<=setup.traits[_trait].description>></span>
</div>
<br />
<</for>>
</span>
<<link $slaves[_i].name>>
<<set $tmpGirl to $slaves[_i]>>
<<set $tmpGirl.location = 'basement'>>
<<set $tmpGirlBack = 'Basement'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<set $slaveId = _i>>
<<run delete $guestId>>
<<run delete $charId>>
<<if !$slaves[_i].gender && !($slaves[_i].quests ?? {}).firstBasementVisit>>
<<if typeof $slaves[_i].quests === 'undefined'>>
<<set $slaves[_i].quests = {}>>
<</if>>
<<set $slaves[_i].quests.firstBasementVisit = true>>
<<goto 'Basement - first girl visit'>>
<<else>>
<<goto `$tmpGirlViewBack`>>
<</if>>
<</link>>
</div>
</span>
<</if>>
<<=setup.npcListInfo($slaves[_i], _isSick, _isRest)>>
</td>
<td>
<<npcListView $slaves[_i] _i 'slave'>>
</td>
<td>
<<link 'Kill'>>
/* rescue npc inventory first */
<<dialog 'Kill'>>
Are you sure you want to kill <<=setup.pronounceWho($slaves[_i])>>?
<br />
<<link 'Yes' 'Basement'>>
<<assignedTo $slaves[_i] 'none'>>
<<slaveRemove _i>>
<<dialogclose>>
<<set $player.reputation++>>
<<set $player.goodwill-->>
<<statsAdd 'slaves_killed'>>
<<statsAdd 'people_killed'>>
<</link>>
<</dialog>>
<</link>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<</if>>
<<if !_showSlavesCount && _workingInGarden>>
All your slaves are at assigned jobs...
<</if>>
<br /><br />
<<set _guestsLikesGirls = setup.commonValues([setup.getAvailablePersons18yo($guests)[1] ?? [], setup.propertyMatchIndexes($guests, 'likesGirls')])>>
<<set _slavesForFuck = setup.commonValues([setup.getAvailablePersons18yo($slaves)[0] ?? [], _slavesInBasement])>>
<<set _preGuestIdx = (_guestsLikesGirls.length > 0 ? setup.getRandomElement(_guestsLikesGirls) : null)>>
<<set _guestFuckChance = (_preGuestIdx !== null && (($guests[_preGuestIdx]?.family?.wives ?? []).length > 0 || $player?.baseManagement?.noOutOfMarriageSex)) ? 3 : 5>>
<<if _showSlavesCount && !$locationEvents.basement>>
<<set _randomNumber = randomInteger(1, 10)>>
<<if _randomNumber === 0 && _lowSubmissionSlaves.length>>
<<set $eventSlaveId = setup.getRandomElement(_lowSubmissionSlaves)>>
<<if setup.getAge($slaves[$eventSlaveId]) >= 18 && !$slaves[$eventSlaveId].gender>>
<<set $locationEvents.basement = true>>
<<set $tmpEvent = {
id: $eventSlaveId
}>>
<<if setup.percentageChance(50)>>
<<goto 'Basement event - try escape'>>
<<else>>
<<goto 'Basement event - try escape 2'>>
<</if>>
<</if>>
<<elseif _randomNumber === 1 && _hornySlaveId !== null && setup.getAge($slaves[_hornySlaveId]) > 17 && !$slaves[_hornySlaveId].gender && !$slaves[_hornySlaveId].virgin>>
<<set $hornySlaveId = _hornySlaveId>>
<<set $locationEvents.basement = true>>
<<goto 'Basement event - horny slave'>>
<<elseif _suicidalSlaves.length && setup.percentageChance(setup.suicideChance($slaves[_suicidalSlaves[0]]))>>
<<set $slaveId = _suicidalSlaves[0]>>
<<set $locationEvents.basement = true>>
<<goto 'Basement - slave hangman'>>
<<elseif !$player.quests.slave_party && $slaves.length >= 6 && $guests.length >= 6 && ((typeof _mistressId !== 'undefined' && $guests[_mistressId].relationship >= 90) || _attendantIds.some(a => (a.type === 'guest' ? $guests[a.id] : $slaves[a.id]).relationship > 60))>>
<<if typeof _mistressId !== 'undefined'>>
<<set $guestId = _mistressId>>
<<else>>
<<unset $guestId>>
<</if>>
<<unset $charId, $slaveId>>
<<set $locationEvents.basement = true>>
<<goto 'Basement - slave party introduction'>>
<<elseif _slavesForFuck.length && _guestsLikesGirls.length && setup.percentageChance(_guestFuckChance)>>
<<set $locationEvents.basement = true>>
<<set $tmpEvent = {
guestId: _preGuestIdx,
slaveId: setup.getRandomElement(_slavesForFuck)
}>>
<<goto 'Basement - guest asks to fuck slave'>>
<</if>>
<</if>>
[[Back|Wood cabin]]<h1 class="ptitle">BATHHOUSE</h1>
<br /><br />
<<set _npc1 = $guests[$tmpEvent.ids[0].split(':')[1]]>>
<<set _npc2 = $guests[$tmpEvent.ids[1].split(':')[1]]>>
You opened the door to the bathhouse.
<br />
<br />
<center>
<<image 'places/bathhouse/hottub_talk.jpg'>>
</center>
<br />
Just as the door creaked open, <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> smiling emerged, deep in conversation.
Their laughter and animated gestures filled the air as they noticed you.
<br /><br />
<<sayNpc _npc1>>
Hello there!
<</sayNpc>>
<br />
<<sayNpc _npc2>>
Have you been checking out the bathhouse too?
<</sayNpc>>
<br />
As the conversation flowed, they suggested something.
<br /><br />
<<sayNpc _npc1>>
You know, it's not just about the washing. Imagine enjoying the evening here with a hot tub right next to the bathhouse. How amazing would that be?
<</sayNpc>>
<br />
The idea caught your attention, and you started discussing the possibilities of combining the pleasure of outdoor bathing with the relaxation of a hot tub.
The conversation had turned into friendly banter about the potential for a cozy outdoor space.
<br /><br />
<<linkreplace 'I will think about that'>>
<<sayNpc _npc2>>
Who knows. Maybe one day we might meet there.
<</sayNpc>>
<br />
<center>
<<image 'places/bathhouse/towel_flash.webp'>>
</center>
<<=setup.displayName(_npc2)>> releases her towel passionately jumps a little on the spot in the result flashing her breasts.
<br /><br />
With smiles on your faces, you parted ways, leaving you with the exciting notion of transforming the area around the bathhouse into a tranquil retreat, complete with a hot tub to enjoy the serene ambiance
<br /><br />
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>>
<</linkreplace>><h1 class="ptitle">BATHHOUSE</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
Steam clings to the cracked tiles like a ghost refusing to leave. You sit on the worn wooden bench, letting your muscles relax, tension melting off you like frost under a morning sun.
<br /><br />
For once, it feels quiet. Peaceful. No sirens. No gunfire. Just the hiss of steam.
<br /><br />
Suddenly, the creaky door groans open. A figure steps through the fog - <<=setup.displayName(_npc)>>.
<br /><br />
<<video 'bathhouse/warm1'>>
<br /><br />
She grins when she sees you. That same crooked smile that always says she knows more than she lets on.
She's in worn but clean undergarments, clearly having scavenged something decent.
Her hair is damp, clinging to her shoulders. She walks in like she belongs, sitting down across from you with a playful smirk.
<br /><br />
<<sayNpc _npc>>
Well, well... didn't think you'd be the type to enjoy a hot box like this.
<</sayNpc>>
<br />
You chuckle. The conversation starts light—banter about old-world luxuries, stories of close calls, even a joke or two.
The tension, for once, isn't about survival. It's something else. Warmer. Closer.
<br /><br />
<<linkreplace 'Pull out your dick'>>
<<sayNpc _npc>>
Hmm, what the hell? So direct?
<</sayNpc>>
<br />
<<video 'bathhouse/warm2'>>
<br /><br />
She moves closer, her hand brushing yours. Her touch is electric in the steam.
<br /><br />
<<video 'bathhouse/warm3'>>
<br /><br />
You were already hard, and she gripped you tightly, her fingers moving with a rough, demanding rhythm.
She began to jerk you off, her hand moving up and down your shaft with a fierce intensity.
<br /><br />
<<sayNpc _npc>>
You like that?
<</sayNpc>>
<br />
<<=setup.displayName(_npc)>> seemed to sense it, her movements becoming even more frantic as she jerked you off.
Her hand was rough, her fingers digging into your skin as she worked you.
You could feel the sweat dripping down your body, mixing with hers as you both became more and more aroused.
<br /><br />
<<video 'bathhouse/warm4'>>
<br /><br />
<<=setup.displayName(_npc)>> leaned closer, her eyes locked onto yours.
She opened her mouth wide, and without any warning, she took your cock deep into her throat.
You let out a guttural groan, your hands reaching out to tangle in her hair as she began to suck you with a ferocious intensity.
<br /><br />
Her mouth was hot and wet, her tongue swirling around your shaft as she took you deeper and deeper.
You could feel the back of her throat constricting around you, her gag reflex fighting against the intrusion.
But she didn't stop, her eyes watering as she fought to take all of you.
<br /><br />
After what felt like an eternity of pleasure, <<=setup.displayName(_npc)>> finally pulled back, her lips swollen and her eyes watering slightly. She looked up at you, a smirk playing on her lips, and began to slowly unhook her bra.
<br /><br />
<<video 'bathhouse/warm5'>>
<br /><br />
The fabric fell away, revealing her breasts, which were already slick with sweat. She tossed the bra aside, her eyes never leaving yours.
<br />
Next, she hooked her thumbs into the waistband of her panties and slowly slid them down her legs, stepping out of them with a graceful, almost predatory movement.
She stood before you, completely naked, her body a testament to her strength and resilience in this harsh world.
<br /><br />
<<video 'bathhouse/warm6'>>
<br /><br />
She reached down, her hand wrapping around your shaft, and guided it to her pussy.
<br /><br />
Her eyes locked onto yours, a mix of desire and dominance in her gaze. She took her time, inch by inch, allowing your cock to slide into her wet, tight pussy.
You could feel every ridge, every contour of her inner walls as she enveloped you, the sensation almost too intense to bear.
<br /><br />
<<sayNpc _npc>>
You like seeing me take what I want?
<</sayNpc>>
<br />
<<video 'bathhouse/warm7'>>
<br /><br />
<<=setup.displayName(_npc)>>'s breath was coming in ragged gasps, her body glistening with sweat as she rode you with a fierce intensity.
<br /><br />
<<sayNpc _npc>>
Fuck, I'm so close
<</sayNpc>>
<br />
<<video 'bathhouse/warm8'>>
<br /><br />
<<=setup.displayName(_npc)>>'s eyes widened in surprise, but she didn't resist.
Instead, she let out a low moan, her body arching against yours as you began to fuck her with a raw, brutal intensity.
You could feel her pussy tightening around your cock, her muscles clenching and unclenching as you pounded into her.
<br /><br />
<<linkreplace 'Cum inside'>>
<<horny_reset>>
<<set _npc.horny = 0>>
<center>
<<image 'game/misc/creampie_cowgirl.webp'>>
</center>
<br /><br />
And with that, you came, your body convulsing with pleasure as you spilled your seed deep inside her.
<<=setup.displayName(_npc)>> collapsed against you, her body trembling with aftershocks, a satisfied smirk on her face.
<br /><br />
<<sayNpc _npc>>
Fuck, that was incredible
<</sayNpc>>
<br />
<<if $guests[$tmpEvent.id].virgin>><<run setup.npc.addHistory($guests[$tmpEvent.id], 'virgin_lost', { with: 'mc' })>><</if>>
<<set $guests[$tmpEvent.id].virgin = false>>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<</if>>
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<addmins 30>>
<<unset $tmpEvent>>
<<goto 'Bathhouse'>>
<</link>><h1 class="ptitle">BATHHOUSE</h1>
<br /><br />
<<set _npc = $guests[$tmpEvent.id]>>
As you step into the sauna, the warmth immediately embraces you, and the scent of wood and sweat fills the air.
<<=setup.displayName(_npc)>> is lying on her stomach, her body glistening with perspiration. She has a towel placed under her breasts, accentuating her relaxed posture.
<br /><br />
<center>
[img[setup.ImagePath+'places/bathhouse/towel.jpg']]
</center>
<br />
When she hears you enter, she glances back, her eyes softening as she recognizes you. With a smile, she gracefully wraps the towel around herself and sits up, her body still glowing from the heat.
<br /><br />
<<sayNpc _npc>>
Hey! Didn't hear you come in. What's up?
<</sayNpc>>
<br />
She greets you warmly, patting the spot next to her. You sit down beside her, feeling the warmth from her body radiate towards you.
<br /><br />
<div id="option_talk">
<<link 'Interact with her'>>
<<set $tmpGirl to _npc>>
<<set $tmpGirl.location = 'bathhouse'>>
<<set $tmpGirlBack = 'Bathhouse'>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirl.rape to false>>
<<run delete $slaveId>>
<<run delete $charId>>
<<set $guestId = $tmpEvent.id>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<goto $tmpGirlViewBack>>
<</link>>
</div>
<<if recall($suppCode)>>
<<linkreplace 'Careless her leg'>>
<<run $('#option_talk').hide()>>
<<video 'bathhouse/towel1'>>
<br /><br />
<<sayNpc _npc>>
Hmm, what you have in mind? What he's doing?
<</sayNpc>>
<br />
Then, without hesitation, she reaches out, her hand wrapping around you soft dick with a gentle but firm grip.
<br />
The sensation is both surprising and intimate as she begins to stroke you, her movements slow and deliberate. When you get hard enough, she steps one level down between your legs.
<br /><br />
<<video 'bathhouse/towel2'>>
<br /><br />
She leans lower and gently puts your dick inside her soft mouth. Her lips wraps around your dick as she slowly slides your dick deeper in deeper inside her mouth with each thrust. Eyes are fully locked in yours.
<br /><br />
<<video 'bathhouse/towel3'>>
<br /><br />
Then with a gentle hand movement she touches her towel and let if fall on the ground, revealing her breasts. You touch her nipples before reaching for her shoulder ready to position her.
<br /><br />
<div id="option_bend">
<<linkreplace 'Bend her over'>>
<<run $('#option_back').hide()>>
<<run $('#option_continue').show()>>
<<video 'bathhouse/towel4'>>
<br /><br />
Then, you position yourself behind her, your hands steadying her hips. Slowly, you begin to enter her, feeling the warmth and tightness as you push deeper. <<=setup.displayName(_npc)>> lets out a soft moan, a sound that’s a mix of pleasure and longing, her body instinctively pressing back against you.
<br /><br />
<<sayNpc _npc>>
Oh... That's the spot...
<</sayNpc>>
<br />
<</linkreplace>>
</div>
<div id="option_back">
<<linkreplace 'Push her on her back'>>
<<run $('#option_bend').hide()>>
<<run $('#option_continue').show()>>
<<video 'bathhouse/towel5'>>
<br /><br />
<<sayNpc _npc>>
Let me.
<</sayNpc>>
<br />
With her hands firmly planted on the bench for support, she positions herself over you, guiding you back inside her with a slow, deliberate motion.
You feel her body pressing down against you, and she begins to move, controlling the pace and depth with each movement of her hips.
<br /><br />
<<=setup.displayName(_npc)>> rides you with a mixture of power and grace, her movements purposeful as she takes what she wants, her body dictating the rhythm.
Each time she pushes down, you feel her muscles tense and relax around you, the sensation overwhelming as she fully takes the lead.
Her moans become more frequent, louder, as she moves faster, her body arching and grinding against you.
<br /><br />
<</linkreplace>>
</div>
<div id="option_continue" style="display:none">
With the intensity still high between you, <<=setup.displayName(_npc)>> shifts again, taking full control of the situation.
<br /><br />
<<sayNpc _npc>>
Sit down.
<</sayNpc>>
<br />
You obey, moving to sit on the edge of the bench, your body still tingling from the previous moments.
<<=setup.displayName(_npc)>> stands in front of you, her gaze filled with a mix of desire and determination.
Without breaking eye contact, she positions herself in front of you as she lowers herself and rubs her pussy against your dick.
<br /><br />
<<video 'bathhouse/towel6'>>
<br /><br />
<<sayNpc _npc>>
Just relax and let me do the job for once.
<</sayNpc>>
<br />
<<video 'bathhouse/towel7'>>
<br /><br />
As she slides onto you the sensation of her enveloping you again is almost overwhelming, made even more intense by the way she takes charge.
Standing over you, she begins to move, slowly at first, then faster, using the strength in her legs to lift and lower herself onto you.
<br /><br />
<div id="option_lead">
<<linkreplace 'Take the lead'>>
<<set _lead = true>>
<<sayNpc _npc>>
Oh my god! Ah.....
<</sayNpc>>
<br />
<<video 'bathhouse/towel8'>>
<br /><br />
With each forceful movement, you can feel her body reacting, her breath becoming more ragged, her moans growing louder.
She remains standing over you, her legs trembling slightly as you continue to thrust upward, the intensity increasing with every motion.
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Cum in mouth'>>
<<if !_lead>>
<<run $('#option_lead').hide()>>
<</if>>
<<video 'bathhouse/towel9'>>
<br /><br />
She slips your dick out and rushes towards it with her mouth. She barely make it. As she wraps her lips around your cock as tight as she can, you cum deep into her throat.
Your cum shoots so deep that her gag reflex kicks in for a second. After that she manages to swallow your cum.
<br /><br />
<<sayNpc _npc>>
Didn't expect that pressure. Almost killed me, haha.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>>
<<horny_reset>>
<<set _npc.horny = 0>>
<</linkreplace>>
</div>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Careless her leg
<<notPatreonIcon>>
</div>
<</if>><h1 class="ptitle">BATHHOUSE</h1>
<br />
<center>
<<image 'places/bathhouse/hottub_post_party_intro.jpg'>>
</center>
<br /><br />
<<set _ids = $tmpEvent.ids.shuffle()>>
<<set _id1 = _ids[0]>>
<<set _id2 = _ids[1]>>
<<set _id3 = _ids[2]>>
<<set _girl1 = $guests[_id1]>>
<<set _girl2 = $guests[_id2]>>
<<set _girl3 = $guests[_id3]>>
The bathhouse was never this alive. Through the steam you heard voices — laughter, bare feet on stone, the clink of an almost-empty bottle. The party had followed three of them here.
<br /><br />
<<=setup.displayName(_girl1)>>, <<=setup.displayName(_girl2)>>, and <<=setup.displayName(_girl3)>> were still going. Still drunk, still glowing, arranged loosely at the edge of the hot tub like they'd claimed it for the rest of the night.
<br /><br />
<<video 'bathhouse/hottub_afterpart1'>>
<br /><br />
<<=setup.displayName(_girl1)>> spotted you first. Her eyes went half-lidded and she tilted her head with the kind of smile that doesn't bother pretending.
<br /><br />
<<sayNpc _girl1>>
Look who found us.
<</sayNpc>>
<br />
<<sayNpc _girl2>>
The water's warm. You should come in.
<</sayNpc>>
<br />
<<sayNpc _girl3>>
We've been wondering when you'd show up.
<</sayNpc>>
<br />
<div id="hottub_opt_join">
<<linkreplace 'Join them'>>
<<run $('#hottub_opt_leave').hide()>>
They watched as you undressed. No pretending it was casual. <<=setup.displayName(_girl2)>> bit her lip. <<=setup.displayName(_girl3)>> leaned over and whispered something to <<=setup.displayName(_girl1)>> that made her laugh and look away.
<br /><br />
The moment you stepped in the warmth closed around you — the water, the steam, three women who'd spent hours loosening up together and were now very clearly focused on you.
<br /><br />
<<video 'bathhouse/hottub_afterpart2'>>
<br /><br />
They moved through the water without a word between them. <<=setup.displayName(_girl1)>> reached you first, hands going straight to your waist, pulling your pants down before you'd registered what was happening. She sank, came back up, and her mouth was already open — your cock sliding between her lips before the ripples had settled.
<br /><br />
<<sayNpc _girl2>>
Don't be greedy.
<</sayNpc>>
<br />
<<sayNpc _girl1>>
I'm sharing.
<</sayNpc>>
<br />
<<video 'bathhouse/hottub_afterpart3'>>
<br /><br />
<<=setup.displayName(_girl2)>> and <<=setup.displayName(_girl3)>> moved in from either side. All three of them kneeling in the water, passing your cock between them — hands and mouths overlapping, each competing to get close enough. The sounds they made filled the whole room.
<br /><br />
<<video 'bathhouse/hottub_afterpart4'>>
<br /><br />
<<=setup.displayName(_girl2)>> and <<=setup.displayName(_girl3)>> drifted toward each other, mouths finding necks and then lips. <<=setup.displayName(_girl1)>> kept her eyes on you, both hands on your thighs, steady and unhurried.
<br /><br />
<<sayNpc _girl1>>
Don't watch them. Watch me.
<</sayNpc>>
<br />
<<video 'bathhouse/hottub_afterpart5'>>
<br /><br />
She took her time — slow pulls, eyes up, occasionally pulling back just to breathe against the length of your cock. <<=setup.displayName(_girl2)>> and <<=setup.displayName(_girl3)>> were wrapped around each other behind her, not paying attention to anything else.
<br /><br />
<<linkreplace 'Pull her up'>>
<<addmins 15>>
<<=setup.displayName(_girl1)>> pulled back and looked up at you — a question she already knew the answer to. You lifted her by the arm and she moved willingly, settling back against the edge of the tub with her legs apart.
<br /><br />
<<video 'bathhouse/hottub_afterpart6'>>
<br /><br />
You pushed inside her slowly. She exhaled like she'd been holding her breath since the party started. Her head dropped back against the tile, the water moving with each thrust, and you found a rhythm that made her fingers curl against the stone.
<br /><br />
<<sayNpc _girl1>>
Oh god — yes. Like that.
<</sayNpc>>
<br />
<<=setup.displayName(_girl2)>> and <<=setup.displayName(_girl3)>> glanced over. They waded closer without needing to be asked.
<br /><br />
<<video 'bathhouse/hottub_afterpart7'>>
<br /><br />
<<=setup.displayName(_girl1)>> climbed onto you, bracing herself on your chest, and started riding. <<=setup.displayName(_girl2)>> leaned in and took one of her nipples between her lips. <<=setup.displayName(_girl3)>> slipped her hand between their bodies and pressed two fingers against <<=setup.displayName(_girl1)>>'s clit, working in slow circles.
<br /><br />
<<=setup.displayName(_girl1)>>'s rhythm faltered. She cursed under her breath.
<br /><br />
<<sayNpc _girl1>>
Don't stop — don't either of you stop.
<</sayNpc>>
<br />
<<video 'bathhouse/hottub_afterpart8'>>
<br /><br />
She turned around without pulling off you, hands braced on the edge of the tub, and took over completely. <<=setup.displayName(_girl2)>> moved in front of her and they kissed — slow, distracted by the movement. <<=setup.displayName(_girl3)>> pressed close behind her, stroking her back, her hips, her sides, lips dragging across her shoulder.
<br /><br />
<<video 'bathhouse/hottub_afterpart9'>>
<br /><br />
You pulled out. <<=setup.displayName(_girl1)>> turned immediately, wrapping both hands around your cock, stroking fast and hard. She didn't break eye contact with <<=setup.displayName(_girl2)>> as she kissed her — one hand on your cock, the other gripping <<=setup.displayName(_girl3)>>'s jaw, pulling her into it too. The three of them kissed in turns while her hands kept working, relentless.
<br /><br />
<<sayNpc _girl2>>
Come on. Give it to us.
<</sayNpc>>
<br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<addmins 30>>
<<setNpcStats 'guest' _id1 'relationship' +10>>
<<setNpcStats 'guest' _id1 'happy' +15>>
<<setNpcStats 'guest' _id2 'relationship' +10>>
<<setNpcStats 'guest' _id2 'happy' +15>>
<<setNpcStats 'guest' _id3 'relationship' +10>>
<<setNpcStats 'guest' _id3 'happy' +15>>
<<video 'bathhouse/hottub_afterpart10'>>
<br /><br />
You came. <<=setup.displayName(_girl1)>> caught it with her lips, then turned and pressed her mouth against <<=setup.displayName(_girl2)>>'s — passed it on like a secret. <<=setup.displayName(_girl2)>> did the same with <<=setup.displayName(_girl3)>>. By the end all three of them had it on their lips and were laughing, too drunk and too satisfied to pretend otherwise.
<br /><br />
They sank back into the water, leaning against each other in the steam.
<br /><br />
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="hottub_opt_leave">
<<link 'Leave'>>
<<addmins 5>>
<<goto 'Bathhouse'>>
<</link>>
</div><h1 class="ptitle">HOT TUB</h1>
<br />
<<set $game.location.hottub = true>>
Hours pass as you labor tirelessly, welding and reinforcing the structure, fashioning it into a crude but functional vessel for warmth and relaxation.
Finally, as the last bolt is tightened and the final sealant applied, the hot tub stands ready, a testament to your ingenuity amidst the chaos.
<br /><br />
<<set _guests = setup.getAvailablePersons18yo($guests)>>
<<if (_guests[0] ?? []).length>>
<<set _randomGuest = $guests[setup.getRandomElement(_guests[0])]>>
<<if _randomGuest.horny > 50>>
<<set _npc = _randomGuest>>
<</if>>
<</if>>
<<if _npc>>
As you step back to admire your handiwork, one of your female guests approaches with a smile that lights up her face.
<br /><br />
<<sayNpc _npc>>
Congratulations on your masterpiece. Care if I am first one to test it out?
<</sayNpc>>
<br />
Before you even manage to reply to her, with a mischievous smile, she meets your gaze and begins to untie the fabric, revealing more of her sun-kissed skin with each tantalizing movement.
<br /><br />
<<set $tmpGirl = _npc>>
<<set $tmpGirl.location = 'hottub'>>
<<actionImage $tmpGirl 'undress'>>
<br /><br />
<<=setup.displayName($tmpGirl)>> gets into hot tub and as her shirt slips from her shoulders, she meets my gaze with a coy grin.
<br /><br />
<<sayNpc _npc>>
Care to join me?
<</sayNpc>>
<br />
<<linkreplace 'Join her'>>
You take of your clothes and slowly climb into hot tub. Before you even manage to sit down, she's already right between your legs with your dick in her mouth.
<br /><br />
<<actionImage $tmpGirl 'bj'>>
<br />
<<sayNpc $tmpGirl>>
I just wanted to than you for your hard work.
<</sayNpc>>
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<actionImage $tmpGirl 'cum_in_mouth'>>
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</if>>
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>><h1 class="ptitle">HOT TUB</h1>
<<set _npc = $guests[$tmpEvent.id]>>
<br />
As she gracefully slides into the hot tub next to you, the warmth of the water enveloping her naked form, the sunlight catches her skin, casting a radiant glow across her features.
<br /><br />
<<video 'bathhouse/hottub_relax1'>>
<br /><br />
Her eyes meet yours, a mixture of longing and uncertainty reflected in their depths. In this post-apocalyptic world, where survival often takes precedence over the simple pleasures of life, moments of intimacy like this are rare and precious.
<br /><br />
<<sayNpc _npc>>
What we got there, hehe.
<</sayNpc>>
<br />
In that moment, as her hand slips beneath the water and her fingers find your dick, a surge of sensation courses through you.
The touch is both unexpected and electrifying, sending a jolt of heat racing through your veins.
<br /><br />
<<video 'bathhouse/hottub_relax2'>>
<br /><br />
She leans in closer and her lips touches your dickhead. She gives light kiss to it before fully taking your half hard dick in her mouth.
The sensation is electric, a heady mixture of desire and anticipation that leaves you breathless.
<br /><br />
<<sayNpc _npc>>
Lets make him hard. I want to do it right here in the hot tub.
<</sayNpc>>
<br />
As she whispers her request, her voice husky with desire, you feel a surge of anticipation coursing through you.
<br /><br />
<<video 'bathhouse/hottub_relax3'>>
<br /><br />
With a nod, you comply, sitting up on the edge of the hot tub as she positions herself between your legs. As your eyes meet, she grabs your hard dick and puts it in her mouth and slowly and sensually starts to suck it.
<br /><br />
<<sayNpc _npc>>
How about you stick it into my pussy?
<</sayNpc>>
<br />
She turns around sits in doggy as invite for you.
<br /><br />
<<video 'bathhouse/hottub_relax4'>>
<br /><br />
<<sayNpc _npc>>
Just put it in, please!
<</sayNpc>>
<br />
<div id="option_fuck">
<<linkreplace 'Fuck her'>>
<<set _fucked = true>>
<<run $('#option_suck').hide()>>
<<run $('#option_cum').show()>>
You start slowly and slide your hard dick into her wet and tight pussy. She grabs the edges of hot tub as she quietly starts to moan.
<br /><br />
<<video 'bathhouse/hottub_relax5'>>
<br /><br />
<<sayNpc _npc>>
Oh yes! Keep it going.. You can go even harder.
<</sayNpc>>
<br />
<<video 'bathhouse/hottub_relax6'>>
<br /><br />
You grab her ass and pick up the speed. She lets out louder moan before grabbing her own ass and spreading her asscheeks
<br /><br />
<<sayNpc _npc>>
Oh don't stop! Keep going! Just warn me when you're ready so I can taste you.
<</sayNpc>>
<br />
<</linkreplace>>
</div>
<div id="option_suck">
<<linkreplace 'Just suck me'>>
<<run $('#option_fuck').hide()>>
<<run $('#option_cum').show()>>
<<video 'bathhouse/hottub_relax8'>>
<br /><br />
With a nod, she comply. For a brief moment she just puts tip of your dick into her mouth and jerks you off before starting to suck you of and even deepthroating you few times.
<br /><br />
<</linkreplace>>
</div>
<div id="option_cum" style="display:none">
<<linkreplace 'Cum'>>
<<horny_reset>>
<<set _npc.happy += 10>>
<<if _fucked>>
<<set _npc.horny = 0>>
<</if>>
She adjusts her position while on her knees, grabs your dick with one hand and jerks you off as fast as she can while simonteniously opened her mouth.
<br /><br />
<<video 'bathhouse/hottub_relax7'>>
<br /><br />
As you started to cum all over her face, she managed to grab some of it with her mouth too. In the end she decided to also clean your dick with her mouth.
<br /><br />
<<sayNpc _npc>>
Heh, great! I have a feeling I will need a shower after this hot tub.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">HOT TUB</h1>
<br />
<<addmins 30>>
<<set $player.quests.hottub = true>>
<center>
<<image 'places/bathhouse/hottub_relax.jpg'>>
</center>
<br />
As you sink into the warm embrace of the hot tub outside the bathhouse, the cares of the day melt away like snow under a spring sun.
The bubbling water envelops you, massaging away tension and leaving you weightless as if you're floating on a cloud.
The scent of cedar from nearby trees fills the air, mingling with the steam rising from the tub.
<br /><br />
<<if setup.perkHas('beaten') && setup.percentageChance(30)>>
And then, as you soak, something remarkable happens. It's as if the hot tub has a healing touch, targeting the sore spots and easing your discomfort.
You feel a sense of relief wash over you as the aches and pains in your body begin to dissipate, leaving you feeling refreshed and rejuvenated.
<br /><br />
<strong>Your body doesn't hurt anymore!</strong>
<<run delete $player.perks.beaten>>
<br /><br />
<<elseif $player.maxEnergy < 140 && setup.percentageChance(40)>>
<<set $player.maxEnergy += 10>>
And then, unexpectedly, a surge of energy courses through you. It's as if the warmth of the water has awakened something dormant within you, filling you with renewed vigor and vitality.
Your senses sharpen, and you feel more alive than ever before.
<br /><br />
<strong>Max energy increased to <<=$player.maxEnergy>>!</strong>
<br /><br />
<</if>>
<<if recall($suppCode)>>
<<set _guests = setup.getAvailablePersons18yo($guests)>>
<<if _guests[0].length>>
<<set _randomGuestId = setup.getRandomElement(_guests[0])>>
<<set _randomGuest = $guests[_randomGuestId]>>
<<if _randomGuest.horny > 50 && _randomGuest.relationship >= 60 && !(_randomGuest.traits ?? []).includes('feral')>>
<<set _npc = _randomGuest>>
<</if>>
<</if>>
<</if>>
<<if _npc>>
As you relax in the hot tub outside, the dim glow of flickering torches casting eerie shadows around you, you find a moment of respite from the harsh realities of the post-apocalyptic world.
<br />
Suddenly, one of your female guests, her eyes reflecting a mixture of desire and desperation, approaches you hesitantly.
<br /><br />
<<sayNpc _npc>>
Mind if I join you
<</sayNpc>>
<br />
<<set $tmpGirl = _npc>>
<<set $tmpGirl.location = 'hottub'>>
<<actionImage $tmpGirl 'undress'>>
<br />
Before you can respond, she begins to unfasten the tattered remnants of her clothing, her movements a mixture of determination and vulnerability.
The cold wind whips through the remnants of civilization, carrying with it a haunting reminder of the world that once was.
<br /><br />
<<link 'Sure'>>
<<set $tmpEvent = {
id: _randomGuestId
}>>
<<goto 'Hottub relax - join'>>
<</link>>
<</if>>
<<energy 10>>
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>><h1 class="ptitle">HOT TUB</h1>
<br />
<<if !($locationEvents.hottub_party ?? false) && ($game.partyNight ?? false)>>
<<set _partyHotTubGirls = setup.filterNPCs($guests, { likesGuys: true, hair_in: ['black', 'brown'], race_not: ['black'] })>>
<<if (_partyHotTubGirls[0] ?? []).length >= 3>>
<<set $locationEvents.hottub_party = true>>
<<set $tmpEvent = { ids: _partyHotTubGirls[0] }>>
<<goto 'Hottub \[Event\] - post party'>>
<</if>>
<</if>>
<<if _charactersInLocation['hottub'].includes('blair')>>
<<link 'Approach Blair'>>
<<goto 'Blair - hottub'>>
<</link>>
<</if>>
<<if !$player.quests.hottub>>
<<link 'Relax in hot tub'>>
<<goto 'Hottub relax'>>
<</link>>
<</if>>
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>><h1 class="ptitle">BATHHOUSE</h1>
<br />
<<addmins 30>>
<<set $tmpGirl.location = 'massage'>>
<<set _girlVisual = $tmpGirl>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*walks over to the table without hesitation, climbs on, and stretches out, looking back at you expectantly*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Wow, really? I would love that
<</sayNpc>>
<</if>>
<br />
<<=setup.displayName($tmpGirl)>> lies down on the massage table, her back facing you. She’s using a towel to cover her lower half,
preserving a sense of modesty despite the intimacy of the situation. You pour a small amount of warm oil into your hands, rubbing them together to warm it up.
The room is quiet except for the gentle sound of water dripping and the soft rustling of the towel as she adjusts herself.
<br /><br />
<<actionImage $tmpGirl 'massage_back'>>
<br />
You start with slow, gentle strokes along her shoulders and back, feeling the tension and stress in her muscles.
As you work, you can feel her begin to relax under your touch.
You focus on her shoulders and upper back, kneading out knots and tightness, using firm but careful pressure.
The warmth of the oil and the rhythm of your movements create a calming effect.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*makes a low, contented sound and presses back into your hands*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
This feels so good.
<</sayNpc>>
<</if>>
<br />
<<set $tmpGirl.relationship = Math.min(100, $tmpGirl.relationship + 10)>>
<<set $tmpGirl.happy += randomInteger(5, 10)>>
<<set $tmpGirl.horny += randomInteger(5, 10)>>
<<linkreplace 'Pull down her towel'>>
<<actionImage $tmpGirl 'remove_towel'>>
<br />
You slowly pull down her towel revealing her ass.
<br />
She breathes deeply, sinking further into the relaxation that the massage is providing.
You take your time, ensuring that she feels safe and comfortable throughout the entire process.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*lets out a long exhale and goes completely limp, trusting in your hands*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Oh my.. This feels like a heaven. Thank you.
<</sayNpc>>
<</if>>
<br />
<<actionImage $tmpGirl 'massage_ass'>>
<br />
As you massage her ass, you remain attentive to her responses, ensuring that she feels comfortable and relaxed throughout.
<br /><br />
<<if !setup.percentageChance(setup.sexChance($tmpGirl))>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*shifts restlessly and pulls away from your hands, clearly ready to stop*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
I think it will be enough. Thanks.
<</sayNpc>>
<</if>>
<br /><br />
<<elseif $tmpGirl.gender === 0>>
<<linkreplace 'Massage her pussy'>>
<<actionImage $tmpGirl 'massage_pussy'>>
<br />
Then you slide your hand between her legs and start to massage her pussy. She moans for a moment before relaxing fully on the table.
<br />
She lets you work on her pussy for some time. After that she pulls you closer to her head and slides down your pants.
<br /><br />
<<link 'Let her suck you'>>
<<fuck $tmpGirl>>
<<set $sexAction = 'bj'>>
<</link>>
<</linkreplace>>
<<elseif $tmpGirl.gender === 2>>
<<linkreplace 'Give her a handjob'>>
<<actionImage $tmpGirl 'handjob_reverse'>>
<br />
Then you put your hand around her cock and start stoking it.
<br />
She lets you work on her nob for some time. After that she pulls you closer to her head and slides down your pants.
<br /><br />
<<link 'Let her suck you'>>
<<fuck $tmpGirl>>
<<set $sexAction = 'bj'>>
<</link>>
<</linkreplace>>
<</if>>
<</linkreplace>>
<<linkreplace 'Finish'>>
After completing the massage on her lower back, you cover her again with the towel, ensuring she feels secure.
The massage has created a peaceful respite from the harshness of the post-apocalyptic world outside, a moment of care and comfort that is rare and precious.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*stretches luxuriously, then rubs her face against your hand, purring gratefully*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Thank you so much! This really was something.
<</sayNpc>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>>
<</linkreplace>><h1 class="ptitle">BATHHOUSE</h1>
<br /><br />
<<set _firstGuestId = $tmpEvent.bathhouseThreesome[0].split(':')[1]>>
<<set _secondGuestId = $tmpEvent.bathhouseThreesome[1].split(':')[1]>>
<<set _firstGirl = $guests[_firstGuestId]>>
<<set _secondGirl = $guests[_secondGuestId]>>
<center>
<<image 'places/bathhouse/threesome.jpg'>>
</center>
<br /><br />
To your surprise, you weren't alone. <<=setup.displayName(_firstGirl)>> and <<=setup.displayName(_secondGirl)>> were already in there.
Their silhouettes barely discernible in the semi-darkness, sat on the edge of the large communal tub, their eyes momentarily diverted from the world outside.
<br /><br />
<<you>>
Mind if I join you?
<</you>>
<br />
They turned, their eyes meeting yours. <<=setup.displayName(_firstGirl)>> with fiery hair and a glint of defiance in her eyes, smiled warmly.
<br /><br />
<<sayNpc _firstGirl>>
Plenty of room for three of us
<</sayNpc>>
<br />
As the conversation flowed, <<=setup.displayName(_firstGirl)>> and <<=setup.displayName(_secondGirl)>> shared stories of their time in your settlement,
the challenges they faced, and the small victories that kept them going. You found their tales both harrowing and inspiring, a testament to the resilience of the human spirit.
<br />
As time passed, the atmosphere shifted. Laughter replaced stories, and playful splashes replaced cautious words. The water became a shared embrace, comforting and intimate.
<br />
<<=setup.displayName(_firstGirl)>>'s hand brushed against yours, her eyes dancing with a playful glimmer.
<br /><br />
<<sayNpc _firstGirl>>
You know, in times like these, we have to grab onto moments of joy.
<</sayNpc>>
<br />
<<sayNpc _secondGirl>>
And sometimes, those moments come unexpectedly.
<</sayNpc>>
<br />
<<linkreplace 'Spread your legs'>>
<<=setup.displayName(_firstGirl)>> grabbed your dick and started to playfully touch it as <<=setup.displayName(_secondGirl)>> started to massage your back and put her breasts right into your face.
<br /><br />
<<video 'bathhouse/threesome1'>>
<br /><br />
As <<=setup.displayName(_firstGirl)>> was holding your dick in her hands, <<=setup.displayName(_secondGirl)>> pushed her tits onto your face and let you suck her already hard nipples.
<br /><br />
<<video 'bathhouse/threesome2'>>
<br /><br />
Both girls swap and <<=setup.displayName(_secondGirl)>> leans down towards your dick and sucks it into her mouth. Meanwhile <<=setup.displayName(_firstGirl)>> gets up and pushes her breasts into your face and lets you suck her nipples,
same as you did to <<=setup.displayName(_secondGirl)>> a moment back.
<br /><br />
<<sayNpc _firstGirl>>
Fuck me! Right now!
<</sayNpc>>
<br />
<<video 'bathhouse/threesome3'>>
<br /><br />
<<=setup.displayName(_firstGirl)>> lies on her side and you lie behind her. You grab your dck and rub it against her moist pussy, after that you slide it in and with hard thrusts fuck her.
<br />
<<=setup.displayName(_secondGirl)>> looks for a second before joining. She leans down and starts to lick your balls while you keep punding <<=setup.displayName(_firstGirl)>>.
<br /><br />
<<sayNpc _secondGirl>>
Don't forget about me!
<</sayNpc>>
<br />
<<video 'bathhouse/threesome4'>>
<br /><br />
<<=setup.displayName(_secondGirl)>> climbs on top of you and, holding onto <<=setup.displayName(_firstGirl)>>, slides down on your dick.
<br />
She slowly increases the pace, and her moans resonate throughout the entire bathhouse. <<=setup.displayName(_firstGirl)>> meanwhile plays with her bouncing breasts.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<addmins 30>>
<<video 'bathhouse/threesome5'>>
<br /><br />
They both dropped on their knees and opened their mouths as they waited for you to cum right into their faces. Instead all your load landed right on their beautiful breasts.
They giggled and a moment later exhausted laid down back on the benches.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>><h1 class="ptitle">BATHHOUSE</h1>
<br />
<div id="bath-sched-btn" style="float: right;">
<<link 'Bath Schedule'>>
<<script>>
Dialog.setup('Bathhouse Schedule', 'bathhouse-schedule');
Dialog.wiki(Story.get('Bathhouse Schedule').processText());
Dialog.open();
<</script>>
<</link>>
</div>
<<if $game.location.hottub ?? false>>
<div class="menu-grid">
<<grid bathhouse hottub 'Hottub' 'Hottub'>>
</div>
<</if>>
<div id="characters-in-location">
<<if (_charactersInLocation['bathhouse'] ?? []).includes('eve')>>
<<set _hornyClass = ($characters?.eve?.horny > 80) ? 'char-horny' : ''>>
<span @class="_hornyClass">
<<link '<div class="char-in-location">[img[setup.ImagePath+"people/eve/avatar.png"]]</div>'>>
<<goto 'Eve - shower'>>
<</link>>
</span>
<</if>>
<<if (_charactersInLocation['bathhouse'] ?? []).includes('octavia')>>
<<set _hornyClass = ($characters?.octavia?.horny > 80) ? 'char-horny' : ''>>
<span @class="_hornyClass">
<<link '<div class="char-in-location">[img[setup.ImagePath+"people/octavia/avatar.png"]]</div>'>>
<<goto 'Octavia - shower'>>
<</link>>
</span>
<</if>>
<<if (_charactersInLocation['bathhouse'] ?? []).includes('laura')>>
<<set _hornyClass = ($characters?.laura?.horny > 80) ? 'char-horny' : ''>>
<span @class="_hornyClass">
<<link '<div class="char-in-location">[img[setup.ImagePath+"people/laura/avatar.jpg"]]</div>'>>
<<goto 'Laura - shower'>>
<</link>>
</span>
<</if>>
</div>
<<set _peopleInBathhouse = {}>>
<table id="slaves">
<<for _bathGuestI, _bathGuest range $guests>>
<<capture _bathGuestI, _bathGuest>>
<<if _bathGuest.location !== 'bathhouse'>>
<<continue>>
<</if>>
<<if typeof _peopleInBathhouse[_bathGuest.gender] === 'undefined'>>
<<set _peopleInBathhouse[_bathGuest.gender] = {}>>
<</if>>
<<run _peopleInBathhouse[_bathGuest.gender]['guest:' + _bathGuestI] = true>>
<<set _genderClass = 'gender-' + setup.genderClass(_bathGuest)>>
<tr>
<td style="width: 300px">
<span @class="''+_genderClass+''">
<<link _bathGuest.name>>
<<set $tmpGirl to $guests[_bathGuestI]>>
<<set $tmpGirl.location = 'bathhouse'>>
<<set $tmpGirlBack = 'Bathhouse'>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirl.rape to false>>
<<run delete $slaveId>>
<<run delete $charId>>
<<set $guestId = _bathGuestI>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<if !_bathGuest.gender && Object.keys(_peopleInBathhouse[_bathGuest.gender] ?? {}).length >= 2 && setup.percentageChance(20)>>
<<set $tmpEvent = {
bathhouseThreesome: [
Object.keys(_peopleInBathhouse[_bathGuest.gender])[0],
Object.keys(_peopleInBathhouse[_bathGuest.gender])[1]
]
}>>
<<goto 'Bathhouse - threesome'>>
<<elseif !_bathGuest.gender && !(_bathGuest.traits ?? []).includes('feral') && setup.percentageChance(20)>>
<<set $tmpEvent = {
id: _bathGuestI
}>>
<<goto 'Bathhouse - towel'>>
<<else>>
<<goto `$tmpGirlViewBack`>>
<</if>>
<</link>>
</span>
<<set _jobDescMap = {
'garden': 'the garden', 'forest': 'the forest',
'milk_barn': 'the barn', 'hunter': 'the hunt',
'scavenging': 'a scavenging run', 'streets': 'the streets',
'nightclub': 'a night at the nightclub', 'strip_club': 'the strip club',
'quarry': 'the quarry', 'companion_slave': 'the road', 'companion_guest': 'the road'
}>>
<<set _jobDesc = _jobDescMap[_bathGuest.assignedTo] ?? 'the day'>>
<<set _hisOrHer = setup.pronounceWhos(_bathGuest)>>
<<set _shaveText = (_bathGuest.gender === 1) ? 'shaving ' + _hisOrHer + ' stubble' : 'shaving ' + _hisOrHer + ' legs'>>
<<set _grimeText = setup.getRandomElement(['sweat', 'dust', 'grime'])>>
<<set _bathActivities = ['washing ' + _hisOrHer + ' hair', 'drying ' + _hisOrHer + ' hair', 'splashing water on ' + _hisOrHer + ' face', _shaveText, 'soaping off the ' + _grimeText + ' of ' + _jobDesc, 'taking some steam in the sauna']>>
<<if $game.location.hottub ?? false>><<run _bathActivities.push('having a soak in the hot tub')>><</if>>
<<if setup.npcInventoryHas(_bathGuest, 'cosmetics')>><<run _bathActivities.push('applying some lotion')>><</if>>
<<if (_bathGuest.traits ?? []).includes('nymphomaniac')>><<if setup.npcInventoryHas(_bathGuest, 'sextoy')>><<run _bathActivities.push('moaning softly from a shower stall, a soft hum audible under the curtain')>><<else>><<run _bathActivities.push('moaning softly from a shower stall')>><</if>><</if>>
<<set _massageTarget = null>><<set _massageTargetIdx = -1>><<set _massageTargetIsGuest = false>>
<<if !_bathGuest.gender && (_bathGuest.likesGirls ?? false) && settings.lesbiansEnabled>>
<<for _mgi, _mg range $guests>>
<<if _massageTarget>><<break>><</if>>
<<if _mg.gender === 0 && _mgi !== _bathGuestI && _mg.location !== 'bathhouse'>>
<<set _mgSched = setup.bathSchedule[_mg.assignedTo]>>
<<if _mgSched && timeBetween(_mgSched.from, _mgSched.to)>>
<<set _massageTarget = _mg>><<set _massageTargetIdx = _mgi>><<set _massageTargetIsGuest = true>>
<</if>>
<</if>>
<</for>>
<<if _massageTarget>><<run _bathActivities.push('give_massage')>><<set _targetGenderClass = 'gender-' + setup.genderClass(_massageTarget)>><<set $bathMassageGuestIdx = _massageTargetIdx>><</if>>
<</if>>
<<set _chosenActivity = setup.getRandomElement(_bathActivities)>>
<<if _chosenActivity === 'give_massage'>>is giving <span @class="_targetGenderClass"><<link _massageTarget.name>>
<<set $tmpGirl = $guests[$bathMassageGuestIdx]>>
<<set $tmpGirl.location = 'bathhouse'>>
<<set $guestId = $bathMassageGuestIdx>><<run delete $slaveId>><<run delete $charId>>
<<set $tmpGirl.rape to false>><<set $tmpGirlCapture to false>><<set $tmpGirlInvite to false>>
<<set $tmpGirlBack = 'Bathhouse'>><<set $tmpGirlViewBack = 'NPC view - guest'>>
<<goto 'NPC view - guest'>>
<</link>></span> a massage.
<<else>>
is <<=_chosenActivity>>.
<</if>>
<<if (_bathGuest.horny ?? 0) >= 80>>
<<=ucfirst(setup.pronounceWhat(_bathGuest))>> looks <span style="background-image: radial-gradient(rgba(255, 182, 193, 0.5) 10%, transparent 90%); padding: 0 4px;">distracted...</span>
<</if>>
</td>
<td>
<<if [0,2].includes(_bathGuest.gender) && setup.getAge(_bathGuest) >= 17>>
Beauty score: <<=_bathGuest.beauty>>
<</if>>
</td>
<td>
Age: <<=setup.getAge(_bathGuest)>>
</td>
<td>
<<if _bathGuest.assignedTo>>
(<<=_bathGuest.assignedTo>>)
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br /><br />
<<set _bhKeys = Object.keys(_peopleInBathhouse[0] ?? {})>>
<<if !($locationEvents.bathhouse ?? false) && !($game.location.hottub ?? false) && _bhKeys.length >= 2 && !($guests[Number(_bhKeys[0].split(':')[1])]?.traits ?? []).includes('feral') && !($guests[Number(_bhKeys[1].split(':')[1])]?.traits ?? []).includes('feral') && setup.percentageChance(100)>>
<<set $locationEvents.bathhouse = true>>
<<set $tmpEvent = {
ids: [_bhKeys[0], _bhKeys[1]]
}>>
<<goto 'Bathhouse - hot tub talk'>>
<<pickup $backpack 'blueprint_hot_tub' 1>>
<</if>>
<<if !$player.showered>>
<<link 'Take a shower'>>
<<set $isBathhouse = true>>
<<goto 'Shower-action'>>
<</link>>
<</if>>
<<if !($locationEvents.bathhouse ?? false)>>
<<set _hornyNpcsBlackHair = setup.filterNPCs($guests, { hair: 'black', horny_gte: 50, 'virgin': false, race_in: ['white', 'latina']})>>
<<set _hornyNpcsBlackHair[0] = (_hornyNpcsBlackHair[0] ?? []).filter(id => !($guests[id]?.traits ?? []).includes('feral'))>>
<<if (_hornyNpcsBlackHair[0] ?? []).length && setup.percentageChance(10) && recall($suppCode)>>
<<set $locationEvents.bathhouse = true>>
<<set _hornyNpcsBlackHair = _hornyNpcsBlackHair[0].shuffle()>>
<<set $tmpEvent = {
id: _hornyNpcsBlackHair[0],
}>>
<<goto 'Bathhouse - steamy surprise'>>
<</if>>
<</if>>
<<if hasTime(1)>>
<<link 'Wait 30 minutes'>>
<<addmins 30>>
<<goto `passage()`>>
<</link>>
<</if>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<style>
#bath-sched-btn a {
background: #4A2511 !important;
color: #f0e8e0 !important;
border: 1px solid #6b3a20 !important;
box-shadow: none !important;
padding: 3px 10px !important;
border-radius: 3px !important;
letter-spacing: 0.5px;
font-size: 0.85em;
min-height: auto !important;
width: auto !important;
display: inline-block !important;
}
#bath-sched-btn a:hover {
background: #6b3a20 !important;
color: #fff !important;
}
</style><h2>Bathhouse Schedule</h2>
<p>A hand fashioned wooden framed in scrap plastic hangs beside the entrance to the bathhouse. On the sign, a hand-ruled grid has been drawn, listing out when guests from each assignment are scheduled to use the bath.</p>
<table class="mc-stats-table" style="width: 100%">
<thead>
<tr>
<th style="width: 40%">Assignment</th>
<th>Bath Hours</th>
</tr>
</thead>
<tbody>
<<for _bsJob, _bsData range setup.bathSchedule>>
<<set _bsActive = timeBetween(_bsData.from, _bsData.to)>>
<tr @style="_bsActive ? 'background: rgba(255, 215, 0, 0.12); font-weight: bold;' : ''">
<td><<= _bsJob.charAt(0).toUpperCase() + _bsJob.slice(1).replace(/_/g, ' ')>><<if _bsActive>> ✓<</if>></td>
<td><<= _bsData.from>> – <<= _bsData.to>></td>
</tr>
<</for>>
</tbody>
</table>
<p>Unassigned or un-listed assignments may visit the bathhouse at any time during the day, most likely in the morning.</p>
<p><em>✓ marks assignments currently within their bath window. </em></p>
<table class="mc-stats-table" style="width: 100%">
<thead>
<tr>
<th colspan="2">Special Invited Residents</th>
</tr>
</thead>
<tbody>
<<set _bsResidentCount = 0>>
<<if isMetChar('eve') && $characters.eve.quests.cabinType > 0>>
<<set _bsResidentCount++>>
<<set _bsEveActive = timeBetween('08:00', '09:00')>>
<tr @style="_bsEveActive ? 'background: rgba(255, 215, 0, 0.12); font-weight: bold;' : ''">
<td>Eve<<if _bsEveActive>> ✓<</if>></td>
<td>08:00 – 09:00</td>
</tr>
<</if>>
<<if isMetChar('octavia') && $characters.octavia.quests.next_move && !$characters.octavia.quests.emberclaw_ready_day>>
<<set _bsResidentCount++>>
<<set _bsOctaviaActive = timeBetween('09:00', '09:30')>>
<tr @style="_bsOctaviaActive ? 'background: rgba(255, 215, 0, 0.12); font-weight: bold;' : ''">
<td>Octavia<<if _bsOctaviaActive>> ✓<</if>></td>
<td>09:00 – 09:30</td>
</tr>
<</if>>
<<if isMetChar('laura') && $characters.laura.quests.living>>
<<set _bsResidentCount++>>
<<set _bsLauraActive = timeBetween('11:00', '11:30')>>
<tr @style="_bsLauraActive ? 'background: rgba(255, 215, 0, 0.12); font-weight: bold;' : ''">
<td>Laura<<if _bsLauraActive>> ✓<</if>></td>
<td>11:00 – 11:30</td>
</tr>
<</if>>
<<if isMetChar('blair') && $characters.blair.quests.cabinType > 0>>
<<set _bsResidentCount++>>
<<set _bsBlairActive = timeBetween('22:00', '23:30') && [4, 7].includes(($gameDate.getDay() || 7)) && ($game.location?.hottub ?? false)>>
<tr @style="_bsBlairActive ? 'background: rgba(255, 215, 0, 0.12); font-weight: bold;' : ''">
<td>Blair<<if _bsBlairActive>> ✓<</if>></td>
<td>22:00 – 23:30, Thu & Sun (hot tub)</td>
</tr>
<</if>>
<<if isMetChar('elsa') && $characters.elsa.quests.new_home>>
<<set _bsResidentCount++>>
<tr>
<td>Elsa</td>
<td><em>No fixed schedule</em></td>
</tr>
<</if>>
<<if isMetChar('isabel') && $characters.isabel.quests.saved && !$characters.dom.quests.alt_route>>
<<set _bsResidentCount++>>
<tr>
<td>Isabel</td>
<td><em>No fixed schedule</em></td>
</tr>
<</if>>
<<if _bsResidentCount === 0>>
<tr><td colspan="2"><em>No special residents invited yet.</em></td></tr>
<</if>>
</tbody>
</table>/* a little automation if settings allow it */
<<set $automatization ??= {}>>
<<set _ruleDup = $automatization.dup ?? false>>
<<set _ruleJob = $automatization.job ?? false>>
<<set _ruleHunter = $automatization.hunter ?? false>>
<<set _ruleStreetworker = $automatization.streetworker ?? 0>>
<<set _ruleButtplug = ($automatization.buttplug ?? false) || ($automatization.buttplugGender ?? []).includes(true)>>
<<set _ruleCondom = $automatization.condom ?? false>>
<<set _ruleDumbbell = $automatization.dumbbell ?? false>>
<<set _ruleWeapons = _ruleJob ? ($automatization.jobWeapons ?? 2) : 0>>
<<set _ruleBPgender = $automatization.buttplugGender ?? [_ruleButtplug, _ruleButtplug, _ruleButtplug, _ruleButtplug, _ruleButtplug]>>
<<set _managedWeapons = ['knife', 'sword', 'crossbow', 'arrow']>>
<<set _bellstrength = {
dumbbell: {min: 0, max: 30},
kettlebell: {min: 30, max: 50},
dumbestbell: {min: 50, max: 60},
}>>
<<if _ruleDup || _ruleJob || _ruleHunter || _ruleStreetworker || _ruleButtplug || _ruleCondom || _ruleDumbbell>>
<<set _outputAutoList ??= []>>
<<set _isStorageAvailable = ($game.location.shop ?? false)>>
<<set _npcs = $slaves.concat($guests)>>
<<set _want = {}>>
<<set _want_weapon = []>>
<<set _companions = new Map(), _companionSlaves = new Map()>>
<<for _companionKey, _companion range $player.companions>>
<<set _guestType = _companionKey.split(':')[0]>>>
<<set _npcIndex = _companionKey.split(':')[1]>>
<<if _guestType !== 'guest'>>
<<set _slave = $slaves[_npcIndex]>>
<<set _npcId = _slave.id>>
<<set _companionSlaves.set(_npcId, true)>>
<<else>>
<<set _guest = $guests[_npcIndex]>>
<<set _npcId = _guest.id>>
<<set _companions.set(_npcId, true)>>
<</if>>
<</for>>
<<set _outDupNpcs = []>>
<<set _outMinusNpcs = []>>
<<set _bp_plus = [], _bp_minus = []>>
<<for _npcI, _npc range _npcs>>
<<if setup.getAge(_npc) < 18>>
<<continue>>
<</if>>
<<set _job = _companions.has(_npc.id) ? 'companion' :
_companionSlaves.has(_npc.id) ? 'companion_slave': (_npc.assignedTo ?? 'none')>>
<<set _outDupItems = []>>
<<set _outMinusItems = []>>
/* effective toolbox: armed jobs get managed weapons stripped and re-added per loadout */
<<set _isArmedJob = _ruleJob && (setup.automatization.armed_jobs ?? []).includes(_job)>>
<<set _fixedWeapons = _isArmedJob ? (setup.automatization.fixed_weapon_jobs[_job] ?? null) : null>>
<<if _isArmedJob>>
<<set _effectiveJobTools = (setup.automatization.job_tools[_job] ?? []).filter(function(it) { return !_managedWeapons.includes(it); })>>
<<if _fixedWeapons !== null>> /* fixed loadout: streets/forest/scavenging/hunter */
<<for _wi range _fixedWeapons>>
<<set _effectiveJobTools.push(_wi)>>
<</for>>
<<elseif _ruleWeapons === 1>> /* minimum: knife only */
<<set _effectiveJobTools.push('knife')>>
<<elseif _ruleWeapons === 3>> /* all: full weapon loadout */
<<for _wi range _managedWeapons>>
<<set _effectiveJobTools.push(_wi)>>
<</for>>
<<elseif _ruleWeapons === 4>> /* custom: player-selected weapons */
<<set _customW = $automatization.jobWeaponsCustom ?? {}>>
<<if _customW.knife>><<set _effectiveJobTools.push('knife')>><</if>>
<<if _customW.sword>><<set _effectiveJobTools.push('sword')>><</if>>
<<if _customW.crossbow>>
<<set _effectiveJobTools.push('crossbow')>>
<<set _effectiveJobTools.push('arrow')>>
<</if>>
<<else>> /* best (2): keep whatever weapons they already carry */
<<for _wi range _managedWeapons>>
<<if setup.npcInventoryHas(_npc, _wi)>>
<<set _effectiveJobTools.push(_wi)>>
<</if>>
<</for>>
<</if>>
<<else>>
<<set _effectiveJobTools = (setup.automatization.job_tools[_job] ?? []).slice()>>
<</if>>
/* (setup.getNpcHappyLevel(_npc) === 'very_sad' */
<<if _ruleStreetworker && ['streets', 'nightclub', 'milk_barn', 'quarry'].includes(_job) && (setup.automatization.sexworkerDayOffCheck(_npc) || _npc.sick) && (typeof _npc.rest === 'undefined')>>
<<set _npc.rest = {
days: setup.getNpcHappyLevel(_npc) === 'very_sad' ? 3 : 2,
desc: 'Day off resting',
id: 'resting'
}>>
<</if>>
<<if _ruleButtplug>> /* add to specific gender only; remove from all when done */
<<set _gender = typeof _npc.gender !== 'undefined' ? _npc.gender : 4 >>
<<set _genderOK = _ruleBPgender[_gender]>>
<<if _npc.sub >= 20 && _npc.anal < 20 && !(_npc.buttplug ?? false) && _genderOK>>
<<set _bp_plus.push(_npc)>>
<<elseif _npc.anal >= 20 && (_npc.buttplug ?? false)>>
<<set _npc.buttplug = false>>
<<set setup.cabinInventory.pickup('buttplug', 1)>>
<<set _outMinusItems.push('Buttplug: 1')>>
<</if>>
<</if>>
/* chastity_belt, can only remove, TODO later */
<<for _itemI, _item range setup.inventoryNpc>>
<<if ['coat_wolf'].includes(_item)>><<continue>><</if>>
<<set _itemcount = setup.npcInventoryCount(_npc, _item)>>
/* duplicates go to backpack or storage */
<<if _ruleDup || (_ruleCondom && _item === 'condom') || (_ruleDumbbell && ['dumbbell', 'kettlebell', 'dumbestbell'].includes(_item)) ||
(_ruleHunter && ['bow', 'axe'].includes(_item)) ||
(_ruleJob && !['condom', 'dumbbell', 'kettlebell', 'dumbestbell'].includes(_item)) >>
<<if _itemcount > 1>>
/* armed jobs with crossbow in loadout keep up to 2 arrows */
<<set _maxAllowed = (_isArmedJob && _item === 'arrow' && _effectiveJobTools.includes('crossbow')) ? 2 : 1>>
<<if _itemcount > _maxAllowed>>
<<set _stripCount = _itemcount - _maxAllowed>>
<<run setup.cabinInventory.from_npc(_npc, _item, _stripCount, _managedWeapons.includes(_item))>>
<<set _outDupItems.push(_item + ': ' + _stripCount)>>
<<set _itemcount = _maxAllowed>>
<</if>>
<</if>>
<</if>>
<<if _item === 'condom'>>
<<if !_ruleCondom>>
<<continue>>
<</if>>
/* special for condom, no need if already pregnant, age >=60, wrong gender, see setup.pregnancyChance(_npc) */
/* < <if (typeof _npc.pregnancy !== 'undefined' || _npc.gender || _npc.age >= 60)> > */
<<if !setup.canGetPregnant(_npc)>>
<<if _itemcount > 0>>
<<run setup.cabinInventory.from_npc(_npc, _item, _itemcount)>>
<<set _outMinusItems.push(_item + ': ' + _itemcount)>>
<</if>>
<<elseif (_job === 'streets' || _job === 'nightclub') && _itemcount == 0>>
<<set _want[_item] ??= []>>
<<set _want[_item].push(_npc)>>
<</if>>
/* special for dumbbell, baseed on strength not toolbox */
<<elseif ['dumbbell', 'kettlebell', 'dumbestbell'].includes(_item)>>
<<if !_ruleDumbbell>>
<<continue>>
<</if>>
<<if _bellstrength[_item].min <= _npc.strength && _npc.strength < _bellstrength[_item].max && _itemcount == 0>>
<<set _want[_item] ??= []>>
<<set _want[_item].push(_npc)>>
<<elseif (_npc.strength < _bellstrength[_item].min || _npc.strength >= _bellstrength[_item].max) && _itemcount > 0>>
<<run setup.cabinInventory.from_npc(_npc, _item, _itemcount, _managedWeapons.includes(_item))>>
<<set _outMinusItems.push(_item + ': ' + _itemcount)>>
<</if>>
/* toolbox for job */
<<elseif _ruleJob || (_ruleHunter && ['bow', 'axe'].includes(_item))>>
/* armed jobs with crossbow in loadout want 2 arrows */
<<set _neededCount = (_isArmedJob && _item === 'arrow' && _effectiveJobTools.includes('crossbow')) ? 2 : 1>>
<<if _effectiveJobTools.includes(_item) && _itemcount < _neededCount>>
<<set _want[_item] ??= []>>
<<for _wi to 0; _wi lt _neededCount - _itemcount; _wi++>>
<<set _want[_item].push(_npc)>>
<</for>>
<<elseif !_effectiveJobTools.includes(_item) && _itemcount > 0>>
<<run setup.cabinInventory.from_npc(_npc, _item, _itemcount, _managedWeapons.includes(_item))>>
<<set _outMinusItems.push(_item + ': ' + _itemcount)>>
<</if>>
<</if>>
<</for>>
<<if _outDupItems.length > 0>>
<<set _outDupNpcs.push(_npc.name + ' (' + _outDupItems.sort().join(', ') + ')')>>
<</if>>
<<if _outMinusItems.length > 0>>
<<set _outMinusNpcs.push(_npc.name + ' (' + _outMinusItems.sort().join(', ') + ')')>>
<</if>>
/* best mode: queue configurable armed-job NPCs who still have no weapon */
<<if _isArmedJob && _fixedWeapons === null && _ruleWeapons === 2>>
<<set _hasAnyWeapon = false>>
<<for _wt range _managedWeapons>>
<<if _wt !== 'arrow' && setup.npcInventoryHas(_npc, _wt)>>
<<set _hasAnyWeapon = true>>
<<break>>
<</if>>
<</for>>
<<if !_hasAnyWeapon>>
<<set _want_weapon.push(_npc)>>
<</if>>
<</if>>
<</for>>
<<if _outDupNpcs.length > 0>>
<<set _outputAutoList.push('Duplicates removed: ' + _outDupNpcs.sort().join('; ') + ';')>>
<</if>>
<<if _outMinusNpcs.length > 0>>
<<set _outputAutoList.push('Removed things: ' + _outMinusNpcs.sort().join('; ')+ ';')>>
<</if>>
<<unset _outDupItems, _outDupNpcs, _outMinusItems, _outMinusNpcs, _npcI, _npc, _npcs, _itemI, _item, _itemcount>>
/* using pop so guests gets first ;-) */
/* add */
<<for _item, _npcs range _want>>
<<set _outItem = []>>
<<set _itemcount = setup.automatization.job_tools.mc.includes(_item) ? 2 : 1>> /* save one for the MC */
<<for _npcs.length > 0 && setup.cabinInventory.has(_item, _itemcount)>>
<<set _npc = _npcs.pop()>>
<<run setup.cabinInventory.to_npc(_npc, _item)>>
<<set _outItem.push(_npc.name)>>
<</for>>
<<if _outItem.length > 0>>
<<set _outputAutoList.push('Added ' + _item + ' to: ' + _outItem.sort().join(', ') + ';')>>
<</if>>
<<if _want[_item].length > 0>>
<<set _outNo = []>>
<<for _npc range _want[_item]>>
<<set _outNo.push(_npc.name)>>
<</for>>
<<set _outputAutoList.push('Add failed - no ' + _item + ' in storage for: ' + _outNo.sort().join(', ') + ';')>>
<</if>>
<</for>>
/* buttplug */
<<set _outItemAdd = [], _outItemRemove = []>>
<<for _bp_plus.length > 0 && (setup.cabinInventory.has('buttplug') || _bp_minus.length > 0) >>
<<if setup.cabinInventory.has('buttplug')>>
<<set setup.cabinInventory.drop('buttplug', 1)>>
<<else>>
<<set _npc = _bp_minus.pop()>>
<<set _npc.buttplug = false>>
<<set _outItemRemove.push(_npc.name)>>
<</if>>
<<set _npc = _bp_plus.pop()>>
<<set _npc.buttplug = true>>
<<set _outItemAdd.push(_npc.name)>>
<</for>>
<<if _outItemRemove.length > 0>>
<<set _outputAutoList.push('Removed buttplug from: ' + _outItemRemove.sort().join(', ') + ';')>>
<</if>>
<<if _outItemAdd.length > 0>>
<<set _outputAutoList.push('Added buttplug to: ' + _outItemAdd.sort().join(', ') + ';')>>
<</if>>
<<if _bp_plus.length > 0>>
<<set _outNo = []>>
<<for _npc range _bp_plus>>
<<set _outNo.push(_npc.name)>>
<</for>>
<<set _outputAutoList.push('Add failed - no buttplug in storage for: ' + _outNo.sort().join(', ') + ';')>>
<</if>>
/* dumb-, dumber-, dumbest-bells, npc gets the next higher type */
<<if _ruleDumbbell>>
<<set _outItem = []>>
<<set _want.dumbbell ??= []>>
<<set _want.kettlebell ??= []>>
<<set _want.dumbestbell ??= []>>
<<for _item range ['kettlebell', 'dumbestbell']>>
<<for (_want.dumbbell.length > 0 || _want.kettlebell.length > 0) && setup.cabinInventory.has(_item, 1)>>
<<if _want.kettlebell.length > 0>>
<<set _npc = _want.kettlebell.pop()>>
<<run setup.cabinInventory.to_npc(_npc, _item)>>
<<set _outItem.push(_npc.name + ' got ' + _item + ' instead of kettlebell')>>
<<elseif _want.dumbbell.length > 0>>
<<set _npc = _want.dumbbell.pop()>>
<<run setup.cabinInventory.to_npc(_npc, _item)>>
<<set _outItem.push(_npc.name + ' got ' + _item + ' instead of dumbbell')>>
<</if>>
<</for>>
<<if _outItem.length > 0>>
<<set _outputAutoList.push(_item + ': ' + _outItem.sort().join(', ') + ';')>>
<</if>>
<<set _outItem = []>>
<</for>>
<</if>>
<<if _ruleHunter>>
<<set _item = 'axe'>>
<<set _outItem = []>>
<<set _want.bow ??= []>>
<<for _want.bow.length > 0 && setup.cabinInventory.has(_item, 2)>>
<<set _npc = _want.bow.pop()>>
<<run setup.cabinInventory.to_npc(_npc, _item)>>
<<set _outItem.push(_npc.name)>>
<</for>>
<<if _outItem.length > 0>>
<<set _outputAutoList.push('Hunter ' + _item + ' npc ← cabin: ' + _outItem.sort().join(', ') + ';')>>
<</if>>
<<if _want.bow.length > 0>>
<<set _outNo = []>>
<<for _npc range _want.bow>>
<<set _outNo.push(_npc.name)>>
<</for>>
<<set _outputAutoList.push('Hunter failed - no ' + _item + ': ' + _outNo.sort().join(', ') + ';')>>
<</if>>
<</if>>
<<unset _npc, _want, _outNo>>
/* best-mode weapon distribution: give each unarmed armed-job NPC the best available weapon */
<<if _ruleWeapons === 2 && _want_weapon.length > 0>>
<<set _outWpnItems = []>>
<<for _wNpc range _want_weapon>>
<<set _got = false>>
/* reserve 1 of each weapon for the MC — require has(item, 2) before giving */
/* 1. crossbow + arrows — arrows usable if already carried OR in storage */
<<if !_got && setup.cabinInventory.has('crossbow', 2) && (setup.npcInventoryHas(_wNpc, 'arrow') || setup.cabinInventory.has('arrow', 2))>>
<<run setup.cabinInventory.to_npc(_wNpc, 'crossbow')>>
<<if setup.cabinInventory.has('arrow', 2)>>
<<run setup.cabinInventory.to_npc(_wNpc, 'arrow')>>
<<if setup.cabinInventory.has('arrow', 2)>>
<<run setup.cabinInventory.to_npc(_wNpc, 'arrow')>>
<</if>>
<</if>>
<<set _outWpnItems.push(_wNpc.name + ' ← crossbow')>>
<<set _got = true>>
<</if>>
/* 2. sword */
<<if !_got && setup.cabinInventory.has('sword', 2)>>
<<run setup.cabinInventory.to_npc(_wNpc, 'sword')>>
<<set _outWpnItems.push(_wNpc.name + ' ← sword')>>
<<set _got = true>>
<</if>>
/* 3. knife */
<<if !_got && setup.cabinInventory.has('knife', 2)>>
<<run setup.cabinInventory.to_npc(_wNpc, 'knife')>>
<<set _outWpnItems.push(_wNpc.name + ' ← knife')>>
<<set _got = true>>
<</if>>
/* 4. crossbow without arrows — at least they can scavenge arrows in the field */
<<if !_got && setup.cabinInventory.has('crossbow', 2)>>
<<run setup.cabinInventory.to_npc(_wNpc, 'crossbow')>>
<<set _outWpnItems.push(_wNpc.name + ' ← crossbow (no arrows)')>>
<<set _got = true>>
<</if>>
<<if !_got>>
<<set _outputAutoList.push('Arm failed — no weapons in storage for: ' + _wNpc.name)>>
<</if>>
<</for>>
<<if _outWpnItems.length > 0>>
<<set _outputAutoList.push('Armed (best): ' + _outWpnItems.join(', '))>>
<</if>>
<<unset _want_weapon, _outWpnItems, _wNpc, _wt, _hasAnyWeapon, _got>>
<</if>>
/* MC */
<<set _outItem = []>>
<<if _isStorageAvailable>>
<<for _item range setup.automatization.job_tools.mc.sort()>>
<<if !$backpack.has(_item) && $storage.has(_item)>>
<<transfer $storage $backpack _item 1>>
<<set _outItem.push('Got +' + _item)>>
<<elseif $backpack.has(_item)>>
/* keep */
<<else>>
<<set _outItem.push('No -' + _item)>>
<</if>>
<</for>>
<</if>>
<<if (_outItem ?? []).length > 0>>
<<set _outputAutoList.push('You: ' + _outItem.join(' | '))>>
<</if>>
<<unset _outItem, _item>>
<</if>><<set _dnvData = $tmpEvent>>
<<set _dnvGuest = $guests[_dnvData.id]>>
<<if !_dnvGuest>>
<<unset $game.partyNight, $tmpEvent>>
<<goto 'Bedroom-sleep'>>
<</if>>
<<unset $game.partyNight, $tmpEvent>>
<<set _dnvName = setup.displayName(_dnvGuest)>>
<h1 class="ptitle">BEDROOM</h1>
<br />
You fell asleep fast. The party had burned through whatever was left.
<br /><br />
At some point in the night — you couldn't say when — you felt her. Warmth. A hand moving under the sheets, slow and deliberate. Lips pressing against your chest.
<br /><br />
<<video 'bedroom/drunk_visitor1'>>
<br /><br />
You were still half asleep, eyes heavy, but your body was already awake. <<= _dnvName>>'s hand wrapped around your cock and stroked it slowly, like she had nowhere else to be.
<br /><br />
Then <<= _dnvName>> moved lower.
<br /><br />
<<video 'bedroom/drunk_visitor2'>>
<br /><br />
<<= _dnvName>> slipped under the sheets completely. The warmth of her mouth replaced the warmth of her hand — wet and soft, taking her time, her tongue working the underside of the head.
<br /><br />
<<video 'bedroom/drunk_visitor3'>>
<br /><br />
<<= _dnvName>> took you deeper. All the way. You felt the back of her throat and heard a small, muffled sound from her that wasn't protest.
<br /><br />
<<set _dnvRideLabel = 'Let her keep going'>>
<<set _dnvPushLabel = 'Push her away'>>
<div id="dnv_ride">
<<linkreplace _dnvRideLabel>>
<<run $('#dnv_push').hide()>>
<<addmins 10>>
You put a hand on the back of her head under the sheets — not forcing, just acknowledging. <<= _dnvName>> pulled off slowly and came up from under the covers, hair loose, lips swollen, eyes reading you in the dark.
<br /><br />
<<sayNpc _dnvGuest>>
Sorry. I know I'm drunk. I just — I really wanted to do this.
<</sayNpc>>
<br />
<<= _dnvName>> held your gaze, waiting to see how you'd take it.
<br /><br />
<<sayNpc _dnvGuest>>
You sure?
<</sayNpc>>
<br />
You didn't answer. <<= _dnvName>> took that for a yes.
<br /><br />
<<video 'bedroom/drunk_visitor4'>>
<br /><br />
<<= _dnvName>> straddled you, reached down to guide you in, and sank down slowly — her breath catching at the end of it. <<= _dnvName>> sat still for a moment with you fully inside her, getting used to it.
<br /><br />
<<video 'bedroom/drunk_visitor5'>>
<br /><br />
Then <<= _dnvName>> started moving. Slow rolls of her hips at first, testing the angle, finding her rhythm. The sheets pooled around her. You watched her in the dark, her outline above you.
<br /><br />
<<video 'bedroom/drunk_visitor6'>>
<br /><br />
You started thrusting up into her — meeting each drop of her hips. <<= _dnvName>> made a sharp sound and grabbed the headboard, her thighs beginning to tremble. Her rhythm broke apart. <<= _dnvName>> was close.
<br /><br />
<<if _dnvGuest.virgin>>
<<run setup.npc.addHistory(_dnvGuest, 'virgin_lost', { with: 'mc' })>>
<<set _dnvGuest.virgin = false>>
<</if>>
<<run setup.npc.addHistory(_dnvGuest, 'first_sex_mc', { with: 'mc' })>>
<<set _dnvCumInLabel = 'Cum inside her'>>
<<set _dnvPullLabel = 'Pull out'>>
<div id="dnv_cum_in">
<<linkreplace _dnvCumInLabel>>
<<run $('#dnv_pull_out').hide()>>
<<horny_reset>>
<<set _dnvPreg = setup.pregnancyChance(_dnvGuest)>>
<<if _dnvPreg>>
<<set _dnvGuest.pregnancy = 0>>
<<set _dnvGuest.pregnancy_father = 'mc'>>
<</if>>
<<setNpcStats 'guest' _dnvData.id 'relationship' +5>>
<<setNpcStats 'guest' _dnvData.id 'happy' +5>>
<<set _dnvGuest.horny = 0>>
<<set _dnvGuest.orgasms ??= 0>>
<<set _dnvGuest.orgasms++>>
You drove up hard and held there. <<= _dnvName>> gasped and pressed down against you, her whole body shuddering as she came. You followed right behind her — filling her, hands gripping her hips, keeping her still while you finished.
<br /><br />
<center>
<<image 'game/misc/creampie_cowgirl.webp'>>
</center>
<br />
<<= _dnvName>> sat there on top of you for a moment, catching her breath, then carefully climbed off and lay down beside you without a word.
<br /><br />
<<sayNpc _dnvGuest>>
Go back to sleep.
<</sayNpc>>
<br />
<<link 'Go back to sleep'>><<sleep>><</link>>
<</linkreplace>>
</div>
<div id="dnv_pull_out">
<<linkreplace _dnvPullLabel>>
<<run $('#dnv_cum_in').hide()>>
<<horny_reset>>
<<setNpcStats 'guest' _dnvData.id 'relationship' +3>>
<<setNpcStats 'guest' _dnvData.id 'happy' +3>>
You grabbed her hips and lifted her off just in time.
<br /><br />
<<video 'bedroom/drunk_visitor7'>>
<br /><br />
<<= _dnvName>> came at the same moment — her thighs clenching, a sharp gasp she couldn't hold back. She shuddered through it while you finished across her stomach.
<br /><br />
<<set $guests[_dnvData.id].horny = 0>>
<<set $guests[_dnvData.id].orgasms ??= 0>>
<<set $guests[_dnvData.id].orgasms++>>
<<= _dnvName>> looked down at herself — chest rising and falling, your cum warm across her skin — and let out a slow breath.
<br /><br />
<<sayNpc _dnvGuest>>
Nice.
<</sayNpc>>
<br />
<<link 'Go back to sleep'>><<sleep>><</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="dnv_push">
<<linkreplace _dnvPushLabel>>
<<run $('#dnv_ride').hide()>>
<<setNpcStats 'guest' _dnvData.id 'relationship' -5>>
You put a hand flat on her chest and pressed — firm, no room for misreading it. <<= _dnvName>> pulled back from you and sat up in the dark.
<br /><br />
<<sayNpc _dnvGuest>>
Okay.
<</sayNpc>>
<br />
<<= _dnvName>> climbed out of the bed without another word and slipped back toward the door.
<br /><br />
<<link 'Go back to sleep'>><<sleep>><</link>>
<</linkreplace>>
</div><h1 class="ptitle">BEDROOM</h1>
<br />
<<set $tmpGirl = $guests.find(function(g) { return g && g.id === $sleepOver.id; })>>
The early morning air is cool against your skin as you slowly begin to wake.
The first thing you notice is the gentle breeze brushing over your exposed legs.
Confusion flickers through your sleepy mind as you realize the sheets have been pulled back, leaving you uncovered from the waist down.
<br /><br />
Your eyes flutter open, adjusting to the dim light filtering through the room. You glance down and your breath catches.
<<=setup.displayName($tmpGirl)>> is nestled between your legs.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*is already working, like she's found her favorite toy, her mouth warm and focused on your manhood*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
I thought you deserved a better wake-up call
<</sayNpc>>
<</if>>
<br />
<<video 'bedroom/stay_over1'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
She pulls back and noses slowly along your shaft like she is learning your scent. Then her hand wraps around the base and she gets back to work.
<<else>>
She pulls back, a soft, contented smile playing on her lips as she leans up to kiss your dick gently.
<br />
You can only nod, still reeling, as she wraps her hand around your dick, pulling the sheets more off you two, exposing your legs fully.
<</if>>
<br /><br />
<<video 'bedroom/stay_over2'>>
<br /><br />
She goes down till your balls and licks them, slowly moving upwards without taking her tongue off your dick. When she reaches top of your dick, she embraces it and fully takes it into her mouth.
<br />
She doesn't waste any time and her movements instantly are dedicated and focused.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*makes a low, insistent sound around you and picks up speed, grip tightening*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Fill up my mouth!
<</sayNpc>>
<</if>>
<br />
<<video 'bedroom/stay_over3'>>
<br /><br />
Almost with a force, she squeezed your dick before unleasing her fully power. She simuntaniously sucked and jerked you off.
She was doing that so fast, that it almost felt like she wants you to cum as fast as you can.
She didn't even try to fully get your dick into her mouth, only the tip of your dick was in her mouth as her full focus was on her hand movements.
<br /><br />
<<video 'bedroom/stay_over4'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<=setup.displayName($tmpGirl)>>'s movements have no hesitation — just relentless, single-minded focus, her whole attention fixed on drawing you over the edge.
<<else>>
<<=setup.displayName($tmpGirl)>>'s hand are almost a blur now, her voice cracking, barely keeping up. Her eyes flicker with desperation as she fights to maintain her speed.
<<=setup.displayName($tmpGirl)>> arm shake visibly, but she pushes on as she clearly wants your cum in her mouth. She looks so exhausted...
<</if>>
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<video 'bedroom/stay_over5'>>
<br /><br />
As you release your cum deep into her mouth, she slowly slows down, exhausted but with smile on her face as she did it.
She doesn't swallow it yet but is very careful so nothing drips out of her mouth.
As her mouth is fully loaded, she looks at you.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*swallows immediately — no ceremony — and looks up at you with calm, satisfied eyes*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Finally... Mm It toukh ageessss.
<</sayNpc>>
<</if>>
<br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
She held your gaze, then opened her mouth and let it spill — watching to see how you'd react.
<<else>>
Then with a smirk on her face she opened her mouth and slowly let your cum drip out.
<</if>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*licks her lips clean with slow deliberateness and gives you a long, considering look — pleased with herself*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
You want some? hehe
<</sayNpc>>
<</if>>
<br />
<<video 'bedroom/stay_over6'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
She gathered her clothes without ceremony and slipped out with one last, unhurried look back.
<<else>>
As she was done, she picked up her clothes and with a wink left the room.
<</if>>
<br /><br />
<<link 'Get up'>>
<<unset $sleepOver>>
<<goto 'Bedroom-sleep'>>
<</link>>
<</linkreplace>><h1 class="ptitle">BEDROOM</h1>
<br />
You approach <<=setup.displayName($tmpGirl)>>, the air heavy with the weight of the crumbling world around you.
The village is quiet, save for the distant sound of crackling fires.
<br /><br />
<<you>>
It’s going to be a cold night. Would you like to share my bed tonight?
<</you>>
<br />
She looks at you, her expression a mixture of exhaustion and something else.
<br /><br />
<<if $tmpGirl.relationship > 50 && $tmpGirl.likesGuys>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*tilts her head toward the bedroom and moves, her body almost cat-like as you follow*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Really? I'd like that.
<</sayNpc>>
<</if>>
<br />
In the bedroom you light a small lantern, its dim glow casting long shadows on the walls.
<br />
<<if isMetChar('blair') && $characters.blair.quests.cabinType > 0 && $characters.blair.livingLocation !== 'guesthouse'>>
Blair has already gone somewhere else to sleep.
<br />
<</if>>
She smiles, a small, tired thing, and slips off her jacket, laying it over a chair.
<br /><br />
<center>
<<image 'places/bedroom/sleepover2.webp'>>
</center>
<br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
She settles against you with the calm, relaxed movements of a creature that has found its den. She curls against you, her breath steady, safe in your arms.
<<else>>
You both settle into the bed, the silence thick but companionable. You feel the warmth of her body next to yours, a strange comfort in a world that’s anything but comfortable.
<br /><br />
You hesitate, then reach out to gently take her hand. She doesn’t pull away, and for the first time in what feels like forever, she truly relaxes.
<</if>>
<br /><br />
<center>
<<image 'places/bedroom/sleepover.webp'>>
</center>
<br />
<<set $sleepOver = {
type: 'guest',
id: $tmpGirl.id
}>>
<<setNpcStats 'guest' $guestId 'happy' 6>>
<<setNpcStats 'guest' $guestId 'relationship' 5>>
<<link 'Sleep'>>
<<goto 'Sleep eval'>>
<</link>>
<<if ['white','latina'].includes($tmpGirl.race)>>
<<if recall($suppCode)>>
<<linkreplace 'Grind against her ass'>>
<<if $tmpGirl.relationship > 50 && $tmpGirl.likesGuys>>
<<goto 'Bedroom - sleepover grind'>>
<<else>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*shifts away from you with a firm, low sound and resettles against the pillow. The meaning is clear*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Please don't. Let's just sleep.
<</sayNpc>>
<</if>>
<br />
<</if>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Grind against her ass
<<notPatreonIcon>>
</div>
<</if>>
<</if>>
<<link 'Fuck'>>
<<set $tmpGirlViewBack = 'Sleep eval'>>
<<set $tmpGirlBack = 'Sleep eval'>>
<<fuck $tmpGirl>>
<</link>>
<<else>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*steps back, a quiet, unhurried refusal — no hostility, just a boundary*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Thank you, but I am okay. I’ve gotten used to sleeping on my own.
<</sayNpc>>
<</if>>
<br />
You nod again, watching as she walks away, a shadow among many in the dim light.
The rejection stings a little, but you tell yourself it’s just another part of surviving in this broken world.
<br /><br />
<<link 'Leave'>>
<<goto 'NPC view - guest'>>
<</link>>
<</if>><h1 class="ptitle">BEDROOM</h1>
<br />
<<if $tmpEvent.isSlave>>
<<set _npc = $slaves[$tmpEvent.id]>>
<<else>>
<<set _npc = $guests[$tmpEvent.id]>>
<</if>>
<<set _heOrShe = setup.pronounceWhat(_npc)>>
<<set _heOrSheU = setup.pronounceWhat(_npc, true)>>
<<set _hisOrHer = setup.pronounceWhos(_npc)>>
<<set _himOrHer = setup.pronounceWho(_npc)>>
<<addmins 30>>
You hadn't even opened your eyes when you sensed it — weight near the bed, a faint warmth, the smell of food cutting through the stale morning air.
<br /><br />
<<video 'bedroom/breakfast1'>>
<br /><br />
When you turned your head, <<=setup.displayName(_npc)>> was standing over you, completely naked. Not a thread on <<=_himOrHer>>. Tray in both hands, a plate of food balanced on it, <<=_hisOrHer>> eyes steady on you like <<=_heOrShe>>'d been waiting a while.
<br />
<<=_heOrSheU>> set the tray down on the mattress beside you. Then <<=_heOrShe>> straightened up, <<=_hisOrHer>> bare tits at eye level, nipples already stiff in the morning cool, and just stood there until you looked at <<=_himOrHer>>.
<br /><br />
<<sayNpc _npc>>
Breakfast. Fresh from the kitchen.
<</sayNpc>>
<br />
She let a beat pass, watching your face.
<br /><br />
<<sayNpc _npc>>
I also figured... you've been working hard. Thought you might want something else while the food's still warm.
<</sayNpc>>
<br />
She ran a hand slowly up her own stomach, over her ribs, and cupped one breast — not performance, just casual, like she had nowhere better to be.
<br /><br />
<<sayNpc _npc>>
Your call.
<</sayNpc>>
<br /><br />
<<if setup.player.hasFlaccidDick()>>
Her gaze dropped to the sheet. She reached for the corner and peeled it back slowly, looking at your cock — soft, limp, not even twitching. She held the sheet up for a moment. Said nothing. Then she let it fall and walked out without looking back. The tray stayed on the mattress beside you.
<br /><br />
<<link 'Get up'>>
<<goto 'Wood cabin'>>
<</link>>
<<else>>
<<linkreplace 'Watch her'>>
She reached into the bowl of fruit on the tray — fresh-picked, the kind that still had dirt clinging to the stem. She held one up, then slowly dragged it across her left nipple. Then the right. Back and forth, letting the juice run in thin lines down the curve of each breast, dripping off the hard bud.
<br /><br />
<<video 'bedroom/breakfast2'>>
<br /><br />
Her eyes didn't leave yours the entire time.
<br /><br />
<<linkreplace 'Take it from her'>>
She leaned down and brought the fruit to your mouth instead. You opened, and she pushed it past your lips, her fingers brushing your tongue. You chewed. She watched. Then she plucked another piece, rolled it between her palms, traced it slow across her nipple again — same wet drag, same expression — and offered it to you.
<br /><br />
<<video 'bedroom/breakfast3'>>
<br /><br />
One by one she fed you that way. Skin-warm fruit against her tits first, then your mouth. Her breathing got shallower with each pass, her nipples darkening, her thighs pressing together.
<br /><br />
She set the last piece of fruit aside and reached for the corner of the sheet. She pulled it back slowly, all the way down, until your cock was exposed — already hard, thick and rigid against your stomach, a bead of pre-cum at the tip. Her gaze dropped to it and stayed there.
<br /><br />
<<video 'bedroom/breakfast4'>>
<br /><br />
She stared at your cock the way someone looks at something they've already decided to do.
<br /><br />
<<linkreplace 'Push her head down'>>
She didn't need much. She climbed onto the bed, wrapped her hand around the base of your cock, and licked a slow stripe up the underside from root to tip. Then she opened her mouth and sank down on it.
<br /><br />
<<video 'bedroom/breakfast5'>>
<br /><br />
Her lips stretched tight around your cock. She bobbed in a slow, deliberate rhythm — cheeks caving in with each pull, tongue dragging along the underside, spit building up and running down your cock. Every few strokes she went deeper, letting the head punch into the back of her throat. Her eyes watered but she didn't stop. The sounds coming out of her mouth were obscene — wet, slick, hungry — filling the otherwise silent room.
<br /><br />
<<linkreplace 'Grab her tits'>>
She pulled off with a loud, slick pop. A string of spit stretched from her swollen lips to the head of your cock before it broke. She shifted forward, pressed your cock flat against your stomach, and sandwiched it between her tits. She pushed them together around your cock and started to move.
<br /><br />
<<video 'bedroom/breakfast6'>>
<br /><br />
Every time she thrust forward the head of your cock pushed out between her tits — slick with spit, flushed, leaking. She watched it happen with a slack expression, jaw loose, hips rocking to keep the friction tight. Her nipples grazed your stomach on every downstroke and she let out a low, continuous moan like she was getting something out of it too.
<br /><br />
<<linkreplace 'Push her onto her back'>>
You grabbed her and shoved her back onto the mattress. She landed with a sharp exhale, tits bouncing from the impact. You grabbed her ankles and spread her legs wide, positioning yourself between them, the head of your cock pressed against her soaking pussy.
<br /><br />
<<video 'bedroom/breakfast7'>>
<br /><br />
You pushed in. Her pussy stretched around your cock and swallowed it all the way to the balls in one slow thrust. She arched off the mattress with a long, broken moan, hands grabbing fistfuls of bedsheet as her walls clenched tight around you.
<br /><br />
<<video 'bedroom/breakfast8'>>
<br /><br />
You pinned her thighs back and started pounding her. Hard, deep strokes that drove the air out of her with every hit — her tits shaking, her whole body sliding up the mattress. She screamed into the morning, raw and loud, her pussy gripping your cock with every thrust like it didn't want to let you pull back out.
<br /><br />
<div id="option_creampie">
<<linkreplace 'Cum inside her'>>
<<run $('#option_stomach').hide()>>
<<horny_reset>>
<<set _npc.horny = 0>>
<<if $tmpEvent.isSlave>>
<<setNpcStats 'slave' $tmpEvent.id 'happy' 15>>
<<setNpcStats 'slave' $tmpEvent.id 'relationship' 5>>
<<else>>
<<setNpcStats 'guest' $tmpEvent.id 'happy' 15>>
<<setNpcStats 'guest' $tmpEvent.id 'relationship' 5>>
<</if>>
<center>
<<image 'game/misc/creampie_on_back.webp'>>
</center>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<<if _npc.virgin>><<run setup.npc.addHistory(_npc, 'virgin_lost', { with: 'mc' })>><</if>>
<<set _npc.virgin = false>>
<</if>>
<br />
You slammed in one last time and held there, teeth clenched, cock pulsing as you erupted deep inside her. Thick ropes of cum flooded her pussy, each pulse drawing a ragged cry out of her as she felt it fill her up. Her walls spasmed around you, clenching hard, milking every last drop out of your cock.
<br /><br />
She sat on you for a moment, trembling, your cum already leaking out around your cock and running down your balls. Then she climbed off, legs unsteady, reached for the breakfast tray, and set it in your lap like nothing happened.
<br /><br />
<<link 'Get up'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_stomach">
<<linkreplace 'Pull out and cum on her stomach'>>
<<run $('#option_creampie').hide()>>
<<horny_reset>>
<<set _npc.horny = 0>>
<<if $tmpEvent.isSlave>>
<<setNpcStats 'slave' $tmpEvent.id 'happy' 10>>
<<setNpcStats 'slave' $tmpEvent.id 'relationship' 5>>
<<else>>
<<setNpcStats 'guest' $tmpEvent.id 'happy' 10>>
<<setNpcStats 'guest' $tmpEvent.id 'relationship' 5>>
<</if>>
<center>
<<image 'game/misc/cum_on_stomach.webp'>>
</center>
<br />
You shoved her off and grabbed your cock, stroking fast as she dropped back onto the mattress. She spread her thighs and watched you with glassy eyes. You aimed at her stomach and came — heavy, thick spurts that painted her skin in white streaks from her navel up to the underside of her tits. She flinched with each hot pulse, chest heaving, mouth open.
<br /><br />
She dragged a finger through the mess on her stomach, held it up, looked at it. Then she put it in her mouth without breaking eye contact.
<br /><br />
<<link 'Get up'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<</if>><h1 class="ptitle">BEDROOM</h1>
<br />
You could feel the curve of her ass pressing against you, and without conscious thought, you began to grind against her, your cock hardening with each movement.
<br /><br />
<<video 'bedroom/sleepover_cuddle1'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<=setup.displayName($tmpGirl)>> stirred with a low, instinctive sound, pressing back against you without thinking about it.
<<else>>
<<=setup.displayName($tmpGirl)>> stirred, a soft moan escaping her lips as she pressed back against you, returning the favor.
<</if>>
<br /><br />
Your hands roamed her body, exploring the curves and valleys of her form, your touch growing bolder with each passing moment.
<br /><br />
She reached down, her hand wrapping around your cock, stroking you firmly, her touch confident and sure.
<br /><br />
<<video 'bedroom/sleepover_cuddle2'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either([
"makes a soft, pleased sound and settles into position, not wasting any time",
"glances back at you over her shoulder, eyes drawn to your manhood",
"exhales through her nose in a slow, satisfied way and shifts lower"
])>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
I guess you won't let me get some sleep so easy, heh.
<</sayNpc>>
<</if>>
<br />
With that, she leaned down, taking you into her mouth, her lips soft and wet, her tongue swirling around the sensitive head.
<br /><br />
<<video 'bedroom/sleepover_cuddle3'>>
<br /><br />
You let out a loud moan, your hands tangling in her hair, guiding her movements, urging her to take you deeper.
She complied, taking you in inch by inch, her hand working in tandem with her mouth, stroking you in time with her sucks.
<br /><br />
<<video 'bedroom/sleepover_cuddle4'>>
<br /><br />
The sensation was overwhelming, her mouth hot and tight, her tongue working magic on your shaft. You could feel the pleasure building, the pressure coiling at the base of your spine, ready to explode.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either([
"rolls toward you and opens her thighs, a soft groan of invitation in her throat",
"pushes up onto you, hips tilting — an unambiguous invitation with no words",
"presses her back into you and reaches to guide your hand, offering herself to your touch"
])>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Will you fuck me?
<</sayNpc>>
<</if>>
<br />
<<linkreplace 'Fuck her'>>
<<set _fuck = true>>
<<if $tmpGirl.virgin>><<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $tmpGirl.virgin = false>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<=setup.displayName($tmpGirl)>> didn't wait — she shifted and opened beneath you, positioning herself with a low, urgent sound. You lined yourself up, already hard.
<<else>>
<<=setup.displayName($tmpGirl)>> smiled, a look of pure desire in her eyes as she lay back, spreading her legs for you. You positioned yourself at her entrance, your cock hard and ready.
<</if>>
<br /><br />
<<video 'bedroom/sleepover_cuddle5'>>
<br /><br />
With one swift thrust, you entered her, your hips slamming against hers as you sheathed yourself fully inside her tight, wet pussy.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either([
"arches hard into you, a raw, wanting sound escaping her",
"curls her hips up sharply, taking more of you, a low grunt of want in her throat",
"drives back against you with a short, breathless moan"
])>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Deeper... Go deeper
<</sayNpc>>
<</if>>
<br />
She let out a loud moan, her back arching as she wrapped her legs around your waist, urging you to go deeper.
<br /><br />
<<video 'bedroom/sleepover_cuddle6'>>
<br /><br />
You obliged, your hips moving in a relentless rhythm, your cock filling her completely with each thrust.
The room filled with the sound of your bodies slapping together, her moans of pleasure, and your grunts of exertion.
<br /><br />
<<video 'bedroom/sleepover_cuddle7'>>
<br /><br />
You let out a loud groan, your hands gripping her hips, your fingers digging into her soft flesh as she began to ride you.
She moved with a sensual rhythm, her hips rolling and grinding against yours, taking you deep with each downward motion.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either([
"goes rigid all at once, a strangled, urgent sound locked in her throat — don't you dare move",
"stills suddenly, clenching around you, a high, broken sound catching in her chest",
"freezes with a sharp inhale, trembling — holding herself exactly there"
])>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Oh my god... Just like that.. Don't move
<</sayNpc>>
<</if>>
<br />
You positioned yourself behind her, your cock hard and ready. With one swift thrust, you entered her, your hips slamming against her ass as you took her from behind.
She let out a loud cry of pleasure, her body pushing back against yours, urging you to go deeper.
<br />
<<video 'bedroom/sleepover_cuddle8'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either([
"claws the sheets with both hands and drives back harder, a desperate, raw cry",
"makes a series of sharp, rhythmic sounds — rising in pitch with each one",
"grips whatever she can reach and holds on, making an unbroken, urgent sound"
])>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Don't stop, please don't stop
<</sayNpc>>
<</if>>
<br />
The sound of your bodies slapping together echoed through the room, mixing with her moans of pleasure and your own grunts of exertion.
<br /><br />
<<linkreplace 'Cum inside her'>>
<<run $('#option_more').show()>>
<<if setup.pregnancyChance($tmpGirl)>>
<<set $tmpGirl.pregnancy_father = 'mc'>>
<<set $tmpGirl.pregnancy = 0>>
<</if>>
With a final, deep thrust, you sent her over the cliff. Her body convulsed as she came undone, her pussy clenching around your cock, milking you for all you were worth
<br /><br />
<<set $tmpGirl.horny = 0>>
<<set $tmpGirl.orgasms ??= 0>>
<<set $tmpGirl.orgasms++>>
<<video 'bedroom/sleepover_cuddle9'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either([
"collapses against you with a long, spent exhale, pressing close and going still",
"drops flat and curls in, breathing slow and heavy, content and done",
"nuzzles into you with a soft, exhausted sound and doesn't move"
])>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
That was fucking incredible.. I will sleep like a dead person now
<</sayNpc>>
<</if>>
<br />
As you lay back down, your bodies entwined.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<<link 'Sleep'>>
<<if !_fuck>>
<<set $tmpGirl.relationship -= 20>>
<<set $tmpGirl.happy -= 20>>
<</if>>
<<set $guests[$guestId] = $tmpGirl>>
<<goto 'Sleep eval'>>
<</link>>
<div id="option_more" style="display:none">
<<link 'Fuck more'>>
<<set $tmpGirlViewBack = 'Sleep eval'>>
<<set $tmpGirlBack = 'Sleep eval'>>
<<fuck $tmpGirl>>
<</link>>
</div><h1 class="ptitle">BEDROOM</h1>
<br />
<<set _guest = $guests[$tmpEvent.id]>>
In the dim, flickering candlelight of your bedroom, you lay down in your bed, exhausted from another day of survival in this harsh, post-apocalyptic world. The silence of the night is interrupted by a gentle knock on your door.
<br /><br />
<center>
[img[setup.ImagePath+'places/bedroom/guest_visit.webp']]
</center>
<br /><br />
<<sayNpc _guest>>
I'm feeling scared tonight. Can I stay here with you?
<</sayNpc>>
<br />
<div id="option_yes">
<<linkreplace 'Yes'>>
<<set _guest.relationship = Math.min(100, _guest.relationship + 10)>>
<<set _guest.happy += 10>>
<<run $('#option_no').hide()>>
<<if $characters?.blair?.quests?.cabinType && $characters.blair.livingLocation !== 'guesthouse'>>
You try to tell Blair that she should move a bit but she's already sleeping and you can't wake her. Look like she won't wake up anytime soon.
<br /><br />
<</if>>
<<video 'bedroom/sleepover1'>>
<br /><br />
<<=setup.displayName(_guest)>> enters the room, her face pale and her eyes wide with anxiety. She quickly slips under the covers beside you, seeking the warmth and reassurance of another human presence.
<br /><br />
<<sayNpc _guest>>
Goodnight
<</sayNpc>>
<br />
A moment of silence passes between you, and then, tentatively, <<=setup.displayName(_guest)>> leans closer.
<br /><br />
<<sayNpc _guest>>
Can I... can I be close to you tonight?
<</sayNpc>>
<br />
<<you>>
Of course. We can find comfort in each other.
<</you>>
<br />
<div id="option_sleep">
<<link 'Try to sleep'>>
<<sleep>>
<</link>>
</div>
<div id="option_lift">
<<linkreplace 'Lift her night skirt'>>
<<run $('#option_sleep').hide()>>
<<video 'bedroom/sleepover2'>>
<br /><br />
Feeling a deep connection, you tentatively lift her night skirt a bit, your movements slow and careful revealing her firm ass and panties.
<br /><br />
<<sayNpc _guest>>
What are you doing?
<</sayNpc>>
<br />
You pause, your heart pounding. She looks at your bulge as she smiles with her eyes. Then she leans closer to you once more.
<br /><br />
<<sayNpc _guest>>
I want to feel close too. But not with you dressed. I want you to take it out.
<</sayNpc>>
<br />
<<video 'bedroom/sleepover3'>>
<br /><br />
As you pull out your hard cock, she has already pressed her ass against your leg and lifted her nightshirt up even more reaviling her ass fully. You decide to turn towards her and put your dick between her ass cheeks.
<br /><br />
<<video 'bedroom/sleepover4'>>
<br /><br />
You move closer, your bodies pressing together as the warmth and connection between you grow stronger. She breathes, her voice filled with anticipation and mutual desire.
<br /><br />
She pulls her panties aside and looks into your eyes, her gaze steady.
<br /><br />
<<sayNpc _guest>>
I want you in my ass. Just do it slowly.
<</sayNpc>>
<br />
You proceed carefully, making sure she is comfortable and ready every step of the way as you put your dick against her asshole.
You begin to slowly slide your dick into her asshole, moving gently and attentively.
<br /><br />
<<video 'bedroom/sleepover5'>>
<br /><br />
At first, you encounter resistance as she's not fully relaxed. You pause, feeling her tension.
<br />
As she starts to relax, you try again, moving very slowly.
The tip of your dick enters her, and you both take a moment to adjust to the sensation. You can feel her body gradually relaxing more with each passing moment.
<br /><br />
<<video 'bedroom/sleepover6'>>
<br /><br />
Eventually, you are fully inside her, and you both take a moment to savor the connection. You begin to move with more speed, establishing a steady rhythm that feels good for both of you.
Throughout, you remain attentive to <<=setup.displayName(_guest)>>'s reactions. She starts to give out small moans.
<br />
As she relaxes more, <<=setup.displayName(_guest)>> starts to help you by making small movements with her lower back, pushing back against you to meet your thrusts.
Her participation encourages you, and you continue with the same rhythm.
<br /><br />
After a while, <<=setup.displayName(_guest)>> pauses and turns her head to you, a glint of determination in her eyes
<br /><br />
<<sayNpc _guest>>
I want to be on top of you.
<</sayNpc>>
<br />
<<video 'bedroom/sleepover7'>>
<br /><br />
You guide her as she slides your dick back into her asshole, both of you taking your time to ensure comfort.
Once she's comfortably seated, <<=setup.displayName(_guest)>> begins to move, slowly increasing her speed as she forward.
<br /><br />
<<sayNpc _guest>>
Oh this is it. I really like it.
<</sayNpc>>
<br />
<<if (_guest.traitsLocked ?? []).includes('analslut')>>
<<run _guest.traitsLocked.splice(_guest.traitsLocked.indexOf('analslut'), 1)>>
<strong> <<=setup.displayName(_guest)>> Anal slut locked trait has been removed!</strong>
<br /><br />
<</if>>
<<=setup.displayName(_guest)>>'s movements become even more intense, her body moving with a desperate urgency. The tightness around you, combined with the speed and intensity of her movements, sends you over the edge.
<br /><br />
<<linkreplace 'Cum in her asshole'>>
<<video 'bedroom/sleepover8'>>
<br /><br />
<<horny_reset>>
<<set _guest.horny = 0>>
<<set _guest.anal = Math.min(100, _guest.anal + 10)>>
<<=setup.displayName(_guest)>> continues to move through your orgasm, her own pleasure evident in her expression and the soft moans escaping her lips.
Finally, she slows down, her body relaxing as the waves of pleasure subside as your dick slips out.
<br /><br />
Both of you lie there for a moment, catching your breath and savoring the afterglow of the intense experience.
<br /><br />
<<link 'Sleep'>>
<<sleep>>
<</link>>
<</linkreplace>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="option_no">
<<linkreplace 'Maybe some other time'>>
<<run $('#option_yes').hide()>>
<<sayNpc _guest>>
Oh, alight.. I was hoping.. Nevermind...
<</sayNpc>>
<br />
She slowly closes your doors and goes away.
<br /><br />
<<set _guest.relationship-= 4>>
<<set _guest.happy -= 10>>
<<link 'Leave'>>
<<goto 'Bedroom'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">BEDROOM</h1>
<br />
<<if $tmpEvent.isSlave>>
<<set $tmpGirl = $slaves[$tmpEvent.id]>>
<<else>>
<<set $tmpGirl = $guests[$tmpEvent.id]>>
<</if>>
You stirred from your nap, slowly becoming aware of your surroundings. As you woke up, a subtle breeze caught your attention, and you felt the refreshing air around your crouch.
Confused, you opened your eyes to find <<=setup.displayName($tmpGirl)>> holding your blanket as she passionatly sucks your dick.
<br /><br />
<center>
<<image 'places/bedroom/maid1.webp'>>
</center>
<br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<=setup.displayName($tmpGirl)>> is kneeling on the bed over you, your blanket pushed aside — licking, kissing, and playing with your cock like it's her favorite thing in the world, completely absorbed in it*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Oh, I'm sorry I didn't want you to oversleep and you were hard so I decided that might as well wake you up.
<</sayNpc>>
<</if>>
<br />
As you stirred and kicked off your blanket, she looked up and held your gaze — not embarrassed, just waiting.
<br /><br />
<<linkreplace 'Tell her to undress'>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*squirms impatiently out of the uniform like it doesn't belong on her, then looks at you, bare and expectant*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Oh I hoped you would suggest something like that.
<</sayNpc>>
<</if>>
<br />
<center>
<<image 'places/bedroom/maid2.webp'>>
</center>
<br />
<<if !($tmpGirl.traits ?? []).includes('feral')>>
As she looked at you with a warm smile, she slowly slides down her top straps and later removes her top and lets it fall on the ground.
<</if>>
<br /><br />
<<link 'Fuck her'>>
<<set $tmpGirlViewBack = $tmpEvent.isSlave ? 'NPC view' : 'NPC view - guest'>>
<<set $tmpGirl.location = 'maid'>>
<<if $tmpEvent.isSlave>>
<<unset $guestId, $childId, $charId>>
<<set $slaveId = $tmpEvent.id>>
<<else>>
<<unset $slaveId, $childId, $charId>>
<<set $guestId = $tmpEvent.id>>
<</if>>
<<set $tmpGirlBack = 'Bedroom'>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<<set _fuckActionMapping = {
1: '%name% and Blair exchange glances with each other and playfully smile at each other before Blair places her hand on your chest and forcefully pushes you down. %name% spits on your dick before Blair puts it in her mouth and starts to suck you off while %name% focuses on your balls',
2: 'As you lie on the bed on your back, Blair gets on you in reverse cowgirl position and slides onto your dick. %name% meanwhile massages her ass and in a moment starts to help her with the movements',
3: "They both lie on their backs as you fuck Blair's pussy while other girl rubs her clit as she watches you both. %name% asks to fuck her too.",
4: "You switch to %name%'s pussy. The difference is noticeable immediately. If Blair was quiet, then %name% immediately starts moaning loudly throughout the room without any hesitation.",
5: '%name% drops on her knees and is ready to swallow your dick but instead of that you cum all over her face without a chance to warn her. She opens her mouth and puts her tongue out to catch each drop of you cum',
}>>
<<set $characters.blair.virgin = false>>
<<set _videoName = '/bedroom/guest_visit_threesome' + ($fuckAction ?? 1)>>
<<video `_videoName`>>
<<if $fuckAction !== 5>>
<<horny 20>>
<</if>>
<br /><br />
<<= _fuckActionMapping[($fuckAction ?? 1)].replaceAll('%name%', $guests[$guestId].name)>>
<br /><br />
<<if $fuckAction !== 5>>
<<link 'Double blowjob'>>
<<addmins 10>>
<<set $fuckAction = 1>>
<<goto `passage()`>>
<</link>>
<<link 'Fuck Blair reverse cowgirl'>>
<<addmins 10>>
<<set $fuckAction = 2>>
<<goto `passage()`>>
<</link>>
<<link 'Fuck Blair'>>
<<addmins 10>>
<<set $fuckAction = 3>>
<<goto `passage()`>>
<</link>>
<<set _linkName = 'Fuck ' + $guests[$guestId].name>>
<<link _linkName>>
<<addmins 10>>
<<set $fuckAction = 4>>
<<goto `passage()`>>
<</link>>
<<if $player.horny >= 100>>
<<link 'Cum'>>
<<addmins 5>>
<<set $fuckAction = 5>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<</if>>
<</if>>
<<if $fuckAction === 5>>
<<link 'Leave'>>
<<goto 'Sleep eval'>>
<</link>>
<</if>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<<set _guest = $guests[$guestId]>>
You sit down on your bed when suddenly your doors open and <<=setup.displayName(_guest)>> stands in the doors with only her nightshirt.
<br /><br />
<center>
<<image 'places/bedroom/guest_visit.webp' 'sfw'>>
</center>
<<set $tmpGirl = _guest>>
<<include 'NPC info'>>
<br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either([
"pads into the light of the doorway, " + setup.pronounceWhos($tmpGirl) + " nightshirt riding up, revealing " + setup.pronounceWhos($tmpGirl) + " undeniable arousal",
"comes in close and sets " + setup.pronounceWhos($tmpGirl) + " hand on the door frame, eyeing the bed as if awaiting an invitation...",
"lingers at the threshold for a beat, eyes moving over you hungrily, then steps inside, " + setup.pronounceWhos($tmpGirl) + " body gliding close enough for you to feel the heat of " + setup.pronounceWhos($tmpGirl) + " skin",
"crosses the room and stops right in front of you, " + setup.pronounceWhos($tmpGirl) + " body presented in a way that is unmistakable..."
])>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<<else>>
<<say $tmpGirl.name setup.ImagePath+'/people/anongirl.png'>>
Hey! What you're doing? Maybe want to have some fun?
<</say>>
<</if>>
<br /><br />
<<set _linkName = 'Fuck ' + $tmpGirl.name>>
<<if _charactersInLocation['bedroom'].includes('blair') && timeBetween('22:00','23:59') && $characters.blair.relationship >= 90>>
<<blair>>
Don't leave me out. Can I join?
<</blair>>
<<set _blairJoin = true>>
<br /><br />
<</if>>
<<link _linkName>>
<<run delete $charId>>
<<run delete $slaveId>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirlViewBack = 'Sleep eval'>>
<<set $tmpGirlBack = 'Sleep eval'>>
<<fuck $tmpGirl>>
<</link>>
<<if _blairJoin>>
<<if recall($suppCode)>>
<<link 'Fuck them both'>>
<<unset $fuckAction>>
<<goto 'Bedroom: horny guest - threesome Blair'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Fuck them both
<<notPatreonIcon>>
</div>
<</if>>
<</if>>
<<link 'Maybe some other time'>>
<<goto 'Bedroom'>>
<</link>><h1 class="ptitle">BEDROOM</h1>
<<if $game.day > 5 && !($game.location.basement ?? false)>>
<<goto 'Basement find'>>
<<else>>
<<if $player.horny >= 40>>
<<actionDream>>
<<else>>
<<image 'places/cabin/wake_up.webp'>>
<</if>>
<br /><br />
<<if $player.energy < 80>>
You wake up still tired, but ready to explore the world some more.
<<else>>
You wake up fully rested and ready to conquer the world.
<</if>>
<center>
<<set _messagesCount = setup.sleepMessages.count()>>
<<if _messagesCount >= 8>>
<br /><br />
<<link 'Wake up'>>
<<wakeUp>>
<</link>>
<</if>>
<<if _messagesCount>>
<h3>Some things have happened</h3>
<br />
<<for _morningMessageType, _morningMessages range ($morningMessages ?? {})>>
<<for _morningMessageSubType, _morningMessagesSub range _morningMessages ?? {}>>
<<if _morningMessagesSub.length>>
<div @class="'morning-messages ' + _morningMessagesType + ''">
<fieldset>
<legend><<=_morningMessageType>> <<=(_morningMessageSubType ? '(' + _morningMessageSubType + ')' : '')>> (<<=_morningMessagesSub.length>>)</legend>
<<for _i to 0; _i lt _morningMessagesSub.length; _i++>>
<div class="morning-message">
<<print _morningMessagesSub[_i]>>
</div>
<</for>>
</fieldset>
</div>
<</if>>
<</for>>
<</for>>
<</if>>
<<set $dailyUpdate = $morningMessages>>
<<unset $morningMessages>>
<br /><br />
<<link 'Wake up'>>
<<wakeUp>>
<</link>>
</center>
<</if>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<center>
<<set _girlGuest = setup.getPersonsForLocation($guests, 'maid')>>
<<set _npcSlave = setup.getPersonsForLocation($slaves, 'maid')>>
<<if _girlGuest.length>>
<<set _npc = $guests[_girlGuest[0]]>>
<<set _guestId = _girlGuest[0]>>
<<elseif _npcSlave.length>>
<<set _npc = $slaves[_npcSlave[0]]>>
<<set _slaveId = _npcSlave[0]>>
<<set _isSlave = true>>
<</if>>
<<if _npc && timeBetween('09:00', '15:00')>>
<<set $tmpGirl = _npc>>
<<set $tmpGirl.location = 'maid'>>
<center>
<<actionImage $tmpGirl cleaning>>
</center>
<<=setup.displayName($tmpGirl)>> is in your room cleaning. She doesn't notice you as she bends down to pick up something from the floor.
<br /><br />
<<set _girlGuestLink = 'Approach ' + $tmpGirl.name>>
<<link `_girlGuestLink`>>
<<set $tmpGirlViewBack = _isSlave ? 'NPC view' : 'NPC view - guest'>>
<<if _isSlave>>
<<unset $guestId, $childId, $charId>>
<<set $slaveId = _slaveId>>
<<else>>
<<unset $slaveId, $childId, $charId>>
<<set $guestId = _guestId>>
<</if>>
<<set $tmpGirlBack = 'Bedroom'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<goto $tmpGirlViewBack>>
<</link>>
<br /><br />
<</if>>
<<if _charactersInLocation['bedroom'].includes('blair') && timeBetween('22:00','23:59')>>
<<link 'Talk with Blair'>>
<<goto 'Blair - bedroom talk'>>
<</link>>
<</if>>
<<link "Sleep">>
<<if $game.partyNight>>
<<set _dnvCandidates = setup.filterNPCs($guests, {gender: 0, likesGuys: true, relationship_gte: 60, chastityBelt_not: [true], race_in: ['white', 'latina']})[0] ?? []>>
<<run console.log('[DNV] partyNight:', $game.partyNight, '| candidates:', _dnvCandidates, '| guests:', $guests.map(function(g){return {name:g.name,gender:g.gender,race:g.race,likesGuys:g.likesGuys,relationship:g.relationship,chastityBelt:g.chastityBelt}}))>>
<<if _dnvCandidates.length>>
<<set $tmpEvent = { id: _dnvCandidates[Math.floor(Math.random() * _dnvCandidates.length)] }>>
<<unset $game.partyNight>>
<<goto 'Bedroom - drunk night visitor'>>
<<else>>
<<unset $game.partyNight>>
<<sleep>>
<</if>>
<<else>>
<<sleep>>
<</if>>
<</link>>
<<if timeBetween('08:00','23:00') && !$player.nap>>
<<link 'Take a nap'>>
<<set $player.nap = true>>
<<addhours 1>>
<<energy 20>>
<<if _npc>>
<<energy 20>>
<</if>>
<<if _npc && setup.percentageChance(30) && _npc.likesGuys && !($locationEvents.bedroom ?? false)>>
<<set $tmpEvent = {
id: _isSlave ? _slaveId : _guestId,
isSlave: _isSlave
}>>
<<set $locationEvents.bedroom = true>>
<<goto 'Bedroom event - maid surprise'>>
<<else>>
<<goto 'Bedroom'>>
<</if>>
<</link>>
<</if>>
<<if timeBetween('08:00','23:00')>>
<<link 'Wait an hour'>>
<<addhours 1>>
<<goto 'Bedroom'>>
<</link>>
<</if>>
<<link 'Stats'>>
<<script>>
Dialog.setup("Stats", "Stats");
Dialog.wiki(Story.get("MC stats").processText());
Dialog.open();
<</script>>
<</link>>
<<link 'Mirror'>>
<<goto 'Mirror'>>
<</link>>
<<if ($game.cabinName ?? false)>>
<<link 'Settlement management'>>
<<goto 'Settlement management'>>
<</link>>
<</if>>
[[Back|Wood cabin]]
</center>
<<if !($locationEvents.bedroom ?? false)>>
<<if !$player?.quests?.policy_talk && $game?.cabinName && $game.day > 100 && _charactersInLocation['bedroom'].includes('blair') && timeBetween('22:00','23:59')>>
<<goto 'Blair - policy talk'>>
<<elseif timeBetween('20:00', '23:00') && setup.percentageChance(10)>>
<<set _hornyGuests = setup.filterNPCs($guests, {gender: 0, horny_gte: 51, likesGuys: true, relationship_gte: 70, chastityBelt_not: [true]})[0] ?? []>>
<<if _hornyGuests.length>>
<<set $guestId = _hornyGuests[Math.floor(Math.random()*_hornyGuests.length)]>>
<<unset $charId, $slaveId>>
<<set $locationEvents.bedroom = true>>
<<goto 'Bedroom: horny guest'>>
<</if>>
<<elseif timeBetween('21:00', '23:00') && setup.percentageChance(5) && recall($suppCode)>>
<<set _girls = setup.getAvailablePersons18yo($guests)>>
<<set _girls[0] = (_girls[0] ?? []).filter(id => !($guests[id]?.traits ?? []).includes('feral'))>>
<<if (_girls[0] ?? []).length>>
<<set $tmpEvent = {
id: _girls[0][Math.floor(Math.random()*_girls[0].length)]
}>>
<<set $locationEvents.bedroom = true>>
<<goto 'Bedroom - sleepover'>>
<</if>>
<</if>>
<</if>><h1 class="ptitle">BEDROOM</h1>
<<if $characters.blair.quests.missing_friend_found_finished && !$characters.blair.quests.missing_friend_found_finished_thanked>>
<<set $characters.blair.quests.missing_friend_found_finished_thanked = true>>
<<goto 'Blair - quest missing friend thanks'>>
<<elseif ($game.location.settlement ?? false) && !$characters.blair.quests.sex>>
<<set $characters.blair.quests.sex = true>>
<<goto 'Blair quest - first sex'>>
<<elseif ($game.cabinName ?? false) && !$characters.blair.quests.basement && $characters.blair.relationship >= 80>>
<<set $characters.blair.quests.basement = true>>
<<goto 'Blair event - basement'>>
<</if>>
<<addmins 30>>
<<video '/bedroom/blair_talk'>>
<br /><br />
<<set _talkedAbout = either('her cold room in farm', 'your warm bed', 'comfortable sheets')>>
You talked about <<=_talkedAbout>>.
<br /><br />
<<if $characters.blair.relationship < 20>>
<<set $characters.blair.relationship +=2>>
<strong>Blair relationship increased by 2</strong>
<<else>>
<strong>You can't increase your relationship with Blair with this action anymore.</strong>
<</if>>
<br /><br />
<<if $characters.blair.quests.sex>>
<div id="blair_talk_fuck">
<<link 'Fuck'>>
<<set $tmpGirl = $characters.blair>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirl.rape to false>>
<<unset $slaveId, $guestId, $childId>>
<<set $charId = 'blair'>>
<<set $tmpGirlViewBack = 'Sleep eval'>>
<<set $tmpGirlBack = 'Sleep eval'>>
<<fuck $tmpGirl>>
<</link>>
</div>
<</if>>
<<if $characters.blair.quests.basement>>
<div id="blair_talk_basement">
<<link 'Take her to the basement'>>
<<set $tmpGirl = $characters.blair>>
<<set $tmpGirl.location = 'basement'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<unset $slaveId, $guestId, $childId>>
<<set $charId = 'blair'>>
<<set $tmpGirlViewBack = 'Sleep eval'>>
<<set $tmpGirlBack = 'Sleep eval'>>
<<fuck $tmpGirl>>
<</link>>
</div>
<</if>>
<<if ($game.location.guesthouse ?? false) && $characters.blair.livingLocation !== 'guesthouse'>>
<div id="blair_move_out">
<<linkreplace 'Ask her to take a room in the guest house'>>
<<addmins 10>>
<<run $('#blair_talk_fuck, #blair_talk_basement').hide()>>
You told her there was a room standing empty across the yard, and that it was hers if she wanted the space to herself.
<br /><br />
<<blair>>
You're not getting rid of me that easily. But fine — I'll take the room. Don't get used to the quiet.
<</blair>>
<br />
She gathered up what she needed and carried it across herself, and the bed felt wider than it had the night before.
<br /><br />
<<set $characters.blair.livingLocation = 'guesthouse'>>
<strong>Blair moved into the guest house. You can ask her to move back any time.</strong>
<br /><br />
<</linkreplace>>
</div>
<</if>>
<<link 'Sleep'>>
<<sleep>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
You turn around and Blair has already taken off her top and removed her bra half way.
<br /><br />
<<video 'blair/date_scavenger1'>>
<br /><br />
<<blair>>
Maybe we could have some fun here?
<</blair>>
<br /><br />
She licks her hand and slides it into your tight jeans, grabs your dick and slowly starts to jerk off.
<br /><br />
<<linkreplace 'Continue'>>
<<run $('#option2').hide()>>
<<video 'blair/date_scavenger2'>>
<br /><br />
She unbuttons your pants and your dick falls out of your pants. With a strong grip she continues to jerk you off while you kiss her and touch her firm breasts.
<br /><br />
<<blair>>
I want it it my mouth. Lay down and I'll show you something...
<</blair>>
<br /><br />
<<linkreplace 'Lay down'>>
<<video 'blair/date_scavenger3'>>
<br /><br />
You lay down on some strange-looking mattress while Blair fully removes your pants. She looks at you, smiles, and slowly licks your dick as she draws circles with her tongue.
<br />
Suddenly she fully takes it in, she struggles but she's very motivated to do it few more times.
<br /><br />
<div id="option3">
<<linkreplace 'Tell her to get on you'>>
<<video 'blair/date_scavenger4'>>
<br /><br />
You slide your hard dick inside her wet pussy.
<br />
As usual, Blair is very loud and doesn't even try to be quiet. You're slightly worried that this way you might attract unnecessary attention, but decide to continue and pick up the pace.
<br /><br />
<<blair>>
Oh my fucking god! Please, please don't stop! I beg you! Oh..
<</blair>>
<br /><br />
She simply falls onto you, powerless, and enjoys the fucking as much as possible. Her arms and legs just flail in all directions from how relaxed she is.
<br /><br />
<<linkreplace 'Fuck her missionary'>>
<<video 'blair/date_scavenger5'>>
<br /><br />
You grasp her with both hands and lift her into the air. After a moment, you've already spun around and gently place her where you had just been.
<br />
You slide your dick back inside her pussy and slowly speed up. She grabs your hand and holds it as you pick up the pace.
As you pick up speed she gets louder and louder till she again she screams from pleasure as you fuck her.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<run $('#ending').show()>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="ending" style="display:none;">
<br /><br />
<center>
[img[setup.ImagePath+'people/blair/date_skyscraper_cum.webp']]
</center>
<br /><br />
You decide not to pull out and cum right inside her pussy. As you take out your dick, your sperm drops out of her.
<br /><br />
<<if setup.pregnancyChance($characters.blair)>>
<<set $characters.blair.pregnancy_father = 'mc'>>
<<set $characters.blair.pregnancy = 0>>
<</if>>
<<blair>>
We should repeat it some other day.
<</blair>>
<br /><br />
<<link 'Leave'>>
<<horny_reset>>
<<goto 'Outside'>>
<<addhours 1>>
<</link>>
</div>
<</linkreplace>>
<</linkreplace>>
<div id="option2">
<<link 'Tell that you should probably leave'>>
<<goto 'Outside'>>
<<addhours 1>>
<</link>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<<blair>>
We're lucky that he managed to get away. This can't happen again.
<</blair>>
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<<addhours 4>>
<br /><br />
In the harsh and desolate post-apocalyptic world, Blair and you decided to embark on a perilous scavenging mission.
The sun hung low in the ashy sky, casting eerie shadows across the barren landscape as you made your way toward an old, decrepit house with hope to find something useful there.
<br /><br />
<center>
[img[setup.ImagePath+'people/blair/scavenger1.jpg']]
</center>
<br /><br />
The house was a crumbling relic of a bygone era, its walls sagging and windows long shattered.
The creaking of the warped floorboards beneath your feet echoed through the stillness of the wasteland. As you cautiously searched the rooms, your eyes scanned for anything of value—food, medicine, or even a glimpse of the past.
<br /><br />
<<blair>>
You ever wonder who lived here before all of this, before the world fell apart? I imagine that maybe a young couple was living here.
<</blair>>
<br /><br />
<<linkreplace 'Look around'>>
<<if setup.percentageChance(40)>>
Suddenly, the silence was shattered by the sound of a twig snapping behind you. You turned, hearts pounding, to find a shadowy figure emerging from the shadows. Desperation and hunger had driven them to ambush you, their eyes wild with desperation. Without hesitation, Blair and you fought back, defending yourselves against the threat. It was a brutal struggle, but you managed to overpower the attacker and secure your safety.
<br /><br />
<<link 'Fight'>>
<<generateEnemies 3 0>>
<<fight $enemies 'Blair - date [scavenging] fuck' 'Blair - date [scavenging] lost' true>>
<</link>>
<<else>>
<<set _randomItem = either('cosmetics', 'piercing', 'buttplug')>>
<<set _randomCount = randomInteger(2, 5)>>
<<pickup $backpack _randomItem _randomCount>>
<strong>You found <strong class="iitem"><<=_randomCount>> <<=Item.get(_randomItem).name>>'s</strong></strong>
<br /><br />
<<link 'Continue'>>
<<goto 'Blair - date [scavenging] fuck'>>
<</link>>
<</if>>
<</linkreplace>><h1 class="ptitle">CITY</h1>
<br /><br />
You descend one floor down, and Blair leans against the spot where there used to be a window, briefly enjoying the view with a smile. After a moment, she turns around, sensually sways her hips, and playfully winks.
<br /><br />
<<blair>>
Maybe we could have some fun here?
<</blair>>
<br /><br />
<<video 'blair/date_skyscraper1'>>
<br /><br />
<<linkreplace 'Approach her'>>
<<run $('#option2').hide()>>
<<video 'blair/date_skyscraper2'>>
<br /><br />
You lean in, attempting to take her nipples into your mouth, but she resists and lowers herself onto her knees. She pulls down your panties and with giggle grabs your dick in her hand.
<br /><br />
<<linkreplace 'Fuck her against the window'>>
<<video 'blair/date_skyscraper4'>>
<br /><br />
You grab her hand and spin her around. Pressing her palms against the wall, before you even enter her, she moans because she knows something wonderful will follow. You shove your hard dick inside her wet pussy and as you thrust it inside her, she slowly gets closer to the window.
<br /><br />
<div id="option3">
<<linkreplace 'Fuck her gently'>>
<<run $('#option4').hide()>>
<<run $('#ending').show()>>
<<video 'blair/date_skyscraper6'>>
<br /><br />
You switch places and you lean against the wall. She sensually climbs on top of you. Holding onto the metal pipe above you, she slowly settles onto you. She leans in and slowly starts to take control.
<br /><br />
<<blair>>
Oh yes! Who's your mistress?
<</blair>>
<</linkreplace>>
</div>
<div id="option4">
<<linkreplace 'Fuck her hard'>>
<<run $('#option3').hide()>>
<<run $('#ending').show()>>
<<video 'blair/date_skyscraper5'>>
<br /><br />
Excited, you push her down to the ground and step onto her face with your foot. She doesn't resist and is accustomed to you treating her like that, and she enjoys it.
<br /><br />
<<blair>>
Oh fuck yes!
<</blair>>
<</linkreplace>>
</div>
<div id="ending" style="display:none;">
<br /><br />
<center>
<<image 'people/blair/date_skyscraper_cum.webp'>>
</center>
<br /><br />
You decide not to pull out and cum right inside her pussy. As you take out your dick, your sperm drops out of her.
<<if setup.pregnancyChance($characters.blair)>>
<<set $characters.blair.pregnancy_father = 'mc'>>
<<set $characters.blair.pregnancy = 0>>
<</if>>
<br /><br />
<<blair>>
Now we can go back.
<</blair>>
<br /><br />
<<link 'Leave'>>
<<horny_reset>>
<<goto 'Outside'>>
<<addhours 4>>
<</link>>
</div>
<</linkreplace>>
<</linkreplace>>
<div id="option2">
<<link 'Tell that you should probably leave'>>
<<goto 'Outside'>>
<<addhours 4>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
The air was thick with uncertainty, but your determination to create a meaningful memory propelled them forward. Armed with a few scavenged supplies and a sense of adventure, you navigated through the shattered streets, dodging shadows and weaving through the remnants of the past.
<br /><br />
<center>
<<image 'people/blair/skyscraper1.jpg' 'sfw'>>
</center>
<br /><br />
Your path led you through hauntingly empty boulevards, where shattered storefronts stood as testament to the lives that were once lived. They shared stories along the way, each tale a tiny candle of warmth against the encroaching darkness. Laughter echoed through the desolate landscape, a reminder that even in the harshest of times, humanity's spirit could not be extinguished.
<br /><br />
<<blair>>
Do you remember? How looked this place before?
<</blair>>
<br /><br />
<div id="dialog1">
<<link 'Yes.. It was something...'>>
<<run $('#dialog1').hide()>>
<<run $('#dialog1-continue').show()>>
<</link>>
<<link "No. Haven't been on this part of the town">>
<<run $('#dialog1').hide()>>
<<run $('#dialog1-continue').show()>>
<</link>>
</div>
<div id="dialog1-continue" style="display:none;">
<<addhours 4>>
<center>
<<image 'people/blair/skyscraper2.jpg' 'sfw'>>
</center>
<br /><br />
Finally, after a heart-pounding journey through uncertainty and danger, you stood before the towering skyscraper that still managed to scrape the sky. Its upper floors were missing, a testament to the ravages of time and disaster, yet its skeletal frame remained resolute. With a mixture of excitement and trepidation, you began your ascent, using the remains of staircases and makeshift ladders to climb toward your destination.
<br /><br />
<<linkreplace 'Climb'>>
As you ascended, the world beneath you transformed. The city, once a barren wasteland, revealed its forgotten beauty from this new vantage point. The moonlight bathed the ruins in a soft glow, creating an otherworldly ambiance that defied the surrounding devastation. You and Blair found yourself pausing to take in the view, the weight of the world momentarily lifted as they marveled at the stark contrast between destruction and the indomitable human spirit.
<br /><br />
<center>
<<image 'people/blair/skyscraper3.jpg' 'sfw'>>
</center>
<br /><br />
After what seemed like an eternity, you reached the highest intact floor of the skyscraper. A breathtaking panorama unfolded before you — a tapestry of broken buildings, silent streets, and a sky awash with stars. Amidst the solitude, you found solace in each other's company. You shared a simple meal you had brought along, savoring the flavors and the moment as if it were a feast fit for kings.
<br /><br />
<<you>>
Can you believe we're actually doing this? Scaling a half-ruined skyscraper for a date?
<</you>>
<br />
<<blair>>
I never thought a date would involve so much climbing, but it's kind of exhilarating, don't you think? Plus, the view better be worth it.
<</blair>>
<br />
<<blair>>
Well, I must admit, I'm glad we're doing this together. It's like we're exploring a lost world.
<</blair>>
<br />
<<you>>
It's strange how these circumstances can bring people closer. We're living through a story that's uniquely ours.
<</you>>
<br />
<<blair>>
You know, it's funny. In a world where everything has fallen apart, I feel like I've found something truly valuable.
<</blair>>
<br />
...
<br />
<<blair>>
We should probably go back
<</blair>>
<br /><br />
<<link 'Leave'>>
<<goto 'Blair - date [skyscraper] fuck'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">KITCHEN</h1>
<br /><br />
<<blair>>
So what should we do?
<</blair>>
<br /><br />
<<link 'Go to skyscraper'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Blair - date [skyscraper]'>>
<</link>>
<<if recall($suppCode)>>
<<link 'Go scavenging together'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Blair - date [scavenging]'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Go scavenging together
<<notPatreonIcon>>
</div>
<</if>>
<<if recall($suppCode)>>
<<link 'How about just talk on the couch'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Blair - date [massage]'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Go scavenging together
<<notPatreonIcon>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Kitchen-room'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
<br />
<<blair>>
I'm so proud of you! Who would have thought that you, who relatively recently emerged from your bunker, would be able to create your own place that people and you yourself could call home.<br />
I.. I love you...
<</blair>>
<center>
<<image 'places/cabin/gate_hug.webp'>>
</center>
<br /><br />
<<link 'Go to sleep'>>
<<set $game.showFlag = true>>
<<goto 'Sleep eval'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
<div id="flag_choose" style="display: flex; justify-content: center">
<div class="flag_choose_item">
[img[setup.ImagePath+'game/misc/flag/bg_red.png']]
<<link 'Choose'>>
<<set $game.flagBg = 'red'>>
<<goto 'Blair - gate done flag'>>
<</link>>
</div>
<div class="flag_choose_item">
[img[setup.ImagePath+'game/misc/flag/bg_blue.png']]
<<link 'Choose'>>
<<set $game.flagBg = 'blue'>>
<<goto 'Blair - gate done flag'>>
<</link>>
</div>
<div class="flag_choose_item">
[img[setup.ImagePath+'game/misc/flag/bg_green.png']]
<<link 'Choose'>>
<<set $game.flagBg = 'green'>>
<<goto 'Blair - gate done flag'>>
<</link>>
</div>
</div>
<div id="icon_choose" style="display: flex; justify-content: center">
<div class="flag_icon_choose_item">
[img[setup.ImagePath+'game/misc/flag/icon_1.png']]
<<link 'Choose'>>
<<set $game.flagIcon = 1>>
<<goto 'Blair - gate done flag'>>
<</link>>
</div>
<div class="flag_icon_choose_item">
[img[setup.ImagePath+'game/misc/flag/icon_2.png']]
<<link 'Choose'>>
<<set $game.flagIcon = 2>>
<<goto 'Blair - gate done flag'>>
<</link>>
</div>
<div class="flag_icon_choose_item">
[img[setup.ImagePath+'game/misc/flag/icon_3.png']]
<<link 'Choose'>>
<<set $game.flagIcon = 3>>
<<goto 'Blair - gate done flag'>>
<</link>>
</div>
</div>
<<if $game.flagIcon && $game.flagBg>>
<div style="display: flex; justify-content: center; text-align: center;">
<div>
Result
<br />
<<flag>>
</div>
</div>
<br /><br />
<<link 'Continue'>>
<<goto 'Blair - gate done finish'>>
<</link>>
<</if>>
<style>
.flag_choose_item {
margin: 0px 30px;
}
.flag_icon_choose_item {
width: 102px;
margin: 0 53px;
}
</style><h1 class="ptitle">CABIN</h1>
<br />
<<addhours 10>>
<center>
[img[setup.ImagePath+'places/cabin/gate_finished.jpg']]
</center>
<br /><br />
<<blair>>
Wow! You really did it! It's so beautiful and now girls can finally call this place a real home.
<br />
Have you already thought of a name for this place?
<</blair>>
<br /><br />
You'll call this place: <<textbox "_gateName" 'Cabin'>>
<br /><br />
<<blair>>
You also need to create a flag for your village so that other villages and travelers can recognize you
<</blair>>
<br /><br />
<<link 'Continue with flag'>>
<<set $game.cabinName = _gateName>>
<<set $player.quests.gateDoneDay = $game.date>>
<<goto 'Blair - gate done flag'>>
<</link>><h1 class="ptitle">KITCHEN</h1>
<<addmins 30>>
<br /><br />
<<blair>>
Listen, <<=$player.name>>. I was thinking about this place.
<br />
Your little cabin has already progressed quite a bit. You have worked very well. Have you thought about turning this place into a small village? Of course, you should understand that in this way you will not only attract traveling merchants or people looking for a place to spend the night, but also certainly unfavorable individuals and bandits. It would definitely be necessary to start with the construction of a secure gate.
<</blair>>
<br /><br />
She places a large, crumpled paper roll on the table and slowly unrolls it, placing two empty glasses on either side, and then leans over the table and places two more empty cylinders.
<br/><br />
<center>
<<image 'places/cabin/gate_cleavage.webp' 'sfw'>>
</center>
<br /><br />
<<blair>>
My father wanted to build such gates a long time ago, but eventually realized that he was too old and wouldn't be able to handle it all. I took the drawings from his house, maybe they will be useful to you.
<</blair>>
<br /><br />
<center>
<<image 'places/cabin/gate_blueprint.jpg' 'sfw'>>
</center>
<br /><br />
<<blair>>
When the gates are ready, you could even come up with a name for this place and put up a big sign so people know what this place is called.
<</blair>>
<br /><br />
<<link 'Tell her that you\'ll think about it'>>
<<addmins 30>>
<<goto 'Kitchen-room'>>
<</link>><h1 class="ptitle">KITCHEN</h1>
<<blair>>
I heard that you found a couple of bottles of champagne. Could I taste it? I have never drunk it before and have no idea how it tastes.
<br />
Please, pretty please.
<br />
By the way, the girls are complaining that they are tired and fed up with just working and not doing anything else. Maybe we could have a sit-down by the campfire one evening with some champagne?
<</blair>>
<br /><br />
<strong>You will need <span class="iitem">20 food</span> and <span class="ittem">1</span> champagne.</strong>
<br /><br />
<<addmins 30>>
[[Leave|Kitchen-room]]<h1 class="ptitle">KITCHEN</h1>
<<actionImage $tmpGirl 'kissing'>>
<br /><br />
Gently you push her against the kitchen counter tenderly pressing your lips against hers. You wrap your hands around her waist and spin her around, leaning her back a bit while still making out...
<br />
Rubbing your hands over her body you then start sliding a hand between her legs...
<br /><br />
<<if !$characters.blair.quests.sex>>
<<blair>>We shouldn't...<</blair>>
<br /><br />
<</if>>
<<if $characters.blair.relationship < 30>>
<<set $characters.blair.relationship +=1>>
<strong>Blair relationship increased by 1</strong>
<<else>>
<strong>You can't increase your relationship with Blair any more with this action anymore.</strong>
<</if>>
<<addmins 30>>
<br /><br />
<<if $characters.blair.quests.sex>>
<<link 'Fuck'>>
<<set $tmpGirl = $characters.blair>>
<<set $tmpGirl.location = 'kitchen'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<run delete $slaveId>>
<<run delete $guestId>>
<<set $charId = 'blair'>>
<<set $tmpGirlViewBack = 'Kitchen-room'>>
<<set $tmpGirlBack = 'Kitchen-room'>>
<<fuck $tmpGirl>>
<</link>>
<</if>>
[[Let her go|Kitchen-room]]<<if $characters.blair.relationship >= 20 && !$characters.blair.quests.missing_friend>>
<<set $characters.blair.quests.missing_friend = true>>
<<goto 'Blair - quest missing friend'>>
<<elseif $characters.blair.quests.missing_friend_found && !$characters.blair.quests.missing_friend_found_finished>>
<<set $characters.blair.quests.missing_friend_found_finished = true>>
<<goto 'Blair - quest missing friend found'>>
<<elseif isMetChar('rodger') && ($characters.rodger.quests.champagne || $characters?.rodger?.quests?.dead) && !$characters.blair.quests.house_party>>
<<set $characters.blair.quests.house_party = true>>
<<goto 'Blair - house party'>>
<<elseif $characters.blair.quests.house_party_finished && !$characters.blair.quests.gate>>
<<set $characters.blair.quests.gate = true>>
<<if !$game.cabinName>>
<<goto 'Blair - gate'>>
<</if>>
<<elseif $game.cabinName && !$characters.blair.quests.nursery>>
<<set $characters.blair.quests.nursery = true>>
<<if !($game.location.nursery ?? false)>>
<<goto 'Blair - nursery'>>
<</if>>
<</if>>
<h1 class="ptitle">KITCHEN</h1>
<<addmins 30>>
<<video '/kitchen/blair_talk'>>
<br /><br />
<<set _talkedAbout = either('her dad', 'her wanting to go into adventures', 'her accident in underground city')>>
You talked about <<=_talkedAbout>>.
<br /><br />
<<if $characters.blair.relationship < 20>>
<<set $characters.blair.relationship +=1>>
<strong>Blair relationship increased by 1</strong>
<<else>>
<strong>You can't increase your relationship with Blair with this action anymore.</strong>
<</if>>
<<if $charId && $tmpGirl.corruption > 50 && !$tmpGirl.canPunish>>
<<set $characters.blair.canPunish = true>>
<</if>>
<br /><br />
<<if ($characters.blair.relationship > 15)>>
<<if $characters.blair.relationship > 40>>
<<linkreplace 'Date'>>
<<if setup.percentageChance(60)>>
<<goto 'Blair - date'>>
<<else>>
<<blair>>
Sorry, I can't today. I need to help my dad.
<</blair>>
<</if>>
<br /><br />
<</linkreplace>>
<</if>>
<<link 'Kiss her'>>
<<goto 'Blair - kitchen kiss'>>
<</link>>
<<link 'Approach her'>>
<<set $charId = 'blair'>>
<<unset $slaveId, $guestId, $childId>>
<<set $tmpGirl = $characters.blair>>
<<set $tmpGirl.location = 'kitchen'>>
<<set $tmpGirlBack = 'Kitchen-room'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<goto 'NPC view - character'>>
<</link>>
<<if $game.canMarry && !$characters.blair.quests.married && $backpack.has('wedding_ring')>>
<<link 'Marry her'>>
<<goto 'Blair - marry #1'>>
<</link>>
<</if>>
<<if $characters.blair.pregnancy >= 8 && $backpack.has('pregnancy_speed_potion')>>
<<link 'Give pregnancy speed potion'>>
<<set $tmpGirl = $characters.blair>>
<<set $characters.blair.pregnancy += 30>>
<<addmins 30>>
<<set $pregnancyPotionBackLink = 'Blair - kitchen talk'>>
<<goto 'Girl - pregnancy speed potion'>>
<</link>>
<</if>>
<<else>>
<<addmins 30>>
<</if>>
[[Leave|Kitchen-room]]<h1 class="ptitle">KITCHEN</h1>
<br /><br />
<center>
<<image 'places/kitchen/blair_propose.jpg' 'sfw'>>
</center>
<br /><br />
You get down on your knee while she's preparing breakfast, and when she turns around, she immediately understands what's happening and throws herself around your neck.
<br /><br />
<center>
<<image 'places/kitchen/blair_propose_yes.gif' 'sfw'>>
</center>
<br /><br />
<<blair>>
Yes, yes, yes!!!!
<</blair>>
<br /><br />
She immediately puts on the ring and admires it. A moment later, she starts getting anxious and suggests that we should have the ceremony tonight. The sooner, the better, and she rushes out the door to start preparing.
<br /><br />
<<link 'Wait evening'>>
<<addhours 11>>
<<goto 'Blair - marry #2'>>
<</link>><h1 class="ptitle">GREENHOUSE</h1>
<br /><br />
<center>
<<image 'places/greenhouse/wedding.jpg' 'sfw'>>
</center>
<br /><br />
The air was heavy with an eerie silence as I approached the dilapidated greenhouse. Its fragile structure had weathered the harsh conditions of the post-apocalyptic world, barely holding onto its former glory. Inside, a soft glow emanated from flickering candles scattered across the room, casting dancing shadows on the cracked glass walls.
<br /><br />
As you stepped through the creaking door, you found yourself amidst a small gathering of survivors. The ambiance was both somber and hopeful, as if they were preserving a sliver of normalcy amidst the chaos that enveloped their lives. The group huddled together, their eyes reflecting a mix of resilience and vulnerability.
<br /><br />
At the heart of the room stood Blair, adorned in a once-beautiful, now tattered wedding dress. Its white fabric was stained with dirt and grime, but she wore it with an undeniable grace. Beside her, her father stood tall, a symbol of strength and protection, supporting her through this solemn occasion.
<br /><br />
The father's eyes met yours as you entered, and he nodded with a mix of pride and apprehension. You approached him, offering a reassuring smile, understanding the weight of the situation. The world had changed, and yet, love persevered. In this moment, amidst the ruins and uncertainty, a ray of hope emerged.
<br /><br />
<center>
<<image 'places/greenhouse/wedding_ring.webp' 'sfw'>>
</center>
<br /><br />
As you sealed your vows with a gentle kiss and ring, the gathered witnesses erupted into a soft applause, your emotions released in a moment of shared joy. It was a fleeting respite from the hardships of your reality, but it was a reminder that even in the darkest of times, love and unity have the power to prevail.
<br /><br />
<<link 'Start small after ceremony'>>
<<set $characters.blair.family = {
father: 'vincent',
husband: 'mc'
}>>
<<set $player.family ??= {}>>
<<set $player.family.wives ??= []>>
<<set $player.family.wives.push($characters.blair.id)>>
<<set $characters.blair.quests.married = true>>
<<drop $backpack 'wedding_ring' 1>>
<<goto 'Blair - marry #3'>>
<</link>><<set _randomGuest = setup.getRandomPersonIdsGirls($guests, 1)>>
<h1 class="ptitle">KITCHEN</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/kitchen/wedding.jpg']]
</center>
<br /><br />
After the heartfelt ceremony in the greenhouse, the small group of survivors moved to the kitchen, which had been transformed into an intimate gathering space. The dim lighting created a cozy atmosphere, and the flickering candlelight added a touch of warmth to the cold surroundings.
<br /><br />
The bride's father bid his daughter a tearful farewell, his eyes filled with a mix of joy and longing. With a heavy heart, he departed, leaving the bride in the care of her newfound friends. The girls formed a protective circle around her, their presence a reminder that they were all in this together, navigating the desolate world with strength and resilience.
<br /><br />
Laughter and whispers filled the air as the girls embraced the bride, enveloping her in a sisterhood forged through shared experiences. They had all faced loss and hardship, but this night was a chance to revel in the love and joy that had been found amidst the ruins.
<br /><br />
<<blair>>
How about our wedding night? I will go freshen up, but after 10 minutes, I'll be waiting for you in the room
<</blair>>
<br /><br />
Blair left, and the girls bid her good night with giggles on their faces, knowing what would unfold in that room.
<br /><br />
<div id="option1">
<<if _randomGuest.length>>
<<linkreplace 'Keep a company to the girls'>>
Just as Blair left the kitchen, some of the girls turned their gazes towards you. After a moment, <strong class="gender-girl"><<=$guests[_randomGuest[0]].name>></strong> approached you.
<br /><br />
<<anongirl>>
How about we warm you up? You're gonna have a long night...
<</anongirl>>
<br /><br />
<div id="option2">
<<link 'Decline and say that tonight you belong to Blair'>>
<<run $('#option1').hide()>>
<</link>>
</div>
<<linkreplace 'Agree'>>
<<horny 10>>
<<run $('#option2').hide()>>
<strong class="gender-girl"><<=$guests[_randomGuest[0]].name>></strong> drops on her knees and crawls under table, unzipping your pants and quickly taking a look around if Blair isn't coming back.
<br /><br />
<center>
[img[setup.ImagePath+'places/kitchen/wedding_bj.webp']]
</center>
<br /><br />
<<linkreplace 'Deepthroat her'>>
You grab her head and push your dick as far as you can inside her mouth as she gags but still tries to take it all.
<br /><br />
<center>
[img[setup.ImagePath+'places/kitchen/wedding_dp.webp']]
</center>
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</if>>
</div>
<<link 'Go to the bedroom'>>
<<goto 'Blair - marry #4'>>
<</link>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<<horny 100>>
<center>
[img[setup.ImagePath+'places/bedroom/wedding_night.jpg']]
</center>
<br /><br />
Entering the bedroom, Blair is already waiting for you, lying on the bed. Upon seeing you, a wide smile appears on her face, and without saying anything, she simply starts kissing you and, after a moment, she lifts her dress and turns her back towards you.
<br /><br />
<<blair>>
Fuck me! Like there is no tomorrow!
<</blair>>
<br /><br />
Without hesitation, you insert your hard dick inside her pussy and without taking her dress off fuck her tight pussy.
<br /><br />
<center>
[img[setup.ImagePath+'places/bedroom/blair_wedding1.webp']]
</center>
<br /><br />
She presses against the counter and quietly starts to moan while looking over her shoulder in your eyes.
<br/><br />
<center>
[img[setup.ImagePath+'places/bedroom/blair_wedding2.webp']]
</center>
<br /><br />
She moves away from the nightstand and, leaning down, touches the ground with her hands.
<br /><br />
<<blair>>
Take off my dress and fuck me as hard as you can!
<</blair>>
<br /><br />
<<linkreplace 'Take off her dress'>>
<<video '/bedroom/wedding3'>>
<br /><br />
You rip off her wedding dress on throw her on the bed in the same doggy position. She lets out a load moan as you keep pounding her tight pussy. You grab her neck and pull her head upwards as she continues to stare in your eyes.
<br /><br />
<<video '/bedroom/wedding1'>>
<br /><br />
You turn her around and slide your dick back inside her pussy.
<br />
She completely loses any sense of shyness and she screams as loudly as she can, not caring at all whether someone hears her or not. She begs you not to stop.
<br /><br />
<<video '/bedroom/wedding2'>>
<br /><br />
She lifts her leg and redirects your hand towards her clit as she keeps screaming her lungs out.
<br /><br />
<<linkreplace 'Cum'>>
<center>
[img[setup.ImagePath+'places/bedroom/blair_wedding_cum.webp']]
</center>
<br /><br />
You pull out but keep rubbing your dick against her pussy as you start to cum and cover her new ring in your warm cum.
<br /><br />
<<link 'Leave'>>
<<goto 'Sleep eval'>>
<<horny_reset>>
<</link>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<<script>>
setTimeout(function() {
setup.blinkScreen()
}, 100);
<</script>>
<<video 'blair/morning_surprise1'>>
<br /><br />
You barely open your eyes and in front of you, you see Blair, who has already woken up your dick and its is in her tight mouth. At that very moment, the sound of a door is heard, indicating that someone is coming to your room.
<br />
Blair manages to hide underneath blanket as she's a bit shy when others are around.
<br /><br />
<<video 'blair/morning_surprise2'>>
<br /><br />
<<set _randomGuest = setup.getPersonsForLocation($guests, 'maid')>>
After a few seconds <<=setup.displayName($guests[_randomGuest[0]])>> enters the room and tells you that she wanted to clean up a bit.
<br /><br />
<<linkreplace 'Let Blair continue'>>
<<video 'blair/morning_surprise3'>>
<br /><br />
<<=setup.displayName($guests[_randomGuest[0]])>> makes some small talk and takes some things off the ground, while Blair somewhat awkwardly sucks your dick...
<br />
After some talking, <<=setup.displayName($guests[_randomGuest[0]])>> leaves.
<br /><br />
<<linkreplace 'Fuck Blair'>>
<<video 'blair/morning_surprise4'>>
<br /><br />
She gets on all fours and lets you fuck her as you like. When noone is in the room she gets wild and lets out screams as loud as she can. Probably didn't realize that the walls are thin.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<video 'blair/morning_surprise5'>>
<br /><br />
As you pull out, you put your dick on her ass and continue to jerk off. She continues to moan as she watches at your pumping dick over her shoulder... After a few seconds you cum all over her ass...
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">KITCHEN</h1>
<<blair>>
By the way, good job with the gate, <<=$player.name>>!
<br />
Given the current situation, you should consider whether or not it would be necessary to have a separate house specifically for children. They would have their own little corner where they could play and wouldn't have to witness what's happening around them as often.
<</blair>>
<br /><br />
<strong>Nursery unlocked in workbench</strong>
<br /><br />
[[Leave|Kitchen-room]]
<<set $game.location.bar = true>>
<<addmins 30>><h1 class="ptitle">KITCHEN</h1>
<br /><br />
<<you>>
Listen, about Ashley. I found her<br />
<<if !$characters.blair.quests.missing_friend_found_dead>>
She's alive. I managed to get her to your dad's farm behind the barn.
<<else>>
I am sorry... She's dead. She was involved with some bad people.
<</if>>
<</you>>
<br /><br />
<<blair>>
<<if !$characters.blair.quests.missing_friend_found_dead>>
Really?! Oh my god, thank you so much. I won't forget this! I need to go see her and check if she's ok! But before that I have a gift for you!
<<else>>
What? NO! How? Oh god NO!
<</if>>
<</blair>>
<br /><br />
<<if !$characters.blair.quests.missing_friend_found_dead>>
<center>
[img[setup.ImagePath+'places/kitchen/give_revolver.webp']]
</center>
<br /><br />
<strong>You received an revolver</strong>
<<pickup $backpack 'revolver' 1>>
<<achievement 'gun_find'>>
<<else>>
<center>
[img[setup.ImagePath+'places/kitchen/cry_hug.webp']]
</center>
<br /><br />
She starts crying and runs to you for comfort. You hold her and let her cry it out. You didn't know they were so close.
<</if>>
<br /><br />
<<blair>>
You have done so much for me, I don't even know how to thank you.
<</blair>>
<br /><br />
<<video 'kitchen/friend_found_finished'>>
<br /><br />
She pushes you against kitchen counter and starts to kiss you. You feel this is it, as you pull up her shirt and look at her firm breasts. You kiss her passionately and you're ready to take off your pants to fuck her hard..
<br /><br />
<<blair>>
Sorry, I can't do that. You've done so much for me, but I can't... I need to go.
<</blair>>
<br /><br />
<strong>Blair relationship increased by 5</strong>
<<set $characters.blair.relationship +=5>>
<br /><br />
<<addmins 30>>
<<link 'Continue'>>
<<goto 'Kitchen-room'>>
<</link>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
You enter your room and notice that Blair is already waiting for you.
<br /><br />
<<blair>>
Finally! I was hoping you would be home soon. I've thought about you all day and a way to thank you! You have no idea!
<</blair>>
<br /><br />
You reassure her that no thanks are needed, but she still insists.
<br /><br />
<<blair>>
Please, just don't think anything bad about me. I haven't done anything like this before.
<</blair>>
<br /><br />
She pushes you down on your back and unbuttons your pants with a shy smile. She turns away as she slides her hand inside your pants and grabs your hard dick gently stroking it. She almost seems afraid she might break it.
<br /><br />
<<video 'bedroom/blair_thank_you_1'>>
<br /><br />
She mumbles something under her breath like she's trying to follow her own instructions. You deeply exhale as you see her mouth slowly moving closer to your cock.
<br /><br />
<<video 'bedroom/blair_thank_you_2'>>
<br /><br />
<<blair>>
I am so sorry! I thought I could do it but I can't. Lets just go to bed.
<</blair>>
<br /><br />
<strong>Blair relationship increased by 5<br />
Blair corruption increased by 5<br /></strong>
<<set $characters.blair.relationship += 5>>
<<set $characters.blair.corruption += 5>>
<br /><br />
<<link "Sleep">><<sleep>><</link>><h1 class="ptitle">KITCHEN</h1>
<<blair>>
<<=$player.name>>!! I need your help!<br />
My friend is missing and I haven't seen her for several days.
<br />
Could you please try and find her?
<</blair>>
<br /><br />
<<you>>
I can try.<br />
What's her name? What does she look like? Where did you last see her and what are some places where she likes to hang out?
<</you>>
<br /><br />
<<blair>>
Her name is Ashley. She has long red hair and is in her 40s. Don't tell anyone but she really likes to sneak out to the local bar in the underground city. Maybe you should ask around there.
<</blair>>
<br /><br />
[[Leave|Kitchen-room]]
<<set $game.location.bar = true>>
<<addmins 30>><div class="caut-bar"></div>
<div style="padding: 20px; background-color: #f1c40f; color:#2c3e50; font-weight:bold">
Warning!
<br />
Game has detected a game breaking bug for Blair!!
<br />
Please save the game to the file and report it as bug without making any other movements.
<br />
<strong>NO SERIOUSLY, SAVE RIGHT NOW, DON'T DO ANYTHING ELSE IN THE GAME, JUST SAVE IT. HERE. WHERE YOU ARE. AND POST THIS SAVE ONTO DISCORD. DON'T MOVE!!!</strong>
<br /><br />
<<button 'SAVE GAME NOW'>>
<<script>>UI.saves();<</script>>
<</button>>
</div>
<div class="caut-bar"></div><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<blair>>
<<=$player.name>>! I wanted talk to you.
<br />
This might sound strange, but I've heard what you do with girls in the basement... And... I want you to do the same with me too.
<</blair>>
<br /><br />
She takes you by the hand and leads you to the basement.
<br /><br />
<<linkreplace 'Follow her'>>
You walk down and as she looks at you with flirtatious eyes, you tie her to one of the radiators.
<br /><br />
<<video '/basement/blair_basement1'>>
<br /><br />
She seems relaxed and is enjoying the moment.
<br />
She backs away and looks around, as she has never been here before.
<br /><br />
<<video '/basement/blair_basement2'>>
<br /><br />
In a slow pace, you approach her and unexpectedly rip her blouse open. A momentary shock appears on her face, but it is quickly replaced by playful giggling.
<br />
You slap her face few times as she thank you for that.
<br /><br />
<<blair>>
My breasts! Slap them too! Please!
<</blair>>
<br /><br />
<<video '/basement/blair_basement4'>>
<br /><br />
You continue to slap her medium size breasts as she moans before grabbing your dick and shoving it in her mouth.
<br /><br />
<<link 'Fuck her'>>
<<set $tmpGirl = $characters.blair>>
<<set $tmpGirl.location = 'basement'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<unset $slaveId, $guestId, $childId>>
<<set $charId = 'blair'>>
<<set $tmpGirlViewBack = 'Sleep eval'>>
<<set $tmpGirlBack = 'Sleep eval'>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
You both get into bed and start to discuss today's events.
<br /><br />
<<blair>>You know I saw that, right?<</blair>>
<<you>>What do you mean?<</you>>
<<blair>>How you looked at those girls in the settlement..<</blair>>
<br /><br />
You don't know how to respond so just press yourself against her.
<br /><br />
<<video 'bedroom/blair_virgin1'>>
<br /><br />
<<blair>>
You should know that I'm still a virgin. Till today I thought I'd stay that way till I got married. After seeing you and those other girls something happened in me. I can't explain it...<br />
<</blair>>
<br /><br />
<<video 'bedroom/blair_virgin2'>>
<br /><br />
She takes you by surprise and jumps on you wrapping her legs around you so you can't move.
<br /><br />
<<blair>>
I think I'm ready. Just don't move, please.
<</blair>>
<br /><br />
She slowly leans towards you and gently kisses your lips as you feel your dick hardening against her ass while she slowly continues kissing you.
<br />
<br />
<center>
[img[setup.ImagePath+'places/bedroom/blair_virgin1.webp']]
</center>
<br /><br />
She takes off her shirt and you help her take off her bra as she continues to passionately kiss you.<br />
She rubs her breasts against your chest while gasping deeply.
<br /><br />
<<linkreplace 'Put your dick in'>>
<<video 'bedroom/blair_virgin3'>>
You give her a few more kisses then without warning, grab your dick and gently slide it inside her tight pussy.
<br />
She twitches in pain for a second as she starts to bleed a little bit.
<br /><br />
<<blair>>Ouch! Uh! I, I LOVE YOU!<</blair>>
<br /><br />
Her confidence grows so you decide to increase the pace as you shove your dick deeper and faster inside her.
<br /><br />
<center>
[img[setup.ImagePath+'places/bedroom/blair_virgin2.webp']]
</center>
<br /><br />
You pull out and push her on her back while grabbing her legs and putting them up. While holding her firmly you shove your dick back inside her with a big thrust and she starts to shiver.
<br /><br />
<<video 'bedroom/blair_virgin4'>>
<br /><br />
<<blair>>
Please don't stop! Oh my god!
<</blair>>
<br /><br />
You fuck her tight pussy for a while. Next you flip her over, grab her ass and squeeze it hard before pulling her onto her knees for doggy.
<br /><br />
<<video 'bedroom/blair_virgin5'>>
<br /><br />
<<blair>>
Please, please - cum in me! Oh lord!
<</blair>>
<br /><br />
As you start to cum inside her you change your mind and pull out a few seconds too late and cover her ass and pussy in your warm cum."
<br /><br />
<center>
[img[setup.ImagePath+'places/bedroom/blair_virgin3.webp']]
</center>
<br /><br />
<<link 'Sleep'>>
<<sleep>>
<</link>>
<</linkreplace>>
<<run delete $characters.blair.virgin>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<<video 'bedroom/blair_bj1'>>
<br /><br />
You open your eyes wide as you feel someone grab your cock and stroke it. You pull off the sheet and see Blair's blushing face.
<br /><br />
<<blair>>
Sorry I woke you up. I couldn't sleep all night. I was thinking about it and couldn't take it anymore. Please don't be mad.
<</blair>>
<br /><br />
<<video 'bedroom/blair_bj2'>>
<br /><br />
She catches you by surprise as the first thing she takes in her mouth isn't the tip of your dick but your balls, all of them! She sucked them in like a vacuum cleaner.
<br />
You utter a quiet moan before laying back and just enjoying it.
<br /><br />
After a few minutes she looks up with disappointment in her eyes because she couldn't make you cum.
<br /><br />
<<blair>>
I am so sorry. I know I'm not the best but I promise I can get better....
<</blair>>
<br /><br />
She pulls your dick out of her mouth and grabs it so hard that it almost hurts. While looking straight at it she picks up the pace.
<br /><br />
<<video 'bedroom/blair_bj3'>>
<br /><br />
<<blair>>
Please! Cum for me! Let me get that feeling for the first time.
<</blair>>
<br /><br />
<<linkreplace 'Cum on her face'>>
<<horny_reset>>
<br /><br />
<<video 'bedroom/blair_bj4'>>
<br /><br />
You get up to cum on her face. As you do that, she manages to open her mouth and catch some of it with her tongue.
<br />
She giggles while cleaning her lip with her finger.
<br /><br />
<<link 'Get out of the bed'>>
<<goto 'Bedroom'>>
<</link>>
<</linkreplace>>
<<set $characters.blair.quests.bj_day = $game.day>><h1 class="ptitle">BEDROOM</h1>
<<if $pregnancyHappening.type === 'slave'>>
<<set _mother = $slaves[$pregnancyHappening.id]>>
<<elseif $pregnancyHappening.type === 'character'>>
<<set _mother = $characters[$pregnancyHappening.id]>>
<<else>>
<<set _mother = $guests[$pregnancyHappening.id]>>
<</if>>
<<set $tmpGirl = _mother>>
<<set $tmpGirl.location = 'childbirth'>>
<center>
<<actionImage $tmpGirl 'scream'>>
</center>
<br />
You hear screams and you rush toward the source. As you get to your destination you realize it's <<=setup.displayName(_mother)>>.
Her contractions grew stronger, <<=setup.displayName(_mother)>> knew that she didn't have much time left. She asks you to create a makeshift birthing area.
<<set _chanceSuccess = 60>>
<<set _chanceMotherDies = 5>>
/*
<<if setup.hasDoctor()>>
<<set _chanceMotherDies = 1>>
<</if>>
*/
<br /><br />
<<set _isStorageAvailable = ($game.location.shop ?? false)>>
<<set _reqKey = 'towel'>>
<<set _towelCount = $backpack.count(_reqKey) + (_isStorageAvailable ? $storage.count(_reqKey) : 0)>>
<<if _towelCount >= 5>>
<<linkreplace 'Grab towels and make a birthing area'>>
<<if _isStorageAvailable>>
<<transfer $storage $backpack _reqKey 5>>
<</if>>
<<drop $backpack 'towel' 5>>
<center>
[img[setup.ImagePath+'game/misc/childbirth2.jpg']]
</center>
<br /><br />
You lay down towels on the ground and hope that will do.
<br /><br />
<<set _chanceSuccess += 5>>
<<set _chanceMotherDies -= 1>>
<</linkreplace>>
<<else>>
You look around but see nothing that could work (<strong>missing <<=5-_towelCount>> of the 5 towels</strong>)
<br /><br />
<</if>>
<<if setup.hasDoctor()>>
<<set _chanceSuccess += 20>>
<<set _chanceMotherDies -= 2>>
<</if>>
<<if ($tmpGirl.traits ?? []).includes('breeder')>>
<<set _chanceSuccess += 10>>
<<set _chanceMotherDies -= 1>>
<</if>>
<<linkreplace 'Continue'>>
<center>
<center>
<<actionImage $tmpGirl 'push'>>
</center>
</center>
<br /><br />
<<addhours 7>>
<<energy -70>>
<<if setup.percentageChance(_chanceSuccess)>>
The labor was long and painful, but <<=setup.displayName($tmpGirl)>> was determined to bring her child into the world. Finally, after hours of pushing, she heard the sound of a baby's cry.<br />
<<=setup.displayName($tmpGirl)>> held her newborn child close, tears streaming down her face. She knew that they were still in a dangerous situation, but for the moment, all that mattered was the new life in her arms.
<br /><br />
<center>
<<actionImage $tmpGirl 'kid'>>
</center>
<br /><br />
<<set _childGender = randomInteger(0,1)>>
Congratulation, it's a <<if !_childGender>><span style="color:pink">girl</span><<else>> <span style="color:blue">boy</span><</if>>
<br /><br />
<<set _mother = $tmpGirl>>
<<newchild _childGender _mother>>
<<if !(_mother.traits ?? []).includes('milker') && setup.percentageChance(10) && ['big', 'medium'].includes(_mother.breasts)>>
<<run _mother.traits.push('milker')>>
<<=setup.displayName(_mother)>> got a milker trait!
<br /><br />
<</if>>
<<set _randomName = $newChild.name>>
What will be <<if !_childGender>>her<<else>>his<</if>> name: <<textbox "_childName" _randomName>>
<br /><br />
<<link 'Continue'>>
<<set _mother.noPregnancyDays = randomInteger(180, 250)>>
<<if $pregnancyHappening.type === 'slave'>>
<<set $slaves[$pregnancyHappening.id] = _mother>>
<<elseif $pregnancyHappening.type === 'character'>>
<<set $characters[$pregnancyHappening.id] = _mother>>
<<else>>
<<set $guests[$pregnancyHappening.id] = _mother>>
<</if>>
<<set _child.name = _childName>>
<<run setup.npc.addHistory(_child, 'born', { mother: _mother.id })>>
<<if ($game.location.nursery ?? false)>>
<<run $nursery.push(_child)>>
<<elseif ($game.location.guesthouse ?? false)>>
<<run $guests.push(_child)>>
<<else>>
<<run $slaves.push(_child)>>
<</if>>
<<run delete $pregnancyHappening>>
<<goto 'Bedroom'>>
<</link>>
<<else>>
<center>
<<actionImage $tmpGirl 'died'>>
</center>
<br /><br />
Despite the best efforts of the community, tragedy strikes. The child is born, but due to the harsh conditions and lack of medical resources, it becomes clear that survival is impossible.
The child passes away in <<=setup.displayName($tmpGirl)>>'s arms.
<br /><br />
<<link 'Continue'>>
<<for _childGuestI, _childGuest range $guests>>
<<set $guests[_childGuestI].happy -= 10>>
<</for>>
<<for _childSlaveI, _childSlave range $slaves>>
<<set $slaves[_childSlaveI].happy -= 10>>
<</for>>
<<set _mother = $tmpGirl>>
<<run delete _mother.pregnancy>>
<<if $pregnancyHappening.type === 'slave'>>
<<set $slaves[$pregnancyHappening.id] = _mother>>
<<elseif $pregnancyHappening.type === 'character'>>
<<set $characters[$pregnancyHappening.id] = _mother>>
<<else>>
<<set $guests[$pregnancyHappening.id] = _mother>>
<</if>>
<<unset $pregnancyHappening>>
<<goto 'Guest house'>>
<</link>>
<</if>>
<</linkreplace>><h1 class="ptitle">CHURCH</h1>
<br />
<div id="characters-in-location">
<<if (_charactersInLocation['church'] ?? []).includes('eve')>>
<<set _hornyClass = ($characters?.eve?.horny > 80) ? 'char-horny' : ''>>
<span @class="_hornyClass">
<<link '<div class="char-in-location">[img[setup.ImagePath+"people/eve/avatar.png"]]</div>'>>
<<goto 'Eve room'>>
<</link>>
</span>
<</if>>
</div>
<br />
<<if $characters?.eve?.quests?.cabinType && !$characters.eve.quests.church_built_day>>
<<goto 'Eve - new church'>>
<</if>>
<<set _randomNunJobs = [
'is arranging flowers on the altar.',
'is quietly reading scripture.',
'is lighting candles.',
'is sweeping the church floor.',
'is polishing the wooden benches.'
]>>
<<set _nuns = setup.getPersonsForLocation($guests, 'church')>>
<<unset $tmpGirl>>
<table id="slaves">
<<if _nuns.length > 0 && timeBetween('08:00', '18:00')>>
<<for _nunI, _nun range _nuns>>
<<set _guest = $guests[_nun]>>
<<capture _nun, _guest>>
<<set _guest.location = 'church'>>
<<set _genderClass = 'gender-' + setup.genderClass(_guest)>>
<<set _customColorStyle = ''>>
<<if typeof _guest.color !== 'undefined'>>
<<set _customColorStyle = ' npc-color color-' + _guest.color>>
<</if>>
<tr>
<td style="min-width: 25%">
<center>
<<actionImage _guest working>>
</center>
<span @class="_genderClass + _customColorStyle">
<<link _guest.name>>
<<set $tmpGirl to _guest>>
<<set $tmpGirl.location = 'church'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $guestId = _nun>>
<<unset $slaveId, $childId, $charId>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $tmpGirlBack = 'Church'>>
<<goto `$tmpGirlViewBack`>>
<</link>>
</span> <<=setup.getRandomElement(_randomNunJobs)>>
<<if (_guest.horny ?? 0) >= 80>>
<<=ucfirst(setup.pronounceWhat(_guest))>> looks <span style="background-image: radial-gradient(rgba(255, 182, 193, 0.5) 10%, transparent 90%); padding: 0 4px;">distracted</span>, and could use some attention.
<</if>>
<<=setup.npcListInfo(_guest, false, false)>>
</td>
</tr>
<</capture>>
<</for>>
<</if>>
</table>
<br />
<<link 'Leave'>>
<<addmins 5>>
<<goto 'Youth district'>>
<</link>><<set _npc = $tmpGirl>>
<h1 class="ptitle">DATE</h1>
<br />
<center>
<<image 'places/dates/date_garden.jpg' sfw>>
</center>
<br />
You'd spent the morning putting it together — a blanket, whatever food you could make work, a bottle you'd been saving without admitting why. <<=setup.displayName(_npc)>> found you setting it up in the garden and stood watching you for a moment before she said anything.
<br /><br />
<<sayNpc _npc>>
Is this for me?
<</sayNpc>>
<br />
You said it was for both of you.
<br /><br />
<<sayNpc _npc>>
You're terrible at this.
<</sayNpc>>
<br />
She sat down anyway, pulled her knees up, and held out her glass.
<br /><br />
<<linkreplace 'Pour the wine and sit with her'>>
<<addmins 20>>
<center>
<<image 'places/dates/date_garden_2.jpg'>>
</center>
<br />
The afternoon was mild. Bees somewhere in the flowers — real ones, which still surprised you when you heard them. She'd taken her shoes off and was watching the far corner of the garden where something had gone to seed and spread wild.
<br /><br />
<<sayNpc _npc>>
I used to have a garden. Before. Not like this. Just tomatoes, mostly.
<</sayNpc>>
<br />
You asked if she'd been good at it.
<br /><br />
<<sayNpc _npc>>
No. Half of them rotted. I didn't care. I just liked having somewhere to go.
<</sayNpc>>
<br />
<<linkreplace 'Stay and talk as the afternoon goes long'>>
<<addmins 60>>
<center>
<<image 'places/dates/date_garden_3.jpg'>>
</center>
<br />
You went through the food slowly, refilled the glasses twice, talked about nothing that mattered and everything that did. She laughed at something you said and then looked almost surprised at herself for it.
<br /><br />
<<sayNpc _npc>>
I forget, sometimes. That things can just be... nice.
<</sayNpc>>
<br />
You said you knew what she meant.
<br /><br />
<<sayNpc _npc>>
I know you do. That's the thing.
<</sayNpc>>
<br />
<<linkreplace 'Pack up as the sun gets low'>>
<<addmins 30>>
The light was going amber and cool by the time you folded the blanket. She helped without being asked, which still meant something to you even after everything. She tucked the empty bottle under her arm like a prize.
<br /><br />
<<sayNpc _npc>>
I'm keeping this.
<</sayNpc>>
<br />
You said it was hers.
<br /><br />
Back inside, the cabin felt smaller in the good way — the way it only did when you came in from somewhere you'd actually wanted to be.
<br /><br />
She looked at you with the bottle still in her hands.
<br /><br />
<<sayNpc _npc>>
So. What now?
<</sayNpc>>
<br />
<div id="dgp_bed">
<<linkreplace 'Take her to bed'>>
<<run $('#dgp_night').hide()>>
<<set $tmpGirl = _npc>>
<<set $tmpGirl.location = 'forest'>>
<<set $tmpGirlViewBack = 'Wood cabin'>>
<<fuck>>
<</linkreplace>>
</div>
<div id="dgp_night">
<<linkreplace 'Call it a night'>>
<<run $('#dgp_bed').hide()>>
<<addmins 5>>
You took the bottle from her hands, set it on the shelf, and kissed her.
<br /><br />
<<sayNpc _npc>>
Good answer.
<</sayNpc>>
<br />
<<set _npc.relationship = Math.min((_npc.relationship ?? 0) + 10, 100)>>
<<set _npc.happy = Math.min((_npc.happy ?? 0) + 10, 100)>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +10, Happy +10)</strong>
<br /><br />
<<link 'Return'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><<set _npc = $tmpGirl>>
<h1 class="ptitle">DATE</h1>
<br />
<center>
<<image 'places/dates/date_lake.jpg' sfw>>
</center>
<br />
You told <<=setup.displayName(_npc)>> you wanted to take her somewhere. She gave you a look that said she didn't entirely believe you had a plan.
<br /><br />
You did. Barely.
<br /><br />
The lake was half an hour's walk through the tree line — overgrown banks, still water, completely quiet. No one else came here. She went quiet when she saw it, which was the best thing she could have done.
<br /><br />
<<sayNpc _npc>>
This is real.
<</sayNpc>>
<br />
You said you'd been meaning to bring her for a while.
<br /><br />
<<sayNpc _npc>>
You should've said something sooner.
<</sayNpc>>
<br />
<<linkreplace 'Sit with her at the water'>>
<<addmins 30>>
<center>
<<image 'places/dates/date_lake_2.jpg'>>
</center>
<br />
You found a flat rock near the bank and sat with her, shoulders touching. The surface of the lake reflected the sky — grey and pale gold where the clouds broke. She leaned into you after a while, not saying anything. You didn't either.
<br /><br />
<<sayNpc _npc>>
Do you think it was like this before? Quiet like this?
<</sayNpc>>
<br />
You said maybe. Or maybe everyone was too busy to notice.
<br /><br />
<<sayNpc _npc>>
I think I'd have missed it either way.
<</sayNpc>>
<br />
<<linkreplace 'Stay until the light fades'>>
<<addmins 45>>
The sun dropped low and the lake went copper, then dark. She'd fallen asleep against your shoulder for twenty minutes before waking up embarrassed. You told her you hadn't moved. She didn't believe you but liked it anyway.
<br /><br />
<<sayNpc _npc>>
We should head back before it's completely black.
<</sayNpc>>
<br />
You walked back through the trees in the last of the light. She took your hand without making anything of it.
<br /><br />
<<sayNpc _npc>>
Thank you. For this.
<</sayNpc>>
<br />
<<linkreplace 'Arrive home'>>
<<addmins 30>>
<center>
<<image 'places/dates/date_lake_3.jpg'>>
</center>
<br />
The cabin was warm when you got in. Quiet. Everyone else had gone to bed.
<br /><br />
She stopped in the doorway and looked at you.
<br /><br />
<<sayNpc _npc>>
Good night?
<</sayNpc>>
<br />
<div id="dl_bed">
<<linkreplace 'Take her to bed'>>
<<run $('#dl_night').hide()>>
<<set $tmpGirl = _npc>>
<<set $tmpGirl.location = 'forest'>>
<<set $tmpGirlViewBack = 'Wood cabin'>>
<<fuck>>
<</linkreplace>>
</div>
<div id="dl_night">
<<linkreplace 'Call it a night'>>
<<run $('#dl_bed').hide()>>
<<addmins 5>>
You kissed her at the door and told her it was a good night.
<br /><br />
<<sayNpc _npc>>
It was.
<</sayNpc>>
<br />
<<set _npc.relationship = Math.min((_npc.relationship ?? 0) + 10, 100)>>
<<set _npc.happy = Math.min((_npc.happy ?? 0) + 10, 100)>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +10, Happy +10)</strong>
<br /><br />
<<link 'Return'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><<set _npc = $tmpGirl>>
<<set _d = either(0, 1, 2, 3)>>
<<if _d === 0>>
<<goto 'Date - lake'>>
<<elseif _d === 1>>
<<goto 'Date - garden picnic'>>
<<elseif _d === 2>>
<<goto 'Date - stargazing'>>
<<else>>
<<goto 'Date - ruins'>>
<</if>><<set _npc = $tmpGirl>>
<h1 class="ptitle">DATE</h1>
<br />
<center>
<<image 'places/dates/date_ruins.jpg' sfw>>
</center>
<br />
You told <<=setup.displayName(_npc)>> there was somewhere worth walking to, an hour out past the treeline, and she came without asking what it was.
<br /><br />
The old river crossing had survived better than anything around it — a stone footbridge with its railing still bolted on, the water running fast and shallow over the rocks below. Further down the gorge the road bridge had come apart decades ago, one span collapsed into a lean of concrete slabs.
<br /><br />
She went straight to the railing and leaned on it, watching the water move.
<br /><br />
<<sayNpc _npc>>
You can hear it from up here. I'd forgotten what running water sounds like when nobody's fighting over it.
<</sayNpc>>
<br />
<<linkreplace 'Stand at the railing with her'>>
<<addmins 30>>
You leaned on the rail beside her. She didn't move away — she moved closer, until her shoulder was against your arm, and then she stopped pretending she was watching the water at all.
<br /><br />
<<video 'outside/date_ruins1'>>
<br /><br />
<<sayNpc _npc>>
Nobody comes out this far. You said that, didn't you?
<</sayNpc>>
<br />
She turned her back to the rail and looked at you like she'd already decided how the afternoon was going to end.
<br /><br />
<<video 'outside/date_ruins2'>>
<br /><br />
She hitched her skirt up and ran her fingers over her pussy through her panties, slow, watching your face the whole time to see what it did to you. Then she stopped teasing herself, slid her hand down inside her panties, and started rubbing her clit right there against the railing, out in the open.
<br /><br />
<<if (_npc.likesGuys ?? true)>>
<div id="dr_go">
<<linkreplace 'Reach for her'>>
<<run $('#dr_home').hide()>>
She caught your wrist before you got there, glanced down the gorge, and tipped her head toward the collapsed span.
<br /><br />
<<sayNpc _npc>>
Not out in the open. Down there — under the bridge. Nobody can see anything under there.
<</sayNpc>>
<br />
<<linkreplace 'Follow her down'>>
<<addmins 20>>
<<set _npc.bj = Math.min((_npc.bj ?? 0) + 5, 100)>>
<<set _npc.statsSex ??= {}, _npc.statsSex.bj = (_npc.statsSex.bj ?? 0) + 1>>
<center>
<<image 'places/dates/date_ruins_2.jpg' sfw>>
</center>
<br />
The bank dropped steep and loose, and she went down it faster than you did. Under the span the light came in sideways between the slabs — enormous tilted sheets of concrete, every reachable surface covered in paint somebody had put there long before either of you were born.
<br /><br />
She dropped to her knees in the dirt in front of you, still in her white top, and had your cock out before you'd even got your belt all the way open.
<br /><br />
<<video 'outside/date_ruins3'>>
<br /><br />
She sucked your cock like she had something to prove, looking up at you the whole time, taking it deep and working the rest with her hand.
<br /><br />
<<sayNpc _npc>>
Now fuck me. Right here. In my ass.
<</sayNpc>>
<br />
<<linkreplace 'Bend her over the ledge and fuck her ass'>>
<<addmins 15>>
<<set _npc.anal = Math.min((_npc.anal ?? 0) + 10, 100)>>
<<set _npc.statsSex ??= {}, _npc.statsSex.anal = (_npc.statsSex.anal ?? 0) + 1>>
She turned around, leaned forward over the graffitied concrete ledge and pushed her ass back at you. You grabbed her hips, pressed the head of your cock against her asshole and shoved it into her ass from behind.
<br /><br />
<<video 'outside/date_ruins4'>>
<br /><br />
She reached back and pulled one ass cheek open for you, arching lower over the ledge so you could drive deeper into her ass.
<br /><br />
<<video 'outside/date_ruins5'>>
<br /><br />
She'd stripped off completely by then — bent naked over the concrete with both hands spreading her ass cheeks, taking every hard thrust in her ass.
<br /><br />
<<sayNpc _npc>>
Fuck — don't stop.
<</sayNpc>>
<br />
<<linkreplace 'Put her on the ledge and fuck her pussy'>>
<<addmins 15>>
<<set _npc.pussy = Math.min((_npc.pussy ?? 0) + 5, 100)>>
<<set _npc.statsSex ??= {}, _npc.statsSex.pussy = (_npc.statsSex.pussy ?? 0) + 1>>
She climbed up onto the ledge, lay back on her white top and spread her legs wide for you. You stepped in between her knees and pushed your cock into her pussy.
<br /><br />
<<video 'outside/date_ruins6'>>
<br /><br />
You fucked her pussy from between her spread legs, groping her tits while she held your hand there. When you gripped her jaw and pushed your thumb into her mouth, she sucked on it and your fingers, looking up at you the whole time.
<br /><br />
<<video 'outside/date_ruins7'>>
<br /><br />
You pulled out of her pussy to change the angle, but she caught your cock in her hand before you could push back in. With one leg lifted high on the ledge, she dragged the head down past her pussy, pressed it against her asshole and pulled you back into her ass herself.
<br /><br />
<<video 'outside/date_ruins8'>>
<br /><br />
She lay back across the concrete with her legs spread as wide as they'd go, rubbing her clit while you pounded her ass, not even trying to keep quiet.
<br /><br />
<<sayNpc _npc>>
Turn me around. I want you to finish in my ass.
<</sayNpc>>
<br />
<<linkreplace 'Fuck her ass'>>
<<addmins 15>>
<<set _npc.statsSex ??= {}, _npc.statsSex.anal = (_npc.statsSex.anal ?? 0) + 1>>
She rolled over and bent across the ledge again, pushing her ass back at you. You pressed your cock against her asshole and slid it back into her ass.
<br /><br />
<<video 'outside/date_ruins9'>>
<br /><br />
She pushed back against every thrust, taking your cock deep in her ass and moaning into the concrete.
<br /><br />
<<sayNpc _npc>>
I'm close. Don't you dare stop now.
<</sayNpc>>
<br />
<div id="dr_inside">
<<linkreplace 'Cum in her ass'>>
<<run $('#dr_out').hide()>>
<<horny_reset>>
You buried your cock deep in her ass and came inside her, then pulled out and spread her cheeks to watch your cum run out of her gaping asshole.
<br /><br />
<<video 'outside/date_ruins10'>>
<br /><br />
<<sayNpc _npc>>
We are not walking straight back. Give me a minute.
<</sayNpc>>
<br />
<<set _npc.relationship = Math.min((_npc.relationship ?? 0) + 15, 100)>>
<<set _npc.happy = Math.min((_npc.happy ?? 0) + 15, 100)>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +15, Happy +15)</strong>
<br /><br />
<<link 'Walk back together'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<div id="dr_out">
<<linkreplace 'Pull out and cum on her back'>>
<<run $('#dr_inside').hide()>>
<<horny_reset>>
You pulled your cock out of her ass at the last second and came across her back while she was still bent over the ledge.
<br /><br />
<center>
<<image 'game/misc/cum_on_back.webp'>>
</center>
<br />
<<sayNpc _npc>>
Careful of you.
<</sayNpc>>
<br />
She said it dryly, but she was smiling when she pulled her clothes back on.
<br /><br />
<<set _npc.relationship = Math.min((_npc.relationship ?? 0) + 12, 100)>>
<<set _npc.happy = Math.min((_npc.happy ?? 0) + 12, 100)>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +12, Happy +12)</strong>
<br /><br />
<<link 'Walk back together'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<</if>>
<div id="dr_home">
<<linkreplace 'Head back before dark'>>
<<run $('#dr_go').hide()>>
<<addmins 30>>
You stayed at the rail until the light went orange over the gorge, then walked her home along the treeline. She talked most of the way back, which she almost never did.
<br /><br />
<<sayNpc _npc>>
Take me out there again sometime.
<</sayNpc>>
<br />
<<set _npc.relationship = Math.min((_npc.relationship ?? 0) + 10, 100)>>
<<set _npc.happy = Math.min((_npc.happy ?? 0) + 10, 100)>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +10, Happy +10)</strong>
<br /><br />
<<link 'Return'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>><<set _npc = $tmpGirl>>
<h1 class="ptitle">DATE</h1>
<br />
<center>
<<image 'places/dates/date_stargazing.jpg' sfw>>
</center>
<br />
You waited until after dark. She thought you'd forgotten about the plan — you could tell from the look she gave you when you came to find her.
<br /><br />
<<sayNpc _npc>>
It's late.
<</sayNpc>>
<br />
You said that was the point. You brought a coat for her.
<br /><br />
The watchtower at the edge of the settlement had a ladder and an open platform at the top. Nobody used it at night. When she climbed through the hatch and saw the sky she stopped and didn't say anything for a long moment.
<br /><br />
There were too many stars to count. No light pollution, no haze — just the whole sky, unfiltered, the way it must have been for most of human history and was again now.
<br /><br />
<<sayNpc _npc>>
I didn't know it looked like this.
<</sayNpc>>
<br />
You said it had been like this the whole time. You just had to go somewhere high enough.
<br /><br />
<<linkreplace 'Stay up there with her'>>
<<addmins 45>>
<center>
<<image 'places/dates/date_stargazing_2.jpg'>>
</center>
<br />
You sat with your backs against the railing, shoulders together, both looking up. She found a pattern in the stars and pointed it out. You couldn't see it. She laughed at you. You argued about it for ten minutes and ended up closer together than when you started.
<br /><br />
<<sayNpc _npc>>
I used to know the constellations. My dad taught me when I was young. I've forgotten most of them.
<</sayNpc>>
<br />
You asked which ones she still remembered.
<br /><br />
<<sayNpc _npc>>
Orion. That's the only one I can always find. Three stars in a row — he's there.
<</sayNpc>>
<br />
She pointed. You looked for a long time. You found three stars that were probably the right ones.
<br /><br />
<<linkreplace 'Wait as the night gets deep'>>
<<addmins 60>>
The cold came in slow and she'd moved fully under your arm without mentioning it. The settlement below was dark and still. From up here it looked almost peaceful — almost like somewhere people had chosen to live, not just survived to.
<br /><br />
<<sayNpc _npc>>
I'm glad we did this.
<</sayNpc>>
<br />
You said you were too.
<br /><br />
<<sayNpc _npc>>
I mean all of it. Not just tonight. All of it.
<</sayNpc>>
<br />
You didn't answer. You didn't need to. She knew.
<br /><br />
<<linkreplace 'Climb back down and head home'>>
<<addmins 20>>
<center>
<<image 'places/dates/date_stargazing_3.jpg'>>
</center>
<br />
The cabin was warm and quiet. She stopped in the middle of the room and turned to look at you — coat still on, hair a little wind-messed, the kind of tired that comes from something good.
<br /><br />
<<sayNpc _npc>>
Don't look at me like that.
<</sayNpc>>
<br />
You asked what look.
<br /><br />
<<sayNpc _npc>>
That look.
<</sayNpc>>
<br />
<div id="dsg_bed">
<<linkreplace 'Take her to bed'>>
<<run $('#dsg_night').hide()>>
<<set $tmpGirl = _npc>>
<<set $tmpGirlViewBack = 'Wood cabin'>>
<<fuck>>
<</linkreplace>>
</div>
<div id="dsg_night">
<<linkreplace 'Call it a night'>>
<<run $('#dsg_bed').hide()>>
<<addmins 5>>
You took her coat, hung it up, and kissed her forehead.
<br /><br />
<<sayNpc _npc>>
Goodnight.
<</sayNpc>>
<br />
<<set _npc.relationship = Math.min((_npc.relationship ?? 0) + 10, 100)>>
<<set _npc.happy = Math.min((_npc.happy ?? 0) + 10, 100)>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +10, Happy +10)</strong>
<br /><br />
<<link 'Return'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/event_base_attack_capture.jpg']]
</center>
<br /><br />
You and your fellow survivors fought bravely, but the attackers were too many, too well-armed, and too ruthless.
As the last defenses crumbled, the leader of the gang steps forward, his sneer replaced with a look of triumph.
<br /><br />
<<sayNpc $tmpGuy>>
I warned you. You had chance.
<</sayNpc>>
<br />
The attackers begin to ransack the settlement, taking anything of value.
The leader gestures to his men, and they start rounding up the survivors corralling them into the central area of the settlement.
<br /><br />
<<set _tookFood = Math.min(100, setup.cabinInventory.count('food'))>>
<<set _tookKnives = Math.min(5, setup.cabinInventory.count('knife'))>>
<<set _tookMoney = Math.min(300, $player.money)>>
<<if _tookFood>>
<strong>They stole <<=_tookFood>> food</strong>
<br />
<</if>>
<<if _tookKnives>>
<strong>They stole <<=_tookKnives>> knives</strong>
<br />
<</if>>
<<if _tookMoney>>
<strong>They stole <<=_tookMoney>> caps</strong>
<br />
<</if>>
<br />
<<set _guestsCount = Math.min(1, $guests.length)>>
<<set _slavesCount = Math.min(2, $guests.length)>>
<<set _randomGuestIds = setup.getRandomPersonIds($guests, _guestsCount)>>
<<set _randomSlaveIds = setup.getRandomPersonIds($slaves, _slavesCount)>>
<<set _npcsTaken = []>>
<<for _npcIndex, _npc range _randomGuestIds>>
<<set _npcsTaken.push(setup.displayName($guests[_randomGuestIds[_npcIndex]]))>>
<<guestRemove _randomGuestIds[_npcIndex]>>
<</for>>
<<for _npcIndex, _npc range _randomSlaveIds>>
<<set _npcsTaken.push(setup.displayName($slaves[_randomSlaveIds[_npcIndex]]))>>
<<slaveRemove _randomSlaveIds[_npcIndex]>>
<</for>>
The survivors are taken captive. The attackers impose harsh conditions, treating the inhabitants as forced labor.
The leader makes it clear that any resistance will be met with brutal punishment.
<br /><br />
You can't do anything but just look as they take with them <<=_npcsTaken.join(', ')>>.
<br /><br />
As you look outside your gates, in the distance you see as they car disappears behind the trees with some of your people.
<br /><br />
<<link 'Get up'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/event_base_attack_car.jpg']]
</center>
<<set _guards = setup.getPersonsForLocation($guests, 'guard')>>
<<set _allyCount = _guards.length + Object.keys($player.companions).length>>
<<set _enemyGuyCount = Math.max(Math.floor(_allyCount / 3), 4)>>
<<set _enemyGirlCount = Math.max(Math.floor(_allyCount / 2)-1, 1)>>
<<if $player?.baseManagement?.buildings?.stone_wall >= 80>>
<<set _enemyGuyCount -= 2>>
<<set _enemyGirlCount -= 2>>
<<elseif $player?.baseManagement?.buildings?.wood_wall >= 80>>
<<set _enemyGuyCount -= 1>>
<<set _enemyGirlCount -= 1>>
<</if>>
<br /><br />
As you step outside, the cool evening breeze brushes against your face, carrying with it a faint, unfamiliar scent.
The tranquility is abruptly shattered by the sound of metal clanging against metal.
The source of the noise becomes apparent as you approach the gate: a rusty, battered car parked just outside, and a group of grim-looking men standing in front of it,
banging on the door with their fists and the butts of their knives.
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
Well, look what we have here. Nice place you got. Shame if something happened to it.
<</sayNpc>>
<br />
He gestures to his companions, each one armed with an assortment of knives and makeshift weapons, their faces hidden behind makeshift masks. The tension is palpable as they spread out, ensuring you understand the seriousness of the situation.
<br /><br />
<<sayNpc $tmpGuy>>
Here's the deal. You either pay us 500 caps as a toll for... protection, or we take whatever we like. And trust me, you don't want that.
<</sayNpc>>
<br />
In front of you are standing <strong>10 guys, all holding knives</strong> in their hands.
<br /><br />
<<generateEnemies 8 0 8>>
<<for _enemyI = 0; _enemyI < $enemies.length; _enemyI++ >>
<<set $enemies[_enemyI].strength = Math.min($enemies[_enemyI].strength + randomInteger(50, 130), 100)>>
<<set $enemies[_enemyI].endurance = Math.min($enemies[_enemyI].endurance + randomInteger(50, 130), 100)>>
<</for>>
<<set $enemies[2].inventory.car_part = 1>>
<div id="option_fight">
<<link 'Fight them'>>
<<set _guards = setup.getPersonsForLocation($guests, 'guard')>>
<<fight $enemies 'Event - Raider prisoner - check' 'Event - Base attack with car - lost' false _guards>>
<<set $fight.skipEndingLost = true>>
<</link>>
</div>
<<if $player.money >= 500>>
<div id="option_pay">
<<linkreplace 'Pay 500 caps'>>
<<run $('#option_fight').hide()>>
<<run $('#option_leave').show()>>
<<set $player.money -= 200>>
<<set $player.quests.baseAttackCarDay = $game.day>>
You hand over the demanded supplies, losing valuable resources but avoiding immediate conflict.
<br /><br />
This sets a precedent for future extortion attempts, and you'll need to decide how to handle those.
<br /><br />
<</linkreplace>>
</div>
<</if>>
<div id="option_leave" style="display:none">
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
</div><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _bmData = $game.blackmailEvent>>
<<set _bmS = setup.settlements.getById(_bmData.id)>>
<<if !_bmS>>
<<unset $game.blackmailEvent>>
<<goto 'Wood cabin'>>
<</if>>
<<set _bmDaysLeft = Math.max(0, (_bmData.deadline ?? ($game.day + 4)) - $game.day)>>
<center>
<<image 'places/cabin/blackmail.jpg'>>
</center>
<br />
The letter arrived unsigned, but the seal made it obvious. Someone at <<= _bmData.name >> has been watching your base — counting your people, mapping your walls, noting your weaknesses. And now they want payment for their silence.
<br /><br />
<div style="background: rgba(0,0,0,0.25); border-left: 3px solid #e09855; padding: 12px 16px; margin-bottom: 16px; font-style: italic; color: #ccc;">
"300 caps. Four days. After that, every hostile faction in range gets a detailed report on your defenses, your headcount, and your supply routes. Your choice."
<br /><br />
<span style="font-style: normal; color: #888; font-size: 0.85em;">— <<= _bmData.name >></span>
</div>
<<if _bmDaysLeft > 0>>
<span style="color: #e09855; font-size: 0.88em;">⏳ <<= _bmDaysLeft>> day<<= _bmDaysLeft !== 1 ? 's' : ''>> to respond.</span>
<<else>>
<span style="color: #e05555; font-size: 0.88em;">⚠ Deadline passed.</span>
<</if>>
<br /><br />
<div id="bm_choices">
<<if $player.money >= 300>>
<div id="bm_pay">
<<set _bmPayLabel = 'Pay the 300 caps'>>
<<linkreplace _bmPayLabel>>
<<run $('#bm_person, #bm_intercept, #bm_bluff, #bm_attack').hide()>>
<<set $player.money -= 300>>
<<set _bmHandle = setup.settlements.getById(_bmData.id)>>
<<run setup.settlements.resolveBlackmail(_bmHandle, true)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<unset $game.blackmailEvent>>
<<addmins 15>>
You sent the caps. No note, no threat in return — just payment. The kind of silence you buy.
<br /><br />
<span style="color: #888;"><<= _bmData.name >> got their money. For now, your intel stays yours.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<<else>>
<span style="color: #555; font-size: 0.88em;">Pay the 300 caps — not enough.</span>
<</if>>
<br />
<<set _bmSendable = []>>
<<for _bmi2 = 0; _bmi2 < $slaves.length; _bmi2++>>
<<if setup.getAge($slaves[_bmi2]) >= 18>>
<<run _bmSendable.push({ npc: $slaves[_bmi2], kind: 'slave' })>>
<</if>>
<</for>>
<<for _bmg2 = 0; _bmg2 < $guests.length; _bmg2++>>
<<if $guests[_bmg2].gender === 0 && setup.getAge($guests[_bmg2]) >= 18>>
<<run _bmSendable.push({ npc: $guests[_bmg2], kind: 'guest' })>>
<</if>>
<</for>>
<<if _bmSendable.length>>
<div id="bm_person">
<<set $game.bmSendId = $game.bmSendId ?? null>>
<div id="bm_person_list">
<span style="color: #aaa; font-size: 0.9em; letter-spacing: 0.05em;">SEND SOMEONE INSTEAD</span>
<br /><br />
<table class="npc-list">
<<for _bmi = 0; _bmi < _bmSendable.length; _bmi++>>
<<set _bmEntry = _bmSendable[_bmi]>>
<<capture _bmi _bmEntry>>
<tr class="item">
<td style="min-width: 25%">
<span class="gender-f">
<<= _bmEntry.npc.name >>
<span style="color: #888; font-size: 0.85em;"> (<<= _bmEntry.kind >>, age <<= setup.getAge(_bmEntry.npc) >>)</span>
</span>
</td>
<td>
<<npcListView _bmEntry.npc _bmi _bmEntry.kind>>
</td>
<td>
<<radiobutton "$game.bmSendId" _bmEntry.npc.id autocheck>>
</td>
</tr>
<</capture>>
<</for>>
</table>
</div>
<br />
<<set _bmSendPersonLabel = 'Send selected'>>
<<linkreplace _bmSendPersonLabel>>
<<if $game.bmSendId>>
<<set _bmSIdx2 = $slaves.findIndex(function(g) { return g.id === $game.bmSendId; })>>
<<set _bmGIdx2 = $guests.findIndex(function(g) { return g.id === $game.bmSendId; })>>
<<if _bmSIdx2 >= 0>>
<<set _bmSentNpc = clone($slaves[_bmSIdx2])>>
<<run $slaves.splice(_bmSIdx2, 1)>>
<<elseif _bmGIdx2 >= 0>>
<<set _bmSentNpc = clone($guests[_bmGIdx2])>>
<<guestLeft _bmGIdx2>>
<</if>>
<<if _bmSentNpc>>
<<set _bmSendHandle = setup.settlements.getById($game.blackmailEvent.id)>>
<<set _bmSendName = $game.blackmailEvent.name>>
<<run setup.settlements.resolveBlackmail(_bmSendHandle, true)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<run $('#bm_person_list, #bm_pay, #bm_intercept, #bm_bluff, #bm_attack').hide()>>
<<unset $game.blackmailEvent, $game.bmSendId>>
<<addmins 45>>
<<= _bmSentNpc.name >> was handed over in place of caps. They accepted without protest.
<br /><br />
<span style="color: #888;"><<= _bmSendName >> withdrew the threat.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<<else>>
<span style="color: #e05555;">Something went wrong finding that person.</span>
<</if>>
<<else>>
<span style="color: #888;">Select someone from the list first.</span>
<</if>>
<</linkreplace>>
</div>
<br />
<</if>>
<<set _bmFriends = setup.settlements.getAll().filter(function(s) { return !s.destroyed && (setup.settlements.isFriendly(s) || setup.settlements.isAllied(s)); })>>
<<if _bmFriends.length>>
<div id="bm_intercept">
<<set _bmIntLabel = 'Get a friend to intercept'>>
<<linkreplace _bmIntLabel>>
<<run $('#bm_pay, #bm_person, #bm_bluff, #bm_attack').hide()>>
<<set _bmFriendPick = _bmFriends.reduce(function(best, s) { return s.relationship > best.relationship ? s : best; }, _bmFriends[0])>>
<<set _bmHandle5 = setup.settlements.getById(_bmData.id)>>
<<run setup.settlements.modifyRelationship(_bmFriendPick, -8, 'Called in a favour against blackmailer')>>
<<run setup.settlements.resolveBlackmail(_bmHandle5, true)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<unset $game.blackmailEvent>>
<<addmins 60>>
You sent word to <<= _bmFriendPick.name >>. They didn't ask questions — just made it known through the right channels that this line of conversation was over.
<br /><br />
<span style="color: #55cc88;">The threat was quietly buried. <<= _bmFriendPick.name >> did you a favour they'll remember.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<br />
<</if>>
<div id="bm_bluff">
<<set _bmBluffLabel = 'Call the bluff — refuse to pay'>>
<<linkreplace _bmBluffLabel>>
<<run $('#bm_pay, #bm_person, #bm_intercept, #bm_attack').hide()>>
<<set _bmHandle4 = setup.settlements.getById(_bmData.id)>>
<<run setup.settlements.resolveBlackmail(_bmHandle4, false)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<unset $game.blackmailEvent>>
You didn't send anything. If they want to talk, they can come to your gate.
<br /><br />
<span style="color: #e05555;"><<= _bmData.name >> made good on their word. Your base intel is in hostile hands now. Expect visitors.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<br />
<div id="bm_attack">
<<set _bmAttackLabel = 'Hit them before they can talk'>>
<<linkreplace _bmAttackLabel>>
<<run $('#bm_pay, #bm_person, #bm_intercept, #bm_bluff').hide()>>
<<set $tmpSettlement = _bmData.id>>
Best way to silence someone.
<br /><br />
<<link 'Drive to them'>><<goto 'Garage - World - Attack'>><</link>>
<</linkreplace>>
</div>
</div><h1 class="ptitle"><<cabinName>></h1>
<br />
Today, your steps lead you toward the mountain.
The climb is steep and unforgiving, but you know the view from the top is worth it.
From up there, you can see the extent of your domain, the broken remains of the old world stretching far beyond the treeline.
<br /><br />
You’re nearing the summit when you hear it—a faint rustle off the trail.
Your instincts kick in immediately, sharp as a knife. You stop, listening, your senses on high alert.
Quietly, you veer toward the sound, each step deliberate and silent.
<br /><br />
That’s when you see her.
<br /><br />
<<video 'cabin/trespassing1'>>
<br /><br />
She’s crouched among the ferns, her back to you, pants around her ankles.
A girl—young, wiry, her hair a tangle of grime and sweat. She’s completely unaware of your presence. The audacity of it sparks a flash of anger in you.
<br /><br />
<<newgirl>>
<<set
$tmpGirl.hair = 'ginger',
$tmpGirl.race = 'white'
>>
She jolts, spinning around, her face a mask of shock and embarrassment. Scrambling to pull up her pants, she stumbles back, her hands shaking.
But you’re quicker. In a few swift strides, you grab her arm and haul her upright.
<br /><br />
<<you>>
What the hell do you think you’re doing on my property?
<</you>>
<br />
<<sayNpc $tmpGirl>>
Please sorry! I didn't know! Let me go!
<</sayNpc>>
<br />
<<sayNpc $tmpGirl>>
I don't have any caps or food. Please let me go!
<</sayNpc>>
<br />
<<you>>
So, what are you going to pay with?
<</you>>
<br />
<div id="option_bj">
<<linkreplace 'Get on your knees'>>
<<set $player.goodwill-->>
<<set _bj = true>>
Her eyes widen slightly, realizing what you mean. The fight in her seems to waver for a moment before she looks away, staring at the ground.
<br /><br />
<<sayNpc $tmpGirl>>
Fine! Just don't hurt me.
<</sayNpc>>
<br />
<<video 'cabin/trespassing2'>>
<br /><br />
Her breath catches.
There’s hesitation in her movements, a flicker of resistance in her eyes, but she knows she doesn’t have a choice.
Slowly, she sinks to her knees, the dry earth crunching beneath her.
<br /><br />
<<video 'cabin/trespassing3'>>
<br /><br />
She holds your dick in her hand. You grab her hair and pull her mouth onto your dick. She clearly struggles with the size of yours.
<br /><br />
<<video 'cabin/trespassing4'>>
<br /><br />
<<sayNpc $tmpGirl>>
Please don't. It's way to big. Let me just do it my way.
<</sayNpc>>
<br />
<<linkreplace 'Force her deeper'>>
You put your hand on her hair, sliding fingers through them as you pushed her head on your dick, simultenously making movements with your hips towards her.
<br /><br />
<<video 'cabin/trespassing5'>>
<br /><br />
Her lips wrapped around your cock, her skilled tongue tracing the veins as she sucked harder.
Your fingers tangled in her hair, gripping tightly as you moaned uncontrollably while she choked on your dick.
<br /><br />
Tears stung her eyes as she gagged on your length, her throat stretched to its limit. She tried to pull back, but your hands held her in place, your grip unrelenting.
<br /><br />
<<sayNpc $tmpGirl>>
Stop! I can't breathe.
<</sayNpc>>
<br />
<<linkreplace 'Pull out her tits'>>
You let her breath for a moment. Meanwhile you leaned towards her top and slowly pulled out ouf on her breast.
Then you focused on second one and stopped only when both of them were naked outside of her top.
<br /><br />
<<sayNpc $tmpGirl>>
Hey! This wasn't the deal!
<</sayNpc>>
<br />
<<video 'cabin/trespassing6'>>
<br /><br />
Then once again you put your hand on her head and she instantly knew what you will do.
She clearly knew she is not able to put it all in so she firmly wrapped her hand around your dick and while sucking your dick, she stroked it with one hand.
<br /><br />
<<video 'cabin/trespassing7'>>
<br />
With each movement you tried to push her deeper and deeper.
At one point she just gave up and pressed both hands against your legs, that way at least trying to limit how deep you could push her.
<br /><br />
<<sayNpc $tmpGirl>>
Jus.t.. cu.mm.. alread.. hhh
<</sayNpc>>
<br />
<<linkreplace 'Cum in her throat'>>
<<horny_reset>>
Your cock twitched, and with a guttural roar, you exploded deep into her throat filling her with his hot, creamy load.
She just stood there in shock as she didn't expect that at all.
<br /><br />
<center>
<<image 'game/misc/cum_throat.webp'>>
</center>
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<<linkreplace 'Let her go'>>
<<if !_bj>>
<<run $('#option_bj').hide()>>
<<sayNpc $tmpGirl>>
Thank you! And I am so sorry. This won't happen again.
<</sayNpc>>
<<set $player.goodwill++>>
<<else>>
She quickly scrambles on her feet. she mutters something, clutching her bag tightly as she backs away.
<</if>>
<br />
You don’t respond, just watch as she turns and rushes down the mountain trail, her footsteps echoing against the stillness of the forest.
<br /><br />
<<link 'Leave'>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _ddData = $game.desperateDeal>>
<<set _ddS = setup.settlements.getById(_ddData.id)>>
<<if !_ddS>>
<<unset $game.desperateDeal>>
<<set $locationEvents.cabin = false>>
<<goto 'Wood cabin'>>
<</if>>
<<unset $game.desperateDeal>>
<<set $locationEvents.cabin = false>>
<<set _ddS.desperateDealActive = false>>
<<set _ddS.desperateDealCooldown = $game.day + 60>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<newgirl>>
<<set $tmpGirl.name = either('Lena', 'Mara', 'Anya', 'Reva', 'Cara', 'Vera', 'Nadia', 'Beth')>>
<<set $tmpGirl.origin = _ddData.name>>
<<set _ddGirl = clone($tmpGirl)>>
<<unset $tmpGirl>>
<center>
<<image 'places/cabin/desperate_deal.jpg'>>
</center>
<br />
The messenger from <<= _ddData.name >> didn't waste words. Their food was gone. Not running low — gone. They had a few days left, maybe less.
<br /><br />
<<newguy>>
<<set $tmpGuy.name = 'Messenger'>>
<<sayNpc $tmpGuy>>
We have nothing left to trade. But we have people. <<= _ddGirl.name >> volunteered. She knows what she's agreeing to.
<</sayNpc>>
<<unset $tmpGuy>>
<br />
<<= _ddGirl.name >> stood behind him, eyes on the ground. Whatever volunteered meant to her, it hadn't been an easy word to say.
<br /><br />
<div id="dd_choices">
<<if setup.cabinInventory.count('food') >= 10>>
<div id="dd_slave">
<<set _ddSlaveLabel = 'Take her as a slave — send 10 food'>>
<<linkreplace _ddSlaveLabel>>
<<run $('#dd_guest, #dd_aid, #dd_refuse').hide()>>
<<run setup.cabinInventory.drop('food', 10)>>
<<run setup.settlements.modifyRelationship(_ddS, 5, 'Accepted desperate deal — took slave, sent food')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 60>>
<<set _ddGirl.sub = Math.min((_ddGirl.sub ?? 0) + 20, 100)>>
<<run $slaves.push(_ddGirl)>>
<<run setup.npc.addHistory(_ddGirl, 'bought', { place: _ddS.name })>>
You loaded ten units of food onto the cart. The messenger nodded once and left without looking back at <<= _ddGirl.name >>.
<br /><br />
She stood in your yard looking at nothing in particular.
<br /><br />
<<sayNpc _ddGirl>>
Tell me what you need me to do.
<</sayNpc>>
<br />
<<if (_ddGirl.likesGuys ?? true)>>
<div id="dd_use_now">
<<set _ddUseLabel = 'Show her what she\'s here for'>>
<<linkreplace _ddUseLabel>>
<<run $('#dd_use_now, #dd_after_slave').hide()>>
<<horny_reset>>
<<addmins 30>>
You took her inside. She didn't resist — she'd already made that decision before she got here. You stripped her down, pushed her onto the bed, and took your time.
<br /><br />
<center>
<<image 'places/cabin/desperate_deal_sex.jpg'>>
</center>
<br />
Her body was thin but warm. She did what you asked and held her breath when you pushed inside her. You fucked her slow at first, then harder when she stopped flinching. When you came inside her she just lay there, eyes on the ceiling.
<br /><br />
<<if setup.pregnancyChance(_ddGirl)>>
<<set _ddGirl.pregnancy_father = 'mc'>>
<<set _ddGirl.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<span style="color: #888;">She's yours now. She knows it.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="dd_after_slave">
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
</div>
<</linkreplace>>
</div>
<br />
<div id="dd_guest">
<<set _ddGuestLabel = 'Take her in as a free person — send 10 food'>>
<<linkreplace _ddGuestLabel>>
<<run $('#dd_slave, #dd_aid, #dd_refuse').hide()>>
<<run setup.cabinInventory.drop('food', 10)>>
<<run setup.settlements.modifyRelationship(_ddS, 10, 'Accepted person as guest, sent food')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 45>>
<<run $guests.push(_ddGirl)>>
<<run setup.npc.addHistory(_ddGirl, 'invited')>>
You sent the food and told her she was a guest, not property. She blinked at that like she wasn't sure she believed it.
<br /><br />
<<sayNpc _ddGirl>>
I can work. I'll earn my place.
<</sayNpc>>
<br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<br />
<</if>>
<<if setup.cabinInventory.count('food') >= 15>>
<div id="dd_aid">
<<set _ddAidLabel = 'Send aid, take no one (15 food)'>>
<<linkreplace _ddAidLabel>>
<<run $('#dd_slave, #dd_guest, #dd_refuse').hide()>>
<<run setup.cabinInventory.drop('food', 15)>>
<<run setup.settlements.modifyRelationship(_ddS, 20, 'Sent emergency aid without conditions')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 30>>
You told the messenger to take <<= _ddGirl.name >> home. She looked up at that — the first time since she'd arrived.
<br /><br />
The food left on the cart. <<= _ddData.name >> would remember this.
<br /><br />
<span style="color: #55cc88;">+20 relationship with <<= _ddData.name >>. <<= _ddGirl.name >> returned home.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<br />
<<elseif setup.cabinInventory.count('food') < 10>>
<span style="color: #555; font-size: 0.88em;">You don't have enough food to help them.</span>
<br /><br />
<</if>>
<div id="dd_refuse">
<<set _ddRefuseLabel = 'Turn them away'>>
<<linkreplace _ddRefuseLabel>>
<<run $('#dd_slave, #dd_guest, #dd_aid').hide()>>
<<run setup.settlements.modifyRelationship(_ddS, -10, 'Turned away desperate plea')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
You sent them back with nothing. The messenger said nothing. <<= _ddGirl.name >> walked away without looking at you.
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
</div><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br />
<center>
<<image 'places/cabin/desperate_parent.jpg' sfw>>
</center>
<br />
A man was waiting at the gate when you came out, a young woman standing quiet beside him. He didn't look like trouble. He looked like someone who'd run out of every other option.
<br /><br />
<<set _dpGirlAge = randomInteger(18, 24)>>
<<set _dpFatherAge = _dpGirlAge + randomInteger(19, 30)>>
<<newguy>>
<<set $tmpGuy.birthDate = setup.getBirthDate(_dpFatherAge)>>
<<set _dpFather = $tmpGuy>>
<<sayNpc _dpFather>>
She's sick. Getting worse every day. I heard you've got antibiotics. I don't have caps, I don't have food to trade. I have her. She's strong, she'll work hard. Please.
<</sayNpc>>
<br />
<<newgirl>>
<<set $tmpGirl.birthDate = setup.getBirthDate(_dpGirlAge)>>
<<set $tmpGirl.sick = { days: 2, desc: 'Fever', id: 'wasteland_fever' }>>
<<set _dpGirl = clone($tmpGirl)>>
<<unset $tmpGirl>>
<<= _dpGirl.name >> kept her eyes on the ground, too tired or too ashamed to look up.
<br /><br />
<div id="dp_choices">
<<if setup.cabinInventory.count('antibiotics') >= 2>>
<div id="dp_slave">
<<linkreplace 'Take her as a slave — give 2 antibiotics'>>
<<run $('#dp_guest, #dp_aid, #dp_refuse').hide()>>
<<run setup.cabinInventory.drop('antibiotics', 2)>>
<<addmins 60>>
<<set _dpGirl.sub = Math.min((_dpGirl.sub ?? 0) + 20, 100)>>
<<run $slaves.push(_dpGirl)>>
<<run setup.npc.addHistory(_dpGirl, 'bought', { place: 'her father' })>>
The father pressed the medicine into her hands one last time before you took her, then turned and walked away without looking back.
<br /><br />
She stood in your yard, feverish and unsure of what came next.
<br /><br />
<<sayNpc _dpGirl>>
Tell me what you need me to do.
<</sayNpc>>
<br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<div id="dp_guest">
<<linkreplace 'Take her in as a free person — give 2 antibiotics'>>
<<run $('#dp_slave, #dp_aid, #dp_refuse').hide()>>
<<run setup.cabinInventory.drop('antibiotics', 2)>>
<<addmins 45>>
<<run $guests.push(_dpGirl)>>
<<run setup.npc.addHistory(_dpGirl, 'invited')>>
You handed over the medicine and told her she was a guest, not property. Her father's shoulders dropped with relief he didn't bother hiding.
<br /><br />
<<sayNpc _dpGirl>>
I can work. I'll earn my place.
<</sayNpc>>
<br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<div id="dp_aid">
<<linkreplace 'Give the antibiotics, take no one'>>
<<run $('#dp_slave, #dp_guest, #dp_refuse').hide()>>
<<run setup.cabinInventory.drop('antibiotics', 2)>>
<<addmins 20>>
You pressed the bottles into his hands and told him to take her home. He stared at you like he was waiting for the catch.
<br /><br />
<<sayNpc _dpFather>>
I don't understand. Why—
<</sayNpc>>
<br />
<<you>>
Just go home. Take care of her.
<</you>>
<br />
<<set $player.goodwill += 3>>
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="dp_refuse">
<<linkreplace 'Turn them away'>>
<<run $('#dp_slave, #dp_guest, #dp_aid').hide()>>
<<set $player.goodwill -= 3>>
You told him you couldn't spare it. He didn't argue. He just picked up his daughter's hand and led her back out into the wastes.
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
</div><h1 class="ptitle">FOREST</h1>
<br /><br />
<<set _forestWorkers = setup.getPersonsForLocation($guests, 'forest')>>
<<set _victimIdx = _forestWorkers[randomInteger(0, _forestWorkers.length - 1)]>>
<<set _victim = $guests[_victimIdx]>>
<<set _pronWhat = setup.pronounceWhat(_victim)>>
<<set _pronWho = setup.pronounceWho(_victim)>>
<<set _pronWhos = setup.pronounceWhos(_victim)>>
A sharp scream cuts through the trees — one of your workers. You grab whatever's at hand and run toward the sound.
<br /><br />
<center>
<<image 'places/forest/wolves.jpg' sfw>>
</center>
<br /><br />
You find <<=setup.displayName(_victim)>> on the ground, wolves circling. One has <<=_pronWhos>> arm in its teeth.
<br /><br />
<div id="wolf-fight">
<<linkreplace 'Fight the wolves'>>
<<run $('.wolf-exit').hide()>>
<<run $('#wolf-shot').hide()>>
<<run $('#wolf-rocks').hide()>>
<<set _fightChance = 40>>
<<set _fightChance += ($player.strength >= 30 ? 30 : 0)>>
<<set _fightChance += ($backpack.has('knife') ? 20 : 0)>>
<<if setup.percentageChance(_fightChance)>>
You charge in and drive the wolves back. One takes a hard kick and retreats — the rest follow.
<br /><br />
<<set _victim.sick = {
days: randomInteger(3, 8),
desc: 'Wolf bites',
id: 'animal_wounds'
}>>
<<=setup.displayName(_victim)>> is bitten but alive. You help <<=_pronWho>> back to the settlement.
<br /><br />
<span class="wolf-exit"><<link 'Head back'>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>></span>
<<else>>
You rush in but the wolves turn on you. You take a bad bite to the arm before backing off. <<=setup.displayName(_victim)>> is dragged off screaming.
<br /><br />
<<set $player.health = Math.max(1, ($player.health ?? 100) - randomInteger(10, 25))>>
<<guestRemove _victimIdx>>
<span class="wolf-exit"><<link 'Retreat'>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>></span>
<</if>>
<</linkreplace>>
</div>
<<if ($backpack.has('revolver') && $backpack.has('bullet_revolver')) || ($backpack.has('shotgun') && $backpack.has('shotgun_shell'))>>
<div id="wolf-shot">
<<linkreplace 'Fire a warning shot'>>
<<run $('.wolf-exit').hide()>>
<<run $('#wolf-fight').hide()>>
<<run $('#wolf-rocks').hide()>>
<<if $backpack.has('revolver') && $backpack.has('bullet_revolver')>>
<<drop $backpack 'bullet_revolver' 1>>
<<else>>
<<drop $backpack 'shotgun_shell' 1>>
<</if>>
<<set _victim.sick = {
days: randomInteger(3, 7),
desc: 'Wolf bites',
id: 'animal_wounds'
}>>
The gunshot scatters the pack. <<=setup.displayName(_victim)>> is bitten but alive. You carry <<=_pronWho>> back to the settlement to recover.
<br /><br />
<span class="wolf-exit"><<link 'Head back'>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>></span>
<</linkreplace>>
</div>
<</if>>
<div id="wolf-rocks">
<<linkreplace 'Shout and throw rocks'>>
<<run $('.wolf-exit').hide()>>
<<run $('#wolf-fight').hide()>>
<<run $('#wolf-shot').hide()>>
<<if setup.percentageChance(40)>>
<<set _victim.sick = {
days: randomInteger(5, 12),
desc: 'Wolf bites',
id: 'animal_wounds'
}>>
The wolves scatter. <<=setup.displayName(_victim)>> is badly bitten but breathing. You help <<=_pronWho>> back.
<br /><br />
<span class="wolf-exit"><<link 'Head back'>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>></span>
<<else>>
The wolves barely react. One lunges at your arm — you manage to beat it off but take a bad bite in the process. <<=setup.displayName(_victim)>> is dragged off screaming.
<br /><br />
<<set $player.health = Math.max(1, ($player.health ?? 100) - randomInteger(15, 30))>>
<<guestRemove _victimIdx>>
<span class="wolf-exit"><<link 'Retreat'>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>></span>
<</if>>
<</linkreplace>>
</div><h1 class="ptitle">RESCUE</h1>
<br />
<<set _rsc = $game.capturedGuest>>
<<set _rscS = _rsc ? setup.settlements.getById(_rsc.settlementId) : null>>
<center>
<<image 'places/cabin/guest_rescue_lost.jpg'>>
</center>
<br />
You got through the outer wall. You didn't get through the rest.
<br /><br />
They beat you back to the perimeter and let you crawl to your car. A message without words: come back and it ends differently.
<br /><br />
<<if _rscS>>
<<run setup.settlements.modifyRelationship(_rscS, -10, 'Failed rescue attempt')>>
<<run setup.settlements.logEvent(_rscS, 'Player attempted rescue raid and was repelled.')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<addmins 90>>
<span style="color: #e05555;"><<= _rsc ? _rsc.npc.name : 'She'>> is still there. You can try again from the World map — ransom or another rescue.</span>
<br /><br />
<<link 'Drive back'>><<goto 'Wood cabin'>><</link>><h1 class="ptitle">RESCUE</h1>
<br />
<<set _rsc = $game.capturedGuest>>
<<set _rscS = _rsc ? setup.settlements.getById(_rsc.settlementId) : null>>
<center>
<<image 'places/cabin/guest_rescue_won.jpg'>>
</center>
<br />
You found her in a back room, hands tied, face hard. She didn't waste time on gratitude — just stood up, cut the rope on a nail, and followed you out.
<br /><br />
<<if _rsc>>
<<sayNpc _rsc.npc>>
Took you long enough.
<</sayNpc>>
<br />
The drive back was quiet. Whatever happened to her in there, she'd tell you on her own terms or not at all.
<br /><br />
<<if _rscS>>
<<run _rscS.captiveId = null>>
<<run _rscS.captiveName = null>>
<<run setup.settlements.modifyRelationship(_rscS, -20, 'Rescue raid — people killed')>>
<<run setup.settlements.logEvent(_rscS, 'Player raided compound and freed captive.')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<run $guests.push(_rsc.npc)>>
<<run setup.npc.addHistory(_rsc.npc, 'rescued')>>
<<guestCaptureResolved _rsc.npc true>>
<<unset $game.capturedGuest>>
<<addmins 120>>
<span style="color: #55cc88;"><<= _rsc.npc.name >> is back. <<= _rscS ? _rscS.name + ' will remember this.' : ''>></span>
<<else>>
<<unset $game.capturedGuest>>
You found her. She's safe.
<</if>>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>><h1 class="ptitle">RESCUE</h1>
<br />
<<set _rsc = $game.capturedGuest>>
<<set _rscS = _rsc ? setup.settlements.getById(_rsc.settlementId) : null>>
<<if !_rsc || !_rscS>>
<<unset $game.capturedGuest>>
<<goto 'Wood cabin'>>
<</if>>
<<set _rscGuards = setup.getPersonsForLocation($guests, 'guard')>>
<<set _rscEnemyCount = Math.min(2, Math.max(1, Math.floor((_rscS.defense ?? 100) / 80)))>>
<<generateEnemies _rscEnemyCount 0 _rscEnemyCount>>
<<for _rscei = 0; _rscei < $enemies.length; _rscei++>>
<<set $enemies[_rscei].strength = Math.min(($enemies[_rscei].strength ?? 50) + 20, 100)>>
<<set $enemies[_rscei].endurance = Math.min(($enemies[_rscei].endurance ?? 50) + 20, 100)>>
<</for>>
<center>
<<image 'places/cabin/guest_rescue.jpg'>>
</center>
<br />
You drove out to <<= _rscS.name >> under cover of dark. No plan beyond getting <<= _rsc.npc.name >> out in one piece.
<br /><br />
Their guards spotted you before you reached the outer perimeter. It went loud fast.
<br /><br />
<<link 'Fight your way through'>>
<<fight $enemies 'Event - Guest rescue - Won' 'Event - Guest rescue - Lost' false _rscGuards>>
<<set $fight.skipEndingLost = true>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_foursome.jpg']]
</center>
<br/><br />
With a shared understanding, you all gradually moved towards the private quarters of your dwelling.
The scent of the champagne lingered in the air, adding an intoxicating layer to the already charged atmosphere.
<br /><br />
Entering the bedroom, the ambiance shifted again. The soft glow of a few candles placed strategically around the room created a warm and intimate setting. The air was thick with the heady mix of anticipation and the fragrant notes of aged champagne.
<br /><br />
<<sayNpc $tmpEvent.girls[0]>>
I like it here! Looks so comfortable!
<</sayNpc>>
<br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_foursome2.jpg']]
</center>
<br />
As the night wore on, the playful tension between you and the three women escalated into a magnetic attraction. The air was thick with desire, and the flickering candles cast shadows that seemed to dance in rhythm with the beating hearts in the room.
<br /><br />
<<for _key, _girlId range $tmpEvent.girlIds>>
<<set $guests[_girlId].relationship += 10>>
<<set $guests[_girlId].happy += 20>>
<<set $guests[_girlId].drunk = 100>>
<strong>Relationship with <<=setup.displayName($guests[_girlId])>> increased by 10</strong>
<br />
<</for>>
<br />
With a tender touch, <<=setup.displayName($tmpEvent.girls[2])>> began to slowly unbutton <<=setup.displayName($tmpEvent.girls[1])>>'s top, revealing the delicate contours of her breasts.
The room, once filled with laughter and shared stories, now witnessed a more intimate narrative—a tale of exploration and connection that defied the constraints of the outside world.
<br /><br />
<<sayNpc $tmpEvent.girls[1]>>
<<=$tmpEvent.girls[2].name>>!!! What are you doing? Ha-ha...
<</sayNpc>>
<br />
As the fabric fell away, unveiling the beauty that lay beneath, the ambiance in the room shifted into a more profound intimacy. The scent of passion and the faint notes of champagne lingered, creating an intoxicating atmosphere that mirrored the forbidden romance unfolding before them.
<br /><br />
As you and <<=setup.displayName($tmpEvent.girls[0])>> where watching, she slowly put hand on your crouch and started to unbutton your pants. As <<=setup.displayName($tmpEvent.girls[2])>> top fell off in revenge, your dick was already outside your pants.
<br /><br />
<<sayNpc $tmpEvent.girls[2]>>
Oh my!
<</sayNpc>>
<br />
<<sayNpc $tmpEvent.girls[1]>>
This might be best after party ever, heh.
<</sayNpc>>
<br />
They slowly started to crawl on the bed toward you till they reached your dick, <<=setup.displayName($tmpEvent.girls[0])>> firmly was holding in her hand.
<br /><br />
<<video 'cabin/house_party_event1'>>
<br /><br />
<<=setup.displayName($tmpEvent.girls[0])>> was the first who decided to get a taste of your dick. As other girls were already naked she grabbed your dick and started to suck it with passion as
<<=setup.displayName($tmpEvent.girls[1])>> took her hair and hold them while <<=setup.displayName($tmpEvent.girls[2])>> sucked your balls.
<br /><br />
<<video 'cabin/house_party_event2'>>
<br /><br />
<<sayNpc $tmpEvent.girls[1]>>
Leave something for others, girl.
<</sayNpc>>
<br />
<<=setup.displayName($tmpEvent.girls[1])>> took her turn. That felt different, not hard as <<=setup.displayName($tmpEvent.girls[0])>>. Almost felt like she's trying to making love. Gently and with love.
<br /><br />
<<video 'cabin/house_party_event3'>>
<br /><br />
As <<=setup.displayName($tmpEvent.girls[2])>> was ready for your dick, <<=setup.displayName($tmpEvent.girls[1])>> instead of sharing, just pulled down her panties and crawled onto you. She spread her legs and slowly slides on your dick.
<br />
<<=setup.displayName($tmpEvent.girls[0])>> put two fingers on her clit and started to massage it as she bounced up and down with load moans.
<br /><br />
She fucked you for some time before <<=setup.displayName($tmpEvent.girls[2])>> looked frustrated and she undressed fully and winked at you.
<br /><br />
<<sayNpc $tmpEvent.girls[2]>>
Come her.
<</sayNpc>>
<br />
Other girls looked at her and with giggles took the same position by her side.
<br /><br />
<<video 'cabin/house_party_event4'>>
<br /><br />
<<=setup.displayName($tmpEvent.girls[2])>> bites her lip as you slowly slide into her pussy and start to fuck her.
<br /><br />
<<sayNpc $tmpEvent.girls[2]>>
Oh shit... That's so good...
<</sayNpc>>
<br />
<<sayNpc $tmpEvent.girls[1]>>
Fuck us all!
<</sayNpc>>
<br />
They both lean down with her pussies in the same line with reach for your hands.
<br /><br />
<<video 'cabin/house_party_event5'>>
<br /><br />
As you keep fucking <<=setup.displayName($tmpEvent.girls[1])>> you also put your fingers inside other two girls and fuck them with your fingers. They all moan as each of them holds each others hands.
<br />
Moans get loader and loader as one of the girls starts to shake her legs as you keep pounding <<=setup.displayName($tmpEvent.girls[0])>> tight pussy.
<br /><br />
<<linkreplace 'Cum'>>
<<video 'cabin/house_party_event6'>>
<br /><br />
As you start to cum <<=setup.displayName($tmpEvent.girls[0])>> and <<=setup.displayName($tmpEvent.girls[1])>> turns around and watches as your cum gets all over <<=setup.displayName($tmpEvent.girls[0])>> ass.
<br />
They giggle and leans toward your dick while trying to catch some of it before it lands on ass.
<br /><br />
<<horny_reset>>
<<addmins 30>>
<center>
[img[setup.ImagePath+'places/cabin/house_party_foursome_clean.webp']]
</center>
<br /><br />
<<=setup.displayName($tmpEvent.girls[1])>> decides you clean your dick with her mouth.
<br /><br />
<<link 'Leave'>>
<<goto 'Fire place'>>
<</link>>
<</linkreplace>><h1 class="ptitle">KITCHEN</h1>
<br /><br />
<<unset $game.foodSabotageDiscovery>>
<center>
<<image 'places/cabin/event_kitchen_sabotage.jpg' sfw>>
</center>
<br />
<<set _sickNow = $guests.concat($slaves).filter(function (npc) { return npc.sick?.id === 'food_poisoning'; })>>
<<set _reporterPool = $guests.concat($slaves).filter(function (npc) { return typeof npc.sick === 'undefined'; })>>
<<set _reporter = _reporterPool.length ? setup.getRandomElement(_reporterPool) : setup.getRandomElement($guests.concat($slaves))>>
<<sayNpc _reporter>>
You should get down to the kitchen. A bunch of people got sick overnight — food poisoning, looks like. Half the settlement's doubled over.
<</sayNpc>>
<br />
You headed down to see for yourself. The kitchen looked exactly like it always did — nothing spilled, nothing out of place, no rot in the stores. Whatever had happened had left no trace at all, which was its own kind of unsettling.
<br /><br />
<<if _sickNow.length>>
<<for _sickVictim range _sickNow>>
<strong><<=setup.displayName(_sickVictim)>></strong> was doubled over, sick with food poisoning.
<br />
<</for>>
<</if>>
<br />
You asked around, but nobody had seen anything, and nothing in the kitchen said otherwise. Whatever had made everyone sick, it hadn't been an accident anyone could point to — and that bothered you more than a mess would have.
<br /><br />
<<link 'Leave it for now'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
The silhouette of a woman sways sensually to a rhythm only she can hear, her movements reflecting a mixture of grace and desperation.
The worn-out wooden floorboards creak beneath her bare feet as she loses herself in the dance.
<br />
The flickering shadows cast by the dancing flames seem to dance along with her, creating an otherworldly atmosphere.
<br /><br />
<center>
<<image 'places/cabin/late_dance.jpg'>>
</center>
<br />
As you stand there, a silent observer in the doorway, <<=setup.displayName(_npc)>> doesn't seem to notice your presence at first.
Her movements become more provocative, a strange juxtaposition to the harsh reality outside. It's almost as if she's trying to escape the desolation through the rhythm of her dance.
<br /><br />
Suddenly, <<=setup.displayName(_npc)>> catches a glimpse of you in the corner of her eye. Her body freezes for a moment, and her eyes widen in surprise.
A hint of vulnerability flashes across her face, but it quickly transforms into a mischievous smile.
<br /><br />
<<sayNpc _npc>>
<<= $player.name>>! I thought I am alone. How long have you been standing there?
<</sayNpc>>
<br />
She takes a step toward you, her eyes locked with yours. The firelight accentuates the contours of her face, revealing a mix of defiance and playfulness.
<br /><br />
<<sayNpc _npc>>
Did you come here just to watch, or are you looking for a bit of company?
<</sayNpc>>
<br />
<<sayNpc _npc>>
Maybe I could offer you something... a little more personal.
<</sayNpc>>
<br /><br />
<<linkreplace 'Take a seat'>>
<<run $('#option_no').hide()>>
You take a seat on a worn-out wooden chair, and she approaches you with a seductive sway in her hips. The pulsating rhythm of her dance matches the erratic beat of your heart.
<br />
The flickering candlelight casts a warm glow on the scene, accentuating the contours of her body as she moves.
<br /><br />
<<video 'cabin/late_dance1'>>
<br /><br />
She turns around and places one hand on your shoulder, lightly trailing her fingers down your arm. The scent of smoke and the faint aroma of something sweet linger in the air. Her eyes hold a playful invitation as she leans in, letting you grab and play with her breast.
<br /><br />
<<video 'cabin/late_dance2'>>
<br /><br />
With a sultry gaze, she extends her hand, reaching your pants. She starts to unzip them...
<br /><br />
<<sayNpc _npc>>
Just relax and let me do the rest.
<</sayNpc>>
<br />
<<video 'cabin/late_dance3'>>
<br /><br />
She finishes and helps you take out your dick. She grabs it firmly and makes few sensual strokes with her hand while sliding down her panties with other.
<br /><br />
<<video 'cabin/late_dance4'>>
<br /><br />
With leg she kicks away her panties she just took off and leans closer while slowly bending a bit. She grabs your hard dick in her hand and aims it towards her pussy...
<br />
She slowly slides your dick inside her pussy.
<br /><br />
<<sayNpc _npc>>
Just relax. I will take care of you.
<</sayNpc>>
<br />
<<video 'cabin/late_dance5'>>
<br /><br />
As your dick gets moist enough, she gradually picks up the pace and increasingly performs her movements faster and faster.
<br /><br />
<<sayNpc _npc>>
This feels so good! Just don't dare to move. It's all me tonight.
<</sayNpc>>
<br />
With her hands, she pushes against your legs and increases the pace even more.
<br /><br />
<<linkreplace 'Cum'>>
<<addmins 20>>
<<addhours 1>>
<<horny_reset>>
<<set _npc.happy += 10>>
<<set _npc.horny = 0>>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<</if>>
<<if _npc.virgin>><<run setup.npc.addHistory(_npc, 'virgin_lost', { with: 'mc' })>><</if>>
<<set _npc.virgin = false>>
<center>
[img[setup.ImagePath+'game/misc/creampie_reverse_cowgirl.webp']]
</center>
<br />
You cum inside her pussy. She feels that and makes a loud moan as her legs start shaking and she jumps off you while your cum drips all over your dick.
<br /><br />
<<sayNpc _npc>>
Oh, that was something. Have a good night!
<</sayNpc>>
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<<unset $tmpEvent>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<div id="option_no">
<<linkreplace 'Decline offer'>>
<<addmins 5>>
<<goto 'Wood cabin'>>
<<unset $tmpEvent>>
<</linkreplace>>
</div><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br />
<center>
<<image 'places/cabin/medicine_mob_lost.jpg' sfw>>
</center>
<br />
They pushed past you faster than you expected. Desperation makes people reckless.
<br /><br />
<<set _mmlAmount = Math.min(2, setup.cabinInventory.count('antibiotics'))>>
<<if _mmlAmount>>
<<run setup.cabinInventory.drop('antibiotics', _mmlAmount)>>
<strong><<= _mmlAmount>> antibiotics taken.</strong>
<br /><br />
<<else>>
They tore the place apart looking for medicine and found none. At least that part didn't go to waste.
<br /><br />
<</if>>
By the time you got back on your feet, they were already gone.
<br /><br />
<<link 'Get up'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br />
<center>
<<image 'places/cabin/medicine_mob.jpg' sfw>>
</center>
<br />
Word had gotten out that you had medicine. A knot of gaunt, ragged figures had gathered outside the gate by the time you noticed — not soldiers, not a raiding party, just people who'd run out of options.
<br /><br />
<<newguy>>
<<set _mmSpeaker = $tmpGuy>>
<<sayNpc _mmSpeaker>>
We know you've got antibiotics in there. People are dying. We're not leaving without some.
<</sayNpc>>
<br />
<<set _mmCount = randomInteger(2, 4)>>
<<generateEnemies _mmCount 0>>
<<for _mmEi = 0; _mmEi < $enemies.length; _mmEi++>>
<<set $enemies[_mmEi].strength = Math.max(10, Math.min($enemies[_mmEi].strength, 35))>>
<</for>>
<<set _mmGuards = setup.getPersonsForLocation($guests, 'guard')>>
<div id="mm_fight">
<<link 'Drive them off'>>
<<fight $enemies 'Wood cabin' 'Event - Medicine mob - lost' false _mmGuards>>
<<set $fight.skipEndingLost = true>>
<</link>>
</div>
<<if setup.cabinInventory.count('antibiotics') >= 2>>
<div id="mm_pay">
<<linkreplace 'Hand over 2 antibiotics to make them leave'>>
<<run $('#mm_fight').hide()>>
<<run setup.cabinInventory.drop('antibiotics', 2)>>
You passed the bottles over the gate. The speaker checked them, nodded once, and the group melted back into the wastes without another word.
<br /><br />
<<set $player.goodwill += 2>>
<<link 'Go back inside'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</if>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
<<set _pregnantGuests = setup.filterNPCs($guests, {'pregnancy_gte': 1})[0] ?? []>>
<<set _npc = $guests[_pregnantGuests[0]]>>
You find <<=setup.displayName(_npc)>> sitting alone near the cabin, one hand resting on her belly. She looks up as you approach.
<br /><br />
<<sayNpc _npc>>
<<=$player.name>>, can I ask you something? I've been thinking about the baby. When it comes... where will it go? We don't really have a place for children here.
<</sayNpc>>
<br /><br />
She glances around the settlement with a worried look.
<br /><br />
<<sayNpc _npc>>
Other settlements have a nursery. A place where the little ones can sleep safely, be looked after. I know it's asking a lot, but... would you consider building something like that?
<</sayNpc>>
<br /><br />
<<link "I'll get it built">>
<<sayNpc _npc>>
Thank you. Really.
<</sayNpc>>
<<notify 6s>>
Nursery available in workbench!
<</notify>>
<<goto 'Wood cabin'>>
<</link>>
<<link "Not right now">>
<<notify 6s>>
Nursery available in workbench!
<</notify>>
<<goto 'Wood cabin'>>
<</link>><<if setup.percentageChance(40)>>
<<goto 'Event - Raider prisoner'>>
<<else>>
<<goto 'Wood cabin'>>
<</if>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _rpFemale = randomInteger(0, 1) === 1>>
<<if _rpFemale>>
<<newgirl>>
<<set _rpNpc = clone($tmpGirl)>>
<<set _rpNpc.name = either('Scar', 'Vex', 'Brin', 'Kass', 'Dara', 'Mace', 'Lex', 'Crow')>>
<<unset $tmpGirl>>
<<else>>
<<newguy>>
<<set _rpNpc = clone($tmpGuy)>>
<<set _rpNpc.name = either('Grim', 'Bolt', 'Rook', 'Cutter', 'Ash', 'Dex', 'Scratch', 'Vest')>>
<<unset $tmpGuy>>
<</if>>
<<set _rpNpc.origin = 'Raider'>>
<<set _rpHostiles = setup.settlements.getAll().filter(function(s) { return s.discovered && !s.destroyed && setup.settlements.isHostile(s); })>>
<<set _rpS = _rpHostiles.length ? _rpHostiles[randomInteger(0, _rpHostiles.length - 1)] : null>>
<center>
<<if _rpFemale>>
<<image 'places/cabin/raider_prisoner_female.jpg'>>
<<else>>
<<image 'places/cabin/raider_prisoner.jpg'>>
<</if>>
</center>
<br />
When the dust settled you found <<= _rpNpc.name >> still breathing — barely. <<= _rpFemale ? 'She' : 'He'>> hadn't run when the others did. Whether that was loyalty or just bad luck you couldn't tell. You zip-tied <<= _rpFemale ? 'her' : 'his'>> wrists and dragged <<= _rpFemale ? 'her' : 'him'>> inside.
<br /><br />
<<if _rpFemale>>
<<sayNpc _rpNpc>>
Go ahead. Do what you're going to do.
<</sayNpc>>
<<else>>
<<sayNpc _rpNpc>>
You won. What do you want from me?
<</sayNpc>>
<</if>>
<br />
<div id="rp_choices">
<div id="rp_interrogate">
<<set _rpInterLabel = 'Interrogate ' + _rpNpc.name>>
<<linkreplace _rpInterLabel>>
<<run $('#rp_ransom, #rp_recruit, #rp_execute, #rp_release').hide()>>
<<if _rpS>>
<<run setup.settlements.modifyRelationship(_rpS, -5, 'Prisoner gave intel under interrogation')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<addmins 60>>
<<= _rpNpc.name >> didn't hold out long. Fear does that to people.
<br /><br />
<<if _rpS>>
<<sayNpc _rpNpc>>
We were sent from <<= _rpS.name >>. They've been watching your place for weeks. <<= setup.settlements.getDefenseStrength(_rpS) > 200 ? 'They\'ve got serious numbers. Walls, guards, the works.' : 'They\'re not as strong as they pretend.'>>
<</sayNpc>>
<br />
<span style="color: #e09855; font-size: 0.88em;">Intel: <<= _rpS.name >> — relationship <<= _rpS.relationship >>, defense strength <<= setup.settlements.getDefenseStrength(_rpS)>>.</span>
<<else>>
<<sayNpc _rpNpc>>
We work alone. No settlement. No boss. Just us.
<</sayNpc>>
<br />
<span style="color: #888; font-size: 0.88em;">No useful intel — they weren't connected to any known group.</span>
<</if>>
<br /><br />
<<if _rpFemale && (_rpNpc.likesGuys ?? true)>>
<div id="rp_sex">
<<set _rpSexLabel = 'Take it further'>>
<<linkreplace _rpSexLabel>>
<<run $('#rp_after_interrogate').hide()>>
<<horny_reset>>
<<addmins 30>>
She read what you were thinking. Her jaw tightened but she didn't pull back — there wasn't anywhere to go.
<br /><br />
You grabbed her by the throat — not hard, just a reminder — and kissed her. She bit your lip. You pulled back, tasted blood, and smiled.
<br /><br />
<center>
<<image 'places/cabin/raider_prisoner_sex.jpg'>>
</center>
<br />
You bent her over a workbench and fucked her hard, her tied hands braced against the surface. She made noise — couldn't help it. When you finished inside her she swore at you in two languages.
<br /><br />
<<set _rpPreg = setup.pregnancyChance(_rpNpc)>>
<<if _rpPreg>>
<<set _rpNpc.pregnancy = 0>>
<<set _rpNpc.pregnancy_father = 'mc'>>
<</if>>
<span style="color: #888;">She told you everything after that anyway.</span>
<br /><br />
<<link 'Decide what to do with them'>>
<<run $('#rp_recruit, #rp_ransom, #rp_execute, #rp_release').show()>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<div id="rp_after_interrogate">
<<link 'Decide what to do with them'>>
<<run $('#rp_recruit, #rp_ransom, #rp_execute, #rp_release').show()>>
<<run $('#rp_after_interrogate').hide()>>
<</link>>
</div>
<</linkreplace>>
</div>
<<if _rpS>>
<div id="rp_ransom">
<<set _rpRansomLabel = 'Send word to ' + _rpS.name + ' — ransom (150 caps)'>>
<<linkreplace _rpRansomLabel>>
<<run $('#rp_interrogate, #rp_recruit, #rp_execute, #rp_release').hide()>>
<<run setup.settlements.modifyRelationship(_rpS, 8, 'Returned prisoner instead of executing')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<set $player.money += 150>>
<<addmins 90>>
A runner came back by nightfall with a leather pouch. 150 caps. They didn't say thank you — but they didn't attack again that week either.
<br /><br />
<span style="color: #55cc88;">+150 caps. <<= _rpS.name >> relationship improved slightly.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="rp_recruit">
<<set _rpRecruitLabel = 'Offer ' + _rpNpc.name + ' a place here'>>
<<linkreplace _rpRecruitLabel>>
<<run $('#rp_interrogate, #rp_ransom, #rp_execute, #rp_release').hide()>>
<<addmins 30>>
<<run setup.npc.addHistory(_rpNpc, 'raider_turned', { place: _rpS ? _rpS.name : null })>>
<<if _rpFemale>>
<<set $tmpGirl = _rpNpc>>
<<run $guests.push($tmpGirl)>>
<<unset $tmpGirl>>
<<else>>
<<set $tmpGuy = _rpNpc>>
<<run $guests.push($tmpGuy)>>
<<unset $tmpGuy>>
<</if>>
You cut the zip ties. <<= _rpNpc.name >> rubbed <<= _rpFemale ? 'her' : 'his'>> wrists and looked around the compound for a long moment.
<br /><br />
<<sayNpc _rpNpc>>
Don't expect me to say I'm grateful.
<</sayNpc>>
<br />
<<= _rpNpc.name >> joined your people.
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<div id="rp_execute">
<<set _rpExecLabel = 'Execute ' + _rpNpc.name>>
<<linkreplace _rpExecLabel>>
<<run $('#rp_interrogate, #rp_ransom, #rp_recruit, #rp_release').hide()>>
<<addmins 15>>
Quick and without ceremony. You left <<= _rpFemale ? 'her' : 'him'>> outside the gate as a message.
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<div id="rp_release">
<<set _rpReleaseLabel = 'Release ' + _rpNpc.name>>
<<linkreplace _rpReleaseLabel>>
<<run $('#rp_interrogate, #rp_ransom, #rp_recruit, #rp_execute').hide()>>
<<addmins 15>>
You cut the zip ties. <<= _rpNpc.name >> rubbed <<= _rpFemale ? 'her' : 'his'>> wrists, looked at you for a moment, then walked out without a word.
<br /><br />
<<sayNpc _rpNpc>>
<<=either(
'Don\'t read into this.',
'...',
_rpFemale ? 'Next time we meet, I might not remember this.' : 'You\'re either soft or you know something I don\'t.'
)>>
<</sayNpc>>
<br />
<<if _rpS>>
<<run setup.settlements.modifyRelationship(_rpS, 3, 'Released prisoner without ransom')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<span style="color: #888; font-size: 0.88em;">Word may reach <<= _rpS.name >>.</span>
<br /><br />
<</if>>
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
</div><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br />
<center>
<<image 'places/cabin/refugees.jpg' sfw>>
</center>
<br />
<<set _refEv = $game.refugeeEvent>>
<<set _refName = _refEv.name ?? 'a fallen settlement'>>
<<set _refCount = _refEv.count ?? 1>>
<<set _refOriginS = _refEv.id ? setup.settlements.getById(_refEv.id) : null>>
<<unset $game.refugeeEvent>>
They came at dawn. <<= _refCount>> survivor<<= _refCount > 1 ? 's' : ''>> from <<= _refName>>. Thin, dusty, with only what they could carry when it fell apart. They stood at your gate without speaking, waiting to see what kind of person you were.
<br /><br />
<<if randomInteger(0, 1) === 1>>
<<newguy>>
<<set $tmpGuy.name = either('Tom', 'Mark', 'Jake', 'Ellis', 'Leon', 'Dan', 'Remy', 'Cole')>>
<<set $tmpGuy.origin = _refName>>
<<set _refNpc = $tmpGuy>>
<<unset $tmpGuy>>
<<else>>
<<newgirl>>
<<set $tmpGirl.name = either('Anna', 'Maria', 'Rosa', 'Beth', 'Clara', 'Vera', 'Nadia', 'June')>>
<<set $tmpGirl.origin = _refName>>
<<set _refNpc = $tmpGirl>>
<<unset $tmpGirl>>
<</if>>
<<sayNpc _refNpc>>
<<if _refCount > 1>>
We don't need much. Just somewhere to rest.
<<else>>
I don't have anywhere else to go.
<</if>>
<</sayNpc>>
<br />
<<set _refRoomLeft = $guesthouseLimit - $guests.length>>
<div id="ref_open">
<<if _refRoomLeft >= 1>>
<<set _refOpenLabel = _refCount > 1 ? 'Open the gates' : 'Let them in'>>
<<linkreplace _refOpenLabel>>
<<run $('#ref_away').hide()>>
<<run $guests.push(_refNpc)>>
<<run setup.npc.addHistory(_refNpc, 'refugee', { place: _refName })>>
<<if _refOriginS>>
<<run setup.settlements.modifyRelationship(_refOriginS, 10, 'Accepted survivors from ' + _refName)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
You stepped aside and waved them in. They filed through without a word, looking at the ground — too tired even for relief.
<br /><br />
<<if _refCount > 1>>
Most found places to shelter nearby. <<= _refNpc.name>> stayed.
<br /><br />
<</if>>
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
<<else>>
<span style="color: #666; font-size: 0.9em;">Open the gates <em>(guesthouse is full)</em></span>
<</if>>
</div>
<div id="ref_away">
<<linkreplace 'Send them away'>>
<<run $('#ref_open').hide()>>
<<if _refOriginS>>
<<run setup.settlements.modifyRelationship(_refOriginS, -5, 'Turned away survivors from ' + _refName)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
You shook your head. They stared for a moment — no anger, just exhaustion — then turned and walked back into the wasteland. You watched them go until the dust swallowed them.
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br />
<center>
<<image 'places/cabin/settlement_raid_lost.jpg' sfw>>
</center>
<br />
You held the line as long as you could. It wasn't enough. When the dust settled, they were still standing and you weren't.
<br /><br />
<<set _srlS = setup.settlements.getById($tmpSettlement)>>
<<if _srlS>>
<<set _srlS.settlementRaidDay = $game.day>>
<<run setup.settlements.modifyRelationship(_srlS, -5, 'Successful raid on player base')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<if $tmpGuy>>
<<sayNpc $tmpGuy>>
Should've stayed out of our way.
<</sayNpc>>
<br />
<</if>>
<<set _srlFood = Math.min(80, setup.cabinInventory.count('food'))>>
<<set _srlMoney = Math.min(250, $player.money)>>
<<if _srlFood || _srlMoney>>
They moved through the base fast and took what they came for.
<br /><br />
<<if _srlFood>>
<<run setup.cabinInventory.drop('food', _srlFood)>>
<strong><<= _srlFood>> food taken.</strong>
<br />
<</if>>
<<if _srlMoney>>
<<set $player.money -= _srlMoney>>
<strong><<= _srlMoney>> caps taken.</strong>
<br />
<</if>>
<br />
<<else>>
They found nothing worth taking and left you with only bruises.
<br /><br />
<</if>>
<<link 'Get up'>>
<<goto 'Wood cabin'>>
<</link>><<set _srwS = setup.settlements.getById($tmpSettlement)>>
<<if _srwS>>
<<set _srwS.settlementRaidDay = $game.day>>
<<run setup.settlements.modifyRelationship(_srwS, -10, 'Repelled settlement raid')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<goto 'Wood cabin'>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br />
<<set _srS = setup.settlements.getById($tmpSettlement)>>
<<if !_srS>><<set $locationEvents.cabin = false>><<goto 'Wood cabin'>><</if>>
<<set $locationEvents.cabin = false>>
<<ensureLeader _srS>>
<<set _srLeader = _srS.leader>>
<center>
<<image 'places/cabin/settlement_raid.jpg' sfw>>
</center>
<br />
The gate alarm tripped before dawn. You grabbed your weapon and stepped outside to find a column of armed figures spread across the perimeter — not wandering scavengers but a coordinated unit. Their markings gave them away.
<br /><br />
<<set _srDialogs = setup.settlements.leaderDialogs[_srS.type]>>
<<if _srLeader && _srDialogs>>
<<set _srPool = _srDialogs.raid ?? _srDialogs.intro>>
<<set _srLine = _srPool[randomInteger(0, _srPool.length - 1)]>>
<<sayNpc _srLeader>><<= _srLine>><</sayNpc>>
<br />
<</if>>
<<set _srDefense = setup.settlements.getDefenseStrength(_srS)>>
<<set _srCount = Math.max(2, Math.min(8, Math.floor(_srDefense / 60)))>>
<<generateEnemies _srCount 0 _srCount>>
<<for _srEi = 0; _srEi < $enemies.length; _srEi++>>
<<set $enemies[_srEi].strength = Math.min($enemies[_srEi].strength + randomInteger(30, 80), 100)>>
<<set $enemies[_srEi].endurance = Math.min($enemies[_srEi].endurance + randomInteger(30, 80), 100)>>
<</for>>
A raiding party from <strong><<= _srS.name>></strong>. <<= _srCount>> fighters, armed and ready.
<br /><br />
<<set _srGuards = setup.getPersonsForLocation($guests, 'guard')>>
<div id="sraid_fight">
<<link 'Defend the base'>>
<<fight $enemies 'Event - Settlement raid - won' 'Event - Settlement raid - lost' false _srGuards>>
<<set $fight.skipEndingLost = true>>
<</link>>
</div>
<<if $player.money >= 200>>
<div id="sraid_pay">
<<linkreplace 'Pay them off (200 caps)'>>
<<run $('#sraid_fight').hide()>>
<<set $player.money -= 200>>
<<set _srS.settlementRaidDay = $game.day>>
<<run setup.settlements.save(setup.settlements.getAll())>>
Paying once makes you a target for next time.
<br /><br />
<<link 'Go inside'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</if>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br />
<<set _stS = setup.settlements.getById($tmpSettlement)>>
<<if !_stS>><<goto 'Wood cabin'>><</if>>
<<set _stConfig = setup.settlements.typeConfig[_stS.type]>>
<<set _stGcomp = _stConfig.genderComp>>
<<if _stGcomp === 'all_female' || _stGcomp === 'mostly_female'>>
<<newgirl>>
<<set _stTrader = $tmpGirl>>
<<else>>
<<newguy>>
<<set _stTrader = $tmpGuy>>
<</if>>
<center>
<<image 'places/cabin/settlement_trader.jpg' sfw>>
</center>
<br />
Someone knocked on the gate mid-morning — a runner from <<= _stS.name>>, pack loaded, unarmed, waving a strip of white cloth.
<br /><br />
<<sayNpc _stTrader>>
We trade with people we trust. Thought we'd come to you this time instead of waiting.
<</sayNpc>>
<br />
<<set _stGoods = (_stConfig.tradeGoods ?? []).slice(0, 4)>>
<<set _stMod = setup.settlements.getTradeModifier(_stS)>>
<<if _stGoods.length>>
<div style="background: rgba(0,0,0,0.12); border-left: 3px solid #5599e0; padding: 10px 14px; margin-bottom: 16px; font-size: 0.9em; color: #aaa;">What they're carrying:</div>
<<for _sti = 0; _sti < _stGoods.length; _sti++>>
<<set _stItem = _stGoods[_sti]>>
<<set _stPrice = Math.ceil(setup.settlements.getItemPrice(_stItem) * _stMod)>>
<<capture _sti, _stItem, _stPrice>>
<div id="st_item_<<= _sti>>">
<<set _stLabel = _stItem.replace(/_/g, ' ') + ' — ' + _stPrice + ' caps'>>
<<linkreplace _stLabel>>
<<run $('#st_item_' + _sti).hide()>>
<<if $player.money >= _stPrice>>
<<set $player.money -= _stPrice>>
<<pickup $backpack _stItem 1>>
<span style="color: #55cc88;">Bought 1× <<= _stItem.replace(/_/g, ' ')>>.</span>
<<else>>
<span style="color: #e05555;">Not enough caps.</span>
<</if>>
<</linkreplace>>
</div>
<</capture>>
<</for>>
<<else>>
<p style="color: #888; font-size: 0.9em;">They don't have anything worth trading right now.</p>
<</if>>
<<link 'Send them off'>>
<<set _stCloseS = setup.settlements.getById($tmpSettlement)>>
<<if _stCloseS>>
<<set _stCloseS.traderVisitDay = $game.day>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
<<newgirl>>
<<set $game.settler_tax_day = $game.day>>
<<set _taxes = $player.baseManagement.taxes ?? 3>>
<center>
<<image 'places/cabin/settler_open_door.jpg' sfw>>
</center>
<br /><br />
A knock at your door. You open it to find one of your settler women standing there, looking worn and ashamed.
She wrings her hands, avoiding your eyes.
<br /><br />
<<sayNpc $tmpGirl>>
I'm sorry to bother you. I know it's collection day, but... I don't have it. The <<=_taxes>> caps. The harvest was poor this week, and the children need to eat. I can't make it work.
<</sayNpc>>
<br />
She finally meets your gaze — desperate but not defeated.
<br /><br />
<div id="option_sex">
<<linkreplace 'There is another way to pay'>>
<<set _anotherWay = true>>
<<if setup.percentageChance(70)>>
She looks at your hard dick and slowly grabs it.
<br /><br />
<center>
<<image 'places/cabin/settler_grab_dick.webp'>>
</center>
<br />
<<sayNpc $tmpGirl>>
Just don't tell anyone...
<</sayNpc>>
<br />
<<link 'Fuck her'>>
<<set $tmpGirl.rape = false>>
<<set $tmpGirlCapture = false>>
<<set $tmpGirlInvite = false>>
<<set $tmpGirl.location = 'cabin'>>
<<set $tmpGirl.pregnancy_encounter_place = 'settler'>>
<<set $tmpGirl.horny = 50>>
<<set $tmpGirl.sub = 100>>
<<unset $slaveId, $guestId, $childId, $charId>>
<<set $tmpGirlViewBack = 'Wood cabin'>>
<<set $tmpGirlBack = 'Wood cabin'>>
<<fuck $tmpGirl>>
<</link>>
<<else>>
<<sayNpc $tmpGirl>>
What? No! I won't do that.
<</sayNpc>>
<br />
<</if>>
<</linkreplace>>
</div>
<div id="option_mercy">
<<linkreplace 'Waive it this week'>>
<<run $('#option_sex').hide()>>
<<run $('#option_strict').hide()>>
You wave her off with a tired gesture.
<br /><br />
<<you>>
Don't worry about it. Just make sure it doesn't become a habit.
<</you>>
<br />
Her face floods with relief. She thanks you quietly and hurries back to her family.
<br /><br />
<<set $player.money -= _taxes>>
<<set $player.goodwill += 2>>
<<set $player.baseManagement.settlementReputation = Math.min(100, ($player.baseManagement.settlementReputation ?? 50) + 2)>>
<<link 'Close the door'>>
<<addmins 5>>
<<goto 'Wood cabin'>>
<</link>>
<<linkdesc>>
-<<=_taxes>> caps | +2 goodwill | +2 settlement reputation
<</linkdesc>>
<</linkreplace>>
</div>
<div id="option_strict">
<<linkreplace 'Rules are rules. Pack your things.'>>
<<run $('#option_sex, #option_mercy').hide()>>
Her face falls. She nods slowly, pressing her lips together, and turns to leave without another word.
<br /><br />
By evening, she's gone — and word spreads through the settlement.
<br /><br />
<<set $player.baseManagement.settlers = Math.max(0, ($player.baseManagement.settlers ?? 0) - 1)>>
<<set $player.baseManagement.settlersFemales = Math.max(0, ($player.baseManagement.settlersFemales ?? 0) - 1)>>
<<set $player.goodwill -= 3>>
<<set $player.baseManagement.settlementReputation = Math.max(0, ($player.baseManagement.settlementReputation ?? 50) - 3)>>
<<link 'Close the door'>>
<<addmins 5>>
<<goto 'Wood cabin'>>
<</link>>
<<linkdesc>>
-1 settler | -3 goodwill | -3 settlement reputation
<</linkdesc>>
<</linkreplace>>
</div><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br />
<<set _srIndex = $strangerPregnancyHappening>>
<<set _sr = ($pregnantStrangers ?? [])[_srIndex]>>
<<if !_sr>>
<<unset $strangerPregnancyHappening>>
<<goto 'Wood cabin'>>
<<else>>
<<set _srDays = $game.day - (_sr.pregnancy_encounter_day ?? $game.day)>>
<<set _srWithBaby = _srDays >= 270>>
<<set _srFeral = (_sr.traits ?? []).includes('feral')>>
<<set _srPlace = _sr.pregnancy_encounter_place ?? (_srFeral ? 'forest' : 'nightclub')>>
<<set _srCouple = !_srFeral && _srPlace === 'bar_couple'>>
<<set _srSettler = !_srFeral && _srPlace === 'settler'>>
<<set _srName = setup.displayName(_sr)>>
<<set _srMonths = Math.max(Math.floor(_srDays / 30), 3)>>
<<if _srPlace === 'nightclub'>>
<<set _srMemory = 'The alley behind the nightclub.'>>
<<set _srLastSeen = 'she was bent over against a brick wall in the alley behind the nightclub, your cum dripping out of her pussy'>>
<<elseif _srPlace === 'club'>>
<<set _srMemory = 'The nightclub. You and me.'>>
<<set _srLastSeen = 'she was pulling her clothes back on at the nightclub, your cum still dripping out of her pussy'>>
<<elseif _srPlace === 'bar'>>
<<set _srMemory = 'The bar, down in the underground city.'>>
<<set _srLastSeen = 'she was walking out of the bar in the underground city with your cum dripping out of her pussy'>>
<<elseif _srPlace === 'strip_club'>>
<<set _srMemory = 'The strip club. You and me, after hours.'>>
<<set _srLastSeen = 'she was still naked at the strip club, your cum dripping out of her pussy'>>
<<elseif _srPlace === 'streets'>>
<<set _srMemory = 'I was working the streets. You paid me, remember?'>>
<<set _srLastSeen = 'she was pulling her pants back up in a back street of the underground city, your cum dripping out of her pussy'>>
<<else>>
<<set _srMemory = 'It was only one time. It was enough.'>>
<<set _srLastSeen = ''>>
<</if>>
<<set _srAway = (_srSettler ? 'back toward the settlement houses' : 'back down the road')>>
<<set _srRep = 0>>
<<set _srReporterPool = $guests.filter(function (npc) { return !(npc.traits ?? []).includes('feral') && setup.getAge(npc) >= 13; })>>
<<if !_srReporterPool.length>>
<<set _srReporterPool = $slaves.filter(function (npc) { return !(npc.traits ?? []).includes('feral') && !npc.gagBall && setup.getAge(npc) >= 13; })>>
<</if>>
<<set _srReporter = (_srReporterPool.length ? _srReporterPool.random() : null)>>
<<set _srHasGuestRoom = ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<<set _srHasBasementRoom = ($game.location.basement ?? false) && $slaves.length < ($basementLimit ?? 3)>>
<<set _srFood = setup.cabinInventory.count('food')>>
<<set _srRope = setup.cabinInventory.count('rope')>>
<<set _srMotherFate = 'gone', _srBabyKept = false, _srGoodwill = 0>>
<<if _srWithBaby>>
<<set _srBabyDays = Math.max(_srDays - 270, 0)>>
<<set _srBabyGender = either(0, 1)>>
<<if _srCouple>>
/* The couple raise the child as their own, so no NPC is created */
<<set _srBaby = { gender: _srBabyGender }>>
<<else>>
<<set _sr.pregnancy_father = 'mc'>>
<<newchild _srBabyGender _sr>>
<<set _srBaby = $newChild>>
<<unset $newChild>>
<<set _srBaby.birthDate = new Date($gameDate.getTime() - _srBabyDays * 86400000)>>
/* Injuries and a wild upbringing are not inherited */
<<set _srBaby.traits = (_srBaby.traits ?? []).filter(function (trait) { return !['feral', 'crippled'].includes(trait); })>>
<</if>>
<<set _srBabyWord = (_srBaby.gender ? 'son' : 'daughter')>>
<<set _srBabyKind = (_srBaby.gender ? 'boy' : 'girl')>>
<<set _srBabyName = _srBaby.name>>
<</if>>
<<if _srFeral>>
<<if _srReporter>>
<<=setup.displayName(_srReporter)>> came running up to the cabin, out of breath.
<br /><br />
<<if _srWithBaby>>
<<sayNpc _srReporter>>
There's a wild woman at the gate. She's got a baby with her. Bares her teeth at anyone who gets close to it.
<</sayNpc>>
<<else>>
<<sayNpc _srReporter>>
There's a wild woman circling the gate. Hisses at anyone who gets close. And she's... she's pregnant. Really pregnant.
<</sayNpc>>
<</if>>
<br />
You went down to see for yourself.
<<else>>
A low, animal growl drew you down to the gate before you had even finished waking up.
<</if>>
<br /><br />
<<if _srWithBaby>>
<center>
<<image 'places/cabin/stranger_feral_baby.jpg' sfw>>
</center>
<br /><br />
She was crouched in the dirt just past the gate, a bundle of filthy rags clutched against her chest. The bundle whimpered. When one of the settlers took a step closer, she curled her whole body around it and bared her teeth.
<br /><br />
You knew the faded label stitched on what was left of her clothes. <strong><<=_srName>></strong>. The feral woman from the forest.
<br /><br />
<<you>>
<<=_srName>>?
<</you>>
<br />
Her head snapped up at the sound of her name. She sniffed the air in your direction and went still. The rags slipped, and you caught a glimpse of a tiny, wrinkled face. A <<=_srBabyKind>>. You counted back the months and didn't need to ask whose.
<br /><br />
<<else>>
<center>
<<image 'places/cabin/stranger_feral_pregnant.jpg' sfw>>
</center>
<br /><br />
She was crouched in the dirt just past the gate, rags hanging off a frame gone thin everywhere except her belly, round and heavy under the torn cloth. What was left of her face turned toward you as you came closer. She sniffed the air and went still.
<br /><br />
You knew the faded label stitched on her rags. <strong><<=_srName>></strong>. The feral woman from the forest.
<br /><br />
<<you>>
<<=_srName>>?
<</you>>
<br />
Her head snapped up at the sound of her name. She didn't come closer, but she didn't run either. One hand stayed pressed flat over her belly, and a low, uneasy whine came out of her throat. By your count she was <<=_srMonths>> months along.
<br /><br />
<</if>>
<<elseif _srCouple>>
<<if _srReporter>>
<<=setup.displayName(_srReporter)>> caught you on your way out of the cabin.
<br /><br />
<<sayNpc _srReporter>>
There's a couple at the gate asking for you. Say they know you from a bar down in the underground city.
<</sayNpc>>
<br />
You went down to see for yourself.
<<else>>
The morning was quiet until you noticed two people standing at the gate, waiting for you.
<</if>>
<br /><br />
<<newguy>>
<<set _srHusband = $tmpGuy>>
<<if _srWithBaby>>
<center>
<<image 'places/cabin/stranger_couple_baby.jpg' sfw>>
</center>
<br /><br />
You recognized them straight away: the couple from the bar in the underground city. The man who had asked you to give his woman what he couldn't, and <<=_srName>>, who had walked out of that upstairs room with your cum still inside her.
<br /><br />
Now she had a baby wrapped against her chest, and he couldn't stop looking at it.
<br /><br />
<<sayNpc _srHusband>>
It worked. This is our <<=_srBabyWord>>.
<</sayNpc>>
<br />
<<=_srName>> pulled the blanket back so you could see. The baby had your eyes. Nobody said it out loud.
<br /><br />
<<else>>
<center>
<<image 'places/cabin/stranger_couple_pregnant.jpg' sfw>>
</center>
<br /><br />
You recognized them straight away: the couple from the bar in the underground city. The man who had asked you to give his woman what he couldn't, and <<=_srName>>, who had walked out of that upstairs room with your cum still inside her.
<br /><br />
Her belly had grown round under her dress, and he kept one arm around her like she might break.
<br /><br />
<<sayNpc _srHusband>>
It worked. <<=_srMonths>> months along. We wanted you to hear it from us.
<</sayNpc>>
<br />
<</if>>
<<sayNpc _sr>>
We walked a long way to get here. We don't have much, but we wanted to thank you properly.
<</sayNpc>>
<br />
He held out a small pouch. Caps clinked inside it.
<br /><br />
<<elseif _srSettler>>
<center>
<<image 'places/cabin/settler_open_door.jpg' sfw>>
</center>
<br /><br />
A knock at your door. You opened it to find <<=_srName>> standing there, the settler woman who couldn't pay her taxes and paid you the other way instead.
<br /><br />
<<if _srWithBaby>>
This time she had a baby wrapped in a blanket against her chest.
<br /><br />
<<sayNpc _sr>>
This is your <<=_srBabyWord>>. Don't look at me like that. You know <<=setup.pronounceWhat(_srBaby)>> is yours.
<</sayNpc>>
<br />
<<sayNpc _sr>>
I already had mouths to feed before this. I can't work the fields with a baby on my back.
<</sayNpc>>
<br />
<<else>>
One hand rested on a belly that had grown round since that day.
<br /><br />
<<sayNpc _sr>>
I'm pregnant. <<=_srMonths>> months. I haven't been with anyone else, so don't pretend you don't know whose it is.
<</sayNpc>>
<br />
<<sayNpc _sr>>
I already had mouths to feed before this. Soon I won't be able to work the fields at all.
<</sayNpc>>
<br />
<</if>>
<<else>>
<<if _srReporter>>
<<=setup.displayName(_srReporter)>> caught you on your way out of the cabin.
<br /><br />
<<sayNpc _srReporter>>
There's a woman at the gate asking for you. Knew your name and everything. Says she came a long way.
<</sayNpc>>
<br />
You went down to see for yourself.
<<else>>
The morning was quiet until you noticed someone standing at the gate, waiting for you.
<</if>>
<br /><br />
<<if _srWithBaby>>
<center>
<<image 'places/cabin/stranger_baby_gate.jpg' sfw>>
</center>
<br /><br />
It took you a moment to place her. She was thinner than you remembered, with dark circles under her eyes and a bundle of blankets pressed against her chest.
<<if _srLastSeen>>
The last time you had seen <<=_srName>>, <<=_srLastSeen>>.
<</if>>
<br /><br />
<<sayNpc _sr>>
Remember me? <<=_srMemory>>
<</sayNpc>>
<br />
<<you>>
I remember.
<</you>>
<br />
She pulled the blanket back. A tiny face squinted up at the light.
<br /><br />
<<sayNpc _sr>>
This is your <<=_srBabyWord>>. I had <<=setup.pronounceWho(_srBaby)>> alone. Nobody else came near me for months before that night, so don't ask if <<=setup.pronounceWhat(_srBaby)>> is yours.
<</sayNpc>>
<br />
She shifted the baby to her other arm. Her hands were shaking.
<br /><br />
<<sayNpc _sr>>
I can't feed us both anymore.
<</sayNpc>>
<br />
<<else>>
<center>
<<image 'places/cabin/stranger_pregnant_gate.jpg' sfw>>
</center>
<br /><br />
It took you a moment to place her. She stood at your gate in a dusty coat, one hand resting on a round, heavy belly.
<<if _srLastSeen>>
The last time you had seen <<=_srName>>, <<=_srLastSeen>>.
<</if>>
<br /><br />
<<sayNpc _sr>>
Remember me? <<=_srMemory>>
<</sayNpc>>
<br />
<<you>>
I remember.
<</you>>
<br />
<<sayNpc _sr>>
I haven't bled since that night. <<=_srMonths>> months now. I counted twice. It's yours.
<</sayNpc>>
<br />
She glanced back down the road she had come from.
<br /><br />
<<sayNpc _sr>>
I can't raise a kid alone out there. I didn't know where else to go.
<</sayNpc>>
<br />
<</if>>
<</if>>
<div id="sr_choices">
<<if _srFeral>>
<<set _srGuestLabel = (_srWithBaby ? 'Lead them both in (-1 food)' : 'Lead her in (-1 food)')>>
<div id="sr_guest">
<<if _srHasGuestRoom && _srFood >= 1 && $player.int > 20>>
<<linkreplace _srGuestLabel>>
<<run $('#sr_basement, #sr_baby, #sr_supplies, #sr_refuse').hide()>>
<<if _srWithBaby>>
<<run $('#sr_end, #sr_baby_name').show()>>
<<set _srBabyKept = true>>
<<else>>
<<run $('#sr_end').show()>>
<</if>>
<<run setup.cabinInventory.drop('food', 1)>>
<<set _srMotherFate = 'guest'>>
<<set _sr.relationship = Math.min((_sr.relationship ?? 0) + 20, 100)>>
<<set _sr.sub = Math.min((_sr.sub ?? 0) + 10, 100)>>
<<set _sr.happy = Math.min((_sr.happy ?? 0) + 10, 100)>>
You crouched down and held out the food, moving slow. She snatched it out of your hand and tore into it. When you stood and opened the gate, she hesitated for a long moment, then followed you through<<if _srWithBaby>>, the baby held tight against her chest the whole way<</if>>.
<br /><br />
<strong>She moved in as a guest.</strong>
<br /><br />
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc"><<=_srGuestLabel>></div>
<<linkdesc>>
Free guest house room, 1 food, intelligence above 20
<</linkdesc>>
<</if>>
</div>
<<set _srBasementLabel = (_srWithBaby ? 'Capture her and the baby (-1 rope)' : 'Capture her (-1 rope)')>>
<div id="sr_basement">
<<if _srHasBasementRoom && _srRope >= 1 && $player.strength > 20>>
<<linkreplace _srBasementLabel>>
<<run $('#sr_guest, #sr_baby, #sr_supplies, #sr_refuse').hide()>>
<<if _srWithBaby>>
<<run $('#sr_end, #sr_baby_name').show()>>
<<set _srBabyKept = true>>
<<else>>
<<run $('#sr_end').show()>>
<</if>>
<<run setup.cabinInventory.drop('rope', 1)>>
<<statsAdd 'people_captured'>>
<<set _srMotherFate = 'slave'>>
<<set _sr.happy = Math.max((_sr.happy ?? 0) - 20, -100)>>
<<set _sr.relationship = Math.max((_sr.relationship ?? 0) - 10, -100)>>
<<set _sr.sub = Math.min((_sr.sub ?? 0) + 20, 100)>>
She didn't understand what the rope was for until it looped around her wrists. Then she fought, twisting and snapping at you<<if _srWithBaby>> with one arm while the other never let go of the baby<<else>>, always keeping her belly turned away from you<</if>>. You cinched the knot tight and led her down to the basement.
<br /><br />
<strong>She has been captured as a slave.</strong>
<br /><br />
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc"><<=_srBasementLabel>></div>
<<linkdesc>>
Free basement room, 1 rope, strength above 20
<</linkdesc>>
<</if>>
</div>
<<if _srWithBaby>>
<div id="sr_baby">
<<if $player.strength > 30>>
<<linkreplace 'Take the baby from her'>>
<<run $('#sr_guest, #sr_basement, #sr_supplies, #sr_refuse').hide()>>
<<run $('#sr_end, #sr_baby_name').show()>>
<<set _srBabyKept = true>>
<<set _srGoodwill = -2>>
You grabbed the bundle and pulled. She clawed at your arms and sank her teeth into your wrist, but you pried the baby loose. She let out a scream that didn't sound human, circled you twice with her teeth bared, then bolted for the treeline.
<br /><br />
The baby cried in your arms until long after she was gone.
<br /><br />
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">Take the baby from her</div>
<<linkdesc>>
Strength above 30
<</linkdesc>>
<</if>>
</div>
<</if>>
<<if _srFood >= 1>>
<div id="sr_supplies">
<<linkreplace 'Leave food by the gate and walk away (-1 food)'>>
<<run $('#sr_guest, #sr_basement, #sr_baby, #sr_refuse').hide()>>
<<run $('#sr_end').show()>>
<<run setup.cabinInventory.drop('food', 1)>>
<<set _srGoodwill = 1>>
You set the food down outside the gate and backed away. She waited until you were far enough, then darted in, grabbed it, and disappeared into the trees<<if _srWithBaby>> with the baby<</if>>.
<br /><br />
<</linkreplace>>
</div>
<</if>>
<div id="sr_refuse">
<<linkreplace 'Drive her off'>>
<<run $('#sr_guest, #sr_basement, #sr_baby, #sr_supplies').hide()>>
<<run $('#sr_end').show()>>
You shouted and waved your arms. She snarled back at you, then backed away step by step, never turning her back, until the trees swallowed her.
<br /><br />
<</linkreplace>>
</div>
<<elseif _srCouple>>
<div id="sr_gift">
<<linkreplace 'Accept the gift (+40 caps)'>>
<<run $('#sr_gift_refuse').hide()>>
<<run $('#sr_end').show()>>
<<set $player.money += 40>>
<<sayNpc _srHusband>>
Take it. We'd have nothing without you.
<</sayNpc>>
<br />
They thanked you again and set off <<=_srAway>> together<<if _srWithBaby>>, the baby asleep against her shoulder<</if>>.
<br /><br />
<</linkreplace>>
</div>
<div id="sr_gift_refuse">
<<linkreplace 'Tell them to keep it for the baby'>>
<<run $('#sr_gift').hide()>>
<<run $('#sr_end').show()>>
<<set _srGoodwill = 3>>
You pushed the pouch back into his hands.
<br /><br />
<<sayNpc _sr>>
Thank you. For everything.
<</sayNpc>>
<br />
She squeezed your hand once, and then they set off <<=_srAway>> together.
<br /><br />
<</linkreplace>>
</div>
<<else>>
<<set _srGuestLabel = (_srWithBaby ? 'Take them both in' : 'Take her in')>>
<div id="sr_guest">
<<if _srHasGuestRoom>>
<<linkreplace _srGuestLabel>>
<<run $('#sr_basement, #sr_baby, #sr_supplies, #sr_refuse').hide()>>
<<if _srWithBaby>>
<<run $('#sr_end, #sr_baby_name').show()>>
<<set _srBabyKept = true>>
<<else>>
<<run $('#sr_end').show()>>
<</if>>
<<set _srMotherFate = 'guest'>>
<<set _sr.relationship = Math.min((_sr.relationship ?? 0) + 20, 100)>>
<<set _sr.happy = Math.min((_sr.happy ?? 0) + 20, 100)>>
<<if _srSettler>>
You told her to bring her things over from her house. There was a bed for her in the guest house.
<<else>>
You opened the gate and told her there was a bed for her in the guest house.
<</if>>
<br /><br />
Her shoulders dropped, like she had been holding them up for months.
<br /><br />
<<if _srWithBaby>>
<<sayNpc _sr>>
Thank you. I'll work, I swear. Just... let <<=setup.pronounceWho(_srBaby)>> eat first.
<</sayNpc>>
<<else>>
<<sayNpc _sr>>
Thank you. I'll pull my weight. As long as I still can, anyway.
<</sayNpc>>
<</if>>
<br />
<strong>She moved in as a guest.</strong>
<br /><br />
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc"><<=_srGuestLabel>></div>
<<linkdesc>>
Free guest house room
<</linkdesc>>
<</if>>
</div>
<<set _srBasementLabel = (_srWithBaby ? 'Lock them in the basement' : 'Lock her in the basement')>>
<div id="sr_basement">
<<if _srHasBasementRoom>>
<<linkreplace _srBasementLabel>>
<<run $('#sr_guest, #sr_baby, #sr_supplies, #sr_refuse').hide()>>
<<if _srWithBaby>>
<<run $('#sr_end, #sr_baby_name').show()>>
<<set _srBabyKept = true>>
<<else>>
<<run $('#sr_end').show()>>
<</if>>
<<statsAdd 'people_captured'>>
<<set _srMotherFate = 'slave'>>
<<set _sr.relationship = Math.max((_sr.relationship ?? 0) - 20, -100)>>
<<set _sr.happy = Math.max((_sr.happy ?? 0) - 30, -100)>>
<<set _sr.sub = Math.min((_sr.sub ?? 0) + 10, 100)>>
<<if _srSettler>>
<<set _srRep = -3>>
You told her to follow you, and she did, all the way to the basement door before she understood where you were taking her.
<<else>>
You let her through the gate, and she followed you all the way to the basement door before she understood where you were taking her.
<</if>>
<br /><br />
<<sayNpc _sr>>
No. No! I came here for help, you bastard!
<</sayNpc>>
<br />
She fought when you pushed her inside<<if _srWithBaby>>, but not hard. Not with the baby in her arms<</if>>. The lock clicked shut on her screaming.
<br /><br />
<strong>She has been locked up as a slave.</strong>
<br /><br />
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc"><<=_srBasementLabel>></div>
<<linkdesc>>
Free basement room
<</linkdesc>>
<</if>>
</div>
<<if _srWithBaby>>
<div id="sr_baby">
<<linkreplace 'Keep the baby, send her away'>>
<<run $('#sr_guest, #sr_basement, #sr_supplies, #sr_refuse').hide()>>
<<run $('#sr_end, #sr_baby_name').show()>>
<<set _srBabyKept = true>>
You told her the baby could stay. She couldn't.
<br /><br />
<<if setup.percentageChance(50)>>
She closed her eyes and let out a long breath, like something heavy had finally been lifted off her.
<br /><br />
<<sayNpc _sr>>
Good. That's... good. <<=setup.pronounceWhat(_srBaby, true)>> will have a better chance with you than with me.
<</sayNpc>>
<br />
She kissed the baby's forehead, handed <<=setup.pronounceWho(_srBaby)>> over, and walked away without looking back.
<<else>>
Her face crumpled.
<br /><br />
<<sayNpc _sr>>
I thought... I thought you'd take us both.
<</sayNpc>>
<br />
She held the baby for a long time before she let go. Then she turned and walked <<=_srAway>>, crying the whole way.
<</if>>
<br /><br />
<</linkreplace>>
</div>
<</if>>
<<if _srFood >= 3>>
<<set _srSupplyItem = 'food'>>
<<set _srSupplyLabel = (_srWithBaby ? 'Give them 3 food and send them off' : 'Give her 3 food and send her off')>>
<<else>>
<<set _srSupplyItem = 'caps'>>
<<set _srSupplyLabel = (_srWithBaby ? 'Give them 30 caps and send them off' : 'Give her 30 caps and send her off')>>
<</if>>
<div id="sr_supplies">
<<if _srFood >= 3 || $player.money >= 30>>
<<linkreplace _srSupplyLabel>>
<<run $('#sr_guest, #sr_basement, #sr_baby, #sr_refuse').hide()>>
<<run $('#sr_end').show()>>
<<if _srSupplyItem === 'food'>>
<<run setup.cabinInventory.drop('food', 3)>>
<<else>>
<<set $player.money -= 30>>
<</if>>
<<set _srGoodwill = 2>>
You couldn't take her in, but you didn't send her away empty-handed either.
<br /><br />
<<sayNpc _sr>>
It's more than I expected. Thank you.
<</sayNpc>>
<br />
She tucked the supplies under her coat and set off <<=_srAway>><<if _srWithBaby>>, the baby asleep against her shoulder<</if>>.
<br /><br />
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc"><<=_srSupplyLabel>></div>
<<linkdesc>>
3 food or 30 caps
<</linkdesc>>
<</if>>
</div>
<<set _srRefuseLabel = (_srWithBaby ? 'Turn them away' : "Tell her it's not yours")>>
<div id="sr_refuse">
<<linkreplace _srRefuseLabel>>
<<run $('#sr_guest, #sr_basement, #sr_baby, #sr_supplies').hide()>>
<<run $('#sr_end').show()>>
<<if _srSettler>>
<<set _srRep = -2>>
<</if>>
<<if _srWithBaby>>
<<set _srGoodwill = -3>>
<<you>>
I can't help you.
<</you>>
<br />
She stared at you for a long moment, then pulled the blanket back over the baby's face.
<br /><br />
<<sayNpc _sr>>
Then I hope <<=setup.pronounceWhat(_srBaby)>> never finds out who <<=setup.pronounceWhos(_srBaby)>> father is.
<</sayNpc>>
<<else>>
<<set _srGoodwill = -2>>
<<if _srPlace === 'nightclub'>>
<<you>>
It's not mine. Try one of the other guys you fucked in that alley.
<</you>>
<<elseif _srPlace === 'club' || _srPlace === 'bar' || _srPlace === 'strip_club' || _srPlace === 'streets'>>
<<you>>
It's not mine. Try one of the other guys you fucked down there.
<</you>>
<<elseif _srSettler>>
<<you>>
It's not mine. Ask around the settlement.
<</you>>
<<else>>
<<you>>
It's not mine.
<</you>>
<</if>>
<br />
<<sayNpc _sr>>
Fuck you.
<</sayNpc>>
<</if>>
<br />
She turned and walked <<=_srAway>>.
<br /><br />
<</linkreplace>>
</div>
<</if>>
</div>
<div id="sr_end" style="display:none">
<<if _srWithBaby && !_srCouple>>
<div id="sr_baby_name" style="display:none">
What will be <<=setup.pronounceWhos(_srBaby)>> name: <<textbox "_srBabyName" _srBabyName>>
<br /><br />
</div>
<</if>>
<<link 'Continue'>>
<<addmins 30>>
<<set $player.goodwill += _srGoodwill>>
<<if _srRep && $player.baseManagement>>
<<set $player.baseManagement.settlementReputation = Math.min(100, Math.max(0, ($player.baseManagement.settlementReputation ?? 50) + _srRep))>>
<</if>>
<<if _srMotherFate !== 'gone'>>
<<if _srSettler && $player.baseManagement>>
/* She moves out of her settlement house */
<<set $player.baseManagement.settlers = Math.max(0, ($player.baseManagement.settlers ?? 0) - 1)>>
<<set $player.baseManagement.settlersFemales = Math.max(0, ($player.baseManagement.settlersFemales ?? 0) - 1)>>
<</if>>
<<run delete _sr.pregnancy_encounter_day; delete _sr.pregnancy_encounter_place; delete _sr.pregnancy_return_day>>
<<set _sr.location = null, _sr.assignedTo = null>>
<<if _srWithBaby>>
<<set _sr.noPregnancyDays = Math.max(randomInteger(180, 250) - _srBabyDays, 30)>>
<<else>>
<<set _sr.pregnancy = Math.min(_srDays * ((_sr.traits ?? []).includes('breeder') ? 2 : 1), 255)>>
<<set _sr.pregnancy_father = 'mc'>>
<</if>>
<<if _srMotherFate === 'guest'>>
<<run $guests.push(_sr)>>
<<run setup.npc.addHistory(_sr, 'invited')>>
<<else>>
<<run $slaves.push(_sr)>>
<<run setup.npc.addHistory(_sr, 'captured')>>
<</if>>
<</if>>
<<if _srBabyKept>>
<<set _srBaby.name = (_srBabyName || _srBaby.name)>>
<<run setup.npc.addHistory(_srBaby, 'born', { mother: _sr.id })>>
<<if ($game.location.nursery ?? false)>>
<<run ($nursery ??= []).push(_srBaby)>>
<<elseif ($game.location.guesthouse ?? false)>>
<<run $guests.push(_srBaby)>>
<<else>>
<<run $slaves.push(_srBaby)>>
<</if>>
<</if>>
<<run $pregnantStrangers.splice(_srIndex, 1)>>
<<unset $strangerPregnancyHappening>>
<<goto 'Wood cabin'>>
<</link>>
</div>
<</if>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _taData = $tmpTargetedAbduction>>
<<set _taS = _taData ? setup.settlements.getById(_taData.settlementId) : null>>
<center>
<<image 'places/cabin/targeted_abduction_lost.jpg'>>
</center>
<br />
You fought. It wasn't enough.
<br /><br />
They took <<= _taData ? _taData.guestName : 'her'>> while you were down. By the time you got back to your feet they were already gone, and the gate was open and empty.
<br /><br />
<<if _taS && _taData>>
<<set _taGuestIdx2 = $guests.findIndex(function(g) { return g.id === _taData.guestId; })>>
<<set _taGuestFull = _taGuestIdx2 >= 0 ? clone($guests[_taGuestIdx2]) : { id: _taData.guestId, name: _taData.guestName, gender: 0 }>>
<<if _taGuestIdx2 >= 0>><<guestLeft _taGuestIdx2 true>><</if>>
<<set _taS.captiveId = _taData.guestId>>
<<set _taS.captiveName = _taData.guestName>>
<<set $game.capturedGuest = { npc: _taGuestFull, settlementId: _taData.settlementId, settlementName: _taData.settlementName }>>
<<run setup.settlements.resolveAbduction(_taS, true)>>
<<run setup.settlements.modifyRelationship(_taS, -10, 'Abduction succeeded by force')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<unset $tmpTargetedAbduction>>
<span style="color: #e05555;"><<= _taData ? _taData.guestName : 'She'>> is being held at <<= _taData ? _taData.settlementName : 'their settlement'>>. You can attempt a rescue or pay ransom from the World map.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _taData = $tmpTargetedAbduction>>
<<set _taS = _taData ? setup.settlements.getById(_taData.settlementId) : null>>
<center>
<<image 'places/cabin/targeted_abduction_won.jpg'>>
</center>
<br />
The last one turned and ran. Those who couldn't run stayed on the ground.
<br /><br />
<<= _taData ? _taData.guestName : 'She'>> was still standing, breathing hard, back pressed against the inner wall. She looked at you like she was trying to decide something.
<br /><br />
<<if _taData && _taData.guestName>>
<<set _taWonGuest = $guests.find(function(g) { return g.id === _taData.guestId; })>>
<<if _taWonGuest>>
<<sayNpc _taWonGuest>>
They knew my name. That's not something you forget.
<</sayNpc>>
<<else>>
<<newgirl>>
<<set $tmpGirl.name = _taData.guestName>>
<<sayNpc $tmpGirl>>
They knew my name. That's not something you forget.
<</sayNpc>>
<<unset $tmpGirl>>
<</if>>
<br />
<</if>>
<<if _taS>>
<<run setup.settlements.resolveAbduction(_taS, false)>>
<<run setup.settlements.modifyRelationship(_taS, -15, 'Abduction repelled')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<unset $tmpTargetedAbduction>>
<span style="color: #55cc88;">She's safe. <<= _taData ? _taData.settlementName : 'They'>> lost people today — they'll think twice before coming back.</span>
<br /><br />
<<link 'Go back inside'>><<goto 'Wood cabin'>><</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _taData = $game.targetedAbduction>>
<<set _taS = setup.settlements.getById(_taData.settlementId)>>
<<set _taGuestIdx = $guests.findIndex(function(g) { return g.id === _taData.guestId; })>>
<<set _taGuest = _taGuestIdx >= 0 ? $guests[_taGuestIdx] : null>>
<<if !_taS || !_taGuest>>
<<unset $game.targetedAbduction>>
<<set $locationEvents.cabin = false>>
<<goto 'Wood cabin'>>
<</if>>
<<set $locationEvents.cabin = false>>
<center>
<<image 'places/cabin/targeted_abduction.jpg'>>
</center>
<br />
They showed up before sunrise. Six of them from <<= _taData.settlementName >>, armed and unhurried — the kind of people who don't come unless they know they'll get what they want. Their leader stood at the gate and asked for <<= _taGuest.name >> by name.
<br /><br />
<<sayNpc _taGuest>>
What do they want with me?
<</sayNpc>>
<br />
You didn't have a good answer for that.
<br /><br />
<<set _taGuards = setup.getPersonsForLocation($guests, 'guard')>>
<<set _taEnemyCount = Math.min(2, Math.max(1, Math.floor((_taS.defense ?? 100) / 120)))>>
<<generateEnemies _taEnemyCount 0 _taEnemyCount>>
<<for _taei = 0; _taei < $enemies.length; _taei++>>
<<set $enemies[_taei].strength = Math.min(($enemies[_taei].strength ?? 50) + 25, 100)>>
<<set $enemies[_taei].endurance = Math.min(($enemies[_taei].endurance ?? 50) + 15, 100)>>
<</for>>
<div id="ta_handover">
<<set _taHandoverLabel = 'Hand her over'>>
<<linkreplace _taHandoverLabel>>
<<run $('#ta_handover, #ta_fight').hide()>>
<<set _taGIdx2 = $guests.findIndex(function(g) { return g.id === _taData.guestId; })>>
<<if _taGIdx2 >= 0>><<guestLeft _taGIdx2>><</if>>
<<set _taH = setup.settlements.getById(_taData.settlementId)>>
<<run setup.settlements.resolveAbduction(_taH, true)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<unset $game.targetedAbduction>>
<<addmins 30>>
You opened the gate. <<= _taData.guestName >> looked back at you once. You didn't meet her eyes. They left without another word.
<br /><br />
<span style="color: #888;">They got what they came for.</span>
<br /><br />
<<link 'Go back inside'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<div id="ta_fight">
<<link 'Fight them off'>>
<<set $tmpTargetedAbduction = $game.targetedAbduction>>
<<unset $game.targetedAbduction>>
<<fight $enemies 'Event - Targeted abduction - Won' 'Event - Targeted abduction - Lost' false _taGuards>>
<<set $fight.skipEndingLost = true>>
<</link>>
</div><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _tgData = $game.tributeGift>>
<<set _tgS = setup.settlements.getById(_tgData.id)>>
<<if !_tgS>>
<<unset $game.tributeGift>>
<<set $locationEvents.cabin = false>>
<<goto 'Wood cabin'>>
<</if>>
<<unset $game.tributeGift>>
<<set $locationEvents.cabin = false>>
<<newgirl>>
<<set _tgGirl = clone($tmpGirl)>>
<<unset $tmpGirl>>
<<if _tgData.type === 'amazonian_tribe'>>
<<set _tgGirl.name = either('Ayla', 'Reva', 'Kira', 'Sela', 'Thea', 'Voss', 'Bryn', 'Zara')>>
<<set _tgGirl.strength = Math.min((_tgGirl.strength ?? 50) + 25, 100)>>
<<set _tgGirl.origin = 'Amazonian warrior from ' + _tgData.name>>
<<set _tgOpener = 'Our strongest. She chose this.'>>
<<set _tgDesc = 'She was tall and composed — not nervous, not reluctant. She looked at your compound the way a soldier assesses a position.'>>
<<elseif _tgData.type === 'cult_compound'>>
<<set _tgGirl.name = either('Grace', 'Faith', 'Dove', 'Mercy', 'Hope', 'Blythe', 'Seraph', 'Piety')>>
<<set _tgGirl.sub = Math.min((_tgGirl.sub ?? 0) + 30, 100)>>
<<set _tgGirl.origin = 'Offered by the Shepherd at ' + _tgData.name>>
<<set _tgOpener = 'The Shepherd sends her as a gift. She is prepared.'>>
<<set _tgDesc = 'She had that look cult members get — calm past the point where calm stops being normal. Whatever they had taught her, she had absorbed it completely.'>>
<<else>>
<<set _tgGirl.name = either('Tala', 'Suri', 'Mina', 'Yara', 'Lani', 'Kess', 'Rue', 'Fae')>>
<<set _tgGirl.origin = 'Tribute from ' + _tgData.name>>
<<set _tgOpener = 'She goes with our blessing. We honour the bond between us.'>>
<<set _tgDesc = 'She was young and carried herself with the quiet dignity of someone who understood exactly what this was and had made peace with it.'>>
<</if>>
<center>
<<image 'places/cabin/tribute_gift.jpg'>>
</center>
<br />
A small group from <<= _tgData.name >> arrived at the gate before sunrise. No weapons drawn — a show of trust. Their speaker stepped forward.
<br /><br />
<<if _tgData.type === 'amazonian_tribe'>>
<<newgirl>>
<<set $tmpGirl.name = 'Elder'>>
<<sayNpc $tmpGirl>>
<<= _tgOpener >>
<</sayNpc>>
<<unset $tmpGirl>>
<<else>>
<<newguy>>
<<set $tmpGuy.name = 'Elder'>>
<<sayNpc $tmpGuy>>
<<= _tgOpener >>
<</sayNpc>>
<<unset $tmpGuy>>
<</if>>
<br />
<<= _tgDesc >>
<br /><br />
<<sayNpc _tgGirl>>
I know why I'm here.
<</sayNpc>>
<br />
<div id="tg_choices">
<div id="tg_guest">
<<set _tgGuestLabel = 'Accept her — she stays as a free member of the household'>>
<<linkreplace _tgGuestLabel>>
<<run $('#tg_slave, #tg_decline, #tg_gifts').hide()>>
<<run setup.npc.addHistory(_tgGirl, 'tribute_accepted', { place: _tgData.name })>>
<<run $guests.push(_tgGirl)>>
<<addmins 30>>
You nodded to the elder and stepped aside. <<= _tgGirl.name >> walked through the gate without being led.
<br /><br />
<span style="color: #55cc88;"><<= _tgGirl.name >> joined your household.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<div id="tg_slave">
<<set _tgSlaveLabel = 'Accept her — as a slave'>>
<<linkreplace _tgSlaveLabel>>
<<run $('#tg_guest, #tg_decline, #tg_gifts').hide()>>
<<set _tgGirl.sub = Math.min((_tgGirl.sub ?? 0) + 10, 100)>>
<<run setup.npc.addHistory(_tgGirl, 'tribute_slave', { place: _tgData.name })>>
<<run $slaves.push(_tgGirl)>>
<<run setup.settlements.modifyRelationship(_tgS, -5, 'Tribute accepted as slave — slight disrespect to the gift')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 30>>
The elder's expression tightened almost imperceptibly when you explained the terms. They had offered a gift; you had assigned it a category. They accepted it without protest.
<br /><br />
<span style="color: #55cc88;"><<= _tgGirl.name >> added to your slaves.</span>
<span style="color: #888; font-size: 0.85em;"> <<= _tgData.name >> noted the distinction.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<div id="tg_decline">
<<set _tgDeclineLabel = 'Decline with respect — send her home'>>
<<linkreplace _tgDeclineLabel>>
<<run $('#tg_guest, #tg_slave, #tg_gifts').hide()>>
<<run setup.settlements.modifyRelationship(_tgS, -5, 'Tribute respectfully declined')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 20>>
You thanked the elder and told him <<= _tgGirl.name >> should go back to her people. He accepted it without visible offense, though you both understood what refusing a gift meant.
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<<if $player.money >= 50>>
<div id="tg_gifts">
<<set _tgGiftsLabel = 'Decline — but send them back with gifts (50 caps)'>>
<<linkreplace _tgGiftsLabel>>
<<run $('#tg_guest, #tg_slave, #tg_decline').hide()>>
<<set $player.money -= 50>>
<<run setup.settlements.modifyRelationship(_tgS, 5, 'Tribute declined but returned with gifts')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 30>>
You sent <<= _tgGirl.name >> back with 50 caps tucked into a cloth bundle. The elder looked at it, then at you, and gave a small bow. That was understood.
<br /><br />
<span style="color: #55cc88;"><<= _tgData.name >> relationship improved (+5).</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
</div><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _wdData = $game.womanDemand>>
<<set _wdS = setup.settlements.getById(_wdData.id)>>
<<if !_wdS>>
<<unset $game.womanDemand>>
<<set $locationEvents.cabin = false>>
<<goto 'Wood cabin'>>
<</if>>
<<set $locationEvents.cabin = false>>
<<set _wdDaysLeft = Math.max(0, (_wdData.deadline ?? ($game.day + 3)) - $game.day)>>
<center>
<<image 'places/cabin/woman_demand.jpg'>>
</center>
<br />
A rider from <<= _wdData.name >> arrived before noon. No pleasantries. He left a folded message at the gate and didn't wait to see it read.
<br /><br />
<div style="background: rgba(0,0,0,0.25); border-left: 3px solid #e05555; padding: 12px 16px; margin-bottom: 16px; font-style: italic; color: #ccc;">
"Send us a woman. Young, healthy. Three days or we take one ourselves — and we take more than one."
<br /><br />
<span style="font-style: normal; color: #888; font-size: 0.85em;">— <<= _wdData.name >></span>
</div>
<<if _wdDaysLeft > 0>>
<span style="color: #e09855; font-size: 0.88em;">⏳ <<= _wdDaysLeft>> day<<= _wdDaysLeft !== 1 ? 's' : ''>> remaining.</span>
<<else>>
<span style="color: #e05555; font-size: 0.88em;">⚠ Deadline has passed.</span>
<</if>>
<br /><br />
<div id="wd_choices">
<<set _wdSendable = []>>
<<for _wdi = 0; _wdi < $slaves.length; _wdi++>>
<<if setup.getAge($slaves[_wdi]) >= 18>>
<<run _wdSendable.push({ npc: $slaves[_wdi], kind: 'slave' })>>
<</if>>
<</for>>
<<for _wdg = 0; _wdg < $guests.length; _wdg++>>
<<if $guests[_wdg].gender === 0 && setup.getAge($guests[_wdg]) >= 18>>
<<run _wdSendable.push({ npc: $guests[_wdg], kind: 'guest' })>>
<</if>>
<</for>>
<<if _wdSendable.length>>
<div id="wd_send_section">
<span style="color: #aaa; font-size: 0.9em; letter-spacing: 0.05em;">SEND SOMEONE</span>
<br />
<<set $game.wdSendId = $game.wdSendId ?? null>>
<div id="wd_send_table">
<table class="npc-list">
<<for _wdi = 0; _wdi < _wdSendable.length; _wdi++>>
<<set _wdEntry = _wdSendable[_wdi]>>
<<capture _wdi _wdEntry>>
<tr class="item">
<td style="min-width: 25%">
<span class="gender-f">
<<= _wdEntry.npc.name >>
<span style="color: #888; font-size: 0.85em;"> (<<= _wdEntry.kind >>, age <<= setup.getAge(_wdEntry.npc) >>)</span>
</span>
</td>
<td>
<<npcListView _wdEntry.npc _wdi _wdEntry.kind>>
</td>
<td>
<<radiobutton "$game.wdSendId" _wdEntry.npc.id autocheck>>
</td>
</tr>
<</capture>>
<</for>>
</table>
</div>
<div id="wd_send_validation"></div>
<<link 'Send selected'>>
<<if $game.wdSendId>>
<<set _wdSlaveIdx = $slaves.findIndex(function(g) { return g.id === $game.wdSendId; })>>
<<set _wdGuestIdx = $guests.findIndex(function(g) { return g.id === $game.wdSendId; })>>
<<if _wdSlaveIdx >= 0>>
<<set _wdSentNpc = clone($slaves[_wdSlaveIdx])>>
<<run $slaves.splice(_wdSlaveIdx, 1)>>
<<elseif _wdGuestIdx >= 0>>
<<set _wdSentNpc = clone($guests[_wdGuestIdx])>>
<<guestLeft _wdGuestIdx>>
<</if>>
<<if _wdSentNpc>>
<<set _wdHandle = setup.settlements.getById($game.womanDemand.id)>>
<<set _wdSettleName = $game.womanDemand.name>>
<<run setup.settlements.resolveWomanDemand(_wdHandle, true)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<run $('#wd_pay, #wd_refuse').hide()>>
<<unset $game.womanDemand, $game.wdSendId>>
<<addmins 60>>
<<replace '#wd_send_section'>>
You handed <<= _wdSentNpc.name >> over at the gate without ceremony. <<= setup.pronounceWhat(_wdSentNpc, true) >> walked out and didn't look back — whether from pride or resignation, you couldn't tell.
<br /><br />
<span style="color: #888;"><<= _wdSettleName >> got what they asked for. The pressure lifted — for now.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</replace>>
<<else>>
<<replace '#wd_send_validation'>>
<span style="color: #e05555; font-size: 0.85em;">Something went wrong finding that person.</span>
<</replace>>
<</if>>
<<else>>
<<replace '#wd_send_validation'>>
<span style="color: #888; font-size: 0.85em;">Select someone from the list first.</span>
<</replace>>
<</if>>
<</link>>
</div>
<<else>>
<span style="color: #555; font-size: 0.88em;">You have no women to send.</span>
<</if>>
<<if $player.money >= 1000>>
<div id="wd_pay">
<<set _wdPayLabel = 'Pay them off (1000 caps)'>>
<<linkreplace _wdPayLabel>>
<<run $('#wd_send_section, #wd_refuse').hide()>>
<<set $player.money -= 1000>>
<<set _wdHandle3 = setup.settlements.getById($game.womanDemand.id)>>
<<run setup.settlements.resolveWomanDemand(_wdHandle3, true)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<unset $game.womanDemand, $game.wdSendId>>
<<addmins 30>>
You sent a message back: 1000 caps, take it or find someone else to push around.
<br /><br />
A pause. Then the rider returned with a nod. Apparently they had a price for everything.
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<<else>>
<span style="color: #555; font-size: 0.88em;">Pay them off (1000 caps) — not enough caps.</span>
<</if>>
<div id="wd_refuse">
<<set _wdRefuseLabel = 'Refuse'>>
<<linkreplace _wdRefuseLabel>>
<<run $('#wd_send_section, #wd_pay').hide()>>
<<set _wdHandle4 = setup.settlements.getById($game.womanDemand.id)>>
<<run setup.settlements.resolveWomanDemand(_wdHandle4, false)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<set $game.pendingUltimatumRaid = $game.womanDemand.id>>
<<unset $game.womanDemand, $game.wdSendId>>
You crumpled the message and said nothing. Let them come.
<br /><br />
<span style="color: #e05555;">You've made your choice. They won't wait long.</span>
<br /><br />
<<link 'Continue'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
</div><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/old_merchant.jpg']]
</center>
<br /><br />
<<anonguy>>
Let me take a look... I am ready to pay 100 caps for one.
<</anonguy>>
<br />
<<set _hasVirgins = false>>
<table id="slaves">
<<for _slaveI, _slave range ($slaves ?? [])>>
<<capture _slaveI, _slave>>
<<if !_slave.virgin || _slave.gender>>
<<continue>>
<</if>>
<<set _hasVirgins = true>>
<tr>
<td style="width: 300px">
<span class="name-no-click"><<=setup.displayName(_slave)>></span>
</td>
<td>
Age: <<=setup.getAge(_slave)>>
</td>
<td>
<<link 'Sell'>>
<<dialog 'Throw out'>>
Are you sure you want to sell <<=(_slave.gender ? 'him' : 'her')>>?
<br />
<<link 'Yes' 'Event - virgin merchant sell'>>
<<run $slaves.splice(_slaveI, 1)>>
<<dialogclose>>
<<set $player.goodwill -= 5>>
<<set $player.money += 100>>
<<statsAdd 'slaves_sold'>>
<</link>>
<</dialog>>
<</link>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<if !_hasVirgins>>
<strong>You have nothing to sell...</strong>
<</if>>
<br /><br />
<<link 'Finish trading'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<<set $game.virgin_merchant_day = $game.day>>
<br /><br />
As you step out of the wood cabin, the chill of air stings your cheeks.
The world beyond the settlement gates is a mix of desolation and stubborn life, struggling to survive amidst ruins and overgrown vegetation.
The sound that catches your attention isn't the usual rustle of leaves or distant animal calls; it's a voice, human and unexpected.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/old_merchant.jpg']]
</center>
<br /><br />
Walking towards the gates, you saw him—a weathered old man with a tattered cloak and a cart laden with goods. His eyes, though tired,
gleamed with a sharp intelligence that belied his age. He introduced himself as a merchant, his voice carrying a hint of gravel from years spent on the road.
<br /><br />
Then came his chilling request, delivered with a casualness that made your blood run cold.
<br /><br />
<<anonguy>>
I'm in need of a rare commodity.
<</anonguy>>
<br />
<<you>>
What kind of commodity?
<</you>>
<br />
<<anonguy>>
I need a virgin voman. I am willing to pay you 100 caps.
<</anonguy>>
<br /><br />
<div id="options">
<<link 'I accept, choose one'>>
<<goto 'Event - virgin merchant sell'>>
<</link>>
<<link 'Maybe some other time'>>
<<goto 'Wood cabin'>>
<</link>>
</div>
<<linkreplace 'Kill him'>>
<<run $('#options').hide()>>
<center>
<<image 'places/cabin/baby_merchant_killed.jpg' sfw>>
</center>
<br /><br />
Looking into his eyes, you find an old, rusted pipe within arm's reach, and you strike him in the head with it. He wasn't prepared for it and falls dead to the ground. Within seconds, the ground around him turns red.
<br />
<br />
<strong>People like him will leave you alone for a while.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<<set $player.goodwill-->>
<<set $game.virgin_merchant_day = $game.day>>
<</linkreplace>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
<<image 'places/cabin/gate_lone_survivor.jpg' sfw>>
</center>
<br /><br />
The lone survivor that you let stay overnight and feed at your camp yesterday has gathered his belongings and is waiting for you at the gate.
<br /><br />
<<anonguy>>
Thank you very much! I will never forget your hospitality. I have a gift of gratitude for you.
<</anonguy>>
<<pickup $backpack 'antibiotics' 1>>
<strong>You received <strong class="iitem">1 antibiotics</strong></strong>
<br /><br />
<<link 'Continue'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/gate_lone_survivor_steal.png']]
</center>
<br /><br />
The lone survivor that you let stay overnight and feed at your camp yesterday is nowhere to be found. The gate is left half-open and it appears that food has been taken from the storage.
<br /><br />
<<set _food = Math.min(20, setup.cabinInventory.count('food'))>>
<<run setup.cabinInventory.drop('food', _food)>>
<strong>You lost <strong class="iitem"><<=_food>> food</strong></strong>
<br /><br />
<<link 'Continue'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
<<image 'places/cabin/gate_lone_survivor.jpg' sfw>>
</center>
<br /><br />
A lone survivor approaches the gate, claiming to be a doctor who can provide valuable medical assistance to your settlement. However, you also know that they have a history of stealing from other settlements.
<br /><br />
<<anonguy>>
Please, sir. Can I stay here for one night? I'm hungry and I don't have the strength to continue my journey. I beg you. I could offer you something in return for it..
<</anonguy>>
<br /><br />
<<if setup.cabinInventory.has('food', 2)>>
<<link 'Let him in'>>
<<set setup.cabinInventory.drop('food', 2)>>
<<set $game.lone_survivor = true>>
<<goto 'Wood cabin'>>
<</link>>
<</if>>
<<linkdesc>>
-2 food.
<</linkdesc>>
<<link 'Tell him to go away'>>
<<set $player.goodwill-->>
<<set $player.reputation-->>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/old_merchant.jpg']]
</center>
<br /><br />
<<anonguy>>
Let me take a look... I am ready to pay 20 caps for one.
<</anonguy>>
<<set _hasBabies = false>>
<table id="slaves">
<<for _nurseryI, _nursery range ($nursery ?? [])>>
<<set _hasBabies = true>>
<<capture _nurseryI, _nursery>>
<tr>
<td style="width: 300px">
<span class="name-no-click"><<=setup.displayName(_nursery)>></span>
</td>
<td>
Age: <<=setup.getAge(_nursery)>>
</td>
<td>
<<link 'Sell'>>
<<dialog 'Throw out'>>
Are you sure you want to sell <<=(_nursery.gender ? 'him' : 'her')>>?
<br />
<<link 'Yes' 'Event: Baby merchant sell'>>
<<run $nursery.splice(_nurseryI, 1)>>
<<dialogclose>>
<<set $player.goodwill -= 2>>
<<set $player.money += 20>>
<</link>>
<</dialog>>
<</link>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<table id="slaves">
<<for _slaveI, _slave range $slaves>>
<<if setup.getAge(_slave) > 17>>
<<continue>>
<</if>>
<<set _hasBabies = true>>
<<capture _slaveI, _slave>>
<tr>
<td style="width: 300px">
<span class="name-no-click"><<=_slave.name>></span>
</td>
<td>
Age: <<=setup.getAge(_slave)>>
</td>
<td>
<<link 'Sell'>>
<<dialog 'Throw out'>>
Are you sure you want to sell <<=(_slave.gender ? 'him' : 'her')>>?
<br />
<<link 'Yes' 'Event: Baby merchant sell'>>
<<run $slaves.splice(_slaveI, 1)>>
<<dialogclose>>
<<set $player.goodwill -= 2>>
<<set $player.money += 20>>
<</link>>
<</dialog>>
<</link>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<table id="slaves">
<<for _guestI, _guest range $guests>>
<<if setup.getAge(_guest) > 17>>
<<continue>>
<</if>>
<<set _hasBabies = true>>
<<capture _guestI, _guest>>
<tr>
<td style="width: 300px">
<span class="name-no-click"><<=_guest.name>></span>
</td>
<td>
Age: <<=setup.getAge(_guest)>>
</td>
<td>
<<link 'Sell'>>
<<dialog 'Throw out'>>
Are you sure you want to sell <<=(_guest.gender ? 'him' : 'her')>>?
<br />
<<link 'Yes' 'Event: Baby merchant sell'>>
<<assignedTo _guest 'none'>>
<<guestRemove _guestI>>
<<dialogclose>>
<<set $player.goodwill -= 2>>
<<set $player.money += 20>>
<</link>>
<</dialog>>
<</link>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<if !_hasBabies>>
<strong>You have nothing to sell...</strong>
<</if>>
<br /><br />
<<link 'Finish trading'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/old_merchant.jpg']]
</center>
<br /><br />
<<anonguy>>
What kind of place is this? It doesn't really matter. I have a generous offer for you. Do you have small children or newborns? I'm ready to buy them from you.
<</anonguy>>
<br /><br />
<div id="options">
<<linkreplace 'What he will do with them'>>
<<anonguy>>
Why do you care? Have you ever eaten them? Get ready for a delicious soup. Mmm...
<</anonguy>>
<br /><br />
<</linkreplace>>
<<link 'I accept, choose one'>>
<<goto 'Event: Baby merchant sell'>>
<</link>>
<<link 'Maybe some other time'>>
<<goto 'Wood cabin'>>
<</link>>
</div>
<<linkreplace 'Kill him'>>
<<run $('#options').hide()>>
<center>
[img[setup.ImagePath+'places/cabin/baby_merchant_killed.jpg']]
</center>
<br /><br />
Looking into his eyes, you find an old, rusted pipe within arm's reach, and you strike him in the head with it. He wasn't prepared for it and falls dead to the ground. Within seconds, the ground around him turns red.
<br />
<br />
<strong>People like him will leave you alone for a while.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<<set $player.goodwill++>>
<<set $game.baby_merchant_day = $game.day>>
<</linkreplace>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
<<image 'places/cabin/event_base_attack_capture.jpg' sfw>>
</center>
<br /><br />
<<set _eventBaseAttackCapturedGirls = 1>>
<<if Object.keys($prevFight).length && setup.percentageChance(50) && $slaves.length > 1>>
<<set _eventBaseAttackCapturedGirls++>>
<</if>>
As you look outside your gates in the distance you see group of attackers walking away with <strong class="iitem"><<=_eventBaseAttackCapturedGirls>></strong> of your slaves.
<br /><br />
<<set _eventBaseAttackSlaveListIds = setup.getRandomPersonIds($slaves, _eventBaseAttackCapturedGirls).sort().reverse()>>
They took:
<br />
<<set _beforeSlaves = clone($slaves)>>
<<for _eventBaseAttackSlaveListId, _eventBaseAttackSlaveList range _eventBaseAttackSlaveListIds>>
<<capture _eventBaseAttackSlaveListId>>
<div>
<strong><<=setup.displayName($slaves[_eventBaseAttackSlaveList])>></strong>
</div>
<<set $slaves.splice(_eventBaseAttackSlaveList, 1)>>
<</capture>>
<</for>>
<br /><br />
<<link 'Get up'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/event_base_attack.jpg']]
</center>
<<set _guards = setup.getPersonsForLocation($guests, 'guard')>>
<<set _allyCount = _guards.length + Object.keys($player.companions).length>>
<<set _enemyGuyCount = Math.max(Math.floor(_allyCount / 3), 4)>>
<<set _enemyGirlCount = Math.max(Math.floor(_allyCount / 2)-1, 1)>>
<<if $player?.baseManagement?.buildings?.stone_wall >= 80>>
<<set _enemyGuyCount -= 2>>
<<set _enemyGirlCount -= 2>>
<<elseif $player?.baseManagement?.buildings?.wood_wall >= 80>>
<<set _enemyGuyCount -= 1>>
<<set _enemyGirlCount -= 1>>
<</if>>
<br /><br />
As you stroll through your village, enjoying the warm sunshine on your face, a sudden commotion catches your attention. One of your girls, sprints towards you, her face contorted with fear and her eyes wide with panic. She screams at the top of her lungs, "Help! Help! They're attacking our base!"
<br /><br />
Between gasps for breath, the girl manages to respond, her voice trembling, "A group of bandits! They stormed our gates and managed to break through! They're wreaking havoc inside!"
<br /><br />
As you arrive at the gate, the sight that greets you is one of chaos.
Gates lie broken and splintered, remnants of a violent struggle and in front of you are standing <<=_enemyGuyCount>> guys and <<=_enemyGirlCount>> <<=(_enemyGirlCount > 1 ? 'women' : 'woman')>>.
<br /><br />
<<set $prevFight = {}>>
<div id="option1">
<<include 'Event: Base attack - fight'>>
</div>
<<linkreplace 'Try to negotiate'>>
<<run $('#option1').hide()>>
<<if $player.int < 30>>
<center>
[img[setup.ImagePath+'places/cabin/event_base_attack_laugh.jpg']]
</center>
<br /><br />
They all start laughing in your face. One of them spits on your face.
<br /><br />
<strong class="iitem">Your intelligence failed</strong>
<br /><br />
<<include 'Event: Base attack - fight'>>
<<else>>
They mockingly look at each other and nods their heads.
<br /><br />
"<strong>You have a deal! But we'll take one of your slaves with us</strong>"
<br /><br />
<<link 'Accept the offer'>>
<<goto 'Event: Base attack - lost'>>
<</link>>
<<linkdesc>>
Will take one of your slaves.
<</linkdesc>>
<<include 'Event: Base attack - fight'>>
<</if>>
<</linkreplace>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
Stepping outside, you hear voices. You decide to go and see what's happening. A couple of girls are looking at the garden and discussing something among themselves.
<br /><br />
<center>
<<image 'places/cabin/bathhouse_talk.jpg'>>
</center>
<br /><br />
<<set _randomGuests = setup.getAvailablePersons18yo($guests)>>
<<set _speakerPool = ((_randomGuests[0] ?? []).concat(_randomGuests[2] ?? [])).filter(function(i) { return !($guests[i].traits ?? []).includes('feral'); })>>
As they sat around the fire, <<=setup.displayName($guests[_speakerPool[0]])>> cleared her throat and caught the attention of the others.
<br /><br />
<<say $guests[_speakerPool[0]].name setup.ImagePath+'/people/anongirl.png'>>
Ladies, I've been thinking. We've been through so much, and it's high time we consider our own well-being
<</say>>
<br /><br />
<<=setup.displayName($guests[_speakerPool[1]])>>, a woman with a twinkle of mischief in her eyes, raised an eyebrow.
<br /><br />
<<say $guests[_speakerPool[1]].name setup.ImagePath+'/people/anongirl.png'>>
What do you have in mind, <<=$guests[_speakerPool[0]].name>>? More scavenging runs for supplies?
<</say>>
<br /><br />
<<say $guests[_speakerPool[0]].name setup.ImagePath+'/people/anongirl.png'>>
No, <<=$guests[_speakerPool[1]].name>>, not quite. I've been hearing murmurs of exhaustion among us. Washing ourselves under rainwater and whatever springs we find has become tiresome. We deserve a chance to relax and take care of ourselves.
<br />
How about we ask <<=$player.name>> to build us something like bathhouse? maybe also with sauna?
<</say>>
<br />
<<=setup.displayName($guests[_speakerPool[3]])>> leaned forward, her eyes alight with a newfound idea. The women exchanged glances, intrigued by the concept.
<br />
<<=setup.displayName($guests[_speakerPool[2]])>>'s lips curled into a determined smile.
<br /><br />
<<say $guests[_speakerPool[3]].name setup.ImagePath+'/people/anongirl.png'>>
A sauna? Now that's an idea. We'll create a place where we can wash away the dirt and relax our tired bodies. A sanctuary amidst the chaos.
<</say>>
<br />
With a renewed sense of purpose, the women began to sketch out their ideas, discussing how they could repurpose salvaged materials, create a heating system, and design a space that would bring a semblance of normalcy to their lives.
<br /><br />
They continued their conversation for a while as you stood behind and listened to everything. After a moment, one of them turned around and noticed you were behind. The other girls also turned and asked if you liked the idea and if you were ready to do it.
<br /><br />
<<link "Anything for you, girls">>
<<notify 6s>>Bathhouse available in workbench!<</notify>>
<<goto 'Wood cabin'>>
<</link>>
<<link "I'll think about it">>
<<notify 6s>>Bathhouse available in workbench!<</notify>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">GUESTHOUSE</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/event_common_capital.webp']]
</center>
<br /><br />
<<set _persons = setup.getAvailablePersons18yo($guests)[0]>>
<<set _randomPersons = setup.getRandomPersons(_persons, 2)>>
<<set
_randomPerson1Id = _randomPersons[0],
_randomPerson2Id = _randomPersons[1]
>>
<<unset $tmpGirlCapture>>
<<set _money = randomInteger(50, 75)>>
<<set _splitMoneyPerPerson = Math.round(_money / 3, 0)>>
<<set _splitMoney = _money - _splitMoneyPerPerson * 2>>
<strong><<=$guests[_randomPerson1Id].name>></strong> and <strong><<=$guests[_randomPerson2Id].name>></strong> are arguing and fighting over a rusty metal box which lays on the ground between them.<br />
They both claim ownership over the coins inside; one for finding the box, and the other for getting the lock open.
There are <strong class="iitem"><<=_money>></strong> caps inside, enough to considerably help the entire colony if needed.
<br /><br />
<div id="option1">
<<set _linkName = 'Interview ' + $guests[_randomPerson1Id].name>>
<<linkreplace `_linkName`>>
<<set $guestId = _randomPerson1Id>>
<<run delete $slaveId>>
<<run delete $charId>>
<<set $tmpGirl = $guests[_randomPerson1Id]>>
<<capture $tmpGirl>>
<<include 'NPC info'>>
<</capture>>
<</linkreplace>>
</div>
<div id="option2">
<<set _linkName = 'Interview ' + $guests[_randomPerson2Id].name>>
<<linkreplace `_linkName`>>
<<set $guestId = _randomPerson2Id>>
<<set $tmpGirl = $guests[_randomPerson2Id]>>
<<capture $tmpGirl>>
<<include 'NPC info'>>
<</capture>>
<</linkreplace>>
</div>
<<linkreplace 'Render judgment'>>
<br />
You've decided.
<br /><br />
<<set _linkName = 'Give box to ' + $guests[_randomPerson1Id].name>>
<<link `_linkName`>>
<<set $guests[_randomPerson1Id].relationship = Math.min($guests[_randomPerson1Id].relationship + 10, 100)>>
<<set $guests[_randomPerson2Id].relationship -= 20>>
<<goto 'Guest house'>>
<</link>>
<<linkdesc>>
+10 relationship <<=$guests[_randomPerson1Id].name>>; -20 relationship <<=$guests[_randomPerson2Id].name>>
<</linkdesc>>
<<set _linkName = 'Give box to ' + $guests[_randomPerson2Id].name>>
<<link `_linkName`>>
<<set $guests[_randomPerson2Id].relationship = Math.min($guests[_randomPerson2Id].relationship + 10, 100)>>
<<set $guests[_randomPerson1Id].relationship -= 20>>
<<goto 'Guest house'>>
<</link>>
<<linkdesc>>
+10 relationship <<=$guests[_randomPerson2Id].name>>; -20 relationship <<=$guests[_randomPerson1Id].name>>
<</linkdesc>>
<<link 'Split between them'>>
<<set $guests[_randomPerson2Id].relationship -= 5>>
<<set $guests[_randomPerson1Id].relationship -= 5>>
<<goto 'Guest house'>>
<</link>>
<<linkdesc>>
-5 relationship
<</linkdesc>>
<<link 'Split between you three'>>
<<set $guests[_randomPerson2Id].relationship -= 10>>
<<set $guests[_randomPerson1Id].relationship -= 10>>
<<set $player.money += _splitMoney>>
<<goto 'Guest house'>>
<</link>>
<<linkdesc>>
+<<=_splitMoney>> caps; -10 relationship
<</linkdesc>>
<<link 'Keep them to yourself'>>
<<set $guests[_randomPerson2Id].relationship -= 20>>
<<set $guests[_randomPerson1Id].relationship -= 20>>
<<set $player.money += _money>>
<<goto 'Guest house'>>
<</link>>
<<linkdesc>>
+<<=_money>> caps; -20 relationship
<</linkdesc>>
<</linkreplace>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
<<set _kidNpc = {gender: either(0, 1)}>>
<center>
<<image 'places/cabin/kid_stealing_food.jpg'>>
</center>
<br /><br />
You hear noise coming from a place where you've stored some food, and decide to cautiously investigate its source. The door to the room is ajar and the sounds keep getting louder and louder as you approach - something's definitely here. To your surprise, as you carefully take a peak in between the door's gap, you see a small child in front of you. <<=setup.pronounceWhat(_kidNpc, true)>> immediately spots you peering through the doorway, a fearful look in <<=setup.pronounceWhos(_kidNpc)>> eyes.
Abandoning stealth and swinging open the door, you see that they're holding a few pieces of food in their gaunt hands.
<br /><br />
<<set _foodGive = Math.min(setup.cabinInventory.count('food'), 5)>>
<<set _linkTell = 'Tell ' + setup.pronounceWho(_kidNpc) + ' to take as much as ' + setup.pronounceWhat(_kidNpc) + ' likes'>>
<<set _linkThrow = 'Throw ' + setup.pronounceWho(_kidNpc) + ' out.'>>
<<if _foodGive>>
<div id="option_food">
<<linkreplace _linkTell>>
<<run $('#option1_desc, #option2, #option_invite').hide()>>
<<run setup.cabinInventory.drop('food', _foodGive)>>
<strong>You've lost <<=_foodGive>> food.</strong>
<br /><br />
A wide smile bursts onto the child's face as <<=setup.pronounceWhat(_kidNpc)>> exclaims, <strong>"Thank you so much mister!"</strong> <<=setup.pronounceWhat(_kidNpc, true)>> takes some more food, before quickly darting out of the building and disappearing into the nearby forest.
<br /><br />
<<link 'Leave'>>
<<set $player.goodwill++>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<div id="option1_desc">
<<linkdesc>>
-<<=_foodGive>> food
<</linkdesc>>
</div>
</div>
<</if>>
<<if ($game.location.nursery ?? false)>>
<div id="option_invite">
<<linkreplace 'Invite to live in your settlement'>>
<<run $('#option2, #option_food').hide()>>
<<if _kidNpc.gender === 0>>
<<newgirl>>
<<set _kid = $tmpGirl>>
<<else>>
<<newguy>>
<<set _kid = $tmpGuy>>
<</if>>
<<set _kid.birthDate = setup.getBirthDate(randomInteger(7, 13))>>
<<set _kid = setup.setToVirgin(_kid)>>
<<run delete _kid.piercedBoobs>>
<<set _kid.relationship = randomInteger(40, 70)>>
<<run $nursery.push(_kid)>>
A wide smile bursts onto the child's face as <<=setup.pronounceWhat(_kidNpc)>> exclaims, <strong>"Thank you so much mister! I would like that!"</strong>. <<=setup.pronounceWhat(_kidNpc, true)>> puts down the food <<=setup.pronounceWhat(_kidNpc)>> was trying to steal, and you show <<=setup.pronounceWho(_kidNpc)>> a place where <<=setup.pronounceWhat(_kidNpc)>> can sleep.
<br /><br />
<<link 'Leave'>>
<<set $player.goodwill += 2>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<div id="option2">
<<link _linkThrow>>
<<set $player.goodwill -= 5>>
<<goto 'Wood cabin'>>
<</link>>
</div><<if [0,2].includes($tmpGirl.gender)>>
<<set _portrait = '/people/anongirl.png'>>
<<else>>
<<set _portrait = '/people/anonguy.png'>>
<</if>>
<br />
<<if setup.percentageChance(setup.sexChance($tmpGirl))>>
<<if $tmpGirl.washedBathhouse>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*pauses, sniffs in the direction of the bathhouse, then makes a small, deflecting sound and shifts back the way she came — she's done for today*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Sorry, I will have to decline. I already was in bathhouse today. Maybe some other time
<</sayNpc>>
<</if>>
<<else>>
<<set _isOk = true>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*tilts her head toward the bathhouse and moves in that direction without hesitation, glancing back at you once*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Oh, I like where this is going. Lead the way.
<</sayNpc>>
<</if>>
<</if>>
<<else>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*takes a step back, not hostile, just firm — a quiet, direct refusal*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Sorry, I wouldn't be comfortable there together with you.
<</sayNpc>>
<</if>>
<</if>>
<br /><br />
<<if _isOk>>
<<link 'Go to the shower'>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'shower'>>
<<fuck $tmpGirl>>
<</link>>
<</if>>
<<link 'Back'>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<</if>>
<</link>><h1 class="ptitle"><<=$game.cabinName ?? ''>></h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/horse_merchant.jpg']]
</center>
<br /><br />
As you approach the village gate, you encounter a stranger standing next to a colorful caravan filled with beautiful horses. He introduces himself as Barnaby, the Horse Traveling Merchant. Barnaby explains that he's passing through the area and offers a selection of horses for sale. He also mentions that he's a skilled horse trainer and takes great care of his animals...<br /><br />
<<anonguy>>
Would you want to buy a horse?
<</anonguy>>
<br /><br />
<div id="option1">
<<linkreplace 'Yes'>>
With excitement, Barnaby shows the traveler various horses and tells that one horse costs <strong class="iitem">400 caps</strong>
<br /><br />
<<if $player.money >= 400>>
<<linkreplace 'Buy horse'>>
<<run $('#option2').hide()>>
<<run $('#option1_desc').hide()>>
<<set $player.money -= 400>>
What you will call your horse? <<textbox "_tmpHorseName" 'Bullet'>>
<br /><br />
<<link 'Leave'>>
<<set $player.horse = _tmpHorseName>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<div id="option1_desc">
<<linkdesc>>-400 caps<</linkdesc>>
</div>
<</if>>
<</linkreplace>>
</div>
<div id="option2">
<<linkreplace 'No'>>
<<run $('#option1').hide()>>
With a gracious smile, Barnaby nodded understandingly, accepting the traveler's decision.
<br /><br />
<<anonguy>>
No worries at all. If you ever change your mind I'll probably come and check on you again
<</anonguy>>
<br /><br />
With that, the traveler continued on his way, leaving you and your beautiful horses behind.
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">KITCHEN</h1>
<br /><br />
<<video 'kitchen/stuck1'>>
<br /><br />
Entering the kitchen, you see <<=setup.displayName($tmpGirl)>>. She's pulling something by the sink. You decide to ask if everything is okay, to which she replies that her hand is stuck while cleaning the drain.
<br /><br />
<<sayNpc $tmpGirl>>
Could you help me please?
<</sayNpc>>
<br />
<div id="option_help">
<<link 'Help her'>>
<<run $('#option_fun, #option_help').hide()>>
<<run $('#option_end').show()>>
<<set $player.goodwill++>>
<</link>>
</div>
<div id="option_fun">
<<linkreplace 'Have some fun'>>
<<set _hadFun = true>>
<<addmins 30>>
<<run $('#option_help').hide()>>
<<video 'kitchen/stuck2'>>
<br /><br />
<<sayNpc $tmpGirl>>
Really? You think this is the right time? Ohh... god...
<</sayNpc>>
<br />
<<video 'kitchen/stuck3'>>
<br /><br />
As you grab her top and pull it, one of her breasts falls out swings as you fuck her tight pussy. She's clearly enjoying it as she doesn't resist in any way.
<br /><br />
<<linkreplace 'Cum'>>
<<video 'kitchen/stuck4'>>
<br /><br />
You pull out and cum all over her back as she finally manages to get her hand out of the drain. Cum drops from her back on the ground.
<<horny_reset>>
<<run $('#option_end').show()>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="option_end" style="display:none;">
<center>
<<image 'places/kitchen/stuck.jpg'>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> manages to pull out the trapped arm, and she sighs in relief.
<br /><br />
<<sayNpc $tmpGirl>>
Thanks... I guess...
<</sayNpc>>
<br />
<<link 'Leave'>>
<<unset $tmpEvent>>
<<goto 'Kitchen-room'>>
<</link>>
</div><h1 class="ptitle">KITCHEN</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/event_rotten_food.jpg']]
</center>
<<set _persons = setup.getPersonsForLocation($guests, 'garden')>>
<<if _persons.length>>
<<set _randomPerson = _persons[Math.floor(Math.random()*_persons.length)]>>
<<set _person = $guests[_randomPerson]>>
<<else>>
<<set _persons = setup.getPersonsForLocation($slaves, 'garden')>>
<<set _randomPerson = _persons[Math.floor(Math.random()*_persons.length)]>>
<<set _person = $slaves[_randomPerson]>>
<</if>>
<br /><br />
A weary <strong><<=setup.displayName(_person)>></strong> reports grave news. Some of the food rations appear to have gone bad. Somebody had forgotten to shield them properly, allowing bugs to get into the containers.
<br /><br />
<<set _rottenPercentage = ($game.location.freezer && setup.baseManagement.electricity.hasElectricity()) ? 10 : 20>>
<<set _countFood = $backpack.count('food')>>
<<set _foodOutBackpack = Math.round( (1.0 * _rottenPercentage / 100) * _countFood, 0)>>
<<set _countFood = $storage.count('food')>>
<<set _foodOutStorage = Math.round( (1.0 * _rottenPercentage / 100) * _countFood, 0)>>
<<set _foodOut = _foodOutBackpack + _foodOutStorage>>
Bickering about whose fault the situation quickly evolves into a different discussion, as the hungry guests begin to argue if they can afford to throw away precious food, even if a little past its prime.
<br /><br />
<<link 'Throw the food out'>>
<<drop $backpack 'food' _foodOutBackpack>>
<<drop $storage 'food' _foodOutStorage>>
<<goto 'Kitchen-room'>>
<</link>>
<<linkdesc>>
Throw <<=_foodOut>> food out
<</linkdesc>>
<<link 'Keep the food'>>
<<if setup.percentageChance(50)>>
<<set $game.foodRotten = true>>
<</if>>
<<goto 'Kitchen-room'>>
<</link>>
<<linkdesc>>
Chance that your guests or slaves will get ill from food poisoning
<</linkdesc>>
<<set $game.rotten_rations_day = $game.day>><h1 class="ptitle">SETTLEMENT</h1>
<br /><br />
<<set _horseRideMapping = {
1: 'The girl turned around on the back of the horse, facing you, and sensually began to kiss you and pull off her blouse.',
2: 'Girl kisses our chest and in a matter of seconds your dick is already in her mouth',
3: 'You slowly pull her on you and push her wet pussy onto your hard dick',
4: 'She spreads her legs and takes the lead',
5: 'She turns around and you cum on her firm ass as she keeps rubbing it against your dick',
}>>
<<set _videoName = '/settlement/horse_ride' + ($horseRideAction ?? 1)>>
<<video `_videoName`>>
<<if $horseRideAction !== 5>>
<<horny 15>>
<</if>>
<br /><br />
<<= _horseRideMapping[($horseRideAction ?? 1)]>>
<br /><br />
<<if $horseRideAction !== 5>>
<<link 'Blowjob'>>
<<addmins 10>>
<<set $horseRideAction = 2>>
<<goto `passage()`>>
<</link>>
<<link 'Fuck her'>>
<<addmins 10>>
<<set $horseRideAction = 3>>
<<goto `passage()`>>
<</link>>
<<link 'Let her ride you'>>
<<addmins 10>>
<<set $horseRideAction = 4>>
<<goto `passage()`>>
<</link>>
<<if $player.horny >= 100>>
<<link 'Cum'>>
<<addmins 5>>
<<set $horseRideAction = 5>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<</if>>
<</if>>
<<if $horseRideAction === 5>>
<<link 'Leave'>>
<<unset $horseRideAction>>
<<goto 'Settlement'>>
<</link>>
<</if>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
On the first floor, you hear some murmuring and knocking noises. There are also voices audible, one a woman's, the other a man's.
<<if $guests.length > 0>>
And you're almost certain that they don't belong to a guest you're hosting.
<<else>>
You're supposed to be alone. There's almost certainly an intruder in your cabin.
<</if>>
<br /><br />
You decide to check the first floor.
<br /><br />
As you reach the lower level, the faint sound of clinking catches your attention. Your heart races as you creep towards the source of the noise, your worn-out boots barely making a sound on the debris-strewn floor. Through a cracked doorway, you glimpse a flicker of movement.
<br /><br />
<<video 'cabin/uninvited_couple1'>>
<br /><br />
Peering around the corner, your eyes widen at the sight: a couple, their tattered clothing and gaunt faces reflecting the harshness of their lives. They were rifling through the stash of canned food you had managed to scavenge over time. Your fists clenched instinctively, anger and desperation surging within you.
<br /><br />
The sound was enough to alert the couple.
<br /><br />
<strong>They try to explain that they hadn't eaten for several days and they had no choice but to try to find some food here. They are so desperately hungry that they can't think properly or stand on their feet anymore.</strong>
<br /><br />
<<set _foodOptions = [$storage.count('food'), $backpack.count('food'), 20]>>
<<set _foodGive = Math.min.apply(null, _foodOptions.filter(Boolean))>>
<div id="option1">
<<linkreplace 'Offer them food if you can fuck the girl'>>
<<set $player.goodwill-->>
<<run $('#option1_desc, #option2, #option3').hide()>>
<<if $backpack.count('food') >= _foodGive>>
<<drop $backpack 'food' _foodGive>>
<<else>>
<<drop $storage 'food' _foodGive>>
<</if>>
<<run $('#option2').hide()>>
<<anongirl>>
Fuck you! Who do you think you are?!
<</anongirl>>
<br /><br />
<<anonguy>>
Babe...
<</anonguy>>
<br /><br />
<<video 'cabin/uninvited_couple2'>>
<br /><br />
<<anongirl>>
Okay... I'll do it. But don't expect me to be happy about it...
<</anongirl>>
<br /><br />
<<linkreplace 'Tell her to undress'>>
<<video 'cabin/uninvited_couple3'>>
<br /><br />
She starts undressing while her man is knelt down and gathering all the food cans, not even attempting to look at her.
<br /><br />
<div id="option3">
<<linkreplace 'Tell her to suck you'>>
<<set _sucked = true>>
<<video 'cabin/uninvited_couple4'>>
<br /><br />
You sit down in the chair, and the girl kneels down. She looks at her man one last time, who with a broad smile on his face, can't stop watching the cans of food he's gathered. The girl's gaze becomes mocking, and she seems intent on making him feel uncomfortable, starting to enthusiastically suck on your dick while looking at you.
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Fuck her'>>
<<if !_sucked>>
<<run $('#option3').hide()>>
<</if>>
<<video 'cabin/uninvited_couple5'>>
<br /><br />
She reclines on her side on the carpet, facing her man who still hasn't even looked in your direction. You slowly slide your dick into her, and she unexpectedly tenses up and then relaxes. She's no longer concerned about what her man is doing; she's completely surrendered to you.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<video 'cabin/uninvited_couple6'>>
<br /><br />
You cum right inside her, and she enjoys every drop of you. She continues to moan while your sperm leaks out of her wet pussy.
<br /><br />
<<anonguy>>
Hey, what the hell?! Babe! How could you allow that? We should leave.
<</anonguy>>
<br /><br />
<<link 'Escort them outside'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<linkdesc 'option1_desc'>>
-<<=_foodGive>> food
<</linkdesc>>
</div>
<div id="option2">
<<linkreplace 'Give them food and tell them to get lost'>>
<<set $player.goodwill++>>
<<run $('#option2_desc, #option1, #option3').hide()>>
<<if $backpack.count('food') >= _foodGive>>
<<drop $backpack 'food' _foodGive>>
<<else>>
<<drop $storage 'food' _foodGive>>
<</if>>
<center>
[img[setup.ImagePath+'places/cabin/uninvited_couple.jpg']]
</center>
<br /><br />
<<anongirl>>
Really? Thank you so much!!
<</anongirl>>
<br /><br />
Both the man and the woman wear a grateful smile on their faces. They quickly pack the food into their bags as if fearing you might change your mind.
<br /><br />
<<link 'Escort them outside'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<<linkdesc 'option2_desc'>>
-<<=_foodGive>> food
<</linkdesc>>
</div>
<div id="option3">
<<link 'Fight them'>>
<<generateEnemies 1 1>>
<<fight $enemies 'Wood cabin' 'Wood cabin' true>>
<</link>>
</div><h1 class="ptitle">SHOWER</h1>
<br /><br />
<<set _npc = $guests[$tmpEvent.id]>>
With a slow turn of the doorknob, you push the door ajar, revealing the silhouette of <<=setup.displayName(_npc)>> standing under the feeble stream of water.
Droplets cascade down her body, and her expression shifts from surprise to a sheepish smile as she notices your presence.
<br /><br />
<<video 'shower/taken1'>>
<br /><br />
<<sayNpc _npc>>
Sorry for not asking permission. I owe you one.
<</sayNpc>>
<br />
Her voice carrying a hint of warmth and sincerity. Her eyes meet yours, reflecting a mix of exhaustion and gratitude
<br /><br />
<<linkreplace 'How about now?'>>
She giggles as she pulls curtains aside and fully shows her naked body.
<br /><br />
<<sayNpc _npc>>
So fast? Aren't you impatient one.
<</sayNpc>>
<br /><br />
<<video 'shower/taken2'>>
<br /><br />
She drops on her knees and unzips your pants, takes out your dick and strokes it before sucking it in her mouth.
<br />
She looks straight in your eyes with a smile on her face before she goes down to your balls and licks them too.
<br /><br />
<<sayNpc _npc>>
Ah, whatever... Fuck me!
<</sayNpc>>
<br />
She turns around and lifts her leg as you prepare to slide your dick into her wet pussy.
<br /><br />
<<if _npc.virgin>>
<<run setup.npc.addHistory($guests[$tmpEvent.id], 'virgin_lost', { with: 'mc' })>>
<<set $guests[$tmpEvent.id].virgin = false>>
<strong>
<<=setup.displayName(_npc)>> lost her virginity!
</strong>
<br /><br />
<</if>>
<<video 'shower/taken3'>>
<br /><br />
She grabs the shower curtains and firmly clings to them, pulling them as she lets out a loud moan.
<br />
She looks at you as you fuck her pussy while holding curtains with one hand and you with another.
<br /><br />
<<sayNpc _npc>>
Don't spare me.
<</sayNpc>>
<br />
<<video 'shower/taken5'>>
<br /><br />
She releases your hand and grabs the faucet when you pick up the pace, starting to fuck her faster and stronger. Her moans are getting louder.
<br /><br />
<<sayNpc _npc>>
Just don't cum inside. I want you all on my ass or back.
<</sayNpc>>
<br />
<<linkreplace 'Cum inside her'>>
<<addmins 30>>
<<video 'shower/taken4'>>
<br /><br />
You grab her by waist and pull her as close as you can to yourself before cumming inside her. At first she doesn't understand that and looks at you with a smile on her face but as soon as she notices
that you didn't pull out she gets annoyed and stomps out of the shower half naked.
<br /><br />
<<sayNpc _npc>>
Really? Even after I asked you not to?
<</sayNpc>>
<<horny_reset>>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<</if>>
<br />
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<addmins 30>>
<<goto 'Wood cabin'>>
<</link>><<link 'Attack them'>>
<<generateEnemies _enemyGuyCount _enemyGirlCount _enemyGuyCount>>
<<fight $enemies 'Event - Raider prisoner - check' 'Event: Base attack - lost' false _guards>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
<<newgirl>>
<<set _randomGuests = setup.getAvailablePersons18yo($guests)>>
<<set _speakerPool = ((_randomGuests[0] ?? []).concat(_randomGuests[2] ?? [])).filter(function(i) {
var g = $guests[i];
return !(g.traits ?? []).includes('feral') &&
(g.likesGuys ?? true) &&
(!($player?.baseManagement?.noIncest ?? false) || !setup.family.isIncest($player, g)) &&
((g.traits ?? []).includes('masochist') || (g.traits ?? []).includes('sadistic') || g.assignedTo === 'guard');
})>>
<<if !_speakerPool.length>><<set _speakerPool = ((_randomGuests[0] ?? []).concat(_randomGuests[2] ?? [])).filter(function(i) { return !($guests[i].traits ?? []).includes('feral'); })>><</if>>
<<if !_speakerPool.length>><<set _speakerPool = (_randomGuests[0] ?? _randomGuests[2] ?? [])>><</if>>
<<set _speakerIdx = setup.getRandomElement(_speakerPool)>>
<<set _speakerNpc = $guests[_speakerIdx]>>
As you come out of your room in the morning, one of your guests comes running towards you, loudly saying that one of your guards managed to catch a woman in the morning light who was trying to enter the resource room. He was able to apprehend her, and she is currently tied up behind the house. You decide to go and see what is really happening there.
<br /><br />
<<video 'cabin/intruder_caught1'>>
<br /><br />
Just as you have circled around the house and come into her line of sight, she starts screaming hysterically. Fear is visible in her eyes, but you can't understand what she's saying because there's something dirty shoved into her mouth. Her screams are so loud that you're starting to get annoyed.
<br /><br />
<div id="option-slap">
<<linkreplace 'Slap her'>>
<<video 'cabin/intruder_caught2'>>
<br /><br />
You havedown and slapped her across the face. Instantly, she falls silent and just quietly watches you, waiting to see what you will do next.
<br /><br />
<<if recall($suppCode)>>
<<linkreplace 'Fuck her'>>
<<set _intruderFucked = true>>
<<run $('#option-slave, #option-release').hide()>>
<<video 'cabin/intruder_caught4'>>
<br /><br />
You lean in to look into her eyes and remove the dirty cloth from her mouth. Meanwhile, <<=setup.displayName(_speakerNpc)>> notices you and decides to approach. Upon arrival, she starts laughing and flirtatiously says to you that she also wants to join in or at least watch and that you should start with her delicious mouth.
<br /><br />
<<linkreplace 'Fuck her mouth'>>
<<video 'cabin/intruder_caught3'>>
<br /><br />
While you untie your pants, <<=setup.displayName(_speakerNpc)>> rips open girl's blouse and giggles as she stand behind her, holding her hair so she can't move her head.
<br />
You shove your dick inside the helpless girl and make her gag on your cock.
<br /><br />
<<say _speakerNpc.name setup.ImagePath+'/people/anongirl.png'>>
I got an idea. Tie me too. I want to feel like her. Helpless. I want to watch as close as I can.
<</say>>
<br />
<<linkreplace 'Tie them both and bring them inside'>>
At <<=setup.displayName(_speakerNpc)>>'s request, you tie her up as well, and you lead them into your room. <<=setup.displayName(_speakerNpc)>> lies down next to the girl with a wide smile, as she watchines other girl being thrown into the bed in the doggy position.
<br /><br />
<<video 'cabin/intruder_caught5'>>
<br /><br />
You gently slide your dick inside intruders pussy but instead of taking it slow, you just start to pound her already wet pussy as fast and deep as you can. <<=setup.displayName(_speakerNpc)>> just watches and moans together with the girl as she fantasies being in her place.
<br /><br />
<<video 'cabin/intruder_caught6'>>
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<run $('#option-slave, #option-release').show()>>
<center>
[img[setup.ImagePath+'places/cabin/intruder_cum.webp']]
</center>
<br /><br />
Her legs start trembling, and after a moment, you pull out and cum your warm cum all over her back as her hands are tied behind her back and she tries to push you away from her.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Fuck her
<<notPatreonIcon>>
</div>
<</if>>
<</linkreplace>>
</div>
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit>>
<div id="option-slave">
<<link 'Enslave her'>>
<<set $tmpGirl.capture = false>>
<<set $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured', { reason: 'intruder' })>>
<<goto 'Basement'>>
<<statsAdd 'people_captured'>>
<</link>>
</div>
<</if>>
<div id="option-release">
<<linkreplace 'Release her'>>
<<if !_intruderFucked>>
<<run $('#option-slap').hide()>>
<<set $player.reputation++>>
<<set $player.goodwill-->>
<</if>>
<<run $('#option-slave').hide()>>
<center>
[img[setup.ImagePath+'places/cabin/intruder_release.gif']]
</center>
<br /><br />
You untie the girl and with tears in her eyes, she quietly mouths a thank you. She hesitates, saying that you will never see her again and she's very sorry.
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">FIRE PLACE</h1>
<br />
<<set _availFemales = setup.getAvailablePersons18yo($guests)[0] ?? []>>
<<set _chatPool = _availFemales.filter(function(i) { return !($guests[i].traits ?? []).includes('feral'); })>>
<<if !_chatPool.length>><<set _chatPool = _availFemales>><</if>>
<<set _npcKey = setup.getRandomElement(_chatPool)>>
<<set _npc = $guests[_npcKey]>>
The night air was cool and crisp as you strolled through the settlement. The soft glow of scattered lanterns illuminated the narrow paths, casting a warm hue on the wooden structures. The sounds of laughter and distant conversations filled the air, creating a comforting ambiance.
As you rounded a corner, you noticed a solitary figure sitting by the flickering flames of the central fireplace.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/fireplace_evening_chat.jpg']]
</center>
<br />
<<linkreplace 'Approach her'>>
Curiosity tugged at you, and you decided to approach to find <<=setup.displayName(_npc)>>, one of the girls from your community, gazing into the dancing flames.
Her expression seemed distant, lost in thought. You decided to join her, settling down on the rough-hewn log beside her.
<br /><br />
<<linkreplace 'Join her'>>
<<set _npc.relationship += 10>>
<<set _npc.happy += 10>>
<<you>>
<<=_npc.name>>, mind if I join you?
<</you>>
<br />
<<sayNpc _npc>>
Oh, it's you. Sure, have a seat.
<</sayNpc>>
<br />
The crackling of the fire filled the silence for a moment before you spoke again.
<br /><br />
<<you>>
What brings you out here all alone? The night is beautiful, but it's not often I see someone sitting here by themselves.
<</you>>
<br />
<<sayNpc _npc>>
Just needed some time alone, you know? It's been a long day, and I needed to clear my head.
<</sayNpc>>
<br />
You nodded, understanding the need for solitude in a bustling community. She hesitated for a moment before she continued.
<br /><br />
<<sayNpc _npc>>
It's a bit of everything, really. The challenges we face, the uncertainties. Sometimes it feels overwhelming.
<</sayNpc>>
<br />
You sat in companionable silence for a while, both lost in your thoughts. The flames danced, casting shadows that seemed to mimic the complexities of your lives.
<br /><br />
As you continued to sit by the fireplace, your conversation turned to lighter topics, and the night seemed a little less daunting with the warmth of camaraderie.
The settlement around you continued to buzz with life, and you couldn't help but feel a sense of unity as you faced the challenges of your shared journey together.
<br /><br />
<<linkreplace 'Invite her to spend night with you'>>
<<if setup.sexChance(_npc)>>
<<run $('#option_leave').hide()>>
<<sayNpc _npc>>
Sure, why not? It sounds like a nice way to end the night.
<</sayNpc>>
<br />
Together, you walked towards your dwelling, the night air crisp around you. Inside, the soft glow of a single lantern illuminated the room, casting a warm ambiance.
You settled into the cozy space, the flickering light creating dancing shadows on the walls.
<br /><br />
<<link 'Fuck'>>
<<set $tmpGirl = _npc>>
<<set $guestId = _npcKey>>
<<unset $charId, $slaveId>>
<<fuck _npc>>
<<set $tmpGirlViewBack = 'Sleep eval'>>
<<set $tmpGirlBack = 'Sleep eval'>>
<</link>>
<<else>>
<<sayNpc _npc>>
Sorry but I'll have to decline.
<</sayNpc>>
<br />
With a small smile, she bid you goodnight and made her way towards her dwelling. Left alone by the fireplace, you watched as she disappeared into the darkness, realizing that everyone had their own ways of finding solace and comfort during challenging times.
As the night progressed, you decided to take a moment for reflection before eventually heading to bed yourself, grateful for the bonds that held your settlement together.
<br />
<</if>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<div id="option_leave">
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
</div><h1 class="ptitle">FIRE PLACE</h1>
<br />
<<set _randomGuests = setup.getRandomPersonIds($guests, 6)>>
<<set _npc1 = $guests[_randomGuests[0]]>>
<<set _npc2 = $guests[_randomGuests[1]]>>
<<set _npc3 = $guests[_randomGuests[2]]>>
As you walked past the flickering fire, a brilliant streak of light caught your eye. At first, you thought it was just another shooting star in the post-apocalyptic sky, a fleeting sparkle of cosmic wonder amidst the chaos of your world. But then, the light multiplied, fragmenting into smaller pieces that rained down in a mesmerizing display of celestial chaos.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/falling_satellite.jpg']]
</center>
<br /><br />
You tilted your head back, squinting against the glare, trying to make sense of what you were seeing.
<br /><br />
<<you>>
Hey, look up!
<</you>>
<br />
You called out to the others gathered around the fire, their faces etched with weariness from another day of survival.
<br /><br />
As more fragments streaked across the sky, leaving glowing trails of debris in their wake, a sense of wonder and apprehension mingled in the air. The fire crackled softly, a counterpoint to the celestial spectacle unfolding above you.
<br /><br />
<<sayNpc _npc2>>
It's beautiful.
<</sayNpc>>
<br />
As more fragments streaked across the sky, leaving glowing trails of debris in their wake, a sense of wonder and apprehension mingled in the air.
The fire crackled softly, a counterpoint to the celestial spectacle unfolding above you.
<br /><br />
<<sayNpc _npc1>>
Oh that's another satellite.
<</sayNpc>>
<br />
<<sayNpc _npc3>>
We used to send those things up there, thinking we could conquer the heavens.
<</sayNpc>>
<br />
You stood there in silence for a while, watching as the remnants of human ambition burned bright in the night sky, a poignant reminder of a world that once was. And as the last glimmers faded into the darkness, you returned to the warmth of the fire, grateful for the simple comfort of companionship amid the ruins of your past.
<br /><br />
<<for _randomGuestI, _randomGuestId range _randomGuests>>
<<set _happyInc = randomInteger(7, 15)>>
<div>
<strong><<=setup.displayName($guests[_randomGuestId])>> happiness increased by <<=_happyInc>></strong>
<<set $guests[_randomGuestId].happy += _happyInc>>
</div>
<</for>>
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
The faint yet rhythmic sound of banging resonates through the stillness, cutting through the eerie quiet and sending a shiver up your spine.
Gripping your weapon instinctively, you make your way to the gate.
There, beyond the sturdy wooden barricade and barbed wire, stands a young couple, their weary faces framed by the grime of the road, desperation,
and hope etched deeply into their expressions. In the woman’s arms, bundled in layers of cloth, is a kid, perhaps only a few years old, its face barely visible but serene,
oblivious to the harsh world it’s been born into.
<br /><br />
<center>
<<image 'places/cabin/new_settlers1.jpg'>>
</center>
<br />
You carefully approach, your presence stiffening the couple. The man, his voice trembling with both exhaustion and resolve, speaks first
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
We heard about your settlement. We've been on the road for months, trying to survive with... with her.
<</sayNpc>>
<br />
He nods toward the baby.
<br /><br />
<<sayNpc $tmpGuy>>
We don't ask for charity. We'll gather our own wood, hunt or scavenge for food. We only ask for protection—at least, a place where she can grow up safe from raiders and beasts.
<</sayNpc>>
<br />
The woman, her face shadowed with fatigue, joins in, her eyes pleading
<br /><br />
<<newgirl>>
<<sayNpc $tmpGirl>>
We can pay. Whatever tax you set, we'll manage it. Just… please. We need a chance, somewhere we don't have to sleep with one eye open.
<</sayNpc>>
<br />
The wind carries the scent of dirt, sweat, and the faintest tang of fear. You assess them closely.
They appear able-bodied and resourceful, though weary. With the harsh times approaching, the risk of taking on new people is daunting, yet a kid among them adds a layer of gravity.
A reminder of a time long past, when family and community meant something, even in the darkest times.
<br /><br />
Looking back at them, you take a deep breath, weighing the cost of rejecting them against the possible strain they might bring. Finally, you speak.
<br /><br />
<div id="option_stay">
<<linkreplace 'Let them stay as settlers'>>
<<set $player.quests.first_settlers = true>>
<<set $player.baseManagement ??= {}>>
<<set $player.baseManagement.settlers = ($player.baseManagement.settlers ?? 0) + 3>>
<<set $player.baseManagement.settlersFemales = ($player.baseManagement.settlersFemales ?? 0) + 1>>
<<run $('#option_away').hide()>>
<<you>>
All right. But here, every settler has responsibilities.
You'll gather your own supplies, as you've promised.
In return, you'll contribute to the settlement in both labor and resources, whatever tax we set.
<</you>>
<br />
Their faces soften with a mixture of relief and gratitude. The man nods quickly, reaching for your hand with a grip that speaks of survival, of a man ready to build a life from the ground up, no matter how hard it may be.
The woman’s tired smile as she holds her child a little closer is a spark of hope, fragile yet burning in the dark.
<br /><br />
<<sayNpc $tmpGirl>>
Thank you so much!
<</sayNpc>>
<br />
<div style="font-size: 17pt; color: white; font-weight: bold">
You got your first settlers!
</div>
<br /><br />
You lead them down the worn path through the heart of the settlement, the dirt packed hard from footsteps.
The air feels a little warmer here, sheltered from the cold and open wilds beyond the walls, and the young couple relaxes just a fraction as they realize they've made it.
The kid stirs in its mother’s arms, letting out a soft coo that brings a faint, tired smile to her lips.
<br /><br />
<center>
<<image 'places/cabin/new_settlers2.jpg'>>
</center>
<br /><br />
Finally, you arrive at one of the empty houses. The roof, though patched in places, holds strong, and the door swings open with a soft creak.
Dust hangs in the air, disturbed as they step inside, and though the place is bare, it's shelter—a gift of unimaginable value in these times.
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_away">
<<linkreplace 'Tell them to go away'>>
<<run $('#option_stay').hide()>>
<<you>>
I'm sorry. I can't take on any more settlers. This world… it's not kind to the weak, and I can't risk the safety of everyone here by adding another family.
<</you>>
<br />
The woman's grip on the baby tightens, her face a mixture of exhaustion and silent resignation.
She nods once, biting back whatever words were forming on her lips.
Slowly, they turn to leave, their figures already shrouded in the mist as they trudge away, the faint sound of their footsteps swallowed by the quiet landscape.
You watch them disappear, knowing you may never see them again.
<br /><br />
<<link 'Go back'>>
<<set $player.quests.first_settlers_day = $game.day>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">FOREST</h1>
<br />
<<set _peopleWorking = setup.getPersonsForLocation($guests, 'forest')>>
<<set _randomPeople = setup.shuffling(_peopleWorking)>>
<<set _victim = $guests[_randomPeople[0]]>>
<<set _npc = $guests[_randomPeople[1]]>>
<<set _helpers = []>>
<<for _i = 1; _i < _randomPeople.length; _i++>>
<<run _helpers.push($guests[_randomPeople[_i]])>>
<</for>>
<<set _pronWhat = setup.pronounceWhat(_victim, true)>>
<<set _pronWho = setup.pronounceWho(_victim)>>
The dim light of dawn filters through the makeshift windows of your camp as you go over the daily plans with your small team.
The air carries a slight chill, a reminder of the ever-present uncertainty of this new world. Suddenly, the sound of hurried footsteps echoes through the camp.
You look up to see one of the forest workers, sweat dripping from his brow and eyes wide with panic, rushing toward you.
<br /><br />
<<sayNpc _npc>>
You gotta come quick! It's <<=setup.displayName(_victim)>>! <<=_pronWhat>>'s been crushed by a tree! _pronWhat's stuck and we can't get <<=_pronWho>> out!
<</sayNpc>>
<br />
The <<=setup.displayName(_npc)>> leads you through the thick underbrush, past the remnants of a once-thriving forest now scarred by the apocalypse.
Your mind races with possible scenarios and solutions. You need to assess the situation quickly and act even faster.
<br /><br />
<center>
[img[setup.ImagePath+'places/forest/fallen_tree.jpg']]
</center>
<br /><br />
You reach the site, and there lies <<=setup.displayName(_victim)>>, trapped beneath a massive fallen tree. <<=_pronWhat>>'s conscious but in visible pain, <<=setup.pronounceWhos(_victim)>> chest pinned awkwardly under the heavy trunk.
The other workers are gathered around, their faces etched with concern and helplessness.
<br /><br />
<<sayNpc _npc>>
If we have enough axes we can try to get <<=_pronWho>> out!
<</sayNpc>>
<br />
<<if setup.cabinNpcInv.count('axe', _helpers) >= 5>>
/* < <if setup.cabinInventory.count('axe') > 5> > */
<<set _linkName = 'Help ' + _pronWho>>
<div id="option_help">
<<linkreplace _linkName>>
<<set _tryHelp = true>>
<<run setup.cabinInventory.drop('axe', 5)>>
<<run $('#option_look').hide()>>
Your team members scramble to grab their tools.
The air is thick with urgency as you race back to the site where <<=setup.displayName(_victim)>> lies pinned beneath the massive tree.
<<=setup.pronounceWhos(_victim, true)>> face is pale, sweat beading on <<=setup.pronounceWhos(_victim)>> forehead, but <<=setup.pronounceWhat(_victim)>>'s still conscious.
<br /><br />
<<addmins 30>>
Finally, with a mighty crack, the tree splits.
<br /><br />
<strong class="iitem">You broke 5 axes</strong>
/* <<run setup.cabinInventory.drop('axe', 5)>> **/
<<run setup.cabinNpcInv.drop('axe', 5, _helpers)>>
<br /><br />
<<you>>
Everyone, lift!
<</you>>
<br />
Together, you and the team heave, using every bit of strength to shift the massive trunk just enough to free <<=setup.displayName(_victim)>>.
<br />
You rush <<=_pronWho>> back to the camp with broken bones.
<<set _victim.sick = {
days: 30,
desc: 'Broken bones',
id: 'broken_bones'
}>>
<<run $('#option_leave').show()>>
<br /><br />
<</linkreplace>>
</div>
<</if>>
<<set _linkName = 'Look at ' + _pronWho + ' helplessly'>>
<div id="option_look">
<<linkreplace _linkName>>
<<run $('#option_help').hide()>>
<<=setup.displayName(_victim)>>'s breathing becomes more labored, and you notice <<=setup.pronounceWhos(_victim)>> grip on your hand weakening. Panic starts to seep into your determination.
<br /><br />
<<you>>
<<=setup.displayName(_victim)>>, no! Hold on!
<</you>>
<br />
You shout, but it's too late. <<=setup.pronounceWhos(_victim, true)>> eyes close, <<=setup.pronounceWhos(_victim)>> chest rises and falls one last time, and then <<=_pronWhat>>'s gone.
<<guestRemove _randomPeople[0]>>
<br /><br />
A heavy silence falls over the group. The sound of axes stops as everyone realizes the horrifying truth. <<=setup.displayName(_victim)>> is dead.
<br /><br />
<<run $('#option_leave').show()>>
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
</div><h1 class="ptitle">FOREST</h1>
<br />
<<set _kidnapped = $guests[$forestKidnapEvent]>>
<<if !_kidnapped>>
<<set $forestKidnapEvent = null>>
<<goto 'Wood cabin'>>
<</if>>
<<newguy>>
<<set $tmpGuy.name = 'Worker'>>
<center>
<<image 'places/forest/forest_kidnapper.jpg' sfw>>
</center>
<br />
One of the other forest workers came back at dawn, breathing hard. Two men — not scavengers, too deliberate for that. They'd pulled <<=setup.displayName(_kidnapped)>> off the logging path while she was working alone at the far end of the site. It happened fast. She didn't have time to shout.
<br /><br />
<<sayNpc $tmpGuy>>
I couldn't do anything. There were two of them and they had knives. I'm sorry.
<</sayNpc>>
<br />
They had maybe a six-hour head start. If you move now, you might still find the trail.
<br /><br />
<div id="fke_rescue">
<<link 'Go after them'>>
<<goto 'Forest - kidnapper rescue'>>
<</link>>
</div>
<div id="fke_ignore">
<<linkreplace 'Leave it'>>
<<run $('#fke_rescue').hide()>>
<<if setup.percentageChance(35)>>
<<=setup.displayName(_kidnapped)>> made it back on her own four days later. Exhausted, barely talking, but alive. Whatever happened in those four days she kept to herself.
<br /><br />
<<set _kidnapped.happy = Math.max((_kidnapped.happy ?? 0) - 30, -100)>>
<<set _kidnapped.relationship = Math.max((_kidnapped.relationship ?? 0) - 25, -100)>>
<<set _kidnapped.sick = {days: randomInteger(5, 10), desc: 'Exhausted and injured', id: 'exhaustion'}>>
<<if _kidnapped.virgin>><<run setup.npc.addHistory(_kidnapped, 'virgin_lost')>><</if>>
<<set _kidnapped.virgin = false>>
<<set _kidnapped.sexStats ??= {}>>
<<set _kidnapped.sexStats.pussy = (_kidnapped.sexStats.pussy ?? 0) + randomInteger(3, 8)>>
<<set _kidnapped.sexStats.bj = (_kidnapped.sexStats.bj ?? 0) + randomInteger(2, 5)>>
<<if setup.pregnancyChance(_kidnapped)>>
<<set _kidnapped.pregnancy = 0>>
<<set _kidnapped.pregnancy_father = 'unknown'>>
<</if>>
<strong>(<<=setup.displayName(_kidnapped)>>: Happy −30, Relationship −25, sick <<=_kidnapped.sick.days>> days)</strong>
<<else>>
<<=setup.displayName(_kidnapped)>> never came back.
<<guestRemove $forestKidnapEvent>>
<</if>>
<<set $forestKidnapEvent = null>>
<br /><br />
<<link 'Continue'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">FOREST</h1>
<br />
<<set _kidnapped = $guests[$forestKidnapEvent]>>
<<set _kidnappedName = _kidnapped.name>>
<center>
<<image 'places/forest/forest_kidnapper_lost.jpg' sfw>>
</center>
<br />
They were better than they looked. You took a knife across the ribs and had to pull back before they finished the job. By the time you cleared the treeline, they were already moving deeper into the forest with her.
You didn't find them again.
<br /><br />
<<set $player.energy = Math.max(($player.energy ?? 0) - 30, 0)>>
<<guestRemove $forestKidnapEvent>>
<<set $forestKidnapEvent = null>>
<strong>(You were injured: −30 energy. <<=_kidnappedName>> was taken.)</strong>
<br /><br />
<<link 'Head back'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br />
<<set _kidnapped = $guests[$forestKidnapEvent]>>
<center>
<<image 'places/forest/forest_kidnapper_won.jpg' sfw>>
</center>
<br />
They're down. You moved to the post and cut her loose. She didn't say anything for a long time — just stood there, breathing. Her hands were shaking but her jaw was set.
Then she nodded and followed you back without a word.
<br /><br />
<<set _kidnapped.relationship = Math.max((_kidnapped.relationship ?? 0) + 15, -100)>>
<<set _kidnapped.happy = Math.max((_kidnapped.happy ?? 0) - 15, -100)>>
<<set _kidnapped.sick = {days: randomInteger(2, 5), desc: 'Shaken and bruised', id: 'exhaustion'}>>
<<set $forestKidnapEvent = null>>
<strong>(<<=setup.displayName(_kidnapped)>>: Relationship +15, Happy −15, sick <<=_kidnapped.sick.days>> days)</strong>
<br /><br />
<<link 'Take her home'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br />
<<set _kidnapped = $guests[$forestKidnapEvent]>>
<<newguy>>
<<set $tmpGuy.name = 'Kidnapper'>>
<center>
<<image 'places/forest/forest_kidnapper_rescue.jpg' sfw>>
</center>
<br />
The trail wasn't hard to follow — they hadn't expected anyone to come after them. You moved fast, cutting through the undergrowth, and found them maybe two miles in at an old lean-to shelter. Three men. <<=setup.displayName(_kidnapped)>> was tied to one of the posts. She saw you through the gap in the wall before they did.
<br /><br />
<<addhours 3>>
<<if $backpack.has('revolver') || $backpack.has('shotgun')>>
<div id="fkr_gun">
<<linkreplace 'Step into the clearing'>>
<<if setup.percentageChance(70)>>
You stepped into the clearing with the weapon already up. They took one look and ran — no argument, no hesitation. Some men know when they've lost before it starts.
<br /><br />
You cut <<=setup.displayName(_kidnapped)>> loose. She didn't say anything for a while. Just stood there, breathing. Then she nodded and followed you back.
<br /><br />
<<set _kidnapped.relationship = Math.max((_kidnapped.relationship ?? 0) + 15, -100)>>
<<set _kidnapped.happy = Math.max((_kidnapped.happy ?? 0) - 15, -100)>>
<<set _kidnapped.sick = {days: randomInteger(2, 5), desc: 'Shaken and bruised', id: 'exhaustion'}>>
<<set $forestKidnapEvent = null>>
<strong>(<<=setup.displayName(_kidnapped)>>: Relationship +15, Happy −15, sick <<=_kidnapped.sick.days>> days)</strong>
<br /><br />
<<link 'Take her home'>>
<<goto 'Wood cabin'>>
<</link>>
<<else>>
None of them moved. The closest one kept his eyes on the barrel, knife already in hand.
<br /><br />
<<sayNpc $tmpGuy>>
You won't shoot. Not over some girl.
<</sayNpc>>
<br />
He was wrong about that.
<br /><br />
<<link 'Fight them'>>
<<generateEnemies 3>>
<<fight $enemies 'Forest - kidnapper rescue won' 'Forest - kidnapper rescue lost'>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<<else>>
<div id="fkr_move">
<<linkreplace 'Move in'>>
All three turned as you stepped into the clearing — knives already drawn, no hesitation. They'd done this before.
<br /><br />
<<link 'Fight them'>>
<<generateEnemies 3>>
<<fight $enemies 'Forest - kidnapper rescue won' 'Forest - kidnapper rescue lost'>>
<</link>>
<</linkreplace>>
</div>
<</if>><h1 class="ptitle">FOREST</h1>
<br />
<<set _tollNpc = $guests[$forestTollEvent.npcIndex]>>
<<set _amount = $forestTollEvent.amount>>
<<newguy>>
<<set $tmpGuy.name = 'Stranger'>>
<center>
<<image 'places/forest/forest_toll_demand.jpg' sfw>>
</center>
<br />
The message came through <<=setup.displayName(_tollNpc)>>. A man she passed on the path out — armed, unhurried. Polite about it, which somehow made it worse.
<br /><br />
<<sayNpc $tmpGuy>>
<<=_amount>> caps. Weekly. Your workers move through my stretch of forest without trouble. Miss a payment... accidents start happening. Trees fall funny out here.
<</sayNpc>>
<br />
He didn't give a name. Just said he'd know if you paid.
<br /><br />
<div id="ftd_pay">
<<linkreplace 'Pay the <<=_amount>> caps'>>
<<run $('#ftd_refuse').hide()>>
<<if $player.money >= _amount>>
<<set $player.money -= _amount>>
You left the caps at the treeline the next morning. No sign of the man, no acknowledgement — just the money gone by midday. Your workers moved through without incident after that. For now.
<br /><br />
<<set $forestTollEvent = null>>
<strong>−<<=_amount>> caps</strong>
<br /><br />
<<link 'Continue'>>
<<goto 'Wood cabin'>>
<</link>>
<<else>>
You don't have enough caps.
<</if>>
<</linkreplace>>
</div>
<div id="ftd_refuse">
<<linkreplace 'Refuse'>>
<<run $('#ftd_pay').hide()>>
You sent word back that you don't pay. Three days later, <<=setup.displayName(_tollNpc)>> came back from the forest with a split lip and two broken fingers. Her haul was gone. The point had been made.
<br /><br />
<<set _tollNpc.sick = {days: randomInteger(4, 8), desc: 'Beaten up', id: 'bruised'}>>
<<set _tollNpc.happy = Math.max((_tollNpc.happy ?? 0) - 20, -100)>>
<<set _tollNpc.relationship = Math.max((_tollNpc.relationship ?? 0) - 10, -100)>>
<<set $forestTollEvent.refused = true>>
<strong>(<<=setup.displayName(_tollNpc)>>: Happy −20, Relationship −10, sick <<=_tollNpc.sick.days>> days)</strong>
<br /><br />
<div id="ftd_hunt"><<linkreplace 'Hunt them down'>>
<<run $('#ftd_letgo').hide()>>
<<set $forestTollEvent = null>>
<<goto 'Forest - toll retaliation'>>
<</linkreplace>></div>
<div id="ftd_letgo"><<linkreplace 'Let it go'>>
<<run $('#ftd_hunt').hide()>>
<<set $forestTollEvent = null>>
You swallow it. For now.
<br /><br />
<<link 'Continue'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>></div>
<</linkreplace>>
</div><h1 class="ptitle">FOREST</h1>
<br />
He knew this ground better than you did. You got back to your feet eventually, alone — he was already gone, camp abandoned. He'll know you came for him, at least. Maybe that's enough for now.
<br /><br />
<<perkAdd 'beaten'>>
<strong>Beaten perk added.</strong>
<br /><br />
<<link 'Head back'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br />
<<set _tollKilled = ($prevFight.killedEnemies ?? []).length > 0>>
<<set _tollCaptured = ($prevFight.defeatedEnemies ?? []).some(e => e.captured)>>
<<set _recovered = randomInteger(15, 35)>>
<<set $player.money += _recovered>>
<<set $player.reputation += 5>>
You take the caps off the crate before you leave — not all of them, just what seems right.
<br /><br />
<<if _tollKilled>>
He won't be collecting from anyone's stretch again.
<<elseif _tollCaptured>>
You hauled him to his feet and started back through the trees. He didn't argue. Didn't have the strength for it.
<<else>>
He was still breathing when you walked away. He'd know better than to come back.
<</if>>
<br /><br />
<strong>+<<=_recovered>> caps recovered. Reputation +5.</strong>
<br /><br />
<<link 'Head back'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br />
<<energy -30>>
<<addmins 90>>
You spend the better part of a day in the trees, following the path your workers use. No sign of him at first — just the usual sounds, the usual shadows. Then you catch it: smoke from a camp set back off the trail, barely visible through the undergrowth.
<br /><br />
<center>
<<image 'places/forest/forest_toll_retaliation.jpg' sfw>>
</center>
<br />
There's one man. He's sitting on a crate, counting caps — not yours, but someone's. He hasn't heard you yet.
<br /><br />
<<link 'Confront him'>>
<<generateEnemies 1>>
<<fight $enemies 'Forest - toll retaliation won' 'Forest - toll retaliation lost'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/forest/wolves.jpg' ]]
</center>
<br /><br />
<<set _npc = $guests[$scavengingDidntReturn]>>
You push deeper into the treeline, following broken branches and scattered tools — clear signs of a struggle. Then you hear it: low growling, and beneath it, a weak human voice.
You break into a clearing and find <<=setup.displayName(_npc)>> backed against a fallen log, bleeding from the arm, with three wolves circling slowly. One lunges and <<=setup.pronounceWhat(_npc)>>'s barely keeping it off with a branch.
<br /><br />
<<linkreplace 'Fight the wolves'>>
<<set _fightChance = 35>>
<<set _fightChance += ($player.strength >= 30 ? 30 : 0)>>
<<set _fightChance += ($backpack.has('knife') ? 20 : 0)>>
<<if setup.percentageChance(_fightChance)>>
You charge in screaming, driving them back one by one. Two break and run — you drag the third off <<=setup.displayName(_npc)>> and land enough blows to send it limping into the trees.
<br /><br />
<<set _npc.sick = {
days: randomInteger(4, 10),
desc: 'Wolf bites',
id: 'animal_wounds'
}>>
<<=setup.displayName(_npc)>> is bleeding badly but alive. You pull <<=setup.pronounceWho(_npc)>> to <<=setup.pronounceWhos(_npc)>> feet.
<br /><br />
<<link 'Head home'>>
<<unset $scavengingDidntReturn>>
<<goto 'Wood cabin'>>
<</link>>
<<else>>
You rush in but there are too many. One lunges at your arm, another goes for your leg. You take a bad bite before managing to back away, leaving <<=setup.displayName(_npc)>> behind.
<br /><br />
<<set $player.health = Math.max(1, ($player.health ?? 100) - randomInteger(10, 25))>>
<<link 'Retreat'>>
<<guestRemove $scavengingDidntReturn>>
<<unset $scavengingDidntReturn>>
<<goto 'Wood cabin'>>
<</link>>
<</if>>
<</linkreplace>>
<<if ($backpack.has('revolver') && $backpack.has('bullet_revolver')) || ($backpack.has('shotgun') && $backpack.has('shotgun_shell'))>>
<<link 'Fire a warning shot'>>
<<if $backpack.has('revolver') && $backpack.has('bullet_revolver')>>
<<drop $backpack 'bullet_revolver' 1>>
<<else>>
<<drop $backpack 'shotgun_shell' 1>>
<</if>>
<<set _npc.sick = {
days: randomInteger(4, 8),
desc: 'Wolf bites',
id: 'animal_wounds'
}>>
The gunshot cracks through the air and the wolves scatter instantly into the undergrowth.
<br /><br />
<<=setup.displayName(_npc)>> collapses to the ground in exhaustion. <<=setup.pronounceWhat(_npc, true)>>'s bleeding, but alive. You help <<=setup.pronounceWho(_npc)>> up and start the walk back.
<br /><br />
<<link 'Head home'>>
<<unset $scavengingDidntReturn>>
<<goto 'Wood cabin'>>
<</link>>
<</link>>
<</if>>
<<link 'Leave'>>
<<guestRemove $scavengingDidntReturn>>
<<unset $scavengingDidntReturn>>
<<goto 'Wood cabin'>>
<</link>><<if $characters.blair.quests?.gate>>
<<goto 'Blair - gate done'>>
<<else>>
<h1 class="ptitle">CABIN</h1>
<br />
<<addhours 10>>
<center>
[img[setup.ImagePath+'places/cabin/gate_finished.jpg']]
</center>
<br /><br />
The gate stands tall at the settlement entrance. It already feels more like a real home.
<br /><br />
What will you call this place?
<br /><br />
<<textbox "_gateName" 'Cabin'>>
<br /><br />
<<link 'Continue with flag'>>
<<set $game.cabinName = _gateName>>
<<set $player.quests.gateDoneDay = $game.date>>
<<goto 'Gate - done flag'>>
<</link>>
<</if>><h1 class="ptitle"><<cabinName>></h1>
<br />
<div id="flag_choose" style="display: flex; justify-content: center">
<div class="flag_choose_item">
[img[setup.ImagePath+'game/misc/flag/bg_red.png']]
<<link 'Choose'>>
<<set $game.flagBg = 'red'>>
<<goto 'Gate - done flag'>>
<</link>>
</div>
<div class="flag_choose_item">
[img[setup.ImagePath+'game/misc/flag/bg_blue.png']]
<<link 'Choose'>>
<<set $game.flagBg = 'blue'>>
<<goto 'Gate - done flag'>>
<</link>>
</div>
<div class="flag_choose_item">
[img[setup.ImagePath+'game/misc/flag/bg_green.png']]
<<link 'Choose'>>
<<set $game.flagBg = 'green'>>
<<goto 'Gate - done flag'>>
<</link>>
</div>
</div>
<div id="icon_choose" style="display: flex; justify-content: center">
<div class="flag_icon_choose_item">
[img[setup.ImagePath+'game/misc/flag/icon_1.png']]
<<link 'Choose'>>
<<set $game.flagIcon = 1>>
<<goto 'Gate - done flag'>>
<</link>>
</div>
<div class="flag_icon_choose_item">
[img[setup.ImagePath+'game/misc/flag/icon_2.png']]
<<link 'Choose'>>
<<set $game.flagIcon = 2>>
<<goto 'Gate - done flag'>>
<</link>>
</div>
<div class="flag_icon_choose_item">
[img[setup.ImagePath+'game/misc/flag/icon_3.png']]
<<link 'Choose'>>
<<set $game.flagIcon = 3>>
<<goto 'Gate - done flag'>>
<</link>>
</div>
</div>
<<if $game.flagIcon && $game.flagBg>>
<div style="display: flex; justify-content: center; text-align: center;">
<div>
Result
<br />
<<flag>>
</div>
</div>
<br /><br />
<<link 'Continue'>>
<<goto 'Gate - done finish'>>
<</link>>
<</if>>
<style>
.flag_choose_item {
margin: 0px 30px;
}
.flag_icon_choose_item {
width: 102px;
margin: 0 53px;
}
</style><h1 class="ptitle"><<cabinName>></h1>
<br />
<br />
You look out at the gate and the settlement beyond it. People are going about their day, and for the first time it genuinely feels like a place worth defending.
<br /><br />
<<link 'Go to sleep'>>
<<set $game.showFlag = true>>
<<goto 'Sleep eval'>>
<</link>><h1 class="ptitle">GREENHOUSE</h1>
<br /><br />
<center>
<<image 'places/greenhouse/event_big_pumpkin.jpg' 'sfw'>>
</center>
<<set _eventNpc = $guests[$tmpEvent.guestId]>>
<br /><br />
As you enter the garden the familiar scent of earth and thriving plants washes over you.
You find <<=setup.displayName(_eventNpc)>> you've come to know as an expert gardener, her hands gently tending to the vibrant foliage.
<br /><br />
<<sayNpc _eventNpc>>
Good day! I have a little surprise for you. Look, it's huge!
<</sayNpc>>
<br />
There, you see it – the extraordinary pumpkin, the result of her careful tending in your own garden. It sits proudly, dwarfing its companions in both size and vibrancy, a testament to her skill.
<br /><br />
<<pickup $backpack 'food' 10>>
Collected additional <strong class="iitem">10 food</strong>
<br /><br />
<<if recall($suppCode)>>
<<linkreplace 'How about you carve that pumpkin'>>
<<addmins 15>>
<<sayNpc _eventNpc>>
Heh, might work good as decoration and increase people mood maybe. I like your idea!
<</sayNpc>>
<br />
She immediately gets to work and after 15 minutes the pumpkin is carved and she puts it on her head as a joke.
<br /><br />
<center>
<<image 'places/greenhouse/event_big_pumpkin2.jpg' 'sfw'>>
</center>
<br /><br />
<<sayNpc _eventNpc>>
Ha ha! Are you scared yet?
<</sayNpc>>
<br /><br />
<<linkreplace 'Take off your pants and use her mouth'>>
<<video 'greenhouse/pumpkin1'>>
<br /><br />
You notice a smirk on her face as she drops on her knees and lets you slide your cock through carved pumpkin mouth right into hers.
After few deep thrusts you leave it inside and she takes the lead by licking it playfully.
<br /><br />
<<sayNpc _eventNpc>>
Can you please lie down?
<</sayNpc>>
<br />
You lie down on the ground and <<=setup.displayName(_eventNpc)>> step over you with one leg. You look at her pussy from below.
<br />
She slowly starts to squat until she bumps into your dick.
<br /><br />
<<video 'greenhouse/pumpkin2'>>
<br /><br />
You grab your dick and adjust it a bit right before pushing it deep inside her moist pussy and instantly speeding up catching her by surprise.
<br />
She grabs the table right behind you to get a balance.
<br /><br />
<<sayNpc _eventNpc>>
Oh, fuck this. I want to see you!
<</sayNpc>>
<br />
She takes off pumpkin and drops it on the ground right before she gets on the table and spreads her legs for you.
<br /><br />
<<video 'greenhouse/pumpkin3'>>
<br /><br />
You grab her by legs and pull her towards the table edge and then you slowly enter her pussy. She instantly moans while looking at you.
<br />
Her leg starts to shake a little bit so she tries to gently bite her knee to calm it down.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
<<image 'places/settlement/rodger_bottles_eve_cum.webp'>>
</center>
<br /><br />
You push her legs together and turn her to side before cumming inside her pussy. With last pulse your dick slips out and you manage to get your cum on her pussy from outside too.
<br /><br />
<<if setup.pregnancyChance(_eventNpc)>>
<<set _eventNpc.pregnancy_father = 'mc'>>
<<set _eventNpc.pregnancy = 0>>
<</if>>
<<if _eventNpc.virgin>><<run setup.npc.addHistory(_eventNpc, 'virgin_lost', { with: 'mc' })>><</if>>
<<set _eventNpc.virgin = false>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
How about you carve that pumpkin
<<notPatreonIcon>>
</div>
<</if>>
<<link 'Leave'>>
<<run delete $tmpEvent>>
<<goto 'Wood cabin'>>
<</link>><<addmins 5>>
<<set _girlVisual = $tmpGirl>>
<h1 class="ptitle">GREENHOUSE</h1>
<br /><br />
You could feel her body trembling with anticipation as you slowly lifted the fabric, revealing her underwear underneath.
<br /><br />
<<video 'greenhouse/grope2'>>
<br /><br />
<<=setup.displayName($tmpGirl)>> let out a soft moan, her eyes never leaving yours as you took in the sight of her.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*holds your gaze with dark, steady eyes, her lips parting slightly, her hips pressing back into your hand*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Like what you see?
<</sayNpc>>
<</if>>
<br />
You nodded, your cock already hard and throbbing with need. <<=setup.displayName($tmpGirl)>> smirked, her hips pressing back against your hand.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*says nothing. She drops to her knees, her eyes still locked on yours, her hands finding your pants with quick, certain fingers*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Good. Because I have a feeling you're going to like what comes next even more.
<</sayNpc>>
<</if>>
<br />
As you began to pull down her skirt, <<=setup.displayName($tmpGirl)>> suddenly dropped to her knees, her eyes locked onto yours.
She reached out, her hands deftly undoing your pants and pulling out your cock.
You were already hard, and she wasted no time, her mouth wrapping around you with a fierce intensity.
<br /><br />
<<video 'greenhouse/grope3'>>
<br /><br />
Her tongue swirled around the head of your cock, her lips creating a tight seal as she took you deeper and deeper into her mouth.
<br /><br />
<<linkreplace 'Fuck her'>>
<<addmins 20>>
<<set _girlVisual = $tmpGirl>>
<<if $tmpGirl.virgin>><<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $tmpGirl.virgin = false>>
With that, she stood up, her body glistening with sweat as she turned around and bent over the worktable.
Her ass was in the air, her pussy exposed and inviting. You didn't need any more encouragement.
You positioned yourself behind her, your cock brushing against her entrance.
<br /><br />
<<video 'greenhouse/grope4'>>
<br /><br />
And with that, you obliged, your hips slamming against hers as you buried your cock deep inside her.
<<=setup.displayName($tmpGirl)>> let out a loud cry, her body arching against yours as she took every inch of you.
<br /><br />
<<video 'greenhouse/grope5'>>
<br /><br />
You started to move, your hips thrusting against hers as you fucked her with a raw, brutal intensity.
The sound of your flesh slapping together filled the greenhouse, a primal, rhythmic beat that matched the pounding of your hearts.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*slams her hips back into you with a sharp, insistent rhythm, her knuckles whitening against the worktable, demanding more without a word*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Harder. Fuck me harder!
<</sayNpc>>
<</if>>
<br />
Before you could react, she turned around and pushed you back onto a nearby stack of crates.
She straddled you, her legs spreading wide as she lowered herself onto your cock.
You let out a groan as she took you deep inside her, her pussy enveloping you with a tight, wet heat.
<br /><br />
<<video 'greenhouse/grope6'>>
<br /><br />
<<=setup.displayName($tmpGirl)>> began to move, her hips rolling in a slow, deliberate rhythm as she rode you.
But it didn't take long for her to pick up the pace, her movements becoming more urgent, more demanding.
She was taking what she wanted, her body moving with a wild, primal rhythm as she rode you harder and faster.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*digs her fingers into your thighs and pulls you deeper, her breath coming in short, frantic bursts, her whole body urging you not to stop*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Don't stop. Fuck me harder.
<</sayNpc>>
<</if>>
<br />
You obliged, your cock still hard and throbbing with need. You turned around, positioning yourself between her legs as she lay back on the worktable.
She wrapped her legs around your waist, pulling you closer as you entered her once again.
<br /><br />
<<video 'greenhouse/grope7'>>
<br /><br />
Your hips slamming against hers as you fucked her with a raw, brutal intensity.
<<=setup.displayName($tmpGirl)>>'s moans filled the greenhouse, her body arching against yours as she met your thrusts with her own.
The sound of your flesh slapping together echoed off the walls, a primal, rhythmic beat that matched the pounding of your hearts.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*arches her back sharply, pulling away just enough to press herself flat against the table, her whole body trembling and open — offering herself completely*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Cum on me! I want to feel it on my skin.
<</sayNpc>>
<</if>>
<br />
<<linkreplace 'Cum on her'>>
<<horny_reset>>
<<set _girlVisual = $tmpGirl>>
<<set $tmpGirl.horny = 0>>
<<video 'greenhouse/grope8'>>
<br /><br />
With a final, desperate thrust, you came, your cock pulsing as you spilled your seed onto her chest.
<<=setup.displayName($tmpGirl)>> let out a low moan, her eyes closing in ecstasy as she felt the warm liquid hit her skin.
She reached up, her fingers spreading your cum across her chest, a satisfied smirk playing on her lips.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*shudders at the warmth hitting her skin, her fingers spreading it slowly across her chest, her eyes half-closed and satisfied*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Fuck, that was hot
<</sayNpc>>
<</if>>
<br />
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto 'NPC view'>>
<</if>>
<</link>><<set _girl2 = $guests.filter(npc => npc.id !== $tmpGirl.id && npc.gender === 0 && (npc.likesGuys ?? true) && npc.horny >= 50 && npc.race === 'white' && (!($player?.baseManagement?.noIncest ?? false) || !setup.family.isBloodToMC(npc)))[0]>>
<<if !_girl2>>
<<goto 'Grope - fuck'>>
<</if>>
<h1 class="ptitle">GREENHOUSE</h1>
<<addmins 30>>
<<energy -10>>
<br />
She glanced over her shoulder — then turned to face you fully. A quick sweep of the greenhouse, eyes moving between the rows of plants. No one. Her gaze dropped back to yours and she grabbed your collar, walked you backwards into the corner by the potting shelf, and pushed you down into the old wooden chair tucked there.
<br /><br />
<<sayNpc $tmpGirl>>
Don't make a sound.
<</sayNpc>>
<br />
She sank to her knees in front of you and worked your belt open with steady fingers.
<br /><br />
<<linkreplace 'Watch her'>>
<center>
<<video 'greenhouse/horny1'>>
</center>
<br />
She wrapped her lips around your cock and started slow — tongue tracing the underside, eyes half-closed, like she had nowhere else to be. Then the rhythm picked up, her head moving with quiet purpose, one hand braced on your thigh.
<br /><br />
<<you>>
Christ...
<</you>>
<br />
She glanced up at you through her lashes and kept going.
<br /><br />
<<linkreplace 'Let her go deeper'>>
<center>
<<video 'greenhouse/horny2'>>
</center>
<br />
She pressed forward until you felt the back of her throat. A brief gag — then she held there, breathing through her nose, her throat working around you. Her eyes watered slightly at the corners but she didn't pull back.
<br /><br />
You gripped the armrest of the chair. The greenhouse was dead quiet around you, just the drip of the irrigation pipe and the soft sounds she made.
<br /><br />
<<linkreplace 'Look around'>>
<center>
<<video 'greenhouse/horny3'>>
</center>
<br />
A shape in your periphery — movement between the rows. <<=setup.displayName(_girl2)>> stood a few metres back, half-hidden behind a tall climbing plant, arms folded, watching. A slow smirk on her face.
<br /><br />
<<=$tmpGirl.name>> pulled back, a thin thread connecting her lips to the tip of your cock. She caught the look on your face and followed your eyes. Her cheeks went scarlet.
<br /><br />
<<sayNpc $tmpGirl>>
She — how long has she been—
<</sayNpc>>
<br />
<<=setup.displayName(_girl2)>> raised an eyebrow. Didn't move. Didn't stop smirking.
<br /><br />
<<linkreplace 'See what she does'>>
<center>
<<video 'greenhouse/horny4'>>
</center>
<br />
She unfolded her arms and walked over unhurried, like she had been invited and was simply fashionably late. She crouched beside <<=$tmpGirl.name>>, shoulder to shoulder, and tilted her chin up at you.
<br /><br />
<<sayNpc _girl2>>
Room for one more?
<</sayNpc>>
<br />
<<=$tmpGirl.name>> opened her mouth, closed it again. Said nothing.
<br /><br />
<<linkreplace 'Let her join'>>
<center>
<<video 'greenhouse/horny5'>>
</center>
<br />
<<=setup.displayName(_girl2)>> leaned in and took you into her mouth without ceremony — lips sliding slow and deliberate over the head, tongue pressing flat underneath. <<=$tmpGirl.name>> watched for a moment, then tilted her head and kissed along the shaft beside her, the two of them working in unspoken coordination.
<br /><br />
<<linkreplace 'Pull her back in'>>
<center>
<<video 'greenhouse/horny6'>>
</center>
<br />
Your fingers found <<=$tmpGirl.name>>'s hair. She let herself be guided forward, taking you back into her mouth fully, going deep without hesitation while <<=setup.displayName(_girl2)>> sat back on her heels and watched with quiet attention, one hand resting on <<=$tmpGirl.name>>'s back.
<br /><br />
<<linkreplace 'Stand up'>>
<center>
<<video 'greenhouse/horny7'>>
</center>
<br />
You rose from the chair. Both of them stayed where they were, looking up at you from their knees. <<=$tmpGirl.name>>'s hand wrapped around your cock and began to move — slow, firm, steady — while <<=setup.displayName(_girl2)>> leaned her cheek against your thigh, breath warm, eyes on your face.
<br /><br />
<<sayNpc $tmpGirl>>
Go on then.
<</sayNpc>>
<br />
<<linkreplace 'Cum'>>
<center>
<<video 'greenhouse/horny8'>>
</center>
<br />
<<=setup.displayName(_girl2)>> parted her lips and tilted her chin up. <<=$tmpGirl.name>>'s hand kept its slow rhythm — coaxing, unhurried — until you came. <<=setup.displayName(_girl2)>> caught it on her tongue, swallowed without making a thing of it, then licked her lips and looked sideways at <<=$tmpGirl.name>> with that same unhurried smirk.
<br /><br />
<<=$tmpGirl.name>> let out a breath that was almost a laugh.
<br /><br />
<<sayNpc $tmpGirl>>
Don't get used to it.
<</sayNpc>>
<br />
<<sayNpc _girl2>>
No promises.
<</sayNpc>>
<br />
<<horny_reset>>
<<run setup.jobs.applyJobAct($tmpGirl, 'bj')>>
<<run setup.jobs.applyJobAct(_girl2, 'bj')>>
<<set $tmpGirl.happy = Math.min(($tmpGirl.happy ?? 0) + 5, 100)>>
<<set $tmpGirl.horny = Math.min(($tmpGirl.horny ?? 0) + 15, 90)>>
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<<set _girl2.happy = Math.min((_girl2.happy ?? 0) + 5, 100)>>
<<set _girl2.horny = Math.min((_girl2.horny ?? 0) + 15, 90)>>
<<set _girl2.quests.lastInteractionDay = $game.day>>
<br />
<<link 'Leave'>>
<<if typeof $slaveId !== 'undefined'>><<set $slaves[$slaveId] = $tmpGirl>><<elseif typeof $guestId !== 'undefined'>><<set $guests[$guestId] = $tmpGirl>><</if>>
<<addmins 20>>
<<goto 'Greenhouse'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle">GUESTHOUSE</h1>
<br />
<<addhours 1>>
<<set _npc = $guests[$tmpEvent.id]>>
As you walk inside the guest house, you notice <<=setup.displayName(_npc)>> standing on the porch.
Her hair catches the sunlight, creating a halo around her head, and she seems lost in the beauty of the morning. You approach quietly, not wanting to startle her.
<br /><br />
<<video 'cabin/morning_view1'>>
<br /><br />
<<sayNpc _npc>>
Oh good morning
<</sayNpc>>
<br />
She turns to look at you, a hint of surprise in her eyes before she smiles warmly
<br /><br />
<<sayNpc _npc>>
I couldn't sleep, so I thought I'd come out and enjoy the sunrise. It's been a while since I've seen a morning this peaceful.
<</sayNpc>>
<br />
You sit down next to her, the old wood of the porch creaking under your weight.
<br /><br />
<div id="option_glad">
<<linkreplace "I'm really glad you're here">>
<<set _glad = true>>
<<set _npc.relationship += randomInteger(1, 3)>>
<<set _npc.horny += randomInteger(1, 5)>>
<<sayNpc _npc>>
Oh, thank you!
<</sayNpc>>
<br />
Then she shifts her position and leans over the railing to get a better view, her back to you. The movement is natural, and she seems unaware of the unintended implication.
<br /><br />
<<sayNpc _npc>>
I will probably take a quick shower before I start my day.
<</sayNpc>>
<br />
<center>
[img[setup.ImagePath+'game/misc/shorts_down.webp']]
</center>
<br />
Before you can respond, she reaches down and removes her shorts right in front of you, revealing her red panties. Her actions are nonchalant, as if she’s completely comfortable in your presence.
<br /><br />
<<linkreplace 'Give her a slap'>>
<<run $('#option_go').hide()>>
<<video 'cabin/morning_view2'>>
<br /><br />
<<if _npc.relationship < 40>>
<<set _npc.relationship -= 10>>
<<sayNpc _npc>>
What the hell are you doing?
<</sayNpc>>
<br />
She grabs her shorts from the ground and stomps out.
<br /><br />
<<run $('#option_go').hide()>>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>>
<<else>>
<<=setup.displayName(_npc)>> gasps and then turns to look at you, her eyes sparkling with mischief.
<br /><br />
<<sayNpc _npc>>
Oh, so that's how it is?
<</sayNpc>>
<br />
She steps closer, her eyes locked on yours. She whispers, her voice dripping with a mix of challenge and desire.
<br /><br />
<<sayNpc _npc>>
Well, if you're going to start something, you better be ready to finish it
<</sayNpc>>
<br />
She slides her hand into your pants and takes out your cock.
<br /><br />
<<video 'cabin/morning_view3'>>
<br /><br />
<<sayNpc _npc>>
How about we start day the right way? Huh.
<</sayNpc>>
<br />
She teases, her voice husky as she continues to stroke you, her hand moving with a steady rhythm.
<br /><br />
<<video 'cabin/morning_view4'>>
<br /><br />
She locks the look with you and leans forward towards your dick. Then she slowly puts it in her mouth and starts to suck it. Her tongue moves around your dickhead.
<br /><br />
<<video 'cabin/morning_view5'>>
<br /><br />
Then, with a mischievous smile, she kneels in front of you and presses your cock between her breasts. The sensation is almost too much to bear as she squeezes them together, creating a tight, warm channel.
<br /><br />
<<sayNpc _npc>>
How about this?
<</sayNpc>>
<br />
<<=setup.displayName(_npc)>> increases the pace slightly, her movements becoming more fluid and confident.
The pleasure builds with each stroke, leaving you breathless and yearning for more.
<br />
After a while, she pulls away, her eyes locking onto yours with a knowing smile.
<br /><br />
<<video 'cabin/morning_view6'>>
<br /><br />
Without a word, she leans forward and takes your dick back into her mouth, her tongue expertly swirling around the tip as she begins to suck.
She wraps her hand around your cock and strokes you while continuing to suck you off. He puts a lot of effort in it.
<br /><br />
<<sayNpc _npc>>
Give it to me...
<</sayNpc>>
<br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<video 'cabin/morning_view7'>>
<br /><br />
Feeling the culmination approaching, <<=setup.displayName(_npc)>>'s movements become even more deliberate, her focus unwavering.
You struggle to maintain control, but the sensations overwhelm you. With a shuddering breath, you cum inside her mouth.
<br /><br />
She wraps her lips around the tip of your cock so all of your semen goes right into her mouth.
<br /><br />
<<video 'cabin/morning_view8'>>
<br /><br />
<<sayNpc _npc>>
Can't let you go without cleaning you up
<</sayNpc>>
<br />
She starts to lick rest of your cum off your dick and swollows it all. Her eyes locks with yours as she cleans your dick.
<br /><br />
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<</if>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="option_go">
<<linkreplace 'I should go'>>
<<if !_glad>>
<<run $('#option_glad').hide()>>
<</if>>
<<sayNpc _npc>>
If you need any help, just let me know.
<</sayNpc>>
<br />
With one last look at the peaceful morning, you turn and head back, feeling a renewed sense of hope and determination.
You know that with friends like <<=setup.displayName(_npc)>> by your side, you can face whatever challenges come your way.
<br /><br />
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">GUESTHOUSE</h1>
<br />
<<set $tmpGirl = $guests[$tmpEvent.id]>>
<<actionImage $tmpEvent 'bedroom' 'masturbate'>><<if !setup.percentageChance(setup.sexChance($tmpGirl))>>
<<if $tmpGirl.married && $tmpGirl.family.husband !== 'mc'>>
You know that I am married to someone else. I don't want to do it.
<<elseif !$tmpGirl.likesGuys>>
Sorry, you are not my type, I hope you understand.
<<else>>
I'm not in the mood right now, maybe some other time.
<</if>>
<<elseif $tmpGirl.location === 'church' || $tmpGirl.location === 'hospital' || $tmpGirl.location === 'bathhouse'>>
/* ── Location-filtered threesome pool ── */
<<set _tscLoc = $tmpGirl.location, _tscGuestIdxs = [], _tscSlaveIdxs = [], _tscCharKeys = [], _prospects = 0>>
<<if _tscLoc === 'church'>>
<<for _tscI, _tscNpc range $guests>>
<<if _tscNpc.id !== $tmpGirl.id && setup.getAge(_tscNpc) >= 18 && _tscNpc.assignedTo === 'church' && setup.isAtWork(_tscNpc, $weather)>>
<<run _tscGuestIdxs.push(_tscI)>>
<</if>>
<</for>>
<<for _tscI, _tscNpc range $slaves>>
<<if _tscNpc.id !== $tmpGirl.id && setup.getAge(_tscNpc) >= 18 && _tscNpc.assignedTo === 'church' && setup.isAtWork(_tscNpc, $weather)>>
<<run _tscSlaveIdxs.push(_tscI)>>
<</if>>
<</for>>
<<set _tscCharKeys = (_charactersInLocation['church'] ?? [])>>
<<elseif _tscLoc === 'hospital'>>
<<for _tscI, _tscNpc range $guests>>
<<if _tscNpc.id !== $tmpGirl.id && setup.getAge(_tscNpc) >= 18 && ((_tscNpc.assignedTo === 'hospital' && setup.isAtWork(_tscNpc, $weather)) || typeof _tscNpc.sick !== 'undefined')>>
<<run _tscGuestIdxs.push(_tscI)>>
<</if>>
<</for>>
<<for _tscI, _tscNpc range $slaves>>
<<if _tscNpc.id !== $tmpGirl.id && setup.getAge(_tscNpc) >= 18 && ((_tscNpc.assignedTo === 'hospital' && setup.isAtWork(_tscNpc, $weather)) || typeof _tscNpc.sick !== 'undefined')>>
<<run _tscSlaveIdxs.push(_tscI)>>
<</if>>
<</for>>
<<else>> /* bathhouse */
<<for _tscI, _tscNpc range $guests>>
<<if _tscNpc.id !== $tmpGirl.id && setup.getAge(_tscNpc) >= 18>>
<<set _tscBsd = setup.bathSchedule[_tscNpc.assignedTo]>>
<<if !_tscBsd || timeBetween(_tscBsd.from, _tscBsd.to)>>
<<run _tscGuestIdxs.push(_tscI)>>
<</if>>
<</if>>
<</for>>
<<set _tscCharKeys = (_charactersInLocation['bathhouse'] ?? [])>>
<</if>>
/* Guests */
<<for _tscIdx range _tscGuestIdxs>>
<<capture _tscIdx, _tscLoc>>
<<set _tscG = $guests[_tscIdx]>>
<<if ![0, 1, 2].includes(_tscG.gender)>><<continue>><</if>>
<<set _tscGClass = 'gender-' + setup.genderClass(_tscG)>>
<<set
_tscGYes = (setup.percentageChance(setup.sexChance(_tscG, $tmpGirl.gender, $tmpGirl.beauty)) || setup.percentageChance(setup.sexChance(_tscG, $tmpGirl.gender, $tmpGirl.beauty))),
_tscMYes = (setup.percentageChance(setup.sexChance($tmpGirl, _tscG.gender, _tscG.beauty)) || setup.percentageChance(setup.sexChance($tmpGirl, _tscG.gender, _tscG.beauty))),
_tscPYes = setup.percentageChance(setup.sexChance(_tscG)) || _tscG.gender === 1
>>
<div><span @class="''+_tscGClass+''">
<<if _tscGYes && _tscMYes && _tscPYes && (!_tscG.gender || !$tmpGirl.gender)>>
<<set _prospects++>>
<<link _tscG.name>>
<<dialogclose>>
<<set $guestId2 = _tscIdx, $tmpGirl2 = $guests[_tscIdx]>>
<<unset $charId2, $slaveId2>>
<<if typeof $charId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<unset $slaveId>>
<<elseif typeof $slaveId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<unset $charId>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<</if>>
<<set $tmpGirl2.location = _tscLoc>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</if>>
</span></div>
<</capture>>
<</for>>
/* Slaves */
<<for _tscIdx range _tscSlaveIdxs>>
<<capture _tscIdx, _tscLoc>>
<<set _tscG = $slaves[_tscIdx]>>
<<if ![0, 1, 2].includes(_tscG.gender)>><<continue>><</if>>
<<set _tscGClass = 'gender-' + setup.genderClass(_tscG)>>
<<set
_tscGYes = (setup.percentageChance(setup.sexChance(_tscG, $tmpGirl.gender, $tmpGirl.beauty)) || setup.percentageChance(setup.sexChance(_tscG, $tmpGirl.gender, $tmpGirl.beauty))),
_tscMYes = (setup.percentageChance(setup.sexChance($tmpGirl, _tscG.gender, _tscG.beauty)) || setup.percentageChance(setup.sexChance($tmpGirl, _tscG.gender, _tscG.beauty))),
_tscPYes = setup.percentageChance(setup.sexChance(_tscG)) || _tscG.gender === 1
>>
<div><span @class="''+_tscGClass+''">
<<if _tscGYes && _tscMYes && _tscPYes && (!_tscG.gender || !$tmpGirl.gender)>>
<<set _prospects++>>
<<link _tscG.name>>
<<dialogclose>>
<<set $slaveId2 = _tscIdx, $tmpGirl2 = $slaves[_tscIdx]>>
<<unset $charId2, $guestId2>>
<<if typeof $charId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<unset $slaveId>>
<<elseif typeof $slaveId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<unset $charId>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<</if>>
<<set $tmpGirl2.location = _tscLoc>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</if>>
</span></div>
<</capture>>
<</for>>
/* Characters */
<<for _tscKey range _tscCharKeys>>
<<capture _tscKey, _tscLoc>>
<<set _tscG = $characters[_tscKey]>>
<<if !_tscG || _tscG.id === $tmpGirl.id || setup.getAge(_tscG) < 18 || ![0, 1, 2].includes(_tscG.gender)>><<continue>><</if>>
<<set _tscGClass = 'gender-' + setup.genderClass(_tscG)>>
<<set
_tscGYes = (setup.percentageChance(setup.sexChance(_tscG, $tmpGirl.gender, $tmpGirl.beauty)) || setup.percentageChance(setup.sexChance(_tscG, $tmpGirl.gender, $tmpGirl.beauty))),
_tscMYes = (setup.percentageChance(setup.sexChance($tmpGirl, _tscG.gender, _tscG.beauty)) || setup.percentageChance(setup.sexChance($tmpGirl, _tscG.gender, _tscG.beauty))),
_tscPYes = setup.percentageChance(setup.sexChance(_tscG)) || _tscG.gender === 1
>>
<div><span @class="''+_tscGClass+''">
<<if _tscGYes && _tscMYes && _tscPYes && (!_tscG.gender || !$tmpGirl.gender)>>
<<set _prospects++>>
<<link _tscG.name>>
<<dialogclose>>
<<set $charId2 = _tscKey, $tmpGirl2 = $characters[_tscKey]>>
<<unset $guestId2, $slaveId2>>
<<if typeof $charId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<unset $slaveId>>
<<elseif typeof $slaveId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<unset $charId>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<</if>>
<<set $tmpGirl2.location = _tscLoc>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</if>>
</span></div>
<</capture>>
<</for>>
<<if _prospects == 0>>
I didn't match with anyone, maybe some other time.
<</if>>
<<elseif ($tmpGirl.basementVoluntary ?? false)>>
/* ── Basement pool: slaves ── */
<<set _tscLoc = 'basement', _tscSlaveIdxs = [], _prospects = 0>>
<<for _tscI, _tscNpc range $slaves>>
<<if _tscNpc.id !== $tmpGirl.id && setup.getAge(_tscNpc) >= 18>>
<<run _tscSlaveIdxs.push(_tscI)>>
<</if>>
<</for>>
<<for _tscIdx range _tscSlaveIdxs>>
<<capture _tscIdx, _tscLoc>>
<<set _tscG = $slaves[_tscIdx]>>
<<if ![0, 1, 2].includes(_tscG.gender)>><<continue>><</if>>
<<set _tscGClass = 'gender-' + setup.genderClass(_tscG)>>
<<set
_tscGYes = (setup.percentageChance(setup.sexChance(_tscG, $tmpGirl.gender, $tmpGirl.beauty)) || setup.percentageChance(setup.sexChance(_tscG, $tmpGirl.gender, $tmpGirl.beauty))),
_tscMYes = (setup.percentageChance(setup.sexChance($tmpGirl, _tscG.gender, _tscG.beauty)) || setup.percentageChance(setup.sexChance($tmpGirl, _tscG.gender, _tscG.beauty))),
_tscPYes = setup.percentageChance(setup.sexChance(_tscG)) || _tscG.gender === 1
>>
<div><span @class="''+_tscGClass+''">
<<if _tscGYes && _tscMYes && _tscPYes && (!_tscG.gender || !$tmpGirl.gender)>>
<<set _prospects++>>
<<link _tscG.name>>
<<dialogclose>>
<<set $slaveId2 = _tscIdx, $tmpGirl2 = $slaves[_tscIdx]>>
<<unset $charId2, $guestId2>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<<set $tmpGirl2.location = _tscLoc>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</if>>
</span></div>
<</capture>>
<</for>>
<<if _prospects == 0>>
I didn't match with anyone down here, maybe some other time.
<</if>>
<<else>>
/* ── Default: guesthouse/kitchen pool (unchanged) ── */
<<set
_hornyGuests = setup.propertyMatchIndexes($guests, 'horny', 20, '>='),
_nymphoGuests = setup.propertyMatchIndexes($guests, 'traits', 'nymphomaniac', 'includes'),
_interestedGuests = setup.distinctValues([_hornyGuests, _nymphoGuests]),
_prospects = 0,
_k = setup.propertyMatchIndexes($guests, 'id', $tmpGirl.id)
>>
<<run _interestedGuests.delete(_k)>>
<<if _interestedGuests.length == 0>>
Didn't find anyone interested, maybe some other time.
<<else>>
<<for _i to 0; _i lt _interestedGuests.length; _i++>>
<<capture _i, _j>>
<<set
_guest = $guests[_interestedGuests[_i]],
_genderClass = 'gender-' + setup.genderClass(_guest),
_j = _interestedGuests[_i],
_guestYes = (setup.percentageChance(setup.sexChance(_guest, $tmpGirl.gender, $tmpGirl.beauty)) || setup.percentageChance(setup.sexChance(_guest, $tmpGirl.gender, $tmpGirl.beauty))),
_mainYes = (setup.percentageChance(setup.sexChance($tmpGirl, _guest.gender, _guest.beauty)) || setup.percentageChance(setup.sexChance($tmpGirl, _guest.gender, _guest.beauty))),
_mcYes = setup.percentageChance(setup.sexChance(_guest)) || _guest.gender === 1
>>
<<if setup.getAge(_guest) < 18 || ![0, 1, 2].includes(_guest.gender)>>
<<continue>>
<</if>>
<div>
<span @class="''+_genderClass+''">
<<if (_guestYes && _mainYes && _mcYes && (!_guest.gender || !$tmpGirl.gender))>>
<<set _prospects++>>
<<link _guest.name>>
<<set $locationEvents.guesthouse = true>>
<<dialogclose>>
<<set $guestId2 = _j>>
<<set $tmpGirl2 = $guests[_j]>>
<<if typeof $charId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<unset $slaveId>>
<<elseif typeof $slaveId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<unset $charId>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<</if>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</if>>
</span>
</div>
<</capture>>
<</for>>
<<set _charPool = (_charactersInLocation['guesthouse'] ?? []).concat(_charactersInLocation['kitchen'] ?? [])>>
<<for _charI range _charPool>>
<<capture _charI>>
<<set
_char = $characters[_charI],
_genderClass = 'gender-' + setup.genderClass(_char),
_charYes = (setup.percentageChance(setup.sexChance(_char, $tmpGirl.gender, $tmpGirl.beauty)) || setup.percentageChance(setup.sexChance(_char, $tmpGirl.gender, $tmpGirl.beauty))),
_mainYes = (setup.percentageChance(setup.sexChance($tmpGirl, _char.gender, _char.beauty)) || setup.percentageChance(setup.sexChance($tmpGirl, _char.gender, _char.beauty))),
_mcYes = setup.percentageChance(setup.sexChance(_char)) || _char.gender === 1
>>
<<if setup.getAge(_char) < 18 || ![0, 1, 2].includes(_char.gender)>>
<<continue>>
<</if>>
<div>
<span @class="''+_genderClass+''">
<<if (_charYes && _mainYes && _mcYes && (!_char.gender || !$tmpGirl.gender))>>
<<set _prospects++>>
<<link _char.name>>
<<set $locationEvents.guesthouse = true>>
<<dialogclose>>
<<set $charId2 = _charI>>
<<set $tmpGirl2 = $characters[_charI]>>
<<if typeof $guestId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<<elseif typeof $slaveId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<unset $charId>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<unset $slaveId>>
<</if>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</if>>
</span>
</div>
<</capture>>
<</for>>
<<if _prospects == 0>>
I didn't match with anyone, maybe some othertime.
<</if>>
<</if>>
<</if>>
<br /><br />
<<link 'Back'>>
<<dialogclose>>
<</link>><<set
_hornyGuests = setup.propertyMatchIndexes($guests, 'horny', 20, '>='),
_nymphoGuests = setup.propertyMatchIndexes($guests, 'traits', 'nymphomaniac', 'includes'),
_interestedGuests = setup.distinctValues([_hornyGuests, _nymphoGuests]),
_prospects = 0,
_k = setup.propertyMatchIndexes($guests, 'id', $tmpGirl.id),
_girlsLikingGirls = [],
_girlsLikingGuys = [],
_girlsLikingBoth = [],
_girlsLikingTrans = [],
_girlsLikingAll3 = [],
_guysLikingGirls = [],
_guysLikingGuys = [],
_guysLikingBoth = [],
_guysLikingTrans = [],
_guysLikingAll3 = []
>>
<<run _interestedGuests.delete(_k)>>
<<set _spouseIdxs = []>>
<<if $tmpGirl.married>>
<<set _spouseWantedIds = ($tmpGirl.family?.wives ?? []).concat($tmpGirl.family?.husband ? [$tmpGirl.family.husband] : [])>>
<<for _si, _sg range $guests>>
<<if _spouseWantedIds.includes(_sg.id) && setup.getAge(_sg) >= 18>>
<<run _spouseIdxs.push(_si)>>
<</if>>
<</for>>
<<for _spi range _spouseIdxs>>
<<run _interestedGuests.delete(_spi)>>
<</for>>
<</if>>
<<set _intercedingSpouseIdxs = []>>
<<for _isi range _spouseIdxs>>
<<if random(1, 100) <= setup.intercessionChance($guests[_isi], $weather)>>
<<run _intercedingSpouseIdxs.push(_isi)>>
<</if>>
<</for>>
<<if ($tmpGirl.horny < 20 && !($tmpGirl.traits ?? []).includes('nymphomaniac'))>>
I'm not in the mood, maybe some other time.
<<elseif _interestedGuests.length == 0 && _spouseIdxs.length == 0>>
Didn't find anyone interested, maybe some other time.
<<else>>
<<for _spouseLoopI, _spi range _spouseIdxs>>
<<capture _spouseLoopI, _spi>>
<<set _spouseGuest = $guests[_spi]>>
<<set _spouseGenderClass = 'gender-' + setup.genderClass(_spouseGuest)>>
<div>
<span @class="''+_spouseGenderClass+''">
<<link _spouseGuest.name>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<if ($guests[_spi].gender == 0 && $guests[_k].gender == 0)>>
<<set $tmpEvent = [_spi, _k]>>
<<goto 'Guesthouse [Event] - female on female'>>
<<elseif ($guests[_spi].gender == 0 && $guests[_k].gender == 1)>>
<<set $tmpEvent = {
maleGuestIds: [_k],
femaleGuestIds: [_spi],
isCouple: true
}>>
<<goto 'Guesthouse [Event] - male on female'>>
<<elseif ($guests[_k].gender == 0 && $guests[_spi].gender == 1)>>
<<set $tmpEvent = {
maleGuestIds: [_spi],
femaleGuestIds: [_k],
isCouple: true
}>>
<<goto 'Guesthouse [Event] - male on female'>>
<<elseif ($guests[_spi].gender == 1 && $guests[_k].gender == 1)>>
<<set $tmpEvent = [_spi, _k]>>
<<goto 'Guesthouse [Event] - male on male'>>
<</if>>
<</link>>
</span>
</div>
<</capture>>
<</for>>
<<for _i to 0; _i lt _interestedGuests.length; _i++>>
<<capture _i, _j>>
<<set
_guest = $guests[_interestedGuests[_i]],
_genderClass = 'gender-' + setup.genderClass(_guest),
_j = _interestedGuests[_i],
_guestYes = (setup.percentageChance(setup.sexChance(_guest, $tmpGirl.gender, $tmpGirl.beauty)) || setup.percentageChance(setup.sexChance(_guest, $tmpGirl.gender, $tmpGirl.beauty))),
_mainYes = (setup.percentageChance(setup.sexChance($tmpGirl, _guest.gender, _guest.beauty)) || setup.percentageChance(setup.sexChance($tmpGirl, _guest.gender, _guest.beauty)))
>>
<<if setup.getAge(_guest) < 18>>
<<continue>>
<</if>>
<<if _guestYes && _mainYes && !_guest.gender && _guest.likesGirls>>
<<set _girlsLikingGirls.push(_j)>>
<</if>>
<<if _guestYes && _mainYes && !_guest.gender && _guest.likesGuys>>
<<set _girlsLikingGuys.push(_j)>>
<</if>>
<<if _guestYes && _mainYes && !_guest.gender && _guest.likesGirls && _guest.likesGuys>>
<<set _girlsLikingBoth.push(_j)>>
<</if>>
<<if _guestYes && _mainYes && !_guest.gender && _guest.likesTGirls>>
<<set _girlsLikingTrans.push(_j)>>
<</if>>
<<if _guestYes && _mainYes && !_guest.gender && _guest.likesGirls && _guest.likesTGirls && _guest.likesGuys>>
<<set _girlsLikingAll3.push(_j)>>
<</if>>
<<if _guestYes && _mainYes && _guest.gender == 1 && _guest.likesGirls>>
<<set _guysLikingGirls.push(_j)>>
<</if>>
<<if _guestYes && _mainYes && _guest.gender == 1 && _guest.likesGuys>>
<<set _guysLikingGuys.push(_j)>>
<</if>>
<<if _guestYes && _mainYes && _guest.gender == 1 && _guest.likesGirls && _guest.likesGuys>>
<<set _guysLikingBoth.push(_j)>>
<</if>>
<<if _guestYes && _mainYes && _guest.gender == 1 && _guest.likesTGirls>>
<<set _guysLikingTrans.push(_j)>>
<</if>>
<<if _guestYes && _mainYes && _guest.gender == 1 && _guest.likesGirls && _guest.likesTGirls && _guest.likesGuys>>
<<set _guysLikingAll3.push(_j)>>
<</if>>
<div>
<span @class="''+_genderClass+''">
<<if (_guestYes && _mainYes)>>
<<set _prospects++>>
<<link _guest.name>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set _targetSpouseIdxs = []>>
<<if ($guests[_j].married)>>
<<set _targetSpouseIds = ($guests[_j].family?.wives ?? []).concat($guests[_j].family?.husband ? [$guests[_j].family.husband] : [])>>
<<for _tsi, _tsg range $guests>>
<<if _targetSpouseIds.includes(_tsg.id) && setup.getAge(_tsg) >= 18>>
<<run _targetSpouseIdxs.push(_tsi)>>
<</if>>
<</for>>
<</if>>
<<set _filteredTargetIdxs = []>>
<<for _ftsi range _targetSpouseIdxs>>
<<if random(1, 100) <= setup.intercessionChance($guests[_ftsi], $weather)>>
<<run _filteredTargetIdxs.push(_ftsi)>>
<</if>>
<</for>>
<<set _targetSpouseIdxs = _filteredTargetIdxs>>
<<set _isEx = ($tmpGirl.family?.exes ?? []).includes($guests[_j].id)>>
<<if ($guests[_j].gender == 0 && $guests[_k].gender == 0)>>
<<set $tmpEvent = [_j, _k]>>
<<goto 'Guesthouse [Event] - female on female'>>
<<elseif ($guests[_j].gender == 0 && $guests[_k].gender == 1)>>
<<set $tmpEvent = {
maleGuestIds: [_k],
femaleGuestIds: [_j],
wifeGuestIdxs: _intercedingSpouseIdxs.length > 0 ? _intercedingSpouseIdxs : undefined,
husbandGuestIdxs: _targetSpouseIdxs.length > 0 ? _targetSpouseIdxs : undefined,
isEx: _isEx || undefined,
exProtestorIdx: _isEx ? _k[0] : undefined,
exIdx: _isEx ? _j : undefined
}>>
<<goto 'Guesthouse [Event] - male on female'>>
<<elseif ($guests[_k].gender == 0 && $guests[_j].gender == 1)>>
<<set $tmpEvent = {
maleGuestIds: [_j],
femaleGuestIds: [_k],
husbandGuestIdxs: _intercedingSpouseIdxs.length > 0 ? _intercedingSpouseIdxs : undefined,
wifeGuestIdxs: _targetSpouseIdxs.length > 0 ? _targetSpouseIdxs : undefined,
isEx: _isEx || undefined,
exProtestorIdx: _isEx ? _k[0] : undefined,
exIdx: _isEx ? _j : undefined
}>>
<<goto 'Guesthouse [Event] - male on female'>>
<<elseif ($guests[_j].gender == 1 && $guests[_k].gender == 1)>>
<<set $tmpEvent = [_j, _k]>>
<<goto 'Guesthouse [Event] - male on male'>>
<<elseif ($guests[_j].gender == 2 && $guests[_k].gender == 1)>>
<<set $tmpEvent = [[_j], [_k]]>>
<<goto 'Guesthouse [Event] - male on transfemale'>>
<<elseif ($guests[_k].gender == 2 && $guests[_j].gender == 1)>>
<<set $tmpEvent = [[_k], [_j]]>>
<<goto 'Guesthouse [Event] - male on transfemale'>>
<<elseif ($guests[_j].gender == 0 && $guests[_k].gender == 2)>>
<<set $tmpEvent = [[_j], [_k]]>>
<<goto 'Guesthouse [Event] - transfemale on female'>>
<<elseif ($guests[_k].gender == 0 && $guests[_j].gender == 2)>>
<<set $tmpEvent = [[_k], [_j]]>>
<<goto 'Guesthouse [Event] - transfemale on female'>>
<<elseif ($guests[_j].gender == 2 && $guests[_k].gender == 2)>>
<<set $tmpEvent = [_j, _k]>>
<<goto 'Guesthouse [Event] - transfemale on transfemale'>>
<</if>>
<</link>>
<</if>>
</span>
</div>
<</capture>>
<</for>>
<<if !$tmpGirl.gender && _girlsLikingGirls.length > 1>>
<<set
_girlsLikingGirls=setup.shuffling(_girlsLikingGirls),
_girl0 = $guests[_girlsLikingGirls[0]],
_girl1 = $guests[_girlsLikingGirls[1]],
_linkName = _girl0.name + ' & ' + _girl1.name
>>
<div>
<span @class="'gender-girl'">
<<link _linkName>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set $tmpEvent = [_girlsLikingGirls[0], _girlsLikingGirls[1], _k]>>
<<goto 'Guesthouse [Event] - female on female'>>
<</link>>
</span>
</div>
<</if>>
<<if !$tmpGirl.gender && _guysLikingGirls.length > 1>>
<<set
_guysLikingGirls=setup.shuffling(_guysLikingGirls),
_guy0 = $guests[_guysLikingGirls[0]],
_guy1 = $guests[_guysLikingGirls[1]],
_linkName = _guy0.name + ' & ' + _guy1.name
>>
<div>
<span @class="'gender-guy'">
<<link _linkName>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set $tmpEvent = {
maleGuestIds: [_guysLikingGirls[0], _guysLikingGirls[1]],
femaleGuestIds: [_k]
}>>
<<goto 'Guesthouse [Event] - males on female'>>
<</link>>
</span>
</div>
<</if>>
<<if !$tmpGirl.gender && _girlsLikingBoth.length > 0 && _guysLikingGirls.length > 0 >>
<<set
_girlsLikingBoth=setup.shuffling(_girlsLikingBoth),
_girl0 = $guests[_girlsLikingBoth[0]],
_guysLikingGirls=setup.shuffling(_guysLikingGirls),
_guy0 = $guests[_guysLikingGirls[0]],
_linkName = _girl0.name,
_linkName2 = _guy0.name
>>
<div>
<span @class="'gender-girl'">
<<link _linkName>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set $tmpEvent = {
femaleGuestIds: [_k, _girlsLikingBoth[0]],
maleGuestIds: [_guysLikingGirls[0]]
}>>
<<goto 'Guesthouse [Event] - male on females'>>
<</link>>
</span>
<span>
&
</span>
<span @class="'gender-guy'">
<<link _linkName2>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set $tmpEvent = [[_k, _girlsLikingBoth[0]], [_guysLikingGirls[0]]]>>
<<set $tmpEvent = {
femaleGuestIds: [_k, _girlsLikingBoth[0]],
maleGuestIds: [_guysLikingGirls[0]]
}>>
<<goto 'Guesthouse [Event] - male on females'>>
<</link>>
</span>
</div>
<</if>>
<<if $tmpGirl.gender == 1 && _girlsLikingBoth.length > 1>>
<<set
_girlsLikingBoth=setup.shuffling(_girlsLikingBoth),
_girl0 = $guests[_girlsLikingBoth[0]],
_girl1 = $guests[_girlsLikingBoth[1]],
_linkName = _girl0.name + ' & ' + _girl1.name
>>
<div>
<span @class="'gender-girl'">
<<link _linkName>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set $tmpEvent = {
femaleGuestIds: [_girlsLikingBoth[0], _girlsLikingBoth[1]],
maleGuestIds: [_k]
}>>
<<goto 'Guesthouse [Event] - male on females'>>
<</link>>
</span>
</div>
<</if>>
<<if $tmpGirl.gender == 1 && _girlsLikingGuys.length > 0 && _guysLikingGirls.length > 0 >>
<<set
_girlsLikingGuys=setup.shuffling(_girlsLikingGuys),
_girl0 = $guests[_girlsLikingGuys[0]],
_guysLikingGirls=setup.shuffling(_guysLikingGirls),
_guy0 = $guests[_guysLikingGirls[0]],
_linkName = _girl0.name,
_linkName2 = _guy0.name
>>
<div>
<span @class="'gender-girl'">
<<link _linkName>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set $tmpEvent = {
maleGuestIds: [_k,_guysLikingGirls[0]],
femaleGuestIds: [_girlsLikingGuys[0]]
}>>
<<goto 'Guesthouse [Event] - males on female'>>
<</link>>
</span>
<span>
&
</span>
<span @class="'gender-guy'">
<<link _linkName2>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set $tmpEvent = {
maleGuestIds: [_k,_guysLikingGirls[0]],
femaleGuestIds: [_girlsLikingGuys[0]]
}>>
<<goto 'Guesthouse [Event] - males on female'>>
<</link>>
</span>
</div>
<</if>>
<<if $tmpGirl.gender == 2 && _girlsLikingAll3.length > 0 && _guysLikingAll3.length > 0 >>
<<set
_girlsLikingAll3=setup.shuffling(_girlsLikingAll3),
_girl0 = $guests[_girlsLikingAll3[0]],
_guysLikingAll3=setup.shuffling(_guysLikingAll3),
_guy0 = $guests[_guysLikingAll3[0]],
_linkName = _girl0.name,
_linkName2 = _guy0.name
>>
<div>
<span @class="'gender-girl'">
<<link _linkName>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set $tmpEvent = [[_girlsLikingAll3[0]], [_k], [_guysLikingAll3[0]]]>>
<<goto 'Guesthouse [Event] - male on female and transfemale'>>
<</link>>
</span>
<span>
&
</span>
<span @class="'gender-guy'">
<<link _linkName2>>
<<set $locationEvents.guesthouse = true>>
<<addmins 15>>
<<dialogclose>>
<<set $tmpEvent = [[_girlsLikingAll3[0]], [_k], [_guysLikingAll3[0]]]>>
<<goto 'Guesthouse [Event] - male on female and transfemale'>>
<</link>>
</span>
</div>
<</if>>
<<if _prospects == 0 && _spouseIdxs.length == 0>>
I didn't match with anyone, maybe some other time.
<</if>>
<</if>>
<br /><br />
<<link 'Back'>>
<<dialogclose>>
<</link>><<set _prospects = 0>>
<<for _i to 0; _i lt $guests.length; _i++>>
<<capture _i>>
<<set _bride = $guests[_i]>>
<<if [0, 2].includes(_bride.gender) && !setup.npc.isMarried(_bride) && _bride.id !== $tmpGirl.id && setup.getAge(_bride) >= 18 && !(_bride.traits ?? []).includes('feral') && (!($player?.baseManagement?.noIncest) || !setup.family.isIncest($tmpGirl, _bride))>>
<<set _prospects++>>
<div>
<span class="gender-girl">
<<link _bride.name>>
<<dialogclose>>
<<set $tmpEventWedding = { id1: $tmpGirl.id, id2: $guests[_i].id }>>
<<goto 'NPC arrange marry'>>
<</link>>
</span>
</div>
<</if>>
<</capture>>
<</for>>
<<if _prospects == 0>>
There are no eligible unmarried women in the settlement right now.
<</if>>
<br /><br />
<<link 'Back'>>
<<dialogclose>>
<</link>><h1 class="ptitle">GUESTHOUSE</h1>
<br />
<<horny 20>>
As you approach <<=setup.displayName($tmpGirl)>> bed, you notice the rhythmic motion beneath the threadbare blanket, her breath coming in short, uneven gasps.
You freeze, realization sinking in as you glimpse her hand moving beneath the fabric, lost in a private moment of pleasure she thought no one would disturb.
<br /><br />
<<set _action = 'masturbate'>>
<<if !$tmpGirl.gender && setup.npcInventoryHas($tmpGirl, 'sextoy') && setup.percentageChance(50)>>
<<set _action = 'masturbate_dildo'>>
<</if>>
<center>
<<actionImage $tmpGirl _action>>
</center>
<br /><br />
The air between you grows thick with the sudden, unspoken tension, the fragile intimacy of the moment at odds with the chaos outside.
<br /><br />
<<set _linkName = 'Interrupt ' + setup.pronounceWho($tmpGirl)>>
<<linkreplace _linkName>>
<<you>>
What are you doing?
<</you>>
<br />
<<if $tmpGirl.corruption < 60>>
<<set $tmpGirl.corruption = Math.min(100, ($tmpGirl.corruption + 5))>>
<<setNpcStats 'guest' $guestId 'corruption' 5>>
<strong><<=setup.displayName($tmpGirl)>> corruption increased by 5</strong>
<br /><br />
<</if>>
<center>
<<actionImage $tmpGirl 'masturbate_hide'>>
</center>
<br />
She stammers, unable to meet your gaze, her breath shaky.
<br /><br />
<<sayNpc $tmpGirl>>
I didn’t... I didn’t think anyone would-
<</sayNpc>>
<br />
She bites her lip, looking away, her shoulders hunching as if trying to disappear beneath the blanket.
Shame radiates from her, but there’s something else in her eyes—a vulnerability she struggles to hide.
<br /><br />
<<if setup.npcInventoryHas($tmpGirl, 'sextoy')>>
<<linkreplace 'Take away her toy'>>
You reach for the dildo resting in her hands, its wet from all her juicy pussy.
<br /><br />
<<sayNpc $tmpGirl>>
Please… No. I really enjoyed it.
<</sayNpc>>
<<set $tmpGirl.happy -= randomInteger(20, 30)>>
<<run setup.npcInventoryRemove($tmpGirl, 'sextoy')>>
<<pickup $backpack 'sextoy' 1>>
<br /><br />
<</linkreplace>>
<</if>>
<<link 'Approach her'>>
<<goto 'NPC view - guest'>>
<</link>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUESTHOUSE</h1>
<br />
<<set $tmpGirl.location = 'sleeping'>>
<<actionImage $tmpGirl 'sleep' 'no-text'>>
<<=setup.displayName($tmpGirl)>> lies asleep, her face serene and undisturbed by the harsh realities that lie beyond the fragile walls of the guesthouse.
Her hair spills over the pillow like a cascade of dark silk, and her breathing is slow and steady, as if she's found peace in the midst of chaos.
<br /><br />
<<linkreplace 'Pull sheets up'>>
<<video 'guesthouse/sleeping2_1'>>
<<set $player.goodwill-->>
<br /><br />
You gently pull the sheet up just a bit more, exposing her panties and ass to the cold air. You lean closer and notice her cute panties and that you almost can see through them.
<br /><br />
<<linkreplace 'Uncover her breasts'>>
<<set $player.goodwill-->>
<<video 'guesthouse/sleeping2_2'>>
<br /><br />
Her skin gleams in the dim light, and as the sheet falls away, it reveals more of her body and the soft curve of her naked breasts.
<br /><br />
<<linkreplace 'Pull down her panties'>>
<<video 'guesthouse/sleeping2_3'>>
<br /><br />
As you slowly begin to pull down her panties, the tension in the room grows palpable. <<=setup.displayName($tmpGirl)>>, still sleeping, shifts slightly. She turns onto her back, her body now fully exposed to the dim light filtering through the guesthouse.
Her breathing remains steady, her face relaxed. You pause for a moment, your heart racing.
<br /><br />
<<linkreplace 'Continue'>>
<<addmins 3>>
<<set $player.goodwill-->>
<<video 'guesthouse/sleeping2_4'>>
<br /><br />
Her skin is soft and smooth, a gentle curve that leads down her hips. The delicate fabric of the panties slides down her thighs, revealing her shaved pussy.
There's a sense of vulnerability in the moment, as the last piece of clothing is removed, exposing her completely.
<br /><br />
<<linkreplace 'Rub your dick against her pussy'>>
<<set $player.goodwill-->>
<<video 'guesthouse/sleeping2_5'>>
<br /><br />
You wrap her panties around your dick and slowly move it toward her pussy. Then, gently you start to rub your dickhead between her labia. Her breathing is getting deeper.
<br /><br />
<<linkreplace 'Insert'>>
<<addmins 3>>
<<set $player.goodwill-->>
<<video 'guesthouse/sleeping2_6'>>
<br /><br />
You slowly slide your dick into her somewhat dry pussy. She slightly shifts as you move your dick in and out of her.
With each thrust you feel her pussy getting more wet.
<br /><br />
<<linkreplace 'Faster'>>
<<addmins 5>>
<<video 'guesthouse/sleeping2_7'>>
<br /><br />
You slowly start to increase the speed. Her pussy gets more and more relaxed while she's deep into the sleep.
If you will try to go deeper that might be too much for her and she might wake up.
<br /><br />
<<linkreplace 'Deeper'>>
<<addmins 3>>
<<video 'guesthouse/sleeping2_8'>>
<br /><br />
You decide to risk it and slide your dick almost fully inside her.
<br />
You also picked up the pace, fucking <<=setup.displayName($tmpGirl)>> harder and faster, making her shifting in her sleep with mix of some very quiet moan.
<br /><br />
<<video 'guesthouse/sleeping2_9'>>
<br /><br />
You could feel her walls tightening around you. You fucked her harder and deeper, your hips moving with a mind of their own as you chased your own release.
And then, with a final thrusts, you felt yourself tumble over the edge as you were almost ready to cum all over her.
<br /><br />
<<linkreplace 'Cum'>>
<<addmins 3>>
<<video 'guesthouse/sleeping2_10'>>
<br /><br />
With a final deep thrust you reach your climax and pull out too much, so your dick slips out. You grab it in your hand and with few additional jerks, cum all over her ass and pussy.
<br />
She shifts a bit but still stays on her back sleeping.
<br /><br />
Gently, you reached for the sheets and pulled them up, covering her exposed body. Then you slowly moved away from her bed so she doesn't wake up.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<addmins 5>>
<<goto 'Guest house'>>
<</link>>/* Find a married couple (no horny threshold required) */
<<set _eligibleWomen = setup.commonValues([_guests18yoWomen, _guestsNoChastityBelt])>>
<<set _eligibleMen = setup.commonValues([_guests18yoMen, _guestsNoChastityBelt])>>
<<set _marriedPairs = []>>
<<for _mci = 0; _mci < _eligibleWomen.length; _mci++>>
<<set _mcWomanIdx = _eligibleWomen[_mci]>>
<<set _mcWoman = $guests[_mcWomanIdx]>>
<<if (_mcWoman.family?.husband ?? false) && _mcWoman.likesGuys>>
<<for _mcj = 0; _mcj < _eligibleMen.length; _mcj++>>
<<set _mcManIdx = _eligibleMen[_mcj]>>
<<if $guests[_mcManIdx].id === _mcWoman.family.husband && $guests[_mcManIdx].likesGirls>>
<<run _marriedPairs.push([_mcWomanIdx, _mcManIdx])>>
<</if>>
<</for>>
<</if>>
<</for>>
<<set _marriedFemaleIdx = null, _marriedMaleIdx = null>>
<<if _marriedPairs.length > 0>>
<<set _chosenPair = _marriedPairs[random(0, _marriedPairs.length - 1)]>>
<<set _marriedFemaleIdx = _chosenPair[0], _marriedMaleIdx = _chosenPair[1]>>
<</if>>
<<if _marriedFemaleIdx !== null && setup.percentageChance(25)>>
<<set $tmpEvent = {femaleGuestIds: [_marriedFemaleIdx], maleGuestIds: [_marriedMaleIdx]}>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<goto 'Guesthouse [Event] - married couple'>>
<<elseif settings.lesbiansEnabled && setup.commonValues([_guestsLikesGuys, _guestsLikesGirls, _guests18yoWomen, _guestsNoChastityBelt]).length > 1 && setup.commonValues([_guestsLikesGirls, _guests18yoMen, _guestsNoChastityBelt]).length > 0 && setup.percentageChance(10)>>
<<set _femalePool2 = setup.commonValues([_guestsLikesGuys, _guestsLikesGirls, _guests18yoWomen, _guestsNoChastityBelt])>>
<<set _malePool2 = setup.commonValues([_guestsLikesGirls, _guests18yoMen, _guestsNoChastityBelt])>>
<<set $tmpEvent = {
femaleGuestIds: setup.getRandomPersons(_femalePool2, 2),
maleGuestIds: setup.getRandomPersons(_malePool2, 1)
}>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<if (!setup.family.isBlood($tmpEvent.femaleGuestIds[0], $tmpEvent.maleGuestIds[0]) || !$player?.baseManagement?.noIncest) && setup.npc.canHaveSexBetween($tmpEvent.femaleGuestIds[0], $tmpEvent.maleGuestIds[0]) && (!setup.family.isBlood($tmpEvent.femaleGuestIds[1], $tmpEvent.maleGuestIds[0]) || !$player?.baseManagement?.noIncest) && (!$player?.baseManagement?.noOutOfMarriageSex || (setup.npc.areMarriedToEachOther($guests[$tmpEvent.maleGuestIds[0]], $guests[$tmpEvent.femaleGuestIds[0]]) && setup.npc.areMarriedToEachOther($guests[$tmpEvent.maleGuestIds[0]], $guests[$tmpEvent.femaleGuestIds[1]])))>>
<<goto 'Guesthouse [Event] - male on females'>>
<</if>>
<<elseif setup.commonValues([_guestsLikesGuys, _guests18yoWomen, _guestsNoChastityBelt]).length > 0 && setup.commonValues([_guestsLikesGirls, _guests18yoMen, _guestsNoChastityBelt]).length > 1 && setup.percentageChance(10)>>
<<set _femalePool = setup.commonValues([_guestsLikesGuys, _guests18yoWomen, _guestsNoChastityBelt])>>
<<set _malePool = setup.commonValues([_guestsLikesGirls, _guests18yoMen, _guestsNoChastityBelt])>>
<<set $tmpEvent = {
femaleGuestIds: setup.getRandomPersons(_femalePool, 1),
maleGuestIds: setup.getRandomPersons(_malePool, 2)
}>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<if (!setup.family.isBlood($tmpEvent.femaleGuestIds[0], $tmpEvent.maleGuestIds[0]) || !$player?.baseManagement?.noIncest) && setup.npc.canHaveSexBetween($tmpEvent.femaleGuestIds[0], $tmpEvent.maleGuestIds[0]) && (!setup.family.isBlood($tmpEvent.femaleGuestIds[0], $tmpEvent.maleGuestIds[1]) || !$player?.baseManagement?.noIncest) && (!$player?.baseManagement?.noOutOfMarriageSex || setup.npc.areMarriedToEachOther($guests[$tmpEvent.maleGuestIds[0]], $guests[$tmpEvent.femaleGuestIds[0]]) || setup.npc.areMarriedToEachOther($guests[$tmpEvent.maleGuestIds[1]], $guests[$tmpEvent.femaleGuestIds[0]]))>>
<<goto 'Guesthouse [Event] - males on female'>>
<</if>>
<<elseif settings.transEnabled && setup.commonValues([_guestsLikesGuys, _guestsLikesTGirls, _guests18yoWomen]).length > 0 && setup.commonValues([_guestsLikesGuys, _guestsLikesGirls, _guests18yoTransWomen]).length > 0 && setup.commonValues([_guestsLikesGirls, _guestsLikesTGirls, _guests18yoMen]).length > 0 && setup.percentageChance(10)>>
<<set $tmpEvent = [
setup.commonValues([_guestsLikesGuys, _guestsLikesTGirls, _guests18yoWomen]),
setup.commonValues([_guestsLikesGuys, _guestsLikesGirls, _guests18yoTransWomen]),
setup.commonValues([_guestsLikesGirls, _guestsLikesTGirls, _guests18yoMen])
]>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<goto 'Guesthouse [Event] - male on female and transfemale'>>
<<elseif settings.lesbiansEnabled && setup.commonValues([_guestsLikesGirls, _guests18yoWomen]).length > 1 && setup.percentageChance(20)>>
<<set $tmpEvent = setup.commonValues([_guestsLikesGirls, _guests18yoWomen])>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<goto 'Guesthouse [Event] - female on female'>>
<<elseif setup.commonValues([_guestsLikesGuys, _guests18yoWomen]).length > 0 && setup.commonValues([_guestsLikesGirls, _guests18yoMen]).length > 0 && setup.percentageChance(10)>>
<<set _mofFemalePool = setup.commonValues([_guestsLikesGuys, _guests18yoWomen])>>
<<set _mofMalePool = setup.commonValues([_guestsLikesGirls, _guests18yoMen])>>
<<set $tmpEvent = {
femaleGuestIds: setup.getRandomPersons(_mofFemalePool, 1),
maleGuestIds: setup.getRandomPersons(_mofMalePool, 1)
}>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<if (!setup.family.isBlood($tmpEvent.femaleGuestIds[0], $tmpEvent.maleGuestIds[0]) || !$player?.baseManagement?.noIncest) && setup.npc.canHaveSexBetween($tmpEvent.femaleGuestIds[0], $tmpEvent.maleGuestIds[0]) && !$player?.baseManagement?.noOutOfMarriageSex>>
<<goto 'Guesthouse [Event] - male on female'>>
<</if>>
<<elseif settings.transEnabled && setup.commonValues([_guestsLikesGuys, _guests18yoTransWomen]).length > 0 && setup.commonValues([_guestsLikesTGirls, _guests18yoMen]).length > 0 && setup.percentageChance(10)>>
<<set $tmpEvent = [setup.commonValues([_guestsLikesGuys, _guests18yoTransWomen]), setup.commonValues([_guestsLikesTGirls, _guests18yoMen])]>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<goto 'Guesthouse [Event] - male on transfemale'>>
<<elseif settings.gaysEnabled && setup.commonValues([_guestsLikesGuys, _guests18yoMen]).length > 1 && setup.percentageChance(20)>>
<<set $tmpEvent = setup.commonValues([_guestsLikesGuys, _guests18yoMen])>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<goto 'Guesthouse [Event] - male on male'>>
<<elseif settings.transEnabled && setup.commonValues([_guestsLikesTGirls, _guests18yoWomen]).length > 0 && setup.commonValues([_guestsLikesGirls, _guests18yoTransWomen]).length > 0 && setup.percentageChance(10)>>
<<set $tmpEvent = [
setup.commonValues([_guestsLikesTGirls, _guests18yoWomen]),
setup.commonValues([_guestsLikesGirls, _guests18yoTransWomen])
]>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<goto 'Guesthouse [Event] - transfemale on female'>>
<<elseif settings.transEnabled && setup.commonValues([_guestsLikesTGirls, _guests18yoTransWomen]).length > 1 && setup.percentageChance(10)>>
<<set $tmpEvent = setup.commonValues([_guestsLikesTGirls, _guests18yoTransWomen])>>
<<set $locationEvents.guesthouse = true>>
<<unset $randEvent>>
<<goto 'Guesthouse [Event] - transfemale on transfemale'>>
<</if>><h1 class="ptitle">GUESTHOUSE</h1>
<<set _npc = $guests[$tmpEvent.id]>>
<br />
As you step into the guest house, the shift in atmosphere is immediate. The air is warmer, heavier, laced with the scent of polished wood and something faintly musky.
But it’s the sound that stops you in your tracks—soft, rhythmic, and unmistakably out of place.
<br /><br />
You pause, listening. It’s coming from the far corner of the building—slow, deliberate, and pulsing like a heartbeat
<br /><br />
<<linkreplace 'Check it out'>>
Curiosity flares. You move quietly, each step bringing the sound into sharper focus. It’s not just movement—it’s breathy, intimate. Almost too intimate for an empty space.
<br /><br />
And then you see her.
<br /><br />
<<video 'guesthouse/dildo1'>>
<br /><br />
<<=setup.displayName(_npc)>> completely absorbed, her body rocking slowly, steadily atop a mounted dildo.
Eyes closed, lips parted, she’s lost in sensation, unaware of your presence.
The soft whirring beneath her and the subtle creak of the old floorboards beneath her knees paint the rest of the picture.
<br /><br />
<<video 'guesthouse/dildo2'>>
<br /><br />
You watched, mesmerized, as she moved, her body glistening with a sheen of sweat, her breaths coming in short, sharp gasps.
The room was filled with the sound of her pleasure, the wet, slapping noise of her pussy against the dildo, the soft moans that escaped her lips with each thrust
<br /><br />
You felt a stir of desire, your cock hardening in your pants as you watched her. The sight of her, so lost in her pleasure, so uninhibited and free, was intoxicating. You could feel the heat radiating from her body, could smell the musky scent of her arousal, could almost taste the salt of her sweat on your tongue.
<br /><br />
<<linkreplace 'Disturb her'>>
<<set _npc.horny += 10>>
<<set $guestId = $tmpEvent.id>>
<<run delete $slaveId>>
<<run delete $charId>>
<<set $tmpGirl = _npc>>
<center>
<<actionImage $tmpGirl 'masturbate_hide'>>
</center>
<br />
She stammers, unable to meet your gaze, her breath shaky.
<br /><br />
<<sayNpc $tmpGirl>>
I didn’t... I didn’t think anyone would-
<</sayNpc>>
<br />
She bites her lip, looking away, her shoulders hunching as if trying to disappear beneath the blanket.
<br /><br />
<<linkreplace 'Take away her toy'>>
You reach for the dildo resting in her hands, its wet from all her juicy pussy.
<br /><br />
<<sayNpc $tmpGirl>>
Please… No. I really enjoyed it.
<</sayNpc>>
<<set $tmpGirl.happy -= randomInteger(20, 30)>>
<<run setup.npcInventoryRemove($tmpGirl, 'sextoy')>>
<<pickup $backpack 'sextoy' 1>>
<br /><br />
<</linkreplace>>
<<link 'Approach her'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<goto 'NPC view - guest'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUESTHOUSE</h1>
<br />
<<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<!-- #### guesthouse_caught_door.jpg | through a slightly open bedroom door at night, a woman visible on a bed with legs spread, dim candlelight, post-apocalyptic bedroom setting --ar 4:2 --p -->
You heard something from her room — soft, rhythmic, unmistakable. You pushed the door ajar.
<br /><br />
<<video 'guesthouse/caught1'>>
<br /><br />
She was stretched across the bed, legs spread wide, two fingers working slow circles. Eyes closed, lips parted — entirely in her own world.
<br /><br />
<<sayNpc $tmpGirl>>
Mmhh—
<</sayNpc>>
<br />
Then her eyes opened. She saw you in the doorway and froze for half a second — before a wide grin broke across her face.
<br /><br />
<<video 'guesthouse/caught2'>>
<br /><br />
She burst out laughing and launched herself off the bed — completely naked — crossed the room in three strides, and crashed into you. Her hands found your waistband before you could say a word.
<br /><br />
<<sayNpc $tmpGirl>>
Don't give me that face. You were just standing there watching.
<</sayNpc>>
<br />
Still giggling, she dragged you toward the bed.
<br /><br />
<<video 'guesthouse/caught3'>>
<br /><br />
She dropped onto her back and grabbed your arm, pulling hard, trying to get you down on top of her.
<br /><br />
<<sayNpc $tmpGirl>>
Stop fighting it — just let it happen.
<</sayNpc>>
<br />
<div id="gh_a1">
<<linkreplace 'Pull away from her'>>
<<run $('#gh_a2').hide()>>
You stepped back and disentangled yourself. She let go with an exaggerated sigh and flopped her arms out, staring at the ceiling.
<br /><br />
<<sayNpc $tmpGirl>>
Boring.
<</sayNpc>>
<br />
<<set $tmpGirl.relationship = Math.max(($tmpGirl.relationship ?? 0) - 5, 0)>>
<<link 'Leave'>>
<<set $guests[$guestId] = $tmpGirl>>
<<energy -10>>
<<addmins 10>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="gh_a2">
<<linkreplace 'Let her pull you down'>>
<<run $('#gh_a1').hide()>>
You let her drag you forward. She pulled you down over her, still giggling, your weight settling between her thighs — and then something shifted. A small movement, a slight angle — and you slipped inside her.
<br /><br />
<<set _wasVirgin = $tmpGirl.virgin ?? false>>
<<if _wasVirgin>>
<<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl.virgin = false>>
<</if>>
<<video 'guesthouse/caught4'>>
<br /><br />
<<if _wasVirgin>>
She went very still, the laughter stopping all at once. Her breath caught and her fingers dug into your arm.
<br /><br />
<<sayNpc $tmpGirl>>
Oh — wait — that's—
<</sayNpc>>
<br />
She blinked up at you, processing it. Then the grin crept back, softer this time.
<<else>>
She made a short, surprised sound — her nails catching on your arm — and then her expression shifted into something warmer.
<br /><br />
<<sayNpc $tmpGirl>>
Oh. Well. That happened.
<</sayNpc>>
<br />
She laughed again, quieter.
<</if>>
<br /><br />
<div id="gh_b1">
<<linkreplace 'Pull out'>>
<<run $('#gh_b2').hide()>>
You pulled back and separated. She groaned theatrically and spread her arms wide, staring at the ceiling.
<br /><br />
<<sayNpc $tmpGirl>>
You are impossible.
<</sayNpc>>
<br />
<<set $tmpGirl.relationship = Math.max(($tmpGirl.relationship ?? 0) - 10, 0)>>
<<link 'Leave'>>
<<set $guests[$guestId] = $tmpGirl>>
<<energy -15>>
<<addmins 15>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="gh_b2">
<<linkreplace 'Stay'>>
<<run $('#gh_b1').hide()>>
You held still. She felt you there and her expression settled into something deliberate.
<br /><br />
<<video 'guesthouse/caught5'>>
<br /><br />
She rolled her hips slowly — working herself around you, drawing you deeper. The giggling was entirely gone. Just her lips parted and her eyes watching yours.
<br /><br />
<<sayNpc $tmpGirl>>
You're already inside me. Might as well just deal with it.
<</sayNpc>>
<br />
<div id="gh_c1">
<<linkreplace 'Pull out and leave'>>
<<run $('#gh_c2').hide()>>
You pushed yourself off her and stood. She stopped moving, jaw tightening for a moment.
<br /><br />
<<sayNpc $tmpGirl>>
Really?
<</sayNpc>>
<br />
<<set $tmpGirl.relationship = Math.max(($tmpGirl.relationship ?? 0) - 15, 0)>>
<<link 'Leave'>>
<<set $guests[$guestId] = $tmpGirl>>
<<energy -20>>
<<addmins 20>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="gh_c2">
<<linkreplace 'Fuck her'>>
<<run $('#gh_c1').hide()>>
<<video 'guesthouse/caught6'>>
<br /><br />
You braced your palms flat over her breasts and started to move — slow, deliberate thrusts that made her exhale sharp. She arched up into your hands.
<br /><br />
<<sayNpc $tmpGirl>>
Yes — like that—
<</sayNpc>>
<br />
<<linkreplace 'Keep going'>>
<<video 'guesthouse/caught7'>>
<br /><br />
She lifted her legs and locked them around your hips, pulling you deeper. Her nails dragged down your arms as you pushed harder into her.
<br /><br />
<<linkreplace 'Keep going'>>
<<video 'guesthouse/caught8'>>
<br /><br />
She planted both palms on your chest and shoved — rolling you onto your back in one smooth move. She swung her leg over, took you back inside, and started to ride. Steady, controlled, her hands flat on your chest and her eyes locked on yours.
<br /><br />
<<sayNpc $tmpGirl>>
My turn.
<</sayNpc>>
<br />
<<linkreplace 'Keep going'>>
<<video 'guesthouse/caught9'>>
<br /><br />
She picked up the pace, hips snapping down hard, head falling back. You felt the pressure build — you were close.
<br /><br />
<div id="gh_cum_a">
<<linkreplace 'Cum inside her pussy'>>
<<run $('#gh_cum_b').hide()>>
<<horny_reset>>
<<if !$tmpGirl.gender && setup.pregnancyChance($tmpGirl)>>
<<set $tmpGirl.pregnancy = 0>>
<<set $tmpGirl.pregnancy_father = 'mc'>>
<</if>>
<<video 'guesthouse/caught10'>>
<br /><br />
You grabbed her hips and held her down as you finished, filling her deep. She let out a long exhale and stayed still for a moment — then lifted herself off you. Your cock slipped free and cum ran out slow behind it.
<br /><br />
<<sayNpc $tmpGirl>>
Well. Good morning to me.
<</sayNpc>>
<br />
<<set $tmpGirl.relationship = Math.min(($tmpGirl.relationship ?? 0) + 5, 100)>>
<<link 'Leave'>>
<<set $guests[$guestId] = $tmpGirl>>
<<energy -30>>
<<addmins 45>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="gh_cum_b">
<<linkreplace 'Pull out and cum on her pussy'>>
<<run $('#gh_cum_a').hide()>>
<<horny_reset>>
<center>
<<image 'game/misc/cum_on_stomach.webp'>>
</center>
<br />
You gripped her thighs and pulled her off at the last moment, finishing across her spread folds. She looked down at herself and raised an eyebrow.
<br /><br />
<<sayNpc $tmpGirl>>
That works too, I guess.
<</sayNpc>>
<br />
<<set $tmpGirl.relationship = Math.min(($tmpGirl.relationship ?? 0) + 5, 100)>>
<<link 'Leave'>>
<<set $guests[$guestId] = $tmpGirl>>
<<energy -30>>
<<addmins 45>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<</linkreplace>>
</div><h1 class="ptitle">GUEST HOUSE</h1>
<<if typeof $randEvent === 'undefined'>>
<<set
_guestIds = $tmpEvent.length <= 3 ? $tmpEvent : setup.getRandomPersons($tmpEvent, ($tmpEvent.length >= 3 && setup.percentageChance(33)) ? 3 : 2),
_minCorruption = 100,
_nbVirgins = 0,
_nbAnalVirgins = 0,
_nbSquirters = 0,
_index = 0,
_girlNames ='',
_separator =''
>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if _i + 1 == _guestIds.length>>
<<set _separator =' and '>>
<<elseif _i > 0>>
<<set _separator =', '>>
<</if>>
<<set _girlNames += _separator + $guests[_guestIds[_i]].name>>
<<set _minCorruption = Math.min(_minCorruption, $guests[_guestIds[_i]].corruption)>>
<<if $guests[_guestIds[_i]].virgin>>
<<set _nbVirgins += 1>>
<</if>>
<<if $guests[_guestIds[_i]].anal < 20>>
<<set _nbAnalVirgins += 1>>
<</if>>
<<if ($guests[_guestIds[_i]].traits ?? []).includes('squirter')>>
<<set _nbSquirters += 1>>
<</if>>
<</for>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<set _sexActions = [
['kissing','feet','spanking','feet','spanking'][random(0, _r)],
['sn_tits','masturbating','rimjob','masturbating','rimjob'][random(0, _r)],
['facesitting','facesitting','strapon_bj','dd_deepthroat','facesitting'][_r],
['scissoring','scissoring','strapon_pussy','dd_pussy','fisting_pussy'][_r],
['sn_pussy','sn_pussy','strapon_anal','dd_anal','fisting_anal'][_r],
'squirting'
]>>
<<set _maxVirgins = _guestIds.length>>
<<if _r == 3>>
<<set _maxVirgins = _guestIds.length - 1>>
<</if>>
<<if Math.min(_nbVirgins, _nbAnalVirgins) >= _maxVirgins>>
<<set _sexActions[2] = 'facesitting'>>
<</if>>
<<if _nbVirgins >= _maxVirgins>>
<<set _sexActions[3] = 'scissoring'>>
<</if>>
<<if _nbAnalVirgins >= _maxVirgins>>
<<set _sexActions[4] = 'sn_pussy'>>
<<elseif _guestIds.length == 3 && _r == 2 && !$guests[_guestIds[0]].virgin && $guests[_guestIds[0]].anal >= 20>>
<<set _sexActions[4] = 'strapon_double'>>
<</if>>
<<if _nbSquirters == 0>>
<<set _sexActions[5] = 'orgasm'>>
<</if>>
<<set $randEvent = [
_guestIds,
_girlNames,
_sexActions,
_index
]>>
As you approach the dormitory, you hear muffled sounds.<br />
You take a peek and see
<<if _guestIds.length == 3>>
<<=setup.displayName($guests[_guestIds[2]])>>,
<</if>>
<<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> pleasuring each other.<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_girlNames = $randEvent[1],
_sexActions = $randEvent[2],
_index = $randEvent[3]
>>
<</if>>
<br /><br />
<<set _actionText = setup.actionText>>
<<set _forceGender = 'female_on_female-'+_guestIds.length>>
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<center>
<<actionImage $guests[_guestIds[0]] _sexActions[_index] 'no-text' _forceGender>>
</center>
<br />
<<print _actionText['female_on_female'][_sexActions[_index]][0].replace('%names%', _girlNames).replace('%name%', $guests[_guestIds[0]].name).replace('%name2%', $guests[_guestIds[1]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
[img[setup.ImagePath+'game/misc/cum.webp']]
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<else>>
<<set $randEvent[3] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<replace "#choice">>
<<set _interrupted = true>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $guests[_guestIds[0]] 'caught' 'no-text' _forceGender>>
</center>
<br /><br />
<<print _actionText['female_on_female']['caught'][0].replace('%names%', _girlNames).replace('%name%', $guests[_guestIds[0]].name).replace('%name2%', $guests[_guestIds[1]].name)>>
<br /><br />
<<linkreplace 'Ask to join them'>>
<<set _yesGuestIds = []>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[_i]]))>>
<<set _yesGuestIds.push(_guestIds[_i])>>
<</if>>
<</for>>
<<if _yesGuestIds.length == 0>>
They refuse and leave the room at once!
<<else>>
<<unset $guestId, $charId, $slaveId>>
<<if _yesGuestIds.length == 1>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> agrees to sex with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]]>>
<<unset $randEvent, $tmpEvent>>
<<fuck $tmpGirl>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> and <<=setup.displayName($guests[_yesGuestIds[1]], true)>> agree to have a threesome with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]],
$guestId2 = _yesGuestIds[1],
$tmpGirl2 = $guests[_yesGuestIds[1]]>>
<<unset $randEvent, $tmpEvent>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<<threesome $tmpGirl $tmpGirl2>>
<</linkreplace>>
<</if>>
<</if>>
<</linkreplace>>
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUEST HOUSE</h1>
<<set _actionText = setup.actionText>>
<<if typeof $randEvent === 'undefined'>>
<<set
_femaleGuestIds = setup.getRandomPersons($tmpEvent[0], 1),
_transfemaleGuestIds = setup.getRandomPersons($tmpEvent[1], 1),
_maleGuestIds = setup.getRandomPersons($tmpEvent[2], 1),
_guestIds = [_femaleGuestIds[0], _transfemaleGuestIds[0], _maleGuestIds[0]],
_minCorruption = Math.min($guests[_guestIds[0]].corruption, $guests[_guestIds[1]].corruption, $guests[_guestIds[2]].corruption),
_isVirgin = $guests[_guestIds[0]].virgin,
_isAnalVirgin = ($guests[_guestIds[0]].anal < 20),
_index = 0
>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<if _isVirgin && _isAnalVirgin>>
<<set _sexActions = [
['kissing','kissing','kissing','handjob','handjob'][random(0, _r)],
['handjob','nipple_lick','nipple_lick','nipple_lick','pussy_lick'][random(0, _r)],
['pussy_lick','pussy_lick','pussy_lick_b_bj','pussy_lick_b_bj','pussy_lick_b_bj'][random(0, _r)],
['bj','bj','bj','bj_b_handjob','bj_b_handjob'][random(0, _r)],
['bj_b_handjob','handjob_b_bj','handjob_b_bj','handjob_b_bj','handjob_b_bj'][random(0, _r)],
['cum_on_stomach','cum_on_tits','handjob_cum','cum_in_mouth','cum_on_face'][random(0, _r)]
]>>
<<elseif _isAnalVirgin>>
<<set _sexActions = [
['kissing','kissing','handjob','handjob','nipple_lick'][random(0, _r)],
['nipple_lick','pussy_lick','pussy_lick','bj','bj'][random(0, _r)],
['bj_b_handjob','bj_b_handjob','handjob_b_bj','handjob_b_bj','pussy_lick_b_bj'][random(0, _r)],
['pussy_lick_b_bj','handjob_b_pussy','handjob_b_pussy','pussy','pussy'][random(0, _r)],
['pussy','bj_b_pussy','bj_b_pussy','pussy_b_bj','pussy_b_bj'][random(0, _r)],
['cum_on_stomach','cum_on_tits','handjob_cum','cum_in_mouth','cum_on_face'][random(0, _r)]
]>>
<<elseif _isVirgin>>
<<set _sexActions = [
['kissing','kissing','handjob','handjob','nipple_lick'][random(0, _r)],
['nipple_lick','pussy_lick','pussy_lick','pussy_lick_b_bj','pussy_lick_b_bj'][random(0, _r)],
['bj','bj','bj','bj_b_handjob','bj_b_handjob'][random(0, _r)],
['bj_b_handjob','handjob_b_bj','handjob_b_bj','handjob_b_bj','anal'][random(0, _r)],
['anal','anal','anal_b_bj','anal_b_bj','anal_b_bj'][random(0, _r)],
['cum_on_stomach','cum_on_tits','handjob_cum','cum_in_mouth','cum_on_face'][random(0, _r)]
]>>
<<else>>
<<set _sexActions = [
['kissing','nipple_lick','pussy_lick','pussy_lick_b_bj','handjob'][random(0, _r)],
['handjob_b_bj','bj','bj_b_handjob','bj_b_handjob','bj_b_pussy'][random(0, _r)],
['bj_b_pussy','handjob_b_pussy','handjob_b_pussy','pussy','pussy'][random(0, _r)],
['pussy_b_bj','pussy_b_bj','anal','anal','anal_b_bj'][random(0, _r)],
['anal_b_bj','anal_b_pussy','anal_b_pussy','pussy_b_anal','pussy_b_anal'][random(0, _r)],
['cum_on_stomach','cum_on_tits','handjob_cum','cum_in_mouth','cum_on_face'][random(0, _r)]
]>>
<</if>>
<<set $randEvent = [
_guestIds,
_sexActions,
_index
]>>
As you approach the dormitory, you hear muffled sounds.<br />
You take a peek and see <<=setup.displayName($guests[_guestIds[0]])>> having sex with <<=setup.displayName($guests[_guestIds[1]])>> and <<=setup.displayName($guests[_guestIds[2]])>>.<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_sexActions = $randEvent[1],
_index = $randEvent[2]
>>
<</if>>
<br /><br />
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<center>
<<set _sexAction = 'threesome_t_'+_sexActions[_index]>>
<<actionImage $guests[_guestIds[0]] _sexAction 'no-text'>>
</center>
<br />
<<set _actionText = setup.actionText>>
<<print _actionText['male_on_female_and_transfemale'][_sexActions[_index]][0].replace('%female%', $guests[_guestIds[0]].name).replace('%transfemale%', $guests[_guestIds[1]].name).replace('%male%', $guests[_guestIds[2]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
[img[setup.ImagePath+'game/misc/cum.webp']]
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<else>>
<<set $randEvent[2] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<set _interrupted = true>>
<<replace "#choice">>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $guests[_guestIds[0]] 'caught' 'no-text'>>
</center>
<br /><br />
You walk in on <<=setup.displayName($guests[_guestIds[0]])>> having sex with <<=setup.displayName($guests[_guestIds[1]])>> and <<=setup.displayName($guests[_guestIds[2]])>>, they stop and seem unhappy.<br />
<br />
<<linkreplace 'Ask for a creampie in pussy'>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[0]]))>>
<<if $guests[_guestIds[0]].virgin>>
<center>
<<actionImage $guests[_guestIds[0]] 'pussy' 'no-text'>>
</center>
<br />
<<=setup.displayName($guests[_guestIds[0]])>> seems a bit in pain at first as she loses her virginity.
<br /><br />
<<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: 'mc' })>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<center>
<<actionImage $guests[_guestIds[0]] 'threesome_t_pussy' 'no-text'>>
</center>
<br />
<<print _actionText['male_on_female']['pussy'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<linkreplace 'Continue'>>
<<set _orgasm = true>>
<center>
<<actionImage $guests[_guestIds[0]] 'cum_in_pussy' 'no-text'>>
</center>
<br />
<<print _actionText['male_on_female']['cum_in_pussy'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<if setup.pregnancyChance($guests[_guestIds[0]], $guests[_guestIds[2]])>>
<<set $guests[_guestIds[0]].pregnancy_father = $guests[_guestIds[2]].id>>
<<set $guests[_guestIds[0]].pregnancy = 0>>
<<if $guests[_guestIds[0]].virgin>><<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: $guests[_guestIds[2]].id })>><</if>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_guestIds[0]])>> says no and leaves the room half naked.
<br /><br />
<</if>>
<</linkreplace>>
<<linkreplace 'Ask to join them'>>
<<set _yesGuestIds = []>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[_i]]))>>
<<set _yesGuestIds.push(_guestIds[_i])>>
<</if>>
<</for>>
<<if _yesGuestIds.length == 0>>
They refuse and leave the room at once!
<<else>>
<<unset $guestId, $charId, $slaveId>>
<<if _yesGuestIds.length == 1>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> agrees to sex with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]]>>
<<unset $randEvent, $tmpEvent>>
<<fuck $tmpGirl>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> and <<=setup.displayName($guests[_yesGuestIds[1]], true)>> agree to have a threesome with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]],
$guestId2 = _yesGuestIds[1],
$tmpGirl2 = $guests[_yesGuestIds[1]]>>
<<unset $randEvent, $tmpEvent>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<<threesome $tmpGirl $tmpGirl2>>
<</linkreplace>>
<</if>>
<</if>>
<</linkreplace>>
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">
GUEST HOUSE
</h1>
<br />
<<set _guestIds = [setup.getRandomPersons($tmpEvent[0], 1), setup.getRandomPersons($tmpEvent[1], 1)]>>
<<set _girl = $guests[_guestIds[0]]>>
<<set _guy = $guests[_guestIds[1]]>>
<<set _girl.location = 'tied'>>
<<set _girl.happy -= 50>>
The air is thick, heavy with an unease that prickles the back of your neck. The usual murmur of settlers unwinding after a long day is absent.
Instead, there’s only silence… except for something else. Faint, muffled sounds coming from the far corner of the room.
<br /><br />
Your instincts flare. You move through the space quickly, past the old furniture and sleeping cots, heart pounding harder with every step.
Rounding the corner, the scene unfolds before you.
<br /><br />
<<=setup.displayName(_girl)>>. Tied down. Naked. Gagged. Struggling.
<<=setup.displayName(_guy)>>, one of your own, is on top of her, his hands forcing her down, his breath ragged with sick intent as he holds his dick in her hand, ready to push it inside her pussy.
The sheets from the cot bind her wrists, torn and knotted tight.
<br /><br />
<center>
<<actionImage _girl 'prepare'>>
</center>
<br />
<<=setup.displayName(_girl)>> and <<=setup.displayName(_guy)>> hasn’t noticed you yet.
<br /><br />
<<set _linkName = 'Pull ' + _guy.name + ' off her'>>
<div id="option_watch">
<<linkreplace 'Continue to watch'>>
<<set _watched = true>>
<<if _girl.virgin>><<run setup.npc.addHistory(_girl, 'virgin_lost', { with: _guy.id })>><</if>>
<<set _girl.virgin = false>>
<center>
<<actionImage _girl 'pussy_back'>>
</center>
<br />
With you standing unnoticed and watching <<=setup.displayName(_guy)>> finally slides his <<=_guy.dick>> dick inside <<=setup.displayName(_girl)>>.
She instantly tries to kick him off but is not strong enough as he slowly increases the speed and depth.
<br /><br />
As her screams for help and moans get louder he leans closer to her and grabs her by the neck.
<br /><br />
<center>
<<actionImage _girl 'pussy_back2'>>
</center>
<br />
<<=setup.displayName(_guy)>> somewhat gently chokes her while his chest starts to touch her belly as he pounds <<=setup.displayName(_girl)>>'s pussy from closer distance.
<br />
He feels powerfull and is trying to take full amount of the pleasure he can get from her. Slowly releasing her neck and feeling her <<=_girl.breasts>> breast.
<br /><br />
Then with a powerfull move he forcefully turns her around.
<br /><br />
<center>
<<actionImage _girl 'pussy_chest'>>
</center>
<br />
<<=setup.displayName(_girl)>> tries to get out of his touch again with but without success and soon enough he's already fucking her pussy. She looks weakened and look like is slowly giving up.
<br />
Then with last of her strength she almost manages to throw him off her but fails. She instantly puts both hands on her bnack and holds her down, while as punishment starts to furiusly fuck her even harder.
<br /><br />
<center>
<<actionImage _girl 'pussy_chest2'>>
</center>
<br />
You can clearly see she hides her face in the sheets and just gives up fully while <<=setup.displayName(_guy)>> uses her, hoping that it will end soon.
With each thrust <<=setup.displayName(_guy)>> movements get stronger and stronger and soon enough he pulls his dick out of her pussy and turns her back on her back, pull down her gag.
<br /><br />
<div id="option_cum">
<<linkreplace 'Keep watching'>>
<<run _cum = true>>
<<run $('#option_pull, #option_join').hide()>>
<center>
<<actionImage _girl 'cum_face'>>
</center>
<br />
<<=setup.displayName(_girl)>> doesn't even try to scream anymore. She just accepts her fate in this harsh world, as <<=setup.displayName(_guy)>> cums all over her face.
Then he gets off her and as fast as he can, grabs his clothes and runs away but not before warning her to to mention this to anyone.
<<set _guy.horny = 0>>
<<set _guy.sub -= 20>>
<br /><br />
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="option_pull">
<<linkreplace _linkName>>
<<if !_watched>>
<<run $('#option_watch').hide()>>
<</if>>
You surge forward, grabbing <<=setup.displayName(_guy)>> by the back of his neck and yanking him off <<=setup.displayName(_girl)>> with all your strength.
He barely has time to grunt before you slam him into the floorboards, the impact shaking the room.
<br /><br />
<<you>>
What the hell is going on her?
<</you>>
<br />
You untie <<=setup.displayName(_girl)>>. Without looking back she just runs out of the guest house crying.
<br /><br />
<<sayNpc _guy>>
Please! It won't happen again.
<</sayNpc>>
<br />
<<link 'Throw him in the basement'>>
<<set $tmpGirl = _guy>>
<<set $guestId = _guestIds[1]>>
<<run delete $slaveId>>
<<run delete $charId>>
<<goto 'Guest move to basement'>>
<</link>>
<<link 'Forgive him'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_join">
<<linkreplace 'Join him'>>
<<run $('#option_pull').hide()>>
<<if !_watched>>
<<run $('#option_watch').hide()>>
<</if>>
<<if !_cum>>
<<run $('#option_cum').hide()>>
<</if>>
<<=setup.displayName(_guy)>> pulls his dick out and takes a step back in horror watching at your reaction.
<br /><br />
<<you>>
Calm down you too. I just want to join.
<</you>>
<br />
<<=setup.displayName(_guy)>>'s face shows relief as you take of your clothes and join them together in the bed, untying <<=setup.displayName(_girl)>>.
Seeing your approval she calms down a bit and goes with it.
<br /><br />
<<link 'Fuck'>>
<<set $tmpGirl = _girl>>
<<set $tmpGirl2 = _guy>>
<<set $guestId = _guestIds[0]>>
<<set $guestId2 = _guestIds[1]>>
<<set $tmpGirlViewBack = 'Guest house'>>
<<unset $charId, $slaveId>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">GUEST HOUSE</h1>
<<if ($tmpEvent.wifeGuestIdxs ?? []).length > 0 && typeof $randEvent === 'undefined'>>
<<set _wifeIdx = $tmpEvent.wifeGuestIdxs[0]>>
<<set _wife = $guests[_wifeIdx]>>
<<set _selectedFemale = $guests[$tmpEvent.femaleGuestIds[0]]>>
<<set _husband = $guests[$tmpEvent.maleGuestIds[0]]>>
<<set _wifeLikesGuys = (_wife.likesGuys ?? true)>>
<<set _wifeLikesGirls = (_wife.likesGirls ?? false)>>
<<set _wifeDie = random(1, 100)>>
<<if _wifeLikesGuys && _wifeLikesGirls>>
<<if _wifeDie <= 20>>
<<set _wifeOutcome = 'leaves_bi'>>
<<elseif _wifeDie <= 50>>
<<set _wifeOutcome = 'stays_bi'>>
<<else>>
<<set _wifeOutcome = 'joins'>>
<</if>>
<<elseif _wifeLikesGuys>>
<<set _wifeOutcome = _wifeDie <= 30 ? 'stays_straight' : 'leaves_straight'>>
<<elseif _wifeLikesGirls>>
<<if _wifeDie <= 20>>
<<set _wifeOutcome = 'joins'>>
<<elseif _wifeDie <= 50>>
<<set _wifeOutcome = 'stays_lesbian'>>
<<else>>
<<set _wifeOutcome = 'leaves_lesbian'>>
<</if>>
<<else>>
<<set _wifeOutcome = 'leaves_neither'>>
<</if>>
<br />
<<if _wifeOutcome === 'leaves_bi'>>
His wife, <<=setup.displayName(_wife)>>, is already at the doorway when you get there. She looks at <<=setup.displayName(_husband)>> and <<=setup.displayName(_selectedFemale)>> together — takes it in — and lets out a slow breath through her nose. Something in her expression tightens for a second and then closes off. She pulls the door closed softly on her way out and doesn't say anything, and her footsteps down the corridor are quiet and fast.
<br /><br />
<<sayNpc _wife>>
<<set _reactionOptions = [
"I know when I'm not needed.",
"It should have been me.",
"I would have been better than her.",
"Fine. I get it.",
"I hope she's worth it."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _wifeOutcome === 'stays_bi'>>
His wife, <<=setup.displayName(_wife)>>, is leaning against the far wall when you arrive, watching <<=setup.displayName(_husband)>> and <<=setup.displayName(_selectedFemale)>> with obvious interest. No jealousy in it — she looks more like a spectator who got a good seat than someone who was wronged. She stays right where she is, eyes on the two of them, and when the encounter starts she doesn't move, doesn't look away, and doesn't acknowledge you.
<br /><br />
<<sayNpc _wife>>
<<set _reactionOptions = [
"Sometimes it's more fun just to watch.",
"Let's see just how good she is.",
"I wouldn't mind her for myself.",
"I could get used to this arrangement.",
"Don't worry about me. I'm enjoying the show."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _wifeOutcome === 'joins'>>
His wife, <<=setup.displayName(_wife)>>, is there before you are. She looks at <<=setup.displayName(_selectedFemale)>>, looks at <<=setup.displayName(_husband)>>, and steps inside. She goes straight to <<=setup.displayName(_selectedFemale)>> — no hesitation, hands first — and <<=setup.displayName(_husband)>> comes in behind her and closes the door. All three of them are into it from the start. It works without instruction.
<br /><br />
<<sayNpc _wife>>
<<set _reactionOptions = [
"Let me show you how he likes it.",
"Why don't we enjoy her together?",
"That looks fun. Room for a third?",
"Don't start without me.",
"I can share if you can."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _wifeOutcome === 'stays_straight'>>
His wife, <<=setup.displayName(_wife)>>, is inside the door when you arrive — rigid, jaw set, arms at her sides. She watches <<=setup.displayName(_husband)>> and <<=setup.displayName(_selectedFemale)>> with controlled blankness, the kind that costs something to maintain. She knows she doesn't get to leave. She stays for all of it, eyes forward, and by the end the effort of holding herself together has written itself into her posture.
<br /><br />
<<sayNpc _wife>>
<<set _reactionOptions = [
"Go ahead. Try and enjoy yourselves.",
"Let's see if she's as good as I am.",
"I want to see if he's any different when it's not me.",
"I'll be right here. Don't let me get in the way.",
"Fine. I'll watch."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _wifeOutcome === 'leaves_straight'>>
His wife, <<=setup.displayName(_wife)>>, gets there first. She sees <<=setup.displayName(_husband)>> and <<=setup.displayName(_selectedFemale)>> and her posture goes tight — a quick involuntary thing she can't quite help. She doesn't make a scene. She turns and walks, and her footsteps going away are faster than they were coming in. <<=setup.displayName(_husband)>> watches her go for a second, then turns back to <<=setup.displayName(_selectedFemale)>>.
<br /><br />
<<sayNpc _wife>>
<<set _reactionOptions = [
"I know when I'm not needed.",
"It should have been me.",
"I would have been better than her.",
"Fine. I get it.",
"I hope she's worth it."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _wifeOutcome === 'stays_lesbian'>>
His wife, <<=setup.displayName(_wife)>>, walks straight past <<=setup.displayName(_husband)>> — he's not why she stayed — and finds a clear angle on <<=setup.displayName(_selectedFemale)>>. Her attention fixes there and doesn't move. She watches <<=setup.displayName(_selectedFemale)>> directly and doesn't bother making it less obvious. <<=setup.displayName(_husband)>> she barely registers; when the encounter starts, he might as well not be in the room.
<br /><br />
<<sayNpc _wife>>
<<set _reactionOptions = [
"Sometimes it's more fun just to watch.",
"Let's see just how good she is.",
"I wouldn't mind her for myself.",
"Go ahead. I'll be right here.",
"I'm just here for her, honestly."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _wifeOutcome === 'leaves_lesbian'>>
His wife, <<=setup.displayName(_wife)>>, glances in, sees <<=setup.displayName(_husband)>> and <<=setup.displayName(_selectedFemale)>>, and something in her face loosens — the kind of relief you get when a problem handles itself. She turns and walks, easy, unhurried, and doesn't look back. In the room, <<=setup.displayName(_husband)>> and <<=setup.displayName(_selectedFemale)>> are already at it.
<br /><br />
<<sayNpc _wife>>
<<set _reactionOptions = [
"I'll leave you two to it.",
"You two have fun.",
"Better her than me.",
"Don't mind me. I'm heading out.",
"Carry on. I wasn't going to get involved anyway."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<else>>
His wife, <<=setup.displayName(_wife)>>, looks in at <<=setup.displayName(_husband)>> and <<=setup.displayName(_selectedFemale)>> and goes. No visible reaction. She has somewhere else to be.
<br /><br />
<<sayNpc _wife>>
<<set _reactionOptions = [
"I'll leave you two to it.",
"You two have fun.",
"Don't mind me. I'm heading out.",
"Carry on. I wasn't going to get involved anyway.",
"Enjoy yourselves."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<</if>>
<br /><br />
<<if _wifeOutcome === 'joins'>>
<<link 'Continue'>>
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) + 5)>>
<<set _wife.corruption = Math.min(100, (_wife.corruption ?? 0) + 3)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].corruption ?? 0) + 1)>>
<<set $tmpEvent = {
maleGuestIds: $tmpEvent.maleGuestIds,
femaleGuestIds: _wifeIdx !== undefined ? [$tmpEvent.femaleGuestIds[0], _wifeIdx] : $tmpEvent.femaleGuestIds
}>>
<<goto 'Guesthouse [Event] - male on females'>>
<</link>>
<<linkdesc>>+5 happy, +1 corruption to <<=setup.displayName(_husband)>>; +3 corruption to <<=setup.displayName(_wife)>><</linkdesc>>
<<elseif _wifeOutcome === 'stays_bi' || _wifeOutcome === 'stays_lesbian'>>
<<link 'Continue'>>
<<set _wife.happy = Math.min(100, (_wife.happy ?? 50) + 3)>>
<<set _wife.corruption = Math.min(100, (_wife.corruption ?? 0) + 2)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) + 3)>>
<<run delete $tmpEvent.wifeGuestIdxs>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<<linkdesc>>+3 happy, +2 corruption to <<=setup.displayName(_wife)>>; +3 happy to <<=setup.displayName(_husband)>><</linkdesc>>
<<elseif _wifeOutcome === 'stays_straight'>>
<<link 'Continue'>>
<<set _wife.happy = Math.max(0, (_wife.happy ?? 50) - 5)>>
<<set _wife.corruption = Math.min(100, (_wife.corruption ?? 0) + 4)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.max(0, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) - 3)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].corruption ?? 0) + 1)>>
<<run delete $tmpEvent.wifeGuestIdxs>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<<linkdesc>>−5 happy, +4 corruption to <<=setup.displayName(_wife)>>; −3 happy, +1 corruption to <<=setup.displayName(_husband)>><</linkdesc>>
<<elseif _wifeOutcome === 'leaves_bi' || _wifeOutcome === 'leaves_straight'>>
<<link 'Continue'>>
<<set _wife.happy = Math.max(0, (_wife.happy ?? 50) - 5)>>
<<run delete $tmpEvent.wifeGuestIdxs>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<<linkdesc>>−5 happy to <<=setup.displayName(_wife)>><</linkdesc>>
<<else>>
<<link 'Continue'>>
<<set _wife.happy = Math.min(100, (_wife.happy ?? 50) + 3)>>
<<run delete $tmpEvent.wifeGuestIdxs>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<<linkdesc>>+3 happy to <<=setup.displayName(_wife)>><</linkdesc>>
<</if>>
<<elseif ($tmpEvent.husbandGuestIdxs ?? []).length > 0 && typeof $randEvent === 'undefined'>>
<<set _husbandIdx = $tmpEvent.husbandGuestIdxs[0]>>
<<set _husband = $guests[_husbandIdx]>>
<<set _wifeFemale = $guests[$tmpEvent.femaleGuestIds[0]]>>
<<set _selectedMale = $guests[$tmpEvent.maleGuestIds[0]]>>
<<set _husbandLikesGuys = (_husband.likesGuys ?? false)>>
<<set _husbandLikesGirls = (_husband.likesGirls ?? true)>>
<<set _husbandDie = random(1, 100)>>
<<if _husbandLikesGirls && _husbandLikesGuys>>
<<if _husbandDie <= 20>>
<<set _husbandOutcome = 'leaves_bi'>>
<<elseif _husbandDie <= 50>>
<<set _husbandOutcome = 'stays_bi'>>
<<else>>
<<set _husbandOutcome = 'joins_bi'>>
<</if>>
<<elseif _husbandLikesGirls>>
<<if setup.percentageChance((_husband.sub ?? 0) * 2)>>
<<set _husbandOutcome = 'stays_straight'>>
<<else>>
<<set _husbandOutcome = 'leaves_straight'>>
<</if>>
<<elseif _husbandLikesGuys>>
<<if _husbandDie <= 10>>
<<set _husbandOutcome = 'joins_gay'>>
<<elseif _husbandDie <= 40>>
<<set _husbandOutcome = 'stays_gay'>>
<<else>>
<<set _husbandOutcome = 'leaves_gay'>>
<</if>>
<<else>>
<<set _husbandOutcome = 'leaves_neither'>>
<</if>>
<br />
<<if _husbandOutcome === 'leaves_bi'>>
Her husband, <<=setup.displayName(_husband)>>, is at the doorway ahead of you. He takes in <<=setup.displayName(_wifeFemale)>> and <<=setup.displayName(_selectedMale)>> — one look, quick and clear — and his expression tightens. His eyes find <<=setup.displayName(_wifeFemale)>> for a moment and then he decides not to do anything with that, and turns and walks. He keeps it together all the way down the corridor.
<br /><br />
<<sayNpc _husband>>
<<set _reactionOptions = [
"I know when I'm not needed.",
"It should have been me.",
"I would have been better than him.",
"Fine. I get it.",
"I hope he's worth it."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _husbandOutcome === 'stays_bi'>>
Her husband, <<=setup.displayName(_husband)>>, is already in the room when you arrive, positioned along the wall, watching <<=setup.displayName(_wifeFemale)>> and <<=setup.displayName(_selectedMale)>> with clear interest. Not resentful — engaged. He takes in both of them and when the encounter starts his full focus goes to the two of them. He doesn't acknowledge you when you arrive.
<br /><br />
<<sayNpc _husband>>
<<set _reactionOptions = [
"Sometimes it's more fun just to watch.",
"Let's see just how good he is.",
"I wouldn't mind him for myself.",
"I could get used to this arrangement.",
"Don't worry about me. I'm enjoying the show."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _husbandOutcome === 'joins_bi'>>
Her husband, <<=setup.displayName(_husband)>>, goes in before you do. He puts a hand on <<=setup.displayName(_wifeFemale)>>'s shoulder — familiar, easy — and when she leans into him the tension in the room drops. Then he turns to <<=setup.displayName(_selectedMale)>> and the three of them start sorting themselves out. They don't need direction. It's already working.
<br /><br />
<<sayNpc _husband>>
<<set _reactionOptions = [
"Let me show you how she likes it.",
"Why don't we enjoy him together?",
"That looks fun. Room for a third?",
"Don't start without me.",
"I can share if you can."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _husbandOutcome === 'stays_straight'>>
Her husband, <<=setup.displayName(_husband)>>, is standing just inside the door when you arrive. Too still — the way someone stands when they're working not to move. He watches <<=setup.displayName(_wifeFemale)>> and <<=setup.displayName(_selectedMale)>> with a locked jaw and careful eyes, and he knows he's not leaving. He stays for all of it, watching <<=setup.displayName(_wifeFemale)>> the whole time, and by the end the effort it took is visible in his face.
<br /><br />
<<sayNpc _husband>>
<<set _reactionOptions = [
"I'll just sit over here and stay out of the way.",
"He's probably a lot better than me.",
"I probably deserve this.",
"Don't mind me. I'm not going anywhere.",
"Fine. I'll watch."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _husbandOutcome === 'leaves_straight'>>
Her husband, <<=setup.displayName(_husband)>>, is there ahead of you. He sees <<=setup.displayName(_selectedMale)>> with <<=setup.displayName(_wifeFemale)>> — the shape of it — and goes still for a moment. Then something closes in his face and he turns and walks. No scene. He doesn't look at you on the way out. <<=setup.displayName(_wifeFemale)>> and <<=setup.displayName(_selectedMale)>> don't stop.
<br /><br />
<<sayNpc _husband>>
<<set _reactionOptions = [
"I know when I'm not needed.",
"It should have been me.",
"I would have been better than him.",
"Fine. I get it.",
"I hope he's worth it."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _husbandOutcome === 'joins_gay'>>
Her husband, <<=setup.displayName(_husband)>>, barely glances at <<=setup.displayName(_wifeFemale)>>. His eyes go to <<=setup.displayName(_selectedMale)>> and stay there — direct, decided. He steps inside, and when <<=setup.displayName(_wifeFemale)>> reads where his attention is she already understands. He doesn't explain himself. The three of them sort out their configuration, and what he came in for is obvious.
<br /><br />
<<sayNpc _husband>>
<<set _reactionOptions = [
"Room for a third?",
"Don't start without me.",
"That looks fun.",
"I'll make this worth your while.",
"Why don't we all make the most of this?"
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _husbandOutcome === 'stays_gay'>>
Her husband, <<=setup.displayName(_husband)>>, moves past <<=setup.displayName(_wifeFemale)>> to where he can see <<=setup.displayName(_selectedMale)>> clearly and settles there. That's what he's here for and he doesn't obscure it — his attention locks onto <<=setup.displayName(_selectedMale)>> the way a man watches something he wants. <<=setup.displayName(_wifeFemale)>> he doesn't look at. When the encounter starts, <<=setup.displayName(_selectedMale)>> is all he's watching.
<br /><br />
<<sayNpc _husband>>
<<set _reactionOptions = [
"Sometimes it's more fun just to watch.",
"Let's see just how good he is.",
"I wouldn't mind him for myself.",
"Go ahead. I'll be right here.",
"I'm just here for him, honestly."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<elseif _husbandOutcome === 'leaves_gay'>>
Her husband, <<=setup.displayName(_husband)>>, looks in, takes a clear look at <<=setup.displayName(_wifeFemale)>> and <<=setup.displayName(_selectedMale)>>, and the set of his shoulders visibly loosens. Someone else is handling it. He steps back from the door and walks, easy pace, no hurry. In the room, <<=setup.displayName(_wifeFemale)>> and <<=setup.displayName(_selectedMale)>> continue.
<br /><br />
<<sayNpc _husband>>
<<set _reactionOptions = [
"I'll leave you two to it.",
"You two have fun.",
"Better him than me.",
"Don't mind me. I'm heading out.",
"Carry on. I wasn't going to get involved anyway."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<<else>>
Her husband, <<=setup.displayName(_husband)>>, looks in at <<=setup.displayName(_wifeFemale)>> and <<=setup.displayName(_selectedMale)>> and goes. Nothing to feel about it. He just goes.
<br /><br />
<<sayNpc _husband>>
<<set _reactionOptions = [
"I'll leave you two to it.",
"You two have fun.",
"Don't mind me. I'm heading out.",
"Carry on. I wasn't going to get involved anyway.",
"Enjoy yourselves."
]>>
<<=setup.getRandomElement(_reactionOptions)>>
<</sayNpc>>
<</if>>
<br /><br />
<<if _husbandOutcome === 'joins_bi'>>
<<link 'Continue'>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].happy ?? 50) + 5)>>
<<set _husband.corruption = Math.min(100, (_husband.corruption ?? 0) + 2)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].corruption ?? 0) + 1)>>
<<set $tmpEvent = {
maleGuestIds: _husbandIdx !== undefined ? [$tmpEvent.maleGuestIds[0], _husbandIdx] : $tmpEvent.maleGuestIds,
femaleGuestIds: $tmpEvent.femaleGuestIds
}>>
<<goto 'Guesthouse [Event] - males on female'>>
<</link>>
<<linkdesc>>+5 happy, +1 corruption to <<=setup.displayName(_wifeFemale)>>; +2 corruption to <<=setup.displayName(_husband)>><</linkdesc>>
<<elseif _husbandOutcome === 'joins_gay'>>
<<link 'Continue'>>
<<set _husband.corruption = Math.min(100, (_husband.corruption ?? 0) + 3)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].corruption ?? 0) + 1)>>
<<set $tmpEvent = {
maleGuestIds: _husbandIdx !== undefined ? [$tmpEvent.maleGuestIds[0], _husbandIdx] : $tmpEvent.maleGuestIds,
femaleGuestIds: $tmpEvent.femaleGuestIds
}>>
<<goto 'Guesthouse [Event] - males on female'>>
<</link>>
<<linkdesc>>+3 corruption to <<=setup.displayName(_husband)>>; +1 corruption to <<=setup.displayName(_wifeFemale)>><</linkdesc>>
<<elseif _husbandOutcome === 'stays_bi' || _husbandOutcome === 'stays_gay'>>
<<link 'Continue'>>
<<set _husband.happy = Math.min(100, (_husband.happy ?? 50) + 3)>>
<<set _husband.sub = Math.min(100, (_husband.sub ?? 0) + 3)>>
<<set _husband.corruption = Math.min(100, (_husband.corruption ?? 0) + 2)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].happy ?? 50) + 3)>>
<<run delete $tmpEvent.husbandGuestIdxs>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<<linkdesc>>+3 happy, +3 sub, +2 corruption to <<=setup.displayName(_husband)>>; +3 happy to <<=setup.displayName(_wifeFemale)>><</linkdesc>>
<<elseif _husbandOutcome === 'stays_straight'>>
<<link 'Continue'>>
<<set _husband.happy = Math.max(0, (_husband.happy ?? 50) - 5)>>
<<set _husband.sub = Math.min(100, (_husband.sub ?? 0) + 5)>>
<<set _husband.corruption = Math.min(100, (_husband.corruption ?? 0) + 4)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].happy = Math.max(0, ($guests[$tmpEvent.femaleGuestIds[0]].happy ?? 50) - 3)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].corruption ?? 0) + 1)>>
<<run delete $tmpEvent.husbandGuestIdxs>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<<linkdesc>>−5 happy, +5 sub, +4 corruption to <<=setup.displayName(_husband)>>; −3 happy, +1 corruption to <<=setup.displayName(_wifeFemale)>><</linkdesc>>
<<elseif _husbandOutcome === 'leaves_bi' || _husbandOutcome === 'leaves_straight'>>
<<link 'Continue'>>
<<set _husband.happy = Math.max(0, (_husband.happy ?? 50) - 5)>>
<<set _husband.sub = Math.min(100, (_husband.sub ?? 0) + 3)>>
<<run delete $tmpEvent.husbandGuestIdxs>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<<linkdesc>>−5 happy, +3 sub to <<=setup.displayName(_husband)>><</linkdesc>>
<<else>>
<<link 'Continue'>>
<<set _husband.happy = Math.min(100, (_husband.happy ?? 50) + 3)>>
<<run delete $tmpEvent.husbandGuestIdxs>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<<linkdesc>>+3 happy to <<=setup.displayName(_husband)>><</linkdesc>>
<</if>>
<<elseif $tmpEvent.isCouple && typeof $randEvent === 'undefined'>>
<<set _wife = $guests[$tmpEvent.femaleGuestIds[0]]>>
<<set _husband = $guests[$tmpEvent.maleGuestIds[0]]>>
<<if !(_wife.likesGuys ?? true)>>
<<set _wifePregnant = (_wife.pregnancy ?? 0) > 0>>
<<set _wifeHasChildren = (_wife.family?.kids ?? []).length > 0>>
<<set _wifeInfertile = (_wife.traits ?? []).includes('infertile')>>
<br />
<<=setup.displayName(_wife)>> doesn't like men. That's not something she's gone out of her way to say, but it's not a secret either.<br />
She looks at you, then at <<=setup.displayName(_husband)>>, and the discomfort is visible even as she holds herself together.
<br /><br />
<<set _inNameOnlyOptions = [
"Is there any way we could keep this just on paper? Be married without it having to be more than that?",
"I don't suppose there's a version of this that doesn't require us to be physical. I'm happy to stay. I just don't want to do this part.",
"Could this be a practical arrangement? I can be his wife. I'd just rather that didn't include being with him physically.",
"I was hoping we could leave it at the marriage. Not make it into something more than that.",
"Is the physical part of this actually required? I can handle everything else. I just can't do that."
]>>
<br /><br />
<<sayNpc _wife>>
<<=setup.getRandomElement(_inNameOnlyOptions)>>
<<if _wifePregnant>>
<<set _pregnantOptions = [
"I'm already pregnant. What would this accomplish?",
"I'm pregnant already. There's nothing left to prove on that front.",
"There's already a baby coming. I don't see what this is supposed to add.",
"I'm already with child. Whatever obligation this was meant to fulfill, it's done.",
"This has already happened. I'm already pregnant."
]>>
<<=setup.getRandomElement(_pregnantOptions)>>
<<elseif _wifeHasChildren>>
<<set _childrenOptions = [
"I've already given him a child. I thought that would be enough.",
"We've done what needed doing. I didn't think I'd be asked to keep going.",
"I've already had his child. I thought that settled things.",
"I've given this settlement children. I assumed that was what was being asked.",
"We have children. I've done my part. I didn't think this was still required."
]>>
<<=setup.getRandomElement(_childrenOptions)>>
<<elseif _wifeInfertile>>
<<set _infertileOptions = [
"I can't give him children. This would only be for his pleasure.",
"I'm not able to conceive. Whatever this is for, it isn't for the settlement.",
"Nothing's going to come of this. It would only be for his satisfaction.",
"I can't give him what this is supposed to be for. You'd only be doing this for him.",
"If this is about growing the settlement, I can't help with that. This would be pointless."
]>>
<<=setup.getRandomElement(_infertileOptions)>>
<</if>>
<</sayNpc>>
<br /><br />
<div id="couple-protest">
<<linkreplace 'Insist'>>
<<run $('#couple-respect').hide()>>
You hold her gaze and don't respond. She searches your expression for some give in it, finds none, and the question she asked dies quietly in the space between you. She looks down briefly, then back up. She's going to do this — not because she chose to, but because the alternative isn't available to her. When <<=setup.displayName(_husband)>> steps past you through the door, she follows without looking at you again.
<br /><br />
<<set $guests[$tmpEvent.femaleGuestIds[0]].happy = Math.max(0, ($guests[$tmpEvent.femaleGuestIds[0]].happy ?? 50) - 7)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].sub = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].sub ?? 0) + 3)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].corruption ?? 0) + 3)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].corruption ?? 0) + 1)>>
<<if _husband.likesGirls ?? true>>
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) + 5)>>
<<else>>
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.max(0, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) - 5)>>
<</if>>
<<link 'Continue'>>
<<run delete $tmpEvent.isCouple>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<</linkreplace>>
<<linkdesc>>−7 happy, +3 sub, +3 corruption to <<=setup.displayName(_wife)>>; +1 corruption, <<if _husband.likesGirls ?? true>>+5<<else>>−5<</if>> happy to <<=setup.displayName(_husband)>><</linkdesc>>
</div>
<div id="couple-respect">
<<linkreplace 'Respect her wishes'>>
<<run $('#couple-protest').hide()>>
You don't push it. She holds your gaze for a moment making sure it's real, and when she's sure, the tension in her posture eases. She doesn't say thank you — doesn't quite go that far — but the way she looks at you before stepping back means something. She says something quiet to <<=setup.displayName(_husband)>> and the two of them separate from the doorway.
<br /><br />
<<set $guests[$tmpEvent.femaleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].happy ?? 50) + 3)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].relationship = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].relationship ?? 0) + 5)>>
<<if _husband.likesGirls ?? true>>
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.max(0, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) - 3)>>
<</if>>
<<link 'Leave'>>
<<unset $tmpEvent>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<<linkdesc>>+3 happy, +5 relationship to <<=setup.displayName(_wife)>><<if _husband.likesGirls ?? true>>; −3 happy to <<=setup.displayName(_husband)>><</if>><</linkdesc>>
</div>
<<elseif !(_husband.likesGirls ?? true)>>
<<set _wifePregnant = (_wife.pregnancy ?? -1) >= 0>>
<<set _wifeInfertile = (_wife.traits ?? []).includes('infertile')>>
<<set _hasChildren = (_wife.family?.kids ?? []).length > 0>>
<br />
<<=setup.displayName(_husband)>> doesn't like women. He's been here, he's done what was asked, but there's a line he hates to cross.<br />
He meets your eyes when you arrive. Doesn't look at <<=setup.displayName(_wife)>>.
<br /><br />
<<set _inNameOnlyOptions = [
"Is there any way we could keep this on paper? The marriage is real — I'm not asking for anything to change. I just don't want to make it physical.",
"I was wondering if this actually had to happen. I can handle the arrangement. I'd just rather skip this part.",
"Could we call this what it is — a practical setup — and leave it there? I'm not looking to cause problems. I just don't want to do this.",
"Is the physical side of this required? I'm fine with the rest of it. I'd just like to leave this off the list.",
"Is there any flexibility on the physical part? I've been cooperative with everything else. I'm just asking for this one thing."
]>>
<br /><br />
<<sayNpc _husband>>
<<=setup.getRandomElement(_inNameOnlyOptions)>>
<<if _wifePregnant || _wifeInfertile>>
<<set _pointlessOptions = [
"It's not like it'd do anything. She can't even conceive.",
"There's no point. Nothing's going to come of it.",
"It wouldn't accomplish anything. She's not able to get pregnant.",
"This doesn't need to happen. There's nothing to come of it.",
"It literally can't do anything right now. So why does this have to happen?"
]>>
<<=setup.getRandomElement(_pointlessOptions)>>
<<elseif _hasChildren>>
<<set _doneMyPartOptions = [
"I've already done my part for this settlement. We have children.",
"We've given you what you needed. I thought that was enough.",
"She's already given this place children. I don't see why this still has to happen.",
"I've contributed what was asked of me. We both have.",
"We've already fulfilled that obligation. There are children. What more is required?"
]>>
<<=setup.getRandomElement(_doneMyPartOptions)>>
<</if>>
<</sayNpc>>
<br /><br />
<div id="couple-protest">
<<linkreplace 'Insist'>>
<<run $('#couple-respect').hide()>>
You don't answer. He waits for one, reads that it isn't coming, and his expression flattens. He knows what the silence means. His eyes go to <<=setup.displayName(_wife)>> — something complicated passes between them, quick — and then he turns toward the door. He goes in. He doesn't argue. There's nothing to argue with.
<br /><br />
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.max(0, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) - 5)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].sub = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].sub ?? 0) + 5)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].corruption ?? 0) + 3)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].corruption ?? 0) + 1)>>
<<if !(_wife.likesGuys ?? true)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].happy = Math.max(0, ($guests[$tmpEvent.femaleGuestIds[0]].happy ?? 50) - 7)>>
<</if>>
<<link 'Continue'>>
<<run delete $tmpEvent.isCouple>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<</linkreplace>>
<<linkdesc>>−5 happy, +5 sub, +3 corruption to <<=setup.displayName(_husband)>>; +1 corruption<<if !(_wife.likesGuys ?? true)>>, −7 happy<</if>> to <<=setup.displayName(_wife)>><</linkdesc>>
</div>
<div id="couple-respect">
<<linkreplace 'Respect his wishes'>>
<<run $('#couple-protest').hide()>>
You let it go. He watches you do it — absorbing that you didn't push — and the edge drops out of his expression. Not gratitude exactly, but something close to it mixed with awareness of where he stands. He nods slightly. <<=setup.displayName(_wife)>> glances between the two of you without comment. The three of you clear the doorway.
<br /><br />
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) + 1)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].sub = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].sub ?? 0) + 3)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].happy ?? 50) + 1)>>
<<link 'Leave'>>
<<unset $tmpEvent>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<<linkdesc>>+1 happy, +3 sub to <<=setup.displayName(_husband)>>; +1 happy to <<=setup.displayName(_wife)>><</linkdesc>>
</div>
<<else>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].happy ?? 50) + 5)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) + 5)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].relationship = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].relationship ?? 0) + 5)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].relationship = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].relationship ?? 0) + 5)>>
<br />
<<=setup.displayName(_husband)>> and <<=setup.displayName(_wife)>> both look up when you arrive, and there's none of the tension you'd expect. <<=setup.displayName(_wife)>> moves a little closer to <<=setup.displayName(_husband)>> — an automatic thing — and he puts a hand on her waist without thinking about it. They're easy together. The structure around them is what it is and they've accepted your hand in it; what they feel about each other is real and it's clearly not a performance. She looks at you once, then back at him, and the two of them start moving toward each other.
<br /><br />
<<link 'Stay and watch'>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].sub = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].sub ?? 0) + 3)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].sub = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].sub ?? 0) + 3)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].corruption ?? 0) + 3)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].corruption = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].corruption ?? 0) + 3)>>
<<run delete $tmpEvent.isCouple>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<<linkdesc>>+5 happy, +5 relationship, +3 sub, +3 corruption to <<=setup.displayName(_wife)>> and <<=setup.displayName(_husband)>><</linkdesc>>
<<link 'Give them privacy'>>
<<if $guests[$tmpEvent.femaleGuestIds[0]].virgin>>
<<run setup.npc.addHistory($guests[$tmpEvent.femaleGuestIds[0]], 'virgin_lost', { with: $guests[$tmpEvent.maleGuestIds[0]].id })>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].virgin = false>>
<</if>>
<<if setup.percentageChance(50)>>
<<if setup.pregnancyChance($guests[$tmpEvent.femaleGuestIds[0]], $guests[$tmpEvent.maleGuestIds[0]])>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].pregnancy_father = $guests[$tmpEvent.maleGuestIds[0]].id>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].pregnancy = 0>>
<</if>>
<</if>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].horny = 0>>
<<set $guests[$tmpEvent.maleGuestIds[0]].horny = 0>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].orgasms ??= 0>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].orgasms++>>
<<set $guests[$tmpEvent.maleGuestIds[0]].orgasms ??= 0>>
<<set $guests[$tmpEvent.maleGuestIds[0]].orgasms++>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].happy ?? 50) + 3)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].happy = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].happy ?? 50) + 3)>>
<<set $guests[$tmpEvent.femaleGuestIds[0]].relationship = Math.min(100, ($guests[$tmpEvent.femaleGuestIds[0]].relationship ?? 0) + 3)>>
<<set $guests[$tmpEvent.maleGuestIds[0]].relationship = Math.min(100, ($guests[$tmpEvent.maleGuestIds[0]].relationship ?? 0) + 3)>>
<<unset $tmpEvent>>
<<goto 'Guest house'>>
<</link>>
<<linkdesc>>+8 happy, +8 relationship to <<=setup.displayName(_wife)>> and <<=setup.displayName(_husband)>><</linkdesc>>
<</if>>
<<elseif $tmpEvent.isEx && typeof $randEvent === 'undefined'>>
<<set _protestorIdx = $tmpEvent.exProtestorIdx>>
<<set _protestor = $guests[_protestorIdx]>>
<<set _exIdx = $tmpEvent.exIdx>>
<<set _ex = $guests[_exIdx]>>
<<set _rbStats = (_protestor.relationshipBetween ?? {}).stats ?? {}>>
<<set _relScore = _rbStats[_ex.id] ?? 0>>
<br />
<<if _relScore < 20>>
<<=setup.displayName(_protestor)>> looks up when you come in and something in <<=setup.pronounceWhos(_protestor)>> expression shuts. <<=setup.pronounceWhat(_protestor, true)>> recognises <<=setup.displayName(_ex)>> from across the room and whatever was in <<=setup.pronounceWhos(_protestor)>> face before is gone, replaced by something closed and flat. <<=setup.pronounceWhat(_protestor, true)>> meets your eyes, not the other person's.
<br /><br />
<<sayNpc _protestor>>
<<set _exDialogOptions = [
"We stopped working for a reason. I don't think either of us liked who we were around the other. Can't we just leave it there?",
"I think we both know there's nothing left between us. We manage to get through the day without incident. Why would we risk that?",
"Whatever we had, it soured. I don't need a reminder of what it felt like at the end. Neither of us came out of that well.",
"We're not good for each other. We never were, not really. I'd rather we just keep our distance and call it a reasonable arrangement.",
"I'm not interested in going back to that. We don't even get along. Can we just keep the peace and leave it at that?"
]>>
<<=setup.getRandomElement(_exDialogOptions)>>
<</sayNpc>>
<br /><br />
<div id="ex-protest">
<<linkreplace 'Insist'>>
<<run $('#ex-respect').hide()>>
You hold the look. <<=setup.pronounceWhat(_protestor, true)>> reads the answer in it and the argument dies before it starts. Whatever resistance was in <<=setup.pronounceWho(_protestor)>> settles into something else — not acceptance, just the absence of alternatives. <<=setup.pronounceWhat(_protestor, true)>> moves for the door without saying anything further, and <<=setup.pronounceWhat(_protestor)>> doesn't look at <<=setup.displayName(_ex)>> on the way out.
<br /><br />
<<set $guests[_protestorIdx].happy = Math.max(0, ($guests[_protestorIdx].happy ?? 50) - 8)>>
<<set $guests[_protestorIdx].sub = Math.min(100, ($guests[_protestorIdx].sub ?? 0) + 4)>>
<<set $guests[_protestorIdx].corruption = Math.min(100, ($guests[_protestorIdx].corruption ?? 0) + 2)>>
<<set $guests[_exIdx].happy = Math.max(0, ($guests[_exIdx].happy ?? 50) - 3)>>
<<set $guests[_exIdx].corruption = Math.min(100, ($guests[_exIdx].corruption ?? 0) + 1)>>
<<link 'Continue'>>
<<run delete $tmpEvent.isEx>>
<<run delete $tmpEvent.exProtestorIdx>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<</linkreplace>>
<<linkdesc>>−8 happy, +4 sub, +2 corruption to <<=setup.displayName(_protestor)>>; −3 happy, +1 corruption to <<=setup.displayName(_ex)>><</linkdesc>>
</div>
<div id="ex-respect">
<<linkreplace 'Respect their wishes'>>
<<run $('#ex-protest').hide()>>
The tension in <<=setup.pronounceWho(_protestor)>> releases almost immediately. <<=setup.pronounceWhat(_protestor, true)>>'d been braced for something worse. The look <<=setup.pronounceWhat(_protestor)>> gives you isn't warm — there isn't enough between you for that — but there's something in it that acknowledges you made a different choice than <<=setup.pronounceWhat(_protestor)>> expected. <<=setup.pronounceWhat(_protestor, true)>> doesn't linger.
<br /><br />
<<set $guests[_protestorIdx].happy = Math.min(100, ($guests[_protestorIdx].happy ?? 50) + 2)>>
<<set $guests[_protestorIdx].relationship = Math.min(100, ($guests[_protestorIdx].relationship ?? 0) + 2)>>
<<set $guests[_exIdx].happy = Math.min(100, ($guests[_exIdx].happy ?? 50) + 1)>>
<<link 'Leave'>>
<<unset $tmpEvent>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<<linkdesc>>+2 happy, +2 relationship to <<=setup.displayName(_protestor)>>; +1 happy to <<=setup.displayName(_ex)>><</linkdesc>>
</div>
<<elseif _relScore < 50>>
<<=setup.pronounceWhat(_protestor, true)>>'s found <<=setup.pronounceWhos(_protestor)>> footing since it ended — what passes for normal between them. When you arrive, <<=setup.pronounceWhat(_protestor)>> registers <<=setup.displayName(_ex)>> and something in <<=setup.pronounceWho(_protestor)>> stiffens, not with hostility but with the particular discomfort of someone who'd gotten used to not having to think about this.
<br /><br />
<<sayNpc _protestor>>
<<set _exDialogOptions = [
"We tried. It didn't take. We're better off as whatever this is — people who can nod to each other in the corridor. Can that be enough?",
"There was a time I thought it could work. It didn't. I think we both know we're easier to be around when we're not being asked to be more than that.",
"We made our peace with it. I'd rather not unsettle that. We've figured out how to exist in the same place — that counts for something.",
"Things are easier between us now. I don't want to go back to when they weren't. Whatever we are now — it works. Can't we leave it that way?",
"We weren't right for each other. That's not a failing, it's just what it was. What we have now is better. Is that not enough for the settlement?"
]>>
<<=setup.getRandomElement(_exDialogOptions)>>
<</sayNpc>>
<br /><br />
<div id="ex-protest">
<<linkreplace 'Insist'>>
<<run $('#ex-respect').hide()>>
<<=setup.pronounceWhat(_protestor, true)>> lets out a slow breath. The argument dies before <<=setup.pronounceWhat(_protestor)>> makes it — not because it wasn't there, but because it isn't going to land. <<=setup.pronounceWhat(_protestor, true)>> stands, smooths something in <<=setup.pronounceWhos(_protestor)>> expression, and heads for the door without looking back.
<br /><br />
<<set $guests[_protestorIdx].happy = Math.max(0, ($guests[_protestorIdx].happy ?? 50) - 5)>>
<<set $guests[_protestorIdx].sub = Math.min(100, ($guests[_protestorIdx].sub ?? 0) + 3)>>
<<set $guests[_protestorIdx].corruption = Math.min(100, ($guests[_protestorIdx].corruption ?? 0) + 2)>>
<<set $guests[_exIdx].happy = Math.max(0, ($guests[_exIdx].happy ?? 50) - 2)>>
<<set $guests[_exIdx].corruption = Math.min(100, ($guests[_exIdx].corruption ?? 0) + 1)>>
<<link 'Continue'>>
<<run delete $tmpEvent.isEx>>
<<run delete $tmpEvent.exProtestorIdx>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<</linkreplace>>
<<linkdesc>>−5 happy, +3 sub, +2 corruption to <<=setup.displayName(_protestor)>>; −2 happy, +1 corruption to <<=setup.displayName(_ex)>><</linkdesc>>
</div>
<div id="ex-respect">
<<linkreplace 'Respect their wishes'>>
<<run $('#ex-protest').hide()>>
<<=setup.pronounceWhat(_protestor, true)>> looks at you for a moment. Then a small nod — nothing more — somewhere between thanks and acknowledgment that it was always a long shot. <<=setup.pronounceWhat(_protestor, true)>> pushes off from where <<=setup.pronounceWhat(_protestor)>> was sitting and the situation disperses without another word from either of them.
<br /><br />
<<set $guests[_protestorIdx].happy = Math.min(100, ($guests[_protestorIdx].happy ?? 50) + 2)>>
<<set $guests[_protestorIdx].relationship = Math.min(100, ($guests[_protestorIdx].relationship ?? 0) + 2)>>
<<set $guests[_exIdx].happy = Math.min(100, ($guests[_exIdx].happy ?? 50) + 1)>>
<<link 'Leave'>>
<<unset $tmpEvent>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<<linkdesc>>+2 happy, +2 relationship to <<=setup.displayName(_protestor)>>; +1 happy to <<=setup.displayName(_ex)>><</linkdesc>>
</div>
<<else>>
<<=setup.pronounceWhat(_protestor, true)>> looks up when you come in and sees who's standing next to you. There's a pause — small but readable — before <<=setup.pronounceWhat(_protestor)>> gets <<=setup.pronounceWhos(_protestor)>> expression under control. Something complicated crosses <<=setup.pronounceWhos(_protestor)>> face. <<=setup.pronounceWhat(_protestor, true)>>'s not hostile. It's more like the particular discomfort of someone who hasn't quite finished deciding how they feel.
<br /><br />
<<sayNpc _protestor>>
<<set _exDialogOptions = [
"I'm not going to pretend there's nothing there. There probably is. But we tried it and it didn't work out. Is it really worth stirring that up again?",
"It's complicated. We ended for reasons. Those reasons haven't gone away just because we're civil now. I don't know if I trust myself around them.",
"Honestly? I don't hate the idea. But the last time didn't end well, and I'm not sure I want to find out if this time is any different.",
"We get along now. That's not nothing. I just don't know if adding this back in is going to help or set us right back to where we were.",
"There's probably still something there. I won't pretend otherwise. I'm just not sure opening that door again is wise. But I'm listening."
]>>
<<=setup.getRandomElement(_exDialogOptions)>>
<</sayNpc>>
<br /><br />
<div id="ex-protest">
<<linkreplace 'Insist'>>
<<run $('#ex-respect').hide()>>
<<=setup.pronounceWhat(_protestor, true)>>'s quiet for a long moment. Then, almost to <<=setup.pronounceWho(_protestor) + 'self'>>: "I knew I should have said no harder." <<=setup.pronounceWhat(_protestor, true)>> gets up and moves for the door, and there's something in the way <<=setup.pronounceWhat(_protestor)>> carries <<=setup.pronounceWho(_protestor) + 'self'>> that isn't entirely resigned.
<br /><br />
<<set $guests[_protestorIdx].happy = Math.max(0, ($guests[_protestorIdx].happy ?? 50) - 3)>>
<<set $guests[_protestorIdx].sub = Math.min(100, ($guests[_protestorIdx].sub ?? 0) + 2)>>
<<set $guests[_protestorIdx].corruption = Math.min(100, ($guests[_protestorIdx].corruption ?? 0) + 3)>>
<<set $guests[_exIdx].happy = Math.min(100, ($guests[_exIdx].happy ?? 50) + 2)>>
<<link 'Continue'>>
<<run delete $tmpEvent.isEx>>
<<run delete $tmpEvent.exProtestorIdx>>
<<goto 'Guesthouse [Event] - male on female'>>
<</link>>
<</linkreplace>>
<<linkdesc>>−3 happy, +2 sub, +3 corruption to <<=setup.displayName(_protestor)>>; +2 happy to <<=setup.displayName(_ex)>><</linkdesc>>
</div>
<div id="ex-respect">
<<linkreplace 'Respect their wishes'>>
<<run $('#ex-protest').hide()>>
<<=setup.pronounceWhat(_protestor, true)>> looks away first. Something in <<=setup.pronounceWhos(_protestor)>> posture settles. "Yeah," <<=setup.pronounceWhat(_protestor)>> says, to no one in particular. "Probably for the best." <<=setup.pronounceWhat(_protestor, true)>> means it and <<=setup.pronounceWhat(_protestor)>> doesn't, and the way <<=setup.pronounceWhat(_protestor)>> leaves suggests <<=setup.pronounceWhat(_protestor)>>'s not entirely sure which.
<br /><br />
<<set $guests[_protestorIdx].happy = Math.min(100, ($guests[_protestorIdx].happy ?? 50) + 2)>>
<<set $guests[_protestorIdx].relationship = Math.min(100, ($guests[_protestorIdx].relationship ?? 0) + 2)>>
<<set $guests[_exIdx].happy = Math.min(100, ($guests[_exIdx].happy ?? 50) + 1)>>
<<link 'Leave'>>
<<unset $tmpEvent>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<<linkdesc>>+2 happy, +2 relationship to <<=setup.displayName(_protestor)>>; +1 happy to <<=setup.displayName(_ex)>><</linkdesc>>
</div>
<</if>>
<<else>>
<<if typeof $randEvent === 'undefined'>>
<<set
_guestIds = [$tmpEvent.femaleGuestIds[0], $tmpEvent.maleGuestIds[0]],
_minCorruption = Math.min($guests[_guestIds[0]].corruption, $guests[_guestIds[1]].corruption),
_isVirgin = $guests[_guestIds[0]].virgin,
_isAnalVirgin = ($guests[_guestIds[0]].anal < 20),
_isSquirter = ($guests[_guestIds[0]].traits ?? []).includes('squirter'),
_hasSmallTits = $guests[_guestIds[0]].breasts == 'small',
_isFemaleSadist = ($guests[_guestIds[0]].traits ?? []).includes('sadistic'),
_isMaleMasochist = ($guests[_guestIds[1]].traits ?? []).includes('masochist'),
_index = 0
>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<set _sexActions = [
['kissing','handjob','handjob','footjob','footjob'][random(0, _r)],
['bj','bj','titjob','titjob','dp'][random(0, _r)],
['nipple_lick','nipple_lick','nipple_lick','pussy_lick','pussy_lick'][random(0, _r)],
['pussy_lick','pussy_fingering','pussy_fingering','anal_fingering','anal_fingering'][random(0, _r)],
['pussy','pussy','pussy','anal','anal'][random(0, _r)],
['cum_on_back','cum_on_stomach','cum_on_tits','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<if _sexActions[1] == 'titjob' && _hasSmallTits>>
<<set _sexActions[1] = 'dp'>>
<</if>>
<<if _sexActions[2] == 'pussy_lick' && _isSquirter>>
<<set _sexActions[3] = 'squirt_lick'>>
<</if>>
<<if _sexActions[3] == 'pussy_fingering' && _isVirgin>>
<<set _sexActions[3] = 'anal_fingering'>>
<</if>>
<<if _sexActions[4] == 'pussy' && _isVirgin>>
<<set
_sexActions[4] = 'anal',
_sexActions[5] = 'cum_in_ass'
>>
<</if>>
<<if _sexActions[4] == 'anal' && _isAnalVirgin>>
<<set
_sexActions[4] = 'dp',
_sexActions[5] = 'cum_throat'
>>
<</if>>
<<if _r > 2 && _isFemaleSadist && _isMaleMasochist>>
<<set
_sexActions[4] = 'anal_reverse',
_sexActions[5] = 'anal_reverse_cum'
>>
<</if>>
<<if !_isVirgin && ($guests[_guestIds[1]].traits ?? []).includes('breeder')>>
<<set _sexActions[_sexActions.length - 1] = 'cum_in_pussy'>>
<</if>>
<<set $randEvent = [
_guestIds,
_sexActions,
_index
]>>
As you approach the dormitory, you hear muffled sounds.<br />
You take a peek and see <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex.<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_sexActions = $randEvent[1],
_index = $randEvent[2]
>>
<<set _spontaneousCum = (_index + 1 == $randEvent[1].length) && !['cum_in_pussy','cum_in_ass','cum_throat'].includes($randEvent[1][$randEvent[1].length-1]) && setup.percentageChance(20)>>
<</if>>
<br /><br />
<<set _actionText = setup.actionText>>
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<<actionImage $guests[_guestIds[0]] _sexActions[_index] 'no-text'>>
<br />
<<print _actionText['male_on_female'][_sexActions[_index]][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
<<image 'game/misc/cum.webp'>>
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<if _spontaneousCum>>
<br />
<<=setup.displayName($guests[_guestIds[1]])>> finishes inside her — you weren't expecting that.
<br /><br />
<<if setup.pregnancyChance($guests[_guestIds[0]], $guests[_guestIds[1]])>>
<<set $guests[_guestIds[0]].pregnancy_father = $guests[_guestIds[1]].id>>
<<set $guests[_guestIds[0]].pregnancy = 0>>
<<if $guests[_guestIds[0]].virgin>><<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: $guests[_guestIds[1]].id })>><</if>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<</if>>
<<else>>
<<set $randEvent[2] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<set _interrupted = true>>
<<replace "#choice">>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $guests[_guestIds[0]] 'caught' 'no-text'>>
</center>
<br /><br />
You walk in on <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex, they stop and seem unhappy.<br />
<br />
<<linkreplace 'Ask for a creampie in pussy'>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[0]]))>>
<<if $guests[_guestIds[0]].virgin>>
<center>
<<actionImage $guests[_guestIds[0]] 'pussy' 'no-text'>>
</center>
<br />
<<=setup.displayName($guests[_guestIds[0]])>> seems a bit in pain at first as she loses her virginity.
<br /><br />
<<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: 'mc' })>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<center>
<<actionImage $guests[_guestIds[0]] 'pussy' 'no-text'>>
</center>
<br />
<<print _actionText['male_on_female']['pussy'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<linkreplace 'Continue'>>
<<set _orgasm = true>>
<center>
<<actionImage $guests[_guestIds[0]] 'cum_in_pussy' 'no-text'>>
</center>
<br />
<<print _actionText['male_on_female']['cum_in_pussy'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<if setup.pregnancyChance($guests[_guestIds[0]], $guests[_guestIds[1]])>>
<<set $guests[_guestIds[0]].pregnancy_father = $guests[_guestIds[1]].id>>
<<set $guests[_guestIds[0]].pregnancy = 0>>
<</if>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_guestIds[0]])>> says no and leaves the room half naked.
<br /><br />
<</if>>
<</linkreplace>>
<<linkreplace 'Ask to join them'>>
<<set _yesGuestIds = []>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[_i]]))>>
<<set _yesGuestIds.push(_guestIds[_i])>>
<</if>>
<</for>>
<<if _yesGuestIds.length == 0>>
They refuse and leave the room at once!
<<else>>
<<unset $guestId, $charId, $slaveId>>
<<if _yesGuestIds.length == 1>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> agrees to sex with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]]>>
<<unset $randEvent, $tmpEvent>>
<<fuck $tmpGirl>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> and <<=setup.displayName($guests[_yesGuestIds[1]], true)>> agree to have a threesome with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]],
$guestId2 = _yesGuestIds[1],
$tmpGirl2 = $guests[_yesGuestIds[1]]>>
<<unset $randEvent, $tmpEvent>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<<threesome $tmpGirl $tmpGirl2>>
<</linkreplace>>
<</if>>
<</if>>
<</linkreplace>>
<<set _punishFemaleLink = 'Punish ' + $guests[_guestIds[0]].name + ' publicly'>>
<<link _punishFemaleLink>>
<<set $tmpGirl = $guests[_guestIds[0]]>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Public punishment - pillory'>>
<</link>>
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>>
<</if>><h1 class="ptitle">GUEST HOUSE</h1>
<<if typeof $randEvent === 'undefined'>>
<<set
_femaleGuestIds = $tmpEvent.femaleGuestIds,
_maleGuestIds = $tmpEvent.maleGuestIds,
_guestIds = _femaleGuestIds.concat(_maleGuestIds),
_guestNames ='',
_girlNames ='',
_guyNames ='',
_separator ='',
_index = 0,
_minCorruption = 100,
_nbFemaleSadists = 0,
_nbMaleMasochists = 0,
$tmpGirl = $guests[_femaleGuestIds[0]]
>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if _i > 0 && _i + 1 == _guestIds.length>>
<<set _separator =' and '>>
<<elseif _i > 0>>
<<set _separator =', '>>
<</if>>
<<set _guestNames += _separator + $guests[_guestIds[_i]].name>>
<<set _minCorruption = Math.min(_minCorruption, $guests[_guestIds[_i]].corruption)>>
<</for>>
<<set _separator =''>>
<<for _i = 0; _i < _femaleGuestIds.length; _i++>>
<<if _i > 0 && _i + 1 == _femaleGuestIds.length>>
<<set _separator =' and '>>
<<elseif _i > 0>>
<<set _separator =', '>>
<</if>>
<<set _girlNames += _separator + $guests[_femaleGuestIds[_i]].name>>
<<if ($guests[_femaleGuestIds[_i]].traits ?? []).includes('sadistic')>>
<<set _nbFemaleSadists += 1>>
<</if>>
<</for>>
<<set _separator =''>>
<<for _i = 0; _i < _maleGuestIds.length; _i++>>
<<if _i > 0 && _i + 1 == _maleGuestIds.length>>
<<set _separator =' and '>>
<<elseif _i > 0>>
<<set _separator =', '>>
<</if>>
<<set _guyNames += _separator + $guests[_maleGuestIds[_i]].name>>
<<if ($guests[_maleGuestIds[_i]].traits ?? []).includes('masochist')>>
<<set _nbMaleMasochists += 1>>
<</if>>
<</for>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<if _nbFemaleSadists > 0 && _nbMaleMasochists > 0>>
<<set _sexActions = [
['kissing','kissing','nipple_lick','nipple_lick','nipple_lick'][random(0, _r)],
['pussy_fingering','pussy_fingering','pussy_lick','pussy_lick','pussy_lick'][random(0, _r)],
['bj_reverse','anal_reverse','bj_reverse_anal_reverse','nipple_lick_anal_reverse','pussy_lick_anal_reverse'][random(0, _r)],
['anal_reverse','bj_reverse_anal_reverse','nipple_lick_anal_reverse','pussy_lick_anal_reverse','handjob_anal_reverse'][random(0, _r)],
['handjob_anal_reverse','bj_anal_reverse','sn_anal_reverse','pussy_a_anal_reverse','pussy_a_anal_reverse'][random(0, _r)],
'anal_reverse_cum'
]>>
<<if _sexActions[1] == 'pussy_fingering' && $guests[_guestIds[0]].virgin>>
<<set _sexActions[1] = 'anal_fingering'>>
<</if>>
<<if _sexActions[4] == 'pussy_a_anal_reverse' && $guests[_guestIds[0]].virgin>>
<<set
_sexActions[4] = 'sn_anal_reverse'
>>
<</if>>
<<elseif $guests[_guestIds[0]].virgin && $guests[_guestIds[0]].anal < 20>>
<<set _sexActions = [
['kissing','kissing','nipple_lick','nipple_lick','nipple_lick'][random(0, _r)],
['pussy_lick','pussy_lick','pussy_lick','anal_fingering','anal_fingering'][random(0, _r)],
['handjob','handjob','handjob','titjob','titjob'][random(0, _r)],
['bj','bj','sn','sn','sn'][random(0, _r)],
['dp','dp','dp','footjob','footjob'][random(0, _r)],
['cum_on_ass','cum_on_tits','cum_on_stomach','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<if _sexActions[2] == 'titjob' && $guests[_guestIds[0]].breasts == 'small'>>
<<set _sexActions[2] = 'bj'>>
<</if>>
<<if ($guests[_guestIds[0]].traits ?? []).includes('squirter')>>
<<set _sexActions[2] = 'squirt'>>
<</if>>
<<elseif $guests[_guestIds[0]].virgin>>
<<set _sexActions = [
['kissing','nipple_lick','handjob','titjob','footjob'][random(0, _r)],
['pussy_lick','pussy_lick','bj','bj','dp'][random(0, _r)],
['dp','sn','sn','anal_fingering','anal_fingering'][random(0, _r)],
['bj_b_anal','bj_b_anal','anal','anal','anal_b_bj'][random(0, _r)],
['anal_b_bj','anal_a_pussy_lick','anal_a_pussy_lick','anal_fisting','anal_fisting'][random(0, _r)],
['cum_on_ass','cum_on_tits','cum_on_stomach','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<if _sexActions[0] == 'titjob' && $guests[_guestIds[0]].breasts == 'small'>>
<<set _sexActions[0] = 'handjob'>>
<</if>>
<<if ($guests[_guestIds[0]].traits ?? []).includes('squirter')>>
<<set _sexActions[3] = 'squirt'>>
<</if>>
<<elseif $guests[_guestIds[0]].anal < 20>>
<<set _sexActions = [
['kissing','nipple_lick','handjob','titjob','footjob'][random(0, _r)],
['pussy_lick','bj','dp','sn','anal_fingering'][random(0, _r)],
['pussy_fingering','pussy_fingering','bj_b_pussy','bj_b_pussy','pussy'][random(0, _r)],
['pussy','pussy_a_sn','pussy_a_sn','pussy_a_pussy_lick','pussy_a_pussy_lick'][random(0, _r)],
['pussy_pussy_lick','pussy_pussy_lick','pussy_pussy_lick','pussy_a_pussy','pussy_a_pussy'][random(0, _r)],
['cum_on_ass','cum_on_tits','cum_on_stomach','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<if _sexActions[0] == 'titjob' && $guests[_guestIds[0]].breasts == 'small'>>
<<set _sexActions[0] = 'handjob'>>
<</if>>
<<if ($guests[_guestIds[0]].traits ?? []).includes('squirter')>>
<<set _sexActions[3] = 'squirt'>>
<</if>>
<<if _sexActions[4] == 'pussy_a_pussy' && $guests[_guestIds[1]].virgin>>
<<set _sexActions[4] = 'pussy_a_sn'>>
<</if>>
<<else>>
<<set _sexActions = [
['kissing','nipple_lick','handjob','titjob','footjob'][random(0, _r)],
['pussy_lick','bj','dp','sn','anal_fingering'][random(0, _r)],
['pussy_fingering','bj_b_pussy','pussy','pussy_a_sn','pussy_a_pussy_lick'][random(0, _r)],
['bj_b_anal','anal','anal_b_bj','anal_a_pussy_lick','anal_fisting'][random(0, _r)],
['pussy_pussy_lick','pussy_a_pussy','pussy_b_anal','anal_b_pussy','anal_b_pussy'][random(0, _r)],
['cum_on_ass','cum_on_tits','cum_on_stomach','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<if _sexActions[0] == 'titjob' && $guests[_guestIds[0]].breasts == 'small'>>
<<set _sexActions[0] = 'handjob'>>
<</if>>
<<if ($guests[_guestIds[0]].traits ?? []).includes('squirter')>>
<<set _sexActions[3] = 'squirt'>>
<</if>>
<<if _sexActions[4] == 'pussy_a_pussy' && $guests[_guestIds[1]].virgin>>
<<set _sexActions[4] = 'pussy_a_pussy_lick'>>
<</if>>
<</if>>
<<set $randEvent = [
_guestIds,
_femaleGuestIds,
_maleGuestIds,
_guestNames,
_girlNames,
_guyNames,
_sexActions,
_index
]>>
As you approach the dormitory, you hear muffled sounds.<br />
You take a peek and see
<<set _separator =''>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if _i > 0 && _i + 1 == _guestIds.length>>
<<set _separator =' and '>>
<<elseif _i > 0>>
<<set _separator =', '>>
<</if>>
<<=_separator + setup.displayName($guests[_guestIds[_i]])>>
<</for>>
pleasuring each other.<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_femaleGuestIds = $randEvent[1],
_maleGuestIds = $randEvent[2],
_guestNames = $randEvent[3],
_girlNames = $randEvent[4],
_guyNames = $randEvent[5],
_sexActions = $randEvent[6],
_index = $randEvent[7]
>>
<<set $tmpGirl = $guests[_femaleGuestIds[0]]>>
<</if>>
<br /><br />
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<center>
<<set _sexAction = 'threesome_f_'+_sexActions[_index]>>
<<actionImage $tmpGirl _sexAction 'no-text'>>
</center>
<br />
<<set _actionText = setup.actionText>>
<<print _actionText['male_on_females'][_sexActions[_index]][0].replace('%female0%', $guests[_femaleGuestIds[0]].name).replace('%female1%', $guests[_femaleGuestIds[1]].name).replace('%females%', _girlNames).replace('%male%', $guests[_maleGuestIds[0]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
[img[setup.ImagePath+'game/misc/cum.webp']]
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<else>>
<<set $randEvent[7] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<set _interrupted = true>>
<<replace "#choice">>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $tmpGirl 'caught' 'no-text'>>
</center>
<br /><br />
You walk in on
<<set _separator =''>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if _i > 0 && _i + 1 == _guestIds.length>>
<<set _separator =' and '>>
<<elseif _i > 0>>
<<set _separator =', '>>
<</if>>
<<=_separator + setup.displayName($guests[_guestIds[_i]])>>
<</for>>
having sex, they stop and seem unhappy.<br />
<br />
<<set _linkName = 'Ask to replace ' + _guyNames>>
<<linkreplace `_linkName`>>
<<set _yesGuestIds = []>>
<<for _i = 0; _i < _femaleGuestIds.length; _i++>>
<<if setup.percentageChance(setup.sexChance($guests[_femaleGuestIds[_i]]))>>
<<set _yesGuestIds.push(_femaleGuestIds[_i])>>
<</if>>
<</for>>
<<if _yesGuestIds.length == 0>>
They refuse and leave the room at once!
<<else>>
<<unset $guestId, $charId, $slaveId>>
<<if _yesGuestIds.length == 1>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> agrees to sex with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]]>>
<<unset $randEvent, $tmpEvent>>
<<fuck $tmpGirl>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> and <<=setup.displayName($guests[_yesGuestIds[1]], true)>> agree to have a threesome with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]],
$guestId2 = _yesGuestIds[1],
$tmpGirl2 = $guests[_yesGuestIds[1]]>>
<<unset $randEvent, $tmpEvent, $charId, $slaveId>>
<<threesome $tmpGirl $tmpGirl2>>
<</linkreplace>>
<</if>>
<</if>>
<</linkreplace>>
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUEST HOUSE</h1>
<<if typeof $randEvent === 'undefined'>>
<<set
_guestIds = setup.getRandomPersons($tmpEvent, 2),
_minCorruption = Math.min($guests[_guestIds[0]].corruption, $guests[_guestIds[1]].corruption),
_isAnalVirgin = ($guests[_guestIds[0]].anal < 20),
_index = 0
>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<set _sexActions = [
['handjob','handjob','handjob','footjob','footjob'][random(0, _r)],
['footjob','footjob','footjob','bj','bj'][random(0, _r)],
['bj','bj','bj','dp','dp'][random(0, _r)],
['anal_fingering','anal_fingering','anal','anal','anal'][random(0, _r)],
['dp','dp','anal','anal','anal'][random(0, _r)],
['cum_in_ass','cum_in_ass','cum_on_face','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<if _sexActions[3] == 'anal' && _isAnalVirgin>>
<<set _sexActions[3] = 'anal_fingering'>>
<</if>>
<<if _sexActions[4] == 'anal' && _isAnalVirgin>>
<<set
_sexActions[4] = 'dp',
_sexActions[5] = 'cum_in_mouth'
>>
<</if>>
<<set $randEvent = [
_guestIds,
_sexActions,
_index
]>>
As you approach the dormitory, you hear muffled sounds.<br />
You take a peek and see <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex.<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_sexActions = $randEvent[1],
_index = $randEvent[2]
>>
<</if>>
<br /><br />
<<set _actionText = setup.actionText>>
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<<actionImage $guests[_guestIds[0]] _sexActions[_index] 'no-text'>>
<br />
<<print _actionText['male_on_male'][_sexActions[_index]][0].replace('%male0%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
[img[setup.ImagePath+'game/misc/cum.webp']]
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<else>>
<<set $randEvent[2] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<set _interrupted = true>>
<<replace "#choice">>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $tmpGirl 'caught' 'no-text'>>
</center>
<br /><br />
You walk in on <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex, they stop and seem unhappy.<br />
<br />
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUEST HOUSE</h1>
<<if typeof $randEvent === 'undefined'>>
<<set
_guestIds = [setup.getRandomPersons($tmpEvent[0], 1), setup.getRandomPersons($tmpEvent[1], 1)],
_minCorruption = Math.min($guests[_guestIds[0]].corruption, $guests[_guestIds[1]].corruption),
_isAnalVirgin = ($guests[_guestIds[0]].anal < 20),
_hasSmallTits = $guests[_guestIds[0]].breasts == 'small',
_index = 0
>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<set _sexActions = [
['handjob','handjob','footjob','footjob','footjob'][random(0, _r)],
['bj','bj','titjob','titjob','titjob'][random(0, _r)],
['bj','bj','dp','dp','dp'][random(0, _r)],
['anal_fingering','anal_fingering','anal','anal','anal'][random(0, _r)],
['anal','anal','anal','anal','anal'][random(0, _r)],
['cum_in_ass','cum_on_stomach','cum_on_tits','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<if _sexActions[1] == 'titjob' && _hasSmallTits>>
<<set _sexActions[1] = 'dp'>>
<</if>>
<<if _sexActions[3] == 'anal' && _isAnalVirgin>>
<<set _sexActions[3] = 'anal_fingering'>>
<</if>>
<<if _sexActions[4] == 'anal' && _isAnalVirgin>>
<<set
_sexActions[4] = 'dp',
_sexActions[5] = 'cum_in_mouth'
>>
<</if>>
<<set $randEvent = [
_guestIds,
_sexActions,
_index
]>>
As you approach the dormitory, you hear muffled sounds.<br />
You take a peek and see <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex.<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_sexActions = $randEvent[1],
_index = $randEvent[2]
>>
<</if>>
<br /><br />
<<set _actionText = setup.actionText>>
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<<actionImage $guests[_guestIds[0]] _sexActions[_index] 'no-text'>>
<br />
<<print _actionText['male_on_transfemale'][_sexActions[_index]][0].replace('%transfemale%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
[img[setup.ImagePath+'game/misc/cum.webp']]
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<else>>
<<set $randEvent[2] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<set _interrupted = true>>
<<replace "#choice">>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $guests[_guestIds[0]] 'caught' 'no-text'>>
</center>
<br /><br />
You walk in on <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex, they stop and seem unhappy.<br />
<br />
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUEST HOUSE</h1>
<<if typeof $randEvent === 'undefined'>>
<<set
_maleGuestIds = $tmpEvent.maleGuestIds,
_guestIds = [$tmpEvent.femaleGuestIds[0], _maleGuestIds[0], _maleGuestIds[1]],
_minCorruption = Math.min($guests[_guestIds[0]].corruption, $guests[_guestIds[1]].corruption, $guests[_guestIds[2]].corruption),
_isVirgin = $guests[_guestIds[0]].virgin,
_isAnalVirgin = ($guests[_guestIds[0]].anal < 20),
_hasSmallTits = $guests[_guestIds[0]].breasts == 'small',
_index = 0
>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<if _isVirgin && _isAnalVirgin>>
<<set _sexActions = [
['kissing','kissing','kissing','handjob','handjob'][random(0, _r)],
['handjob','titjob','titjob','titjob','nipple_lick'][random(0, _r)],
['nipple_lick','nipple_lick','pussy_lick','pussy_lick','pussy_lick'][random(0, _r)],
['bj','bj','bj','bj','bj_b_pussy_lick'][random(0, _r)],
['bj_b_pussy_lick','bj_b_pussy_lick','pussy_fingering','pussy_fingering','pussy_fingering'][random(0, _r)],
['cum_on_stomach','cum_on_tits','cum_on_face','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<elseif _isAnalVirgin>>
<<set _sexActions = [
['kissing','kissing','handjob','titjob','handjob'][random(0, _r)],
['titjob','nipple_lick','pussy_lick','nipple_lick','pussy_lick'][random(0, _r)],
['bj','bj','bj_b_pussy_lick','bj_b_pussy_lick','pussy_fingering'][random(0, _r)],
['pussy_fingering','pussy','pussy','pussy_b_handjob','pussy_b_bj'][random(0, _r)],
['pussy_b_bj','pussy_b_handjob','pussy_b_bj','pussy_b_pussy','pussy_b_pussy'][random(0, _r)],
['cum_on_stomach','cum_on_tits','cum_on_face','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<elseif _isVirgin>>
<<set _sexActions = [
['kissing','kissing','handjob','titjob','titjob'][random(0, _r)],
['handjob','nipple_lick','nipple_lick','pussy_lick','pussy_lick'][random(0, _r)],
['bj','bj','bj_b_pussy_lick','bj_b_pussy_lick','pussy_fingering'][random(0, _r)],
['pussy_fingering','anal','anal','anal_b_handjob','anal_fisting'][random(0, _r)],
['anal_b_handjob','anal_b_bj','anal_b_bj','anal_b_anal','anal_b_anal'][random(0, _r)],
['cum_on_stomach','cum_on_tits','cum_on_face','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<<else>>
<<set _sexActions = [
['kissing','handjob','titjob','nipple_lick','pussy_lick'][random(0, _r)],
['bj','bj_b_pussy_lick','pussy_fingering','pussy','pussy_b_handjob'][random(0, _r)],
['pussy_b_handjob','pussy_b_bj','pussy_b_bj','anal','anal_b_handjob'][random(0, _r)],
['anal_b_handjob','anal_b_bj','anal_b_bj','pussy_b_anal','anal_fisting'][random(0, _r)],
['anal_b_pussy','pussy_b_pussy','pussy_b_pussy','anal_b_anal','anal_b_anal'][random(0, _r)],
['cum_on_stomach','cum_on_tits','cum_on_face','cum_on_face','cum_in_mouth'][random(0, _r)]
]>>
<</if>>
<<if _sexActions[0] == 'titjob' && _hasSmallTits>>
<<set _sexActions[0] = 'handjob'>>
<</if>>
<<if _sexActions[1] == 'titjob' && _hasSmallTits>>
<<set _sexActions[1] = 'bj'>>
<</if>>
<<set _hasBreeders = false>>
<<for _bI = 0; _bI < _maleGuestIds.length; _bI++>>
<<set _guestTraits = ($guests[_maleGuestIds[_bI]].traits ?? [])>>
<<if _guestTraits.includes('breeder')>>
<<set _hasBreeders = true>>
<</if>>
<</for>>
<<if !_isVirgin && _hasBreeders>>
<<set _sexActions[_sexActions.length - 1] = 'cum_in_pussy'>>
<</if>>
<<set $randEvent = [
_guestIds,
_sexActions,
_index
]>>
As you approach the dormitory, you hear muffled sounds.<br />
You take a peek and see <<=setup.displayName($guests[_guestIds[0]])>> having sex with <<=setup.displayName($guests[_guestIds[1]])>> and <<=setup.displayName($guests[_guestIds[2]])>>.<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_sexActions = $randEvent[1],
_index = $randEvent[2]
>>
<</if>>
<br /><br />
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<center>
<<set _sexAction = 'threesome_m_'+_sexActions[_index]>>
<<actionImage $guests[_guestIds[0]] _sexAction 'no-text'>>
</center>
<br />
<<set _actionText = setup.actionText>>
<<print _actionText['males_on_female'][_sexActions[_index]][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name).replace('%male2%', $guests[_guestIds[2]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
[img[setup.ImagePath+'game/misc/cum.webp']]
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<else>>
<<set $randEvent[2] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<set _interrupted = true>>
<<replace "#choice">>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $guests[_guestIds[0]] 'caught' 'no-text'>>
</center>
<br /><br />
You walk in on <<=setup.displayName($guests[_guestIds[0]])>> having sex with <<=setup.displayName($guests[_guestIds[1]])>> and <<=setup.displayName($guests[_guestIds[2]])>>, they stop and seem unhappy.<br />
<br />
<<linkreplace 'Ask for a creampie in pussy'>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[0]]))>>
<<if $guests[_guestIds[0]].virgin>>
<center>
<<actionImage $guests[_guestIds[0]] 'pussy' 'no-text'>>
</center>
<br />
<<=setup.displayName($guests[_guestIds[0]])>> seems a bit in pain at first as she loses her virginity.
<br /><br />
<<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: 'mc' })>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<<if $guests[_guestIds[0]].anal < 20 >>
<center>
<<actionImage $guests[_guestIds[0]] 'threesome_m_pussy' 'no-text'>>
</center>
<br />
<<print _actionText['male_on_female']['pussy'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<else>>
<center>
<<actionImage $guests[_guestIds[0]] 'threesome_m_pussy_b_anal' 'no-text'>>
</center>
<br />
<<print _actionText['males_on_female']['pussy_b_anal'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name).replace('%male2%', $guests[_guestIds[2]].name)>>
<br /><br />
<</if>>
<<linkreplace 'Continue'>>
<<set _orgasm = true>>
<<if $guests[_guestIds[0]].anal < 20 >>
<center>
<<actionImage $guests[_guestIds[0]] 'cum_in_pussy' 'no-text'>>
</center>
<br />
<<print _actionText['male_on_female']['cum_in_pussy'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<else>>
<center>
<<actionImage $guests[_guestIds[0]] 'threesome_m_double_cum' 'no-text'>>
</center>
<br />
<<print _actionText['males_on_female']['double_cum'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name).replace('%male2%', $guests[_guestIds[2]].name)>>
<br /><br />
<<if setup.pregnancyChance($guests[_guestIds[0]], $guests[_guestIds[1]])>>
<<set $guests[_guestIds[0]].pregnancy_father = $guests[_guestIds[1]].id>>
<<set $guests[_guestIds[0]].pregnancy = 0>>
<<if $guests[_guestIds[0]].virgin>><<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: $guests[_guestIds[1]].id })>><</if>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<</if>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_guestIds[0]])>> says no and leaves the room half naked.
<br /><br />
<</if>>
<</linkreplace>>
<<linkreplace 'Ask to join them'>>
<<set _yesGuestIds = []>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[_i]]))>>
<<set _yesGuestIds.push(_guestIds[_i])>>
<</if>>
<</for>>
<<if _yesGuestIds.length == 0>>
They refuse and leave the room at once!
<<else>>
<<unset $guestId, $charId, $slaveId>>
<<if _yesGuestIds.length == 1>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> agrees to sex with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]]>>
<<unset $randEvent, $tmpEvent>>
<<fuck $tmpGirl>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> and <<=setup.displayName($guests[_yesGuestIds[1]], true)>> agree to have a threesome with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]],
$guestId2 = _yesGuestIds[1],
$tmpGirl2 = $guests[_yesGuestIds[1]]>>
<<unset $randEvent, $tmpEvent>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<<threesome $tmpGirl $tmpGirl2>>
<</linkreplace>>
<</if>>
<</if>>
<</linkreplace>>
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<if !_interrupted>>
<<if setup.pregnancyChance($guests[_guestIds[0]], $guests[_guestIds[1]])>>
<<set $guests[_guestIds[0]].pregnancy = 0>>
<<set $guests[_guestIds[0]].pregnancy_father = $guests[_guestIds[1]].id>>
<<if $guests[_guestIds[0]].virgin>><<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: $guests[_guestIds[1]].id })>><</if>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUEST HOUSE</h1>
<<run console.log('event', $tmpEvent)>>
<<if typeof $randEvent === 'undefined'>>
<<set
_guestIds = [$tmpEvent.femaleGuestIds[0], $tmpEvent.maleGuestIds[0]],
_minCorruption = Math.min($guests[_guestIds[0]].corruption, $guests[_guestIds[1]].corruption),
_isVirgin = $guests[_guestIds[0]].virgin,
_isAnalVirgin = ($guests[_guestIds[0]].anal < 20),
_isSquirter = ($guests[_guestIds[0]].traits ?? []).includes('squirter'),
_hasSmallTits = $guests[_guestIds[0]].breasts == 'small',
_isFemaleSadist = ($guests[_guestIds[0]].traits ?? []).includes('sadistic'),
_isMaleMasochist = ($guests[_guestIds[1]].traits ?? []).includes('masochist'),
_index = 0
>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<set _sexActions = [
['kissing','kissing','handjob','footjob','footjob'][random(0, _r)],
['bj','bj','titjob','titjob','dp'][random(0, _r)],
['nipple_lick','nipple_lick','nipple_lick','pussy_lick','pussy_lick'][random(0, _r)],
['pussy_lick','pussy_fingering','pussy_fingering','anal_fingering','anal_fingering'][random(0, _r)],
['pussy','pussy','pussy','anal','anal'][random(0, _r)],
['cum_in_pussy','cum_in_pussy','cum_on_stomach','cum_on_tits','cum_in_mouth'][random(0, _r)]
]>>
<<if _sexActions[1] == 'titjob' && _hasSmallTits>>
<<set _sexActions[1] = 'dp'>>
<</if>>
<<if _sexActions[2] == 'pussy_lick' && _isSquirter>>
<<set _sexActions[3] = 'squirt_lick'>>
<</if>>
<<if _sexActions[3] == 'pussy_fingering' && _isVirgin>>
<<set _sexActions[3] = 'anal_fingering'>>
<</if>>
<<if _sexActions[4] == 'pussy' && _isVirgin>>
<<set
_sexActions[4] = 'anal',
_sexActions[5] = 'cum_in_ass'
>>
<</if>>
<<if _sexActions[4] == 'anal' && _isAnalVirgin>>
<<set
_sexActions[4] = 'dp',
_sexActions[5] = 'cum_throat'
>>
<</if>>
<<if _r > 2 && _isFemaleSadist && _isMaleMasochist>>
<<set
_sexActions[4] = 'anal_reverse',
_sexActions[5] = 'anal_reverse_cum'
>>
<</if>>
<<if !_isVirgin && ($guests[_guestIds[1]].traits ?? []).includes('breeder')>>
<<set _sexActions[_sexActions.length - 1] = 'cum_in_pussy'>>
<</if>>
<<set $randEvent = [
_guestIds,
_sexActions,
_index
]>>
As you pass by their room you hear familiar sounds — soft voices, the creak of a bed.
You peer through the gap in the door and see <<=setup.displayName($guests[_guestIds[1]])>> and his wife <<=setup.displayName($guests[_guestIds[0]])>> together.
<br /><br />
Seems like some couples still make time for each other, even out here.
<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_sexActions = $randEvent[1],
_index = $randEvent[2]
>>
<<set _spontaneousCum = (_index + 1 == $randEvent[1].length) && !['cum_in_pussy','cum_in_ass','cum_throat'].includes($randEvent[1][$randEvent[1].length-1]) && setup.percentageChance(25)>>
<</if>>
<br /><br />
<<set _actionText = setup.actionText>>
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<<actionImage $guests[_guestIds[0]] _sexActions[_index] 'no-text'>>
<br />
<<print _actionText['male_on_female'][_sexActions[_index]][0].replace('%female%', $guests[_guestIds[0]].name).replace('%male%', $guests[_guestIds[1]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
<<image 'game/misc/cum.webp'>>
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<if _spontaneousCum>>
<br />
<<=setup.displayName($guests[_guestIds[1]])>> finishes inside his wife — she lets out a soft moan.
<br /><br />
<<if setup.pregnancyChance($guests[_guestIds[0]], $guests[_guestIds[1]])>>
<<set $guests[_guestIds[0]].pregnancy_father = $guests[_guestIds[1]].id>>
<<set $guests[_guestIds[0]].pregnancy = 0>>
<<if $guests[_guestIds[0]].virgin>><<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: $guests[_guestIds[1]].id })>><</if>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<</if>>
<<else>>
<<set $randEvent[2] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<set _interrupted = true>>
<<replace "#choice">>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $guests[_guestIds[0]] 'caught' 'no-text'>>
</center>
<br /><br />
You walk in on <<=setup.displayName($guests[_guestIds[1]])>> and <<=setup.displayName($guests[_guestIds[0]])>>.
They stop abruptly — <<=setup.displayName($guests[_guestIds[1]])>> steps protectively in front of his wife, clearly unhappy.
<br /><br />
<<linkreplace 'Ask to join them'>>
<<set _yesGuestIds = []>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[_i]]))>>
<<set _yesGuestIds.push(_guestIds[_i])>>
<</if>>
<</for>>
<<if _yesGuestIds.length == 0>>
They exchange a look and both refuse without a word.
<<elseif _yesGuestIds.length == 1>>
<<set _stayBackId = _guestIds.find(id => id !== _yesGuestIds[0])>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> hesitantly agrees while <<=setup.displayName($guests[_stayBackId], true)>> stays back.
<br /><br />
<<linkreplace 'Continue'>>
<<unset $guestId, $charId, $slaveId>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]]>>
<<unset $randEvent, $tmpEvent>>
<<fuck $tmpGirl>>
<</linkreplace>>
<<else>>
After a long pause, they both agree — perhaps this is something they've wanted to try.
<br /><br />
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]],
$guestId2 = _yesGuestIds[1],
$tmpGirl2 = $guests[_yesGuestIds[1]]>>
<<unset $randEvent, $tmpEvent>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<<threesome $tmpGirl $tmpGirl2>>
<</linkreplace>>
<</if>>
<</linkreplace>>
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
/* Pregnancy from husband */
<<if _orgasm && _sexActions[_sexActions.length - 1] === 'cum_in_pussy'>>
<<if setup.pregnancyChance($guests[_guestIds[0]], $guests[_guestIds[1]])>>
<<set $guests[_guestIds[0]].pregnancy_father = $guests[_guestIds[1]].id>>
<<set $guests[_guestIds[0]].pregnancy = 0>>
<<if $guests[_guestIds[0]].virgin>><<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: $guests[_guestIds[1]].id })>><</if>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<</if>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUEST HOUSE</h1>
<br /><br />
<<set $tmpGirl = $guests[$tmpEvent]>>
Reaching the guest house, you pushed open the creaking door, the hinges groaning in protest. Inside, guests were already sleeping but one of the girls catched your attention.
<br /><br />
<center>
<<image 'places/guesthouse/event_sleeping_beauty.jpg'>>
</center>
<br />
A soft rustling emanated from <<=setup.displayName($tmpGirl)>>, and as you approached, you noticed that she sleeps naked and her half ass is not under a tattered blanket.
<br /><br />
<<linkreplace 'Check her'>>
Your heart raced as you approached <<=setup.displayName($tmpGirl)>>.
<br />
You stood there, silent and vigilant, observing the gentle rise and fall of her chest. Then you decided to move blanket aside.
<br /><br />
<<video 'guesthouse/sleeping1'>>
<br /><br />
As you do that you uncover fully her sweet ass. You gently grab it and squeeze her ass cheek few times.
<br /><br />
<<linkreplace 'Fuck her'>>
<<if $guests[$tmpEvent].virgin>><<run setup.npc.addHistory($guests[$tmpEvent], 'virgin_lost', { with: 'mc' })>><</if>>
<<set $guests[$tmpEvent].virgin = false>>
<<set $tmpGirl.virgin = false>>
<<run setup.jobs.applyJobAct($tmpGirl, 'pussy')>>
<<horny 50>>
<<video 'guesthouse/sleeping2'>>
<br /><br />
You quietly walk around the bed and stand in front of her face. She looks so innocent as you put your hard dick in her mouth. In the start her lips are stiff but after few slides her lips relaxes.
<br /><br />
<<video 'guesthouse/sleeping3'>>
<br /><br />
Moving forward on your knees, you slowly climb into bed behind her and tug the blanket further up. She's still sleeping soundly in a little spoon.
<br />
You spread her ass cheeks open and slowly slide your dick in her tight pussy.
<br /><br />
<<video 'guesthouse/sleeping4'>>
<br /><br />
It seems she's very deeply asleep, because without her waking up, you lift her leg and turn her on her back without taking your dick out. You speed up and begin applying stronger thrusts.
<br /><br />
<div id="option_cum">
<<linkreplace 'Cum'>>
<<run $('#option_supp').hide()>>
<<horny_reset>>
<<video 'guesthouse/sleeping_cum1'>>
<br /><br />
With her legs wide open you pull out in the last moment and cum one her pussy. Your cum drips straight on her sheets as you slowly get out of the bed and put a banket over her.
<br /><br />
<</linkreplace>>
</div>
<div id="option_supp">
<<if !recall($suppCode)>>
<div class="link-internal disabled" style="background: #ccc">
Wake her up
<<notPatreonIcon>>
</div>
<<else>>
<<linkreplace 'Wake her up'>>
<<run $('#option_cum').hide()>>
<<sayNpc $tmpGirl>>
What the hell? I already thought it was some strange dream.
<</sayNpc>>
<br />
<<sayNpc $tmpGirl>>
Well, finish what you started. Don't dare to leave without me cumming too.
<</sayNpc>>
<br />
She looks around if other guests are asleep and turns around, getting in doggy.
<br /><br />
<<video 'guesthouse/sleeping6'>>
<br /><br />
You grab her by waist and pull her closer to the edge of the bed, then you proceed by slowly sliding your dick inside her already moist pussy.
<br />
You start slow but she feels already ready as she leans down and grabs her pillow and pushes her head in it.
<br /><br />
<<sayNpc $tmpGirl>>
Oh... Be quiet...
<</sayNpc>>
<br />
<<sayNpc $tmpGirl>>
Come here.
<</sayNpc>>
<br />
She moves forward letting your dick fall out and turns around her back. Then she taps the pillow.
<br /><br />
<<video 'guesthouse/sleeping7'>>
<br /><br />
You get out of the bed and go around the bed where you started. She instantly grabs your dick and sucks it in her mouth.
Periodically, they look up to see if you are enjoying it.
<br /><br />
<<sayNpc $tmpGirl>>
Please fuck me again. I am not ready to go back to sleep.
<</sayNpc>>
<br />
<<video 'guesthouse/sleeping8'>>
<br /><br />
She spreads her legs and waits for you. You get back into the bed and slides your dick in. She moans but tries to keep it low as her head bangs against the wall.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<video 'guesthouse/sleeping_cum2'>>
<br /><br />
With her legs wide open you pull out, get on her and cum over her boobs. First stream manages to fly into her mouth.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</if>>
</div>
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUESTHOUSE</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
The creaking door swings open, and there stands <<=setup.displayName(_npc)>>, framed by the fading daylight that struggles to filter through the grimy windows.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/take_virginity.jpg']]
</center>
<br />
<<sayNpc _npc>>
Mind if we talk somewhere more private?
<</sayNpc>>
<br />
<<linkreplace 'Sure. My room'>>
<<run $('#option_leave').hide()>>
You gesture for her to enter, and she steps into the dimly lit room.
The air is heavy with the scent of dust and decay, but within these walls, there's a semblance of safety and quietude.
<br /><br />
<<=setup.displayName(_npc)>> paces the room, her eyes scanning it. After a brief moment she turns to face you, a subtle blush coloring her cheeks.
<br /><br />
<<sayNpc _npc>>
I've been thinking... Life is so uncertain, and we've seen our fair share of it. I don't want to carry regrets, especially when there's so much we can't control.
<</sayNpc>>
<br />
As she speaks, you can sense the vulnerability in her words, a reflection of the uncertainties that have shaped your lives in this new world.
<br /><br />
<<=setup.displayName(_npc)>> takes a deep breath, her gaze meeting yours.
<br /><br />
<<sayNpc _npc>>
I'm still a virgin, and I've been thinking that maybe... maybe we could change that together.
<</sayNpc>>
<br />
The words hang in the air, and the room seems to hold its breath along with you. In the midst of survival and camaraderie, the rawness of human connection becomes more profound, and the desire for intimacy becomes a delicate dance in a world on the brink of collapse.
<br /><br />
<div id="option_yes">
<<linkreplace 'Alright'>>
<<run $('#option_no').hide()>>
<<if $guests[$tmpEvent.id].virgin>><<run setup.npc.addHistory($guests[$tmpEvent.id], 'virgin_lost', { with: 'mc' })>><</if>>
<<set $guests[$tmpEvent.id].virgin = false>>
<<set $guests[$tmpEvent.id].likesGuys = true>>
<<set $guests[$tmpEvent.id].relationship += 50>>
<<set $guests[$tmpEvent.id].sub += 30>>
<<set $guests[$tmpEvent.id].happy += 80>>
A mixture of relief and gratitude flashes across her face as she takes a step closer.
The world outside seems to fade away as she slowly removes her shorts but leaves panties on and lays down in your bed on her chest.
<br />
You join her, sitting on the edge of the bed, your senses heightened by the awareness of the fragility of this moment.
<br /><br />
<<video 'guesthouse/take_virginity1'>>
<br /><br />
You carefully grab her ass and squeeze it before sensually sliding your hand across her ass and grabing her panties, pulling them down.
<br /><br />
<<sayNpc _npc>>
Just please... Be gentle...
<</sayNpc>>
<br />
With a silent agreement, you climb onto her finding a position that reflects the unspoken connection between you and <<=setup.displayName(_npc)>>.
<br />
You spread her ass, grab your dick and slowly slide your hard cock inside her untouched pussy.
<br /><br />
<<video 'guesthouse/take_virginity2'>>
<br /><br />
<<sayNpc _npc>>
Wait, wait, can we go slower for a moment? It hurts.
<</sayNpc>>
<br />
Acknowledging her request, you ease back, allowing the pace to slow down. The dim light in the room flickers, casting a gentle glow that accentuates the intimacy of the shared space.
<br /><br />
<<sayNpc _npc>>
Oh, it's slowly getting better. Mmmm. A bit faster.
<</sayNpc>>
<br />
<<video 'guesthouse/take_virginity3'>>
<br /><br />
She doesn't finish her sentence as you thrust your dick inside her red pussy and she instantly puts out load scream and moan mixed together.
She makes strange movements with her ass as she would try to get more comfortable and you just decide to put her in doggyy position.
<br /><br />
<<video 'guesthouse/take_virginity4'>>
<br /><br />
As you and <<=setup.displayName(_npc)>> continue to explore the intimate moment, you guide her into a new position—the two of you adapting and responding to the unspoken rhythm that has developed between you.
She even tries to take a lead as she starts to increase phase and push your pussy onto your dick.
<br /><br />
<<sayNpc _npc>>
Oh it's getting better! Pain is almost gone.
<</sayNpc>>
<br />
<<linkreplace 'Cum'>>
<<video 'guesthouse/take_virginity5'>>
<br /><br />
Few more thrusts and you pull out and cum on her ass. She lets out load moan as pushes her head into pillows to silence the noise as your cum drips all over her ass.
<br /><br />
<<sayNpc _npc>>
Oh my.. It's finally done. Can I just lay down for few minutes? Just to relax..
<</sayNpc>>
<br />
The room holds a different kind of energy—a mixture of vulnerability, intimacy, and shared moments.
As <<=setup.displayName(_npc)>> requests to lay in the bed for a few minutes to gather her thoughts and calm down, you understand the need
for a brief moment of reflection and respite.
<br /><br />
<<link 'Leave'>>
<<addmins 30>>
<<horny_reset>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="option_no">
<<linkreplace 'No'>>
<<run $('#option_yes').hide()>>
<<set $guests[$tmpEvent.id].quests ??= {}>>
<<set $guests[$tmpEvent.id].quests.take_virginity = true>>
She nods, a mixture of disappointment and understanding in her expression.
<br /><br />
<<sayNpc _npc>>
I get it. It's just that with all the uncertainty, I thought sharing something like this could bring us closer.
<</sayNpc>>
<br />
As the conversation fades into the hushed background noise of the settlement, you both understand the unspoken bond that has grown stronger through shared trials.
<br /><br />
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<div id="option_leave">
<<link 'Maybe later'>>
<<goto 'Guest house'>>
<</link>>
</div><h1 class="ptitle">GUEST HOUSE</h1>
<<if typeof $randEvent === 'undefined'>>
<<set
_guestIds = [setup.getRandomPersons($tmpEvent[0], 1)[0], setup.getRandomPersons($tmpEvent[1], 1)[0]],
_minCorruption = Math.min($guests[_guestIds[0]].corruption, $guests[_guestIds[1]].corruption),
_isVirgin = $guests[_guestIds[0]].virgin,
_isAnalVirgin = ($guests[_guestIds[0]].anal < 20),
_isSquirter = ($guests[_guestIds[0]].traits ?? []).includes('squirter'),
_hasSmallTits = $guests[_guestIds[0]].breasts == 'small',
_index = 0
>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<set _sexActions = [
['handjob','handjob','footjob','footjob','bj'][random(0, _r)],
['bj','bj','titjob','titjob','dp'][random(0, _r)],
['pussy_lick','pussy_lick','rimjob','rimjob','sn'][random(0, _r)],
['sn','sn','pussy','pussy','anal'][random(0, _r)],
['pussy','pussy','anal','anal','anal'][random(0, _r)],
['handjob_cum','cum_on_face','cum_on_face','cum_in_mouth','bj_cum'][random(0, _r)]
]>>
<<if _sexActions[1] == 'titjob' && _hasSmallTits>>
<<set _sexActions[1] = 'dp'>>
<</if>>
<<if _sexActions[2] == 'pussy_lick' && _isSquirter>>
<<set _sexActions[3] = 'squirt'>>
<</if>>
<<if _sexActions[3] == 'pussy' && _isVirgin>>
<<set _sexActions[3] = 'anal'>>
<</if>>
<<if _sexActions[3] == 'anal' && _isAnalVirgin>>
<<set _sexActions[3] = 'sn'>>
<</if>>
<<if _sexActions[4] == 'pussy' && _isVirgin>>
<<set _sexActions[4] = 'sn' >>
<</if>>
<<if _sexActions[4] == 'anal' && _isAnalVirgin>>
<<set
_sexActions[4] = 'dp',
_sexActions[5] = 'bj_cum'
>>
<</if>>
<<set $randEvent = [
_guestIds,
_sexActions,
_index
]>>
As you approach the dormitory, you hear muffled sounds.<br />
You take a peek and see <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex.<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_sexActions = $randEvent[1],
_index = $randEvent[2]
>>
<</if>>
<<set $tmpGirl = $guests[_guestIds[0]]>>
<br /><br />
<<set _actionText = setup.actionText>>
<<set _forcedGender = 'transfemale_on_female'>>
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<center>
<<actionImage $tmpGirl _sexActions[_index] 'no-text' _forcedGender>>
</center>
<br />
<<print _actionText['transfemale_on_female'][_sexActions[_index]][0].replace('%female%', $guests[_guestIds[0]].name).replace('%transfemale%', $guests[_guestIds[1]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
[img[setup.ImagePath+'game/misc/cum.webp']]
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<else>>
<<set $randEvent[2] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<set _interrupted = true>>
<<replace "#choice">>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $tmpGirl 'caught' 'no-text' _forcedGender>>
</center>
<br /><br />
You walk in on <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex, they stop and seem unhappy.<br />
<br />
<<linkreplace 'Ask for a creampie in pussy'>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[0]]))>>
<<if $guests[_guestIds[0]].virgin>>
<center>
<<actionImage $guests[_guestIds[0]] 'pussy' 'no-text'>>
</center>
<br />
<<=setup.displayName($guests[_guestIds[0]])>> seems a bit in pain at first as she loses her virginity.
<br /><br />
<<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: $guests[_guestIds[1]].id })>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<center>
<<actionImage $tmpGirl 'pussy' 'no-text' _forcedGender>>
</center>
<br />
<<print _actionText['transfemale_on_female']['pussy'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%transfemale%', $guests[_guestIds[1]].name)>>
<br /><br />
<<linkreplace 'Continue'>>
<<set _orgasm = true>>
<center>
<<actionImage $tmpGirl 'cum_in_pussy' 'no-text' _forcedGender>>
</center>
<br />
<<print _actionText['transfemale_on_female']['cum_in_pussy'][0].replace('%female%', $guests[_guestIds[0]].name).replace('%transfemale%', $guests[_guestIds[1]].name)>>
<br /><br />
<<if setup.pregnancyChance($guests[_guestIds[0]])>>
<<set $guests[_guestIds[0]].pregnancy_father = $guests[_guestIds[1]].id>>
<<set $guests[_guestIds[0]].pregnancy = 0>>
<<if $guests[_guestIds[0]].virgin>><<run setup.npc.addHistory($guests[_guestIds[0]], 'virgin_lost', { with: $guests[_guestIds[1]].id })>><</if>>
<<set $guests[_guestIds[0]].virgin = false>>
<</if>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_guestIds[0]])>> says no and leaves the room half naked.
<br /><br />
<</if>>
<</linkreplace>>
<<linkreplace 'Ask to join them'>>
<<set _yesGuestIds = []>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<if setup.percentageChance(setup.sexChance($guests[_guestIds[_i]]))>>
<<set _yesGuestIds.push(_guestIds[_i])>>
<</if>>
<</for>>
<<if _yesGuestIds.length == 0>>
They refuse and leave the room at once!
<<else>>
<<unset $guestId, $charId, $slaveId>>
<<if _yesGuestIds.length == 1>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> agrees to sex with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]]>>
<<unset $randEvent, $tmpEvent>>
<<fuck $tmpGirl>>
<</linkreplace>>
<<else>>
<<=setup.displayName($guests[_yesGuestIds[0]], true)>> and <<=setup.displayName($guests[_yesGuestIds[1]], true)>> agree to have a threesome with you!
<<linkreplace 'Continue'>>
<<set $guestId = _yesGuestIds[0],
$tmpGirl = $guests[_yesGuestIds[0]],
$guestId2 = _yesGuestIds[1],
$tmpGirl2 = $guests[_yesGuestIds[1]]>>
<<unset $randEvent, $tmpEvent>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<unset $charId, $slaveId>>
<<threesome $tmpGirl $tmpGirl2>>
<</linkreplace>>
<</if>>
<</if>>
<</linkreplace>>
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">GUEST HOUSE</h1>
<<if typeof $randEvent === 'undefined'>>
<<set
_guestIds = setup.getRandomPersons($tmpEvent, 2),
_minCorruption = 100,
_nbAnalVirgins = 0,
_index = 0
>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set _minCorruption = Math.min(_minCorruption, $guests[_guestIds[_i]].corruption)>>
<<if $guests[_guestIds[_i]].anal < 20>>
<<set _nbAnalVirgins += 1>>
<</if>>
<</for>>
<<set _r = 1 + Math.floor(random(0, _minCorruption-1)/25)>>
<<if _r < 0>>
<<set _r = 0>>
<</if>>
<<set _sexActions = [
['masturbate','handjob','dhj','frottage','frottage'][random(0, _r)],
['bj','bj','dp','dp','sn'][random(0, _r)],
['titjob','titjob','footjob','footjob','rimjob'][random(0, _r)],
['anal_dildo','anal_dildo','dd','dd','anal'][random(0, _r)],
['anal','anal','anal','fisting','fisting'][random(0, _r)],
['cum_on_stomach','cum_on_face','cum_in_mouth','cum_in_mouth','cum_in_ass'][random(0, _r)]
]>>
<<if _nbAnalVirgins == 2>>
<<set
_sexActions[3] = ['bj','dp','dp','sn','sn'][random(0, _r)],
_sexActions[4] = ['handjob','dhj','dhj','frottage','frottage'][random(0, _r)],
_sexActions[5] = ['handjob_cum','handjob_cum','cum_on_stomach','cum_on_face','cum_in_mouth'][random(0, _r)]
>>
<<elseif _nbAnalVirgins == 1 && _sexActions[3] == 'dd'>>
<<set _sexActions[3] = 'anal'>>
<</if>>
<<set $randEvent = [
_guestIds,
_sexActions,
_index
]>>
As you approach the dormitory, you hear muffled sounds.<br />
You take a peek and see <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex.<br />
<<else>>
<<addmins 5>>
<<set
_guestIds = $randEvent[0],
_sexActions = $randEvent[1],
_index = $randEvent[2]
>>
<</if>>
<br /><br />
<<set _actionText = setup.actionText>>
<<set _forcedGender = 'transfemale_on_transfemale'>>
<div id="choice">
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set $guests[_guestIds[_i]].horny = Math.min(100, $guests[_guestIds[_i]].horny + 20)>>
<</for>>
<center>
<<actionImage $tmpGirl _sexActions[_index] 'no-text' _forcedGender>>
</center>
<br />
<<print _actionText['transfemale_on_transfemale'][_sexActions[_index]][0].replace(/\%transfemale0\%/g, $guests[_guestIds[0]].name).replace(/\%transfemale\%/g, $guests[_guestIds[1]].name)>>
<br /><br />
<<if $player.horny >= 100>>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
[img[setup.ImagePath+'game/misc/cum.webp']]
</center>
<</linkreplace>>
<</if>>
<<if _index + 1 == _sexActions.length>>
<<set _orgasm = true>>
<<else>>
<<set $randEvent[2] = _index + 1>>
<<if $player.horny < 100>>
[[Masturbate|passage()][$player.horny += 20]]
<</if>>
[[Just watch|passage()]]
<</if>>
<<link 'Interrupt them'>>
<<set _interrupted = true>>
<<replace "#choice">>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.max(-100, $guests[_guestIds[_i]].happy - 5),
$guests[_guestIds[_i]].relationship = Math.max(-100, $guests[_guestIds[_i]].relationship - 5)
>>
<</for>>
<center>
<<actionImage $tmpGirl 'caught' 'no-text' _forcedGender>>
</center>
<br /><br />
You walk in on <<=setup.displayName($guests[_guestIds[0]])>> and <<=setup.displayName($guests[_guestIds[1]])>> having sex, they stop and seem unhappy.<br />
<br />
<</replace>>
<</link>>
</div>
<<link 'Leave'>>
<<if _orgasm || !_interrupted>>
<<for _i = 0; _i < _guestIds.length; _i++>>
<<set
$guests[_guestIds[_i]].happy = Math.min(100, $guests[_guestIds[_i]].happy + 5),
$guests[_guestIds[_i]].horny = 0
>>
<</for>>
<<for _ri = 0; _ri < _guestIds.length; _ri++>>
<<for _rj = _ri + 1; _rj < _guestIds.length; _rj++>>
<<set $guests[_guestIds[_ri]].relationship = Math.min(100, ($guests[_guestIds[_ri]].relationship ?? 0) + 5)>>
<<set $guests[_guestIds[_rj]].relationship = Math.min(100, ($guests[_guestIds[_rj]].relationship ?? 0) + 5)>>
<</for>>
<</for>>
<</if>>
<<unset $randEvent, $tmpEvent>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
You came back from the kitchen with another bottle—something stronger, something half-decent.
When you offered it to her with a raised brow, <<=setup.displayName(_npc)>> lit up with that crooked smile of hers and slid her feet to make room for you on the couch.
<br /><br />
<<video 'bedroom/drunk_lesbian1'>>
<br /><br />
But the living room still buzzed faintly with hallway noise and random laughter, so you both decided to move.
Your room was quieter, darker. Just enough space for the two of you, the low hum of streetlights through the blinds, and the slow unraveling of conversation.
<br /><br />
The bottle got lighter. Words came easier.
<br /><br />
Somewhere between joking about people at the party and half-drunk reflections on life, the topic shifted—naturally, then suddenly. Sex, attraction, the mess of it all.
<br /><br />
She leaned her head back against the wall, eyes glassy and honest
<br /><br />
<<sayNpc _npc>>
I’ve never… been with a guy. Not really.
<</sayNpc>>
<br />
She shook her head slowly, then turned to face you.
<br /><br />
<<sayNpc _npc>>
I always knew what I liked. But sometimes I wonder if I just… skipped over a whole part of the experience, you know?
<</sayNpc>>
<br />
<<video 'bedroom/drunk_lesbian2'>>
<br /><br />
Your heart ticked louder in your chest. You weren’t sure what this was—just drunk talk, or something more—but the room suddenly felt warmer, charged.
<br /><br />
<<set _npc.relationship += 10>>
<<set _npc.happy +10>>
<<set _npc.drunk = 100>>
<<sayNpc _npc>>
I mean... It’s not like I couldn’t stop if I wanted to
<</sayNpc>>
<br />
She got up and positioned herself in the doggy style, sliding her dress aside revealing her naked pussy.
<br /><br />
<<sayNpc _npc>>
Just start slow and keep that champagne coming
<</sayNpc>>
<br />
<center>
<<image 'places/guesthouse/drunk_lesbian.webp'>>
</center>
<br />
<div id="option_fuck">
<<linkreplace 'Fuck her'>>
<<run $('#option_no').hide()>>
<<video 'bedroom/drunk_lesbian3'>>
<br /><br />
With one swift thrust, you sheathed yourself fully inside her, your hips slamming against her ass.
She let out a loud moan, a mix of pleasure and surprise, her back arching as she pushed back against you, urging you to go deeper.
The room filled with the sound of your bodies slapping together, her moans of pleasure, and your own grunts of exertion.
<br /><br />
<<sayNpc _npc>>
Ouch! Give the me the bottle. And you can go harder.
<</sayNpc>>
<br />
<<linkreplace 'Fuck her harder'>>
<<video 'bedroom/drunk_lesbian4'>>
<br /><br />
You complied, your hips moving faster, your cock slamming into her with increased force.
The bed shook with the intensity of your movements, the headboard rattling against the wall with each thrust.
Her moans turned to screams of pleasure, her body shaking with the intensity of your connection.
<br /><br />
You could feel the heat of her body, the softness of her skin, the wetness of her pussy as she positioned herself above you. She reached down, her hand wrapping around your cock, stroking you firmly, her touch confident and sure
<br /><br />
<<sayNpc _npc>>
Let me try this way.
<</sayNpc>>
<br />
<<video 'bedroom/drunk_lesbian5'>>
<br /><br />
With that, she lifted herself slightly, positioning your cock at her entrance.
She looked down at you, her eyes gleaming with a mix of mischief and desire, before slowly lowering herself onto you.
You could feel every inch of her, her tight, wet pussy enveloping you completely, her walls clenching around your shaft as she took you deep.
<br /><br />
<<sayNpc _npc>>
Oh yes.. I like this way better.
<</sayNpc>>
<br />
But just as you were about to reach the point of no return, she suddenly stopped, her body stilling above you.
You looked up at her, a question in your eyes, but she simply smiled, a wicked glint in her gaze.
She lifted herself off you, turning around so that her back was to you, her ass presented to you in a tantalizing display.
<br /><br />
<<video 'bedroom/drunk_lesbian6'>>
<br /><br />
You reached out, your hands gripping her hips, your fingers digging into her soft flesh as you guided her movements, urging her to take you deeper.
<br /><br />
The sight of her, her back arched, her ass rising and falling, was intoxicating. You could see the curve of her spine, the sway of her hips, the way her muscles flexed with each movement.
<br /><br />
<<linkreplace 'Cum'>>
<<video 'bedroom/drunk_lesbian7'>>
<br /><br />
With a final, deep stroke, you came undone, your hot cum shooting out, coating her ass, her lower back, the cheeks of her ass glistening with your release.
You let out a loud groan, your body shaking as you found your release, your cum marking her, claiming her.
<br /><br />
She turned to look at you, a satisfied smile on her face as she reached back, her fingers gathering your cum, bringing it to her mouth, tasting it, savoring it.
<br /><br />
<<sayNpc _npc>>
I actually liked that. I might get used to this, hehe.
<</sayNpc>>
<br />
She grabber her clothes from the ground and left the room, but not before sending me one last air kiss.
<br /><br />
<<horny_reset>>
<<set _npc.horny = 0>>
<<set _npc.likesGuys = true>>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="option_no">
<<linkreplace "Tell her you won't do that">>
<<run $('#option_fuck').hide()>>
<<sayNpc _npc>>
Really? Well, maybe that's for the best.
<</sayNpc>>
<br />
She finished bottle with one go, thanked you and got out of the room.
<br /><br />
<<link 'Leave'>>
<<addmins 30>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_champagne_panties.webp']]
</center>
<br /><br />
<<if $guests[$guestId].virgin>><<run setup.npc.addHistory($guests[$guestId], 'virgin_lost', { with: 'mc' })>><</if>>
<<set $guests[$guestId].virgin = false>>
You take <<=$guests[$guestId].name>> to the room and leaving the door half-closed, you slowly undress her. She seems eager and doesn't resist you at all. After removing her clothes, you lay her down on her stomach and immediately penetrate her without any foreplay.
<br /><br />
<<video 'bedroom/house_party_threesome1'>>
<br /><br />
<<=$guests[$guestId].name>> is surprised, but presses her head into the pillow and enjoys your hard penis, making sure that no one hears them. Occasionally, she turns and looks at you with a lustful gaze, whispering "Harder"
<br /><br />
<<video 'bedroom/house_party_threesome2'>>
<br /><br />
Unexpectedly, Blair enters your room and with a smile, lies down next to you, already having taken off her shirt.
<br /><br />
<<blair>>
Can I join?
<</blair>>
<br /><br />
<<=$guests[$guestId].name>> opens up with a wide smile on her face, watching as Blair unexpectedly undresses fully without waiting for a response and lies down next to you.
<br />
Blair grabs your hand and directs it between her legs, inviting you to start massaging her pussy.
<br /><br />
<<video 'bedroom/house_party_threesome3'>>
<br /><br />
<div id="option1">
<<linkreplace 'Fuck Blair'>>
<<run $('#option2').hide()>>
<<run $('#other_options').show()>>
<<video 'bedroom/house_party_threesome4'>>
<br /><br />
You pull our your hard dick, grab Blair by legs and pull her toward you. Instantly you shove your dick inside her wet pussy and fuck her hard while <<=$guests[$guestId].name>> looks for a brief moment before getting onto Blair and letting her lick her pussy.
<br /><br />
<</linkreplace>>
</div>
<div id="option2">
<<set _linkName = 'Fuck ' + $guests[$guestId].name + ' in doggy'>>
<<linkreplace `_linkName`>>
<<run $('#option1').hide()>>
<<run $('#other_options').show()>>
<br /><br />
<<video 'bedroom/house_party_threesome5'>>
<br /><br />
You adjust <<=$guests[$guestId].name>> ass as Blair lie down in front of <<=$guests[$guestId].name>>. As you shove your hard dick inside <<=$guests[$guestId].name>> she leans down and licks Blair's pussy passionately.
<br /><br />
<</linkreplace>>
</div>
<div id="other_options" style="display: none;">
<br /><br />
<<video 'bedroom/house_party_threesome6'>>
<br /><br />
Blair climbs on top of you and is ready to ride on you, but <<=$guests[$guestId].name>> decides to grab your dick and suck it for a moment. As she's way too drunk and way too into sucking it, Blair decides to join her.
<br /><br />
<<video 'bedroom/house_party_threesome7'>>
<br /><br />
They both doesn't take heir eyes off your dick and a moment later you cum.
<br />
Both of them do not take their eyes off your still hard dick and you can see that they are proud of what they have accomplished together.
<br />
They carefully examine your warm cum with a big smile on their faces.
<br /><br />
</div>
<<link 'Go to sleep'>>
<<horny_reset>>
<<sleep>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_table.webp']]
</center>
<br /><br />
The house party starts slowly. The table is set and guests begin to arrive slowly. There is food on the table that is not usually eaten on a daily basis, so everyone sits down at the table with an elevated mood. You open a champagne bottle and pour a glass for each guest.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_champagne.webp']]
</center>
<br /><br />
Champagne is such a rare thing in this world that only a few have ever tasted it. For most people, this is the first time and their bodies are not accustomed to it, so they get drunk very quickly.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_champagne_mouth.webp']]
</center>
<br /><br />
The bottle is almost empty and the girls are so drunk that they decide to pour the last bit left in the bottle into one of the girl's mouth from a distance. The girl falls to her knees and while the champagne is pouring into her mouth, another girl pulls down her shirt and sucks on her nipple.
<<addhours 1>>
<br /><br />
<<run setup.relationshipBetween.runParty()>>
<<for _guestI, _guest range $guests>>
<<if setup.getAge(_guest) < 18>>
<<continue>>
<</if>>
<<setNpcStats 'guest' _guestI 'relationship' +10>>
<<setNpcStats 'guest' _guestI 'happy' +6>>
<<=$guests[_guestI].name>> relationship increased by 10<br />
<<if typeof $guests[_guestI].quests === 'undefined'>>
<<set $guests[_guestI].quests = {}>>
<</if>>
<<set $guests[_guestI].quests.lastInteractionDay = $game.day>>
<</for>>
<br /><br />
<<set $player = setup.drink($player, 4)>>
<<if $player.drunk > 75>>
<<perkAdd 'drunk'>>
<</if>>
<<run setup.cabinInventory.drop('champagne', 1)>>
<<run setup.cabinInventory.drop('food', 20)>>
<<set _guestsNotPregnant = setup.propertyMatchIndexes($guests, 'pregnancy', 7, '<')>>
<div id="girls_top_table">
<h4>Guests attending the party</h4>
<table id="slaves">
<<for _guestI, _guest range $guests>>
<<if setup.getAge(_guest) < 18>>
<<continue>>
<</if>>
<<capture _guestI, _guest>>
<tr class="item">
<td style="width: 300px">
<<if !(_guest.pregnancy >= 7) && !(_guest.dislikes ?? []).includes('alcohol')>><<set _guest = setup.drink(_guest, 1)>><</if>>
<<=setup.displayName(_guest)>> <<=setup.npcListInfo(_guest)>>
</td>
<td>
Beauty score: <<print _guest.beauty>>
</td>
<td>
Age: <<=setup.getAge(_guest)>>
</td>
<td>
<<if !_guest.chastityBelt>>
<<link 'Invite to the bedroom'>>
<<if !_guest.gender && (setup.percentageChance(setup.sexChance(_guest)) || !$characters.blair.quests.house_party_finished)>>
<<set $tmpGirl to _guest>>
<<set $guestId = _guestI>>
<<unset $charId, $slaveId>>
<<set $characters.blair.quests.house_party_finished = true>>
<<goto 'House party - threesome'>>
<<else>>
<<set $tmpGirl to _guest>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirlViewBack = 'Sleep eval'>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirl.rape to false>>
<<set $guestId = _guestI>>
<<unset $charId, $slaveId>>
<<fuck $tmpGirl>>
<</if>>
<</link>>
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br /><br />
</div>
<div id="option1">
<<linkreplace 'Scold them'>>
<<run $('#option2').hide()>>
<<for _guestI, _guest range $guests>>
<<setNpcStats 'guest' _guestI 'sub' +5>>
<<=$guests[_guestI].name>> submission increased by 5<br />
<</for>>
<br /><br />
<</linkreplace>>
<<linkdesc>>
+5 submission
<</linkdesc>>
</div>
<<if setup.cabinInventory.has('champagne')>>
<div id="option2">
<<linkreplace 'Offer another bottle of champagne'>>
<<run setup.cabinInventory.drop('champagne', 1)>>
<<run $('#option1, #girls_top_table, #option2_desc').hide()>>
<<run $('#girls_bottom_table').show()>>
You bring another bottle and pour a glass for each of the guests, they thank you with a smile and flirtatiously look at you until one sits down in front of you and spreads her legs with the text "Thank you!"
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_champagne_skirt.webp']]
</center>
<br /><br />
Meanwhile, another girl is playfully teasing with the first bottle and starts to put it in her mouth to show how deep she can take it inside.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_champagne_bj.webp']]
</center>
<br /><br />
The girls applaud and cheer as the girl with the empty champagne bottle approaches, until one of the girls pushes you towards her and without hesitation, she pulls down your pants and takes your hard penis into her mouth.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_champagne_bj2.webp']]
</center>
<br /><br />
<<for _guestI, _guest range $guests>>
<<if ![0,2].includes(_guest.gender) || setup.getAge(_guest) < 18>>
<<continue>>
<</if>>
<<setNpcStats 'guest' _guestI 'relationship' +10>>
<<setNpcStats 'guest' _guestI 'happy' 10>>
<<=$guests[_guestI].name>> relationship increased by 10<br />
<</for>>
<br /><br />
<<set _randomPersons = setup.getAvailablePersons18yo($guests)>>
<<set _randomPersonsGirls = setup.commonValues([(_randomPersons[0] ?? []), _guestsNotPregnant])>>
<<if _randomPersonsGirls.length < 3>><<set _randomPersonsGirls = (_randomPersons[0] ?? [])>><</if>>
<<if recall($suppCode) && setup.percentageChance(50) && _randomPersonsGirls.length >= 3>>
<<set _randomGirls = setup.getRandomPersons(_randomPersonsGirls, 3)>>
<<set _npc1 = $guests[_randomGirls[0]]>>
<<set _npc2 = $guests[_randomGirls[1]]>>
<<set _npc3 = $guests[_randomGirls[2]]>>
Laughter echoed through the air, momentarily drowning out the distant sounds of the desolate world outside.
In this moment of shared joy and camaraderie, <<=setup.displayName(_npc1)>>, <<=setup.displayName(_npc2)>> and <<=setup.displayName(_npc3)>> clearly in high spirits from the bubbly, approached you.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/house_party_foursome.jpg']]
</center>
<br /><br />
<<sayNpc _npc1>>
This party is a blast! Having fun?
<</sayNpc>>
<br />
With mischievous smiles and playful glances, they suggested another bottle of champagne, hinting at the possibility of an adventure beyond the walls of the gathering.
The suggestion hung in the air like a tantalizing secret, a promise of fleeting joy in a world where joy was a rare commodity.
<br /><br />
<<sayNpc _npc2>>
You got one more bottle just for us? How about we move party so somewhere else.
<</sayNpc>>
<br />
<<if setup.cabinInventory.has('champagne')>>
<<link 'Bring another bottle'>>
<<set $tmpEvent = {
girls: [
_npc1,
_npc2,
_npc3
],
girlIds: [
_randomGirls[0],
_randomGirls[1],
_randomGirls[2]
]
}>>
<<addmins 30>>
<<run setup.cabinInventory.drop('champagne', 1)>>
<<goto 'Event - House party foursome'>>
<</link>>
<</if>>
<</if>>
<</linkreplace>>
<div id="option2_desc">
<<linkdesc>>
-1 champagne; +10 relationship
<</linkdesc>>
</div>
</div>
<</if>>
<div id="girls_bottom_table" style="display:none">
<h4>Guests attending the party</h4>
<table id="slaves">
<<for _guestI, _guest range $guests>>
<<if ![0,2].includes(_guest.gender) || setup.getAge(_guest) < 18>>
<<continue>>
<</if>>
<<capture _guestI, _guest>>
<tr class="item">
<td style="width: 300px">
<<if !(_guest.pregnancy >= 7) && !(_guest.dislikes ?? []).includes('alcohol')>><<set _guest = setup.drink(_guest, 1)>><</if>>
<<=setup.displayName(_guest)>> <<=setup.npcListInfo(_guest)>>
</td>
<td>
Beauty score: <<print _guest.beauty>>
</td>
<td>
Age: <<=setup.getAge(_guest)>>
</td>
<td>
<<if !_guest.chastityBelt>>
<<link 'Invite to the bedroom'>>
<<if !_guest.gender && (setup.percentageChance(setup.sexChance(_guest)) || !$characters.blair.quests.house_party_finished)>>
<<set $tmpGirl to _guest>>
<<set $guestId = _guestI>>
<<unset $charId, $slaveId>>
<<set $characters.blair.quests.house_party_finished = true>>
<<goto 'House party - threesome'>>
<<else>>
<<set $tmpGirl to _guest>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirlViewBack = 'Sleep eval'>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirl.rape to false>>
<<set $guestId = _guestI>>
<<unset $slaveId, $charId>>
<<fuck $tmpGirl>>
<</if>>
<</link>>
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br /><br />
<<set _guestsGirls = setup.propertyMatchIndexes($guests, 'gender', 0)>>
<<set _guestsNoChastityBelt = setup.propertyMatchIndexes($guests, 'chastityBelt', true, '!=')>>
<<set _guestsGay = setup.propertyMatchIndexes($guests, 'likesGuys', true, '!=')>>
<<set _guestsLikesGirls = setup.commonValues([setup.propertyMatchIndexes($guests, 'likesGirls'), _guestsGirls, _guestsNoChastityBelt, _guestsGay, _guestsNotPregnant])>>
<<if _guestsLikesGirls.length && setup.percentageChance(40)>>
<<set _randomLesbianId = setup.getRandomElement(_guestsLikesGirls)>>
You stood in the hallway for a moment, not quite ready to call it a night. That’s when you saw her - <<=setup.displayName($guests[_randomLesbianId])>>.
<br /><br />
<center>
<<image 'places/guesthouse/drunk_lesbian.jpg' sfw>>
</center>
<br />
An almost-empty bottle dangled from her fingers, tilted at an angle like she’d forgotten she was holding it.
<br /><br />
You’d always known she liked girls—she never exactly hid it.
<br /><br />
<<if setup.cabinInventory.has('champagne')>>
<<link 'Offer her another champagne'>>
<<run setup.cabinInventory.drop('champagne', 1)>>
<<addmins 30>>
<<set $tmpEvent = {
id: _randomLesbianId
}>>
<<goto 'House party - lesbian conversion'>>
<</link>>
<<linkdesc>>
-1 champagne
<</linkdesc>>
<</if>>
<</if>>
</div>
<<link 'Leave party'>>
<<set $game.partyNight = true>>
<<goto 'Bedroom'>>
<</link>><h1 class="ptitle">KITCHEN</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
<<set _npcDisplay = setup.displayName(_npc)>>
As you enter the dimly lit kitchen, you notice <<=_npcDisplay>> already there.
The soft glow of the morning sun filters through a cracked window, casting a warm light on her.
She's wearing a long red morning robe, the color standing out against the otherwise bleak surroundings.
She’s busy making breakfast, her movements calm and deliberate despite the chaos of the world outside.
<br /><br />
<center>
[img[setup.ImagePath+'places/kitchen/breakfast.jpg']]
</center>
<br />
<<=_npcDisplay>> turns as you approach, a warm smile spreading across her face. In her hand, she holds a tray of freshly baked cupcakes.
<br /><br />
<<sayNpc _npc>>
Good morning!
<</sayNpc>>
<br />
She's offering you one of the cupcakes. The aroma of the baked goods fills the room, a rare comfort in these harsh times.
<br /><br />
<<sayNpc _npc>>
Freshly made, still in the oven. You want one?
<</sayNpc>>
<br />
<div id="option_approach">
<<linkreplace 'Approach her'>>
<<run $('#option_decline').hide()>>
<<video 'kitchen/breakfast1'>>
<br /><br />
As you step closer, <<=_npcDisplay>> bends down slightly to check on the cupcakes still in the oven. You can see her firm ass as she opens oeven doors.
<br /><br />
<<sayNpc _npc>>
Just be careful. They are very hot!
<</sayNpc>>
<br />
<<linkreplace 'Pull her panties'>>
<<video 'kitchen/breakfast2'>>
<br /><br />
Your hand firmly grasps her panties and pulls them aside, revealing her softness pussy behind them.
<<=_npcDisplay>> shifts slightly, adjusting her grip on the oven door, but doesn't pull away. Instead, she seems to enjoy the moment, her body responding to your touch.
<br /><br />
<<sayNpc _npc>>
Oh that's the way you want to start this morning?
<</sayNpc>>
<br />
Encouraged by her reaction, you begin to slide your fingers through her labia, slowly but firmly.
<<=_npcDisplay>> lets out a contented sigh, leaning into your touch.
She looks back at you over her shoulder, her eyes half-closed with a smile playing on her lip as she notices your growing bulge.
<br /><br />
<<sayNpc _npc>>
Someone is trying to get out, haha?
<</sayNpc>>
<br />
She pulls away from you and turns around getting on her knees.
<br /><br />
<<video 'kitchen/breakfast3'>>
<br /><br />
With deliberate care, <<=_npcDisplay>> begins to pull down your underwear, her fingers brushing lightly against your skin. As she does, your erected dick springs free, her eyes briefly widening with a mix of surprise and delight.
A soft smile tugs at the corners of her lips as she instantly goes to licking your dick.
<br /><br />
<<sayNpc _npc>>
Oh this will go just right together with cupcakes
<</sayNpc>>
<br />
<<video 'kitchen/breakfast4'>>
<br /><br />
You gently put hand on her head and increase the depth of her movements. She struggles a bit but gets relaxed rather easy and takes almost fully your dick in her mouth. Her mouth feels warm and her chin hits against your balls.
<br /><br />
<div id="option_cum_mouth">
<<linkreplace 'Cum in her mouth'>>
<<horny_reset>>
<<set _npc.horny = 0>>
<<setNpcStats 'guest' $tmpEvent.id 'happy' 5>>
<<run $('#option_turn').hide()>>
<<image 'game/misc/cum_mouth.webp'>>
<br /><br />
As you pull out and grab your dick, she opens her mouth wide open and puts her tongue out, letting you cum right on it, without wasting anything.
<br /><br />
<<sayNpc _npc>>
Hm, might use this as ingredient for capcakes, hehe.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto 'Kitchen-room'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_turn">
<<linkreplace 'Pull down panties'>>
<<run $('#option_cum_mouth').hide()>>
<<video 'kitchen/breakfast5'>>
<br /><br />
With fast movements you grab her by hand and pull her up, turn her around and gently throw on kitchen table. As you hold her down with one hand, you pull down her panties.
<br /><br />
<<sayNpc _npc>>
Mmm, yes. Fuck my pussy.
<</sayNpc>>
<br />
<<video 'kitchen/breakfast6'>>
<br /><br />
You positioned yourself at her pussy, teasing her with the tip of your cock before plunging deep inside.
<br />
<<=_npcDisplay>> cried out in pleasure as you filled her, your hips grinding together in a primal rhythm.
<br /><br />
<<sayNpc _npc>>
Yes, harder, don't stop!
<</sayNpc>>
<br />
<<video 'kitchen/breakfast6'>>
<br /><br />
You could feel her pussy clenching around you, her muscles tensing as she got closer and closer to the edge.
You reached down and pinched her clit, sending her over the edge.
<br /><br />
<<sayNpc _npc>>
Oh my god! Cum in my mouth!
<</sayNpc>>
<br />
As you she begged you to cum in her mouth, she took the lead and got of the table and turned around, ready to get on her knees.
<br /><br />
<<video 'kitchen/breakfast7'>>
<br /><br />
<div id="option_cum_mouth2">
<<linkreplace 'Cum in mouth'>>
<<horny_reset>>
<<set _npc.horny = 0>>
<<setNpcStats 'guest' $tmpEvent.id 'happy' 5>>
<<run $('#option_anal').hide()>>
<<image 'game/misc/cum_mouth.webp'>>
<br /><br />
As you pull out and grab your dick, she opens her mouth wide open and puts her tongue out, letting you cum right on it, without wasting anything.
<br /><br />
<<sayNpc _npc>>
Hm, might use this as ingredient for capcakes, hehe.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto 'Kitchen-room'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_anal">
<<linkreplace 'Fuck her ass'>>
Before she managed to get down on her knees your grabbed her and lifted her back on the table on her back, spreading her legs wide open.
<br /><br />
<<run $('#option_cum_mouth2').hide()>>
<<if _npc.anal < 30>>
<<setNpcStats 'guest' $tmpEvent.id 'happy' -10>>
<<setNpcStats 'guest' $tmpEvent.id 'relationship' -15>>
<<sayNpc _npc>>
What the fuck you are trying to do? No!
<</sayNpc>>
<br />
She gets off the table, grabs her robe from the ground and rushes out of the kitchen.
<br /><br />
<<link 'Leave'>>
<<goto 'Kitchen-room'>>
<</link>>
<<else>>
<<video 'kitchen/breakfast8'>>
<br /><br />
You started to fuck her slowly, savoring the feeling of her tight ass around your cock. She moaned, her hips bucking as you picked up the pace.
<br /><br />
<<sayNpc _npc>>
Yes, yes, yes
<</sayNpc>>
<br />
She chanted, her nails digging into your skin.
<br />
You could feel yourself getting closer to the edge, your balls tightening. You reached and rubbed her clit, sending her over the edge. She screamed, her orgasm ripping through her body.
<br />
<<image 'game/misc/cum_in_ass2.webp'>>
<br /><br />
<<horny_reset>>
<<set _npc.horny = 0>>
<<set _npc.orgasms ??= 0>>
<<set _npc.orgasms++>>
<<setNpcStats 'guest' $tmpEvent.id 'happy' 5>>
<<setNpcStats 'guest' $tmpEvent.id 'anal' 5>>
You continued to fuck her, chasing your own release. And with one final thrust, you came deep inside her ass, filling her completely.
<br /><br />
<<link 'Leave'>>
<<goto 'Kitchen-room'>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="option_decline">
<<linkreplace 'Decline offer'>>
<<run $('#option_approach').hide()>>
<<=_npcDisplay>>'s smile falters slightly, and a hint of sadness flickers in her eyes. She lowers the cupcake slowly, her shoulders drooping just a little.
<br /><br />
<<sayNpc _npc>>
Oh... I thought you might like it.
<</sayNpc>>
<br />
The room feels heavier for a moment, the weight of the world pressing in. <<=setup.displayName(_npc)>>'s disappointment lingers in the air, but she quickly recovers, her resilient spirit shining through.
<br /><br />
<<sayNpc _npc>>
Maybe next time. We’ll find something else to enjoy together.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<setNpcStats 'guest' $tmpEvent.id 'happy' -10>>
<<setNpcStats 'guest' $tmpEvent.id 'relationship' -6>>
<<goto 'Kitchen-room'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">KITCHEN</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
When you stepped inside, you found <<=setup.displayName(_npc)>> standing by the counter, one hand braced against it, the other holding a steaming cup.
Her hair was still a little messy from sleep, strands falling over her face as she breathed in the coffee’s heat.
She looked more relaxed than you’d seen her in days.
<br /><br />
<<video 'kitchen/morning_coffee1'>>
<br /><br />
<<sayNpc _npc>>
Morning. Didn’t expect you up this early.
<</sayNpc>>
<br />
For a moment, it was quiet. Sunlight framed her silhouette, turning the rising steam into drifting gold.
You stepped closer, enough that you could feel the warmth from her cup brushing the space between you.
<br /><br />
<<linkreplace 'Move aside her robe'>>
She took a slow breath, fingers tightening slightly around her mug, though not in fear.
<br /><br />
<<if !_npc.likesGuys || _npc.virgin>>
<<addmins 10>>
<<video 'kitchen/morning_coffee2'>>
<br /><br />
Before it fell any further, her hand gently closed over yours.
<br /><br />
<<sayNpc _npc>>
What are you trying to do? Stop.
<</sayNpc>>
<br />
Her fingers wrapped around your wrist with a quiet firmness, guiding your hand back to where it had been.
<br /><br />
<<else>>
<<set _npc.horny = 0>>
<<addmins 30>>
<<video 'kitchen/morning_coffee3'>>
<br /><br />
Her fingers tightened around her coffee mug, but she didn’t pull away.
She exhaled softly—steady, willing—and let the robe shift beneath your touch. The fabric parted just slightly to reveal one of her breast.
<br /><br />
<<sayNpc _npc>>
What are you trying to do?
<</sayNpc>>
<br />
Before you could respond, she set the mug down and sank to her knees on the tiled floor, her robe falling further open to bare her torso completely.
Her fingers worked quickly at your zipper, pulling it down with practiced ease, then fishing out your hardening cock.
<br /><br />
<<video 'kitchen/morning_coffee4'>>
<br /><br />
<<=setup.displayName(_npc)>> leaned in, her breath hot against your skin, and parted her lips to take you in.
She sucked the head first, tongue swirling around the tip to lap
up the bead of precum there, then slid her mouth down further, cheeks hollowing as she bobbed her head.
<br /><br />
<<video 'kitchen/morning_coffee5'>>
<br /><br />
<<sayNpc _npc>>
Was it called a french breakfast? Black coffee and some dick, heh...
<</sayNpc>>
<br />
<<=setup.displayName(_npc)>>'s mouth slid further down your cock, her lips stretching around the girth as she took you deeper into her throat.
She gagged slightly at first, eyes watering, but pushed on, relaxing her muscles until her nose pressed against your abdomen
<br /><br />
<<video 'kitchen/morning_coffee6'>>
<br /><br />
You pulled her off with a wet pop, her lips swollen and shiny, and spun her around to face the counter.
<br /><br />
<<sayNpc _npc>>
Oh, yes, fuck me <<=setup.npc.mcName(_npc)>>.
<</sayNpc>>
<br />
<<video 'kitchen/morning_coffee7'>>
<br /><br />
You gripped her hips, positioning your cock at her entrance, and thrust forward in one smooth motion, burying yourself balls-deep inside her
tight pussy.
<br /><br />
<<video 'kitchen/morning_coffee8'>>
<br /><br />
She gasped, pushing back against you, her walls clenching around your dick as you started pounding into her.
The counter rattled with each slap of your hips against her ass, her breasts swaying freely beneath her open robe.
<br />
Meanwhile, she shrugged off her robe completely, letting it pool at her feet, leaving her fully exposed.
<br /><br />
<<video 'kitchen/morning_coffee9'>>
<br /><br />
The wet sounds of your cock sliding in and out filled the kitchen, her arousal dripping down her thighs, coating your balls as they slapped against her.
<br /><br />
<div id="option_creampie">
<<linkreplace 'Cum inside her'>>
<<run $('#option_pullout').hide()>>
<<horny_reset>>
<center>
<<image 'game/misc/creampie.webp'>>
</center>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<</if>>
<br />
You buried yourself to the hilt inside <<=setup.displayName(_npc)>>'s pussy, groaning as your cock pulsed and erupted, flooding her tight channel with thick ropes
of hot cum. She cried out, her walls spasming around you.
<br /><br />
<</linkreplace>>
</div>
<div id="option_pullout">
<<linkreplace 'Pull out'>>
<<horny_reset>>
<<run $('#option_creampie').hide()>>
<center>
<<image 'game/misc/cum_on_back.webp'>>
</center>
<br />
You pulled out just in time, your hand stroking your slick cock furiously as
you aimed at <<=setup.displayName(_npc)>>'s round, jiggling ass.
With a guttural grunt, you exploded, shooting heavy spurts of cum across her cheeks and back.
<br /><br />
<</linkreplace>>
</div>
<</if>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">KITCHEN</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
As you step into the kitchen, the scene unfolds with an almost surreal clarity. The rain outside continues its relentless assault, each drop a tiny hammer against the glass panes. The dim light casts long shadows, creating an intimate cocoon of warmth and darkness.
<br /><br />
<center>
[img[setup.ImagePath+'places/kitchen/wet_shirt.jpg']]
</center>
<br />
There <<=setup.displayName(_npc)>> is, standing by the counter.
Her shirt is soaked through, clinging to her skin and highlighting the curves beneath.
Her hair, damp and slightly disheveled, adds to her allure, giving her an almost ethereal quality.
She turns towards you, a playful smile dancing on her lips, her eyes sparkling with a mixture of mischief and desire.
<br /><br />
<<sayNpc _npc>>
Looks like I got caught in the downpour.
<</sayNpc>>
<br />
Her words hang in the air, charged with a provocative energy.
She steps closer, the scent of rain and something uniquely hers enveloping you. Her fingers, cool from the rain, lightly trail along your arm, sending a shiver through you.
<br /><br />
She lifts her hands to her chest, sliding them slowly across the wet fabric.
<br /><br />
<<video 'kitchen/wet1'>>
<br /><br />
Her fingertips trace the contours of her breasts before she grabs them, squeezing gently. The action pushes the wet shirt tighter against her skin, emphasizing every curve and swell.
Her eyes are locked onto yours, dark and smoldering with a blend of mischief and desire
<br /><br />
<<sayNpc _npc>>
Look like I got your attention, haha. You like what you see?
<</sayNpc>>
<br />
<div id="option_approach">
<<linkreplace 'Approach her'>>
<<run $('#option_leave').hide()>>
With deliberate, slow movements, she reaches for the waistband of your pants.
Her fingers, cool from the rain, deftly unbutton and unzip them. The sound of the zipper seems to echo in the silent kitchen, a prelude to what’s to come.
Her touch is confident, yet tender, as she gently pulls your pants down, revealing your half hard dick.
<br /><br />
You watch as she opens her mouth, her eyes locked onto yours with an unspoken invitation.
<br />
Slowly, you guide yourself into her waiting mouth, feeling the warmth and wetness envelop you.
<br /><br />
<<video 'kitchen/wet2'>>
<br /><br />
Her lips close around you, creating a delicious pressure that sends shivers down your spine. You begin to move, her mouth sliding up and down your dick with an expertise.
<br /><br />
<<video 'kitchen/wet3'>>
<br /><br />
You take your dick in your in hand, stroking a few times, feeling the slick warmth of her saliva still coating you.
<br /><br />
<<sayNpc _npc>>
Put it back in!
<</sayNpc>>
<br />
Without breaking eye contact, you slide your dick back into her waiting mouth. She opens eagerly, her tongue flicking out to welcome you back.
As you slide in, the familiar warmth and pressure of her mouth envelop you once more, sending a shiver of pleasure down your spine.
<br /><br />
<div id="option_doggy">
<<linkreplace 'Put her in doggy'>>
<<set _doggy = true>>
You push her forward, guiding her to bend over the counter, positioning her in a perfect doggy stance. Her hands grip the edge, knuckles white with tension and excitement.
She arches her back, presenting herself to you, her wet shirt clinging to her body and revealing the curves beneath.
<br /><br />
<<video 'kitchen/wet4'>>
<br /><br />
As you slide your hard dick in her, she lets out a loud, unabashed moan, the sound echoing in the kitchen, mingling with the rain outside.
<br />
Your hand moves to her ass, giving it a firm, resonant slap. She gasps and moans louder, the sharp sting mingling with the pleasure, heightening the intensity of the moment.
You alternate between firm thrusts and sharp slaps, each one eliciting a louder, more desperate moan from her.
<br /><br />
<<video 'kitchen/wet5'>>
<br /><br />
Her body responds to your every move, pushing back against you, the connection between you deepening with every thrust, every slap, every shared gasp of pleasure.
<br /><br />
<<sayNpc _npc>>
Turn me around
<</sayNpc>>
<br />
<</linkreplace>>
</div>
<<linkreplace 'Lay her down on her back'>>
<<if !_doggy>>
<<run $('#option_doggy').hide()>>
<</if>>
You lift her, helping her up onto the counter. The smooth, cold surface contrasts sharply with the heat of the moment.
She lies back, her wet shirt clinging to her body, the fabric now almost translucent and outlining her curves.
<br /><br />
<<video 'kitchen/wet6'>>
<br /><br />
Her legs wrap around your waist, pulling you closer, deeper. Each thrust sends waves of pleasure through both of you, her hands gripping the edge of the counter for support.
<br /><br />
<<sayNpc _npc>>
Oh yes! That's the spot! Don't stop!
<</sayNpc>>
<br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<set _npc.horny = 0>>
<<video 'kitchen/wet7'>>
<br /><br />
With a few more urgent strokes, you feel the pressure peak, and you release a deep groan as you cum, the warm, thick fluid spilling over her pussy, glistening against her wet skin.
The sight of your cum covering her, mixing with her own arousal, sends a final shiver of pleasure through you.
<br /><br />
<<sayNpc _npc>>
I guess I really do need to change my clothes now.
<</sayNpc>>
<br />
She slides off the counter, her legs slightly wobbly, and begins to straighten her damp shirt, which still clings to her in places.
She gives you one last lingering look, her expression a mix of satisfaction and unspoken promises.
<br /><br />
<<link 'Leave'>>
<<addmins 30>>
<<goto 'Kitchen-room'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="option_leave">
<<linkreplace 'I need to go'>>
<<run $('#option_approach').hide()>>
<<set _npc.relationship -= randomInteger(5,10)>>
<<set _npc.horny = 0>>
<<sayNpc _npc>>
Really? Oh well. I guess I will just go chance my clothes
<</sayNpc>>
<br />
She turns away, the wet fabric of her shirt clinging to her back as she moves, her posture slumping slightly.
You catch a glimpse of her expression, a fleeting moment of disappointment shadowing her features.
She runs a hand through her damp hair, pushing it back from her face, and you can see the effort it takes for her to mask her letdown with a casual shrug.
<br /><br />
<<link 'Leave'>>
<<addmins 10>>
<<goto 'Kitchen-room'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">KITCHEN</h1>
<br /><br />
<<set _girlGuest = setup.getPersonsForLocation($guests, 'kitchen')>>
<<set _npcSlave = setup.getPersonsForLocation($slaves, 'kitchen')>>
<<if _girlGuest.length>>
<<set _npc = $guests[_girlGuest[0]]>>
<<set _guestId = _girlGuest[0]>>
<<elseif _npcSlave.length>>
<<set _npc = $slaves[_npcSlave[0]]>>
<<set _slaveId = _npcSlave[0]>>
<<set _isSlave = true>>
<</if>>
<<set _randomCookJobs = [
'is stirring something over the fire.',
'is chopping vegetables on the worn wooden counter.',
'is kneading dough on the floured tabletop.',
'is ladling soup into a row of bowls.',
'is picking through a basket of foraged herbs.',
'is scrubbing out a large pot by the sink.',
'is checking on something roasting over the hearth.'
]>>
<<if _npc && timeBetween('08:00', '22:00')>>
<<set _isKitchenGirlAssigned = true>>
<<if $player.hunger <= 50 && $backpack.has('food')>>
<<set $player.hunger = 100>>
<<drop $backpack 'food' 1>>
<<updatemeter '$hungerBar' `$player.hunger / $player.maxHunger`>>
<</if>>
<<set $tmpGirl = _npc>>
<<set $tmpGirl.location = 'kitchen'>>
<center>
<<actionImage $tmpGirl cooking>>
</center>
<<=setup.displayName($tmpGirl)>> <<=setup.getRandomElement(_randomCookJobs)>> <<=ucfirst(setup.pronounceWhat($tmpGirl))>> notices you and gives you a warm smile.
<<if ($tmpGirl.horny ?? 0) >= 80>>
<br /><<=ucfirst(setup.pronounceWhat($tmpGirl))>> looks <span style="background-image: radial-gradient(rgba(255, 182, 193, 0.5) 10%, transparent 90%); padding: 0 4px;">distracted</span>, and could use some attention.
<</if>>
<br /><br />
<<set _girlGuestLink = 'Approach ' + $tmpGirl.name>>
<<link `_girlGuestLink`>>
<<set $tmpGirlViewBack = _isSlave ? 'NPC view' : 'NPC view - guest'>>
<<if _isSlave>>
<<unset $guestId, $childId, $charId>>
<<set $slaveId = _slaveId>>
<<else>>
<<unset $slaveId, $childId, $charId>>
<<set $guestId = _guestId>>
<</if>>
<<set $tmpGirlBack = 'Kitchen-room'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<<if $backpack.has('food') && (hasTime(0, 30) || $player.hunger != $player.maxHunger)>>
<<link "Eat">>
<<set $player.hunger to 100>>
<<addmins 30>>
<<updatemeter '$hungerBar' `$player.hunger / $player.maxHunger`>>
<<drop $backpack 'food' 1>>
<<goto 'Kitchen-room'>>
<</link>>
<</if>>
<<if _charactersInLocation['kitchen'].includes('blair')>>
<<link 'Talk with Blair'>>
<<unset $guestId, $slaveId, $childId>>
<<set $charId = 'blair'>>
<<set $tmpGirl = $characters.blair>>
<<goto 'Blair - kitchen talk'>>
<</link>>
<</if>>
[[Back|Wood cabin]]
<<set _guestsWomen = setup.getAvailablePersons18yo($guests)[0] ?? []>>
<<if !($locationEvents.kitchen ?? false)>>
<<set _npcsWomenLikesGuys = setup.filterNPCs($guests, {'virgin': false, race_in: ['white'], hair_in: ['blonde', 'brown'], gender: 0})>>
<<if (_npcsWomenLikesGuys[0] ?? []).length >= 1 && setup.percentageChance(10) && timeBetween('08:00', '09:00') && recall($suppCode)>>
<<set $tmpEvent = {
id: setup.getRandomElement(_npcsWomenLikesGuys[0])
}>>
<<goto 'Kitchen - morning coffee'>>
<<elseif _isKitchenGirlAssigned && !$tmpGirl.gender && setup.percentageChance(5)>>
<<set $locationEvents.kitchen = true>>
<<set $tmpEvent = {
type: _isSlave ? 'slave' : 'guest',
npcId: _isSlave ? _slaveId : _guestId
}>>
<<goto 'Event: Kitchen stuck'>>
<<elseif _guestsWomen.length >= 2 && setup.percentageChance(10) && timeBetween('10:00', '14:00') && $weather?.weather == 'rain' && recall($suppCode)>>
<<set $locationEvents.kitchen = true>>
<<set $tmpEvent = {
id: setup.getRandomElement(setup.getAvailablePersons18yo($guests)[0])
}>>
<<goto 'Kitchen - wet shirt'>>
<<elseif _guestsWomen.length >= 1 && timeBetween('10:00', '12:00') && recall($suppCode) && setup.percentageChance(10)>>
<<set _id = setup.getRandomElement(_guestsWomen)>>
<<if $guests[_id].horny > 50 || true>>
<<set $locationEvents.kitchen = true>>
<<set $tmpEvent = {
id: _id
}>>
<<goto 'Kitchen - breakfast'>>
<</if>>
<</if>>
<</if>><h1 class="ptitle">LAB</h1>
<br /><br />
Samples: <strong><<=$characters.laura.quests.productionSamples>></strong>
<br /><br />
<<set _guests = setup.getAvailablePersons18yo($guests)>>
<<if (_guests[0] ?? []).length && timeBetween('10:00', '11:00')>>
<<video 'laura/examin'>>
<br /><br />
<<set _randomNpc = $guests[setup.getRandomElement(_guests[0])]>>
There was <<=setup.displayName(_randomNpc)>> on the table with their legs spread wide open, as Laura carefully inserted her fingers into pussy.
<br /><br />
<<laura>>
Oh, <<=$player.name>>. I will be done soon. What do you want?
<</laura>>
<br />
<</if>>
<<if (_charactersInLocation['lab'] ?? []).includes('laura')>>
<<link 'Talk to Laura'>>
<<goto 'Laura - lab talk'>>
<</link>>
<<if !$characters.laura.quests.explore1 && $characters.laura.quests.breeder_trait && timeBetween('08:00', '12:00')>>
<<goto 'Laura - Explore #1'>>
<<elseif !$characters.laura.quests.breastsSurgery && $game.day >= 300 && setup.percentageChance(30)>>
<<goto 'Laura - breasts surgery'>>
<<elseif !$characters.laura.quests.sexChangeSurgery && $game.day >= 350 && setup.percentageChance(30)>>
<<goto 'Laura - sexchange surgery'>>
<</if>>
<<else>>
Laura isn't here...
<br /><br />
<</if>>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
As you go about your morning routine within the village, you spot a familiar figure standing at the gates. It's Dr. Laura Finch, her lab coat slightly dusty from her journey, and in her hand, she holds a collection of vials containing the samples you provided.
<br />
A rush of curiosity and anticipation washes over you as you approach her.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/toxic_rain3.jpg']]
</center>
<br /><br />
She smiles warmly, her eyes reflecting a mixture of excitement and determination.
<br /><br />
<<laura>>
I've got the first vials ready! The samples have been processed, and we're now at a point where we can begin testing the initial formulations of the growth potion.
<</laura>>
<br /><br />
Your heart leaps with excitement at the news. The moment you've been waiting for has arrived. The potential of the growth potion, with its implications for the future of your post-apocalyptic world, feels more real than ever.
Together, you and Dr. Finch proceed into the village, discussing the next steps in the testing. The conversation is filled with anticipation as you prepare to embark on a new phase of your journey, one that could bring about profound changes and a brighter future in a world filled with challenges.
<br /><br />
<<laura>>
How do you propose we test it? And remember, we should start with just two vials per person. Giving more could lead to severe consequences, even death.
<</laura>>
<br /><br />
As you consider the best approach to testing the growth potion, you decide not to share the full details with Dr. Laura Finch, particularly if it involves infants or young children. You believe that revealing such information might not align with her ethical stance or could potentially raise concerns about the safety and well-being of the participants.
<br /><br />
<<laura>>
Anyway, here you go. In the future you'll need to help me with other ingredients as my last place was raided.
<</laura>>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/laura_vials.jpg']]
</center>
<br /><br />
Dr. Laura Finch carefully hands you four vials containing the initial formulations of the growth potion. The vials gleam in the soft morning light, their contents holding the promise of profound change and potential for your post-apocalyptic world.
<br /><br />
<<linkreplace 'Take vials'>>
<<pickup $backpack 'growth_potion' 4>>
<strong>You picked up <strong class="iitem">4 growth potions</strong></strong>
<br /><br />
As you accept the four vials containing the initial formulations of the growth potion from Dr. Laura Finch, you notice a slight blush coloring her cheeks.
<br /><br />
<<laura>>
I know we have the initial vials, but to ensure the potency and reliability of the potion, I might need a few more samples for further testing. It's essential for the success of our research.
<</laura>>
<br /><br />
You pause for a moment, considering the implications of her request. It's clear that Dr. Finch is committed to her work and believes that these samples are crucial for the project's success. At the same time, you're aware of the delicate nature of the request.
<br /><br />
<<linkreplace 'Invite her to your bedroom'>>
Dr. Finch agrees, and you both make your way to your bedroom. Once inside, she takes out a pair of gloves, a clear indication of the sensitive nature of the task at hand. The gloves serve as a reminder of the importance of maintaining a sterile and controlled environment for the sample collection.
<br /><br />
<<linkreplace 'Tell her you will need some motivation'>>
<<laura>>
I had a feeling that you would say that.
<</laura>>
<br /><br />
She takes of leather jacket and reveals that she's wearing silk robe. She opens it sexually and her breasts flashes out. This time look like she wants to enjoy the moment a bit more and grabs your dick but starts with slow movements.
<br /><br />
<<video 'laura/sample2_1'>>
<br /><br />
<<laura>>
How are you feeling? Is this enough of motivation?
<</laura>>
<br /><br />
<<video 'laura/sample2_2'>>
<br /><br />
She slowly slides her hand across her breasts and pinches her nipples as he jerks you off and talks with you in the same time.
<br /><br />
<<video 'laura/sample2_3'>>
<br /><br />
After approximately 10 minutes, she returns to the previous pace. It's possible she got bored or she simply wants to get back to sample testing.
<br /><br />
<<linkreplace 'Cum'>>
<center>
[img[setup.ImagePath+'people/laura/sample_cum.webp']]
</center>
<br /><br />
Before you cum she puts another sample cup in front of your dick and collects all cum you shoot out.
<br /><br />
<<laura>>
I will return in a couple of days. Hopefully, by then, you will have found a way to test them.
<</laura>>
<br /><br />
<<link 'Leave'>>
<<set $characters.laura.quests.first_vials = true>>
<<set $characters.laura.quests.lastTestDay = $game.day>>
<<goto 'Outside'>>
<</link>>
<<horny_reset>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
Finally, one day, as you go about your daily tasks within your village, you notice a figure standing at the gate. Your heart skips a beat when you recognize Dr. Finch, her lab coat still bearing traces of the chemicals she's been working with. She holds a small paper in her hand.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/toxic_rain3.jpg']]
</center>
<br /><br />
<<laura>>
You bastard! You wasn't lying! Tests came back positive!
Can we talk? We need to talk!
<</laura>>
<br /><br />
<<linkreplace 'Invite her in'>>
As you approach the gates, you reach out to a rusted lever, a makeshift mechanism for opening and closing the entrance. With a firm pull, the gates creak open, revealing the bustling life within the village. The moment the gates start to move, you notice Dr. Finch's eyes widening in amazement.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/laura_first_visit.jpg']]
</center>
<br /><br />
As you both step inside, Dr. Finch takes in the sights and sounds of your village. She gazes at the resourceful architecture, the communal gardens, and the people going about their daily tasks. It's a place built on determination and cooperation, a sanctuary in the midst of chaos.
<br /><br />
<<laura>>
Did you build all of this?
<</laura>>
<br /><br />
<div id="option_continue_button1">
<<linkreplace 'Yes'>>
<<run $('#option_continue').show()>>
<<run $('#option_continue_button2').hide()>>
<<you>>
Yes. I did all this by myself.
<</you>>
<</linkreplace>>
</div>
<div id="option_continue_button2">
<<linkreplace 'Not just me, but everyone here'>>
<<run $('#option_continue').show()>>
<<run $('#option_continue_button1').hide()>>
<<you>>
Not just me, but everyone here. We came together after the world changed and decided to create a haven where people could support one another and find a sense of purpose.
<</you>>
<</linkreplace>>
</div>
<div id="option_continue" style="display:none">
<br /><br />
<<laura>>
I'm truly impressed with what you've built here,
<</laura>>
<br />
<<laura>>
But there's something important we need to discuss regarding the sperm test results. It's a matter that requires discretion.
<</laura>>
<br /><br />
<<linkreplace 'Go to your bedroom'>>
Dr. Finch nods in agreement, understanding the importance of discretion in your conversation. Together, you make your way to your bedroom, a small but cozy space where you can speak freely without the risk of eavesdropping.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/laura_first_visit2.jpg']]
</center>
<br /><br />
<<laura>>
While analyzing the test results I also discovered something fascinating related to the growth potion. It appears that your genetic makeup has a unique compatibility with the enzyme we need for the potion's development.
<</laura>>
<br /><br />
<<laura>>
The possibilities are truly unlimited. With your unique genetic compatibility, we could create a potion that not only accelerates the growth of crops, producing larger and more bountiful harvests to help feed our community, but it could also be used for human applications.
<</laura>>
<br /><br />
<<laura>>
Imagine a potion that allows humans to age faster, reaching physical maturity and peak condition in a matter of days rather than years.
<br />
But there's one more thing... I first need to make more tests and I am out of samples. I need them to continue my work. Can you help me with that?
<</laura>>
<br /><br />
<div id="option_cum1">
<<linkreplace 'How about you help me this time?'>>
<<run $('#option_cum2').hide()>>
<<run $('#option_test').show()>>
<<set $characters.laura.relationship++>>
<<laura>>
Eh, as much as I wouldn't like that. I really want those samples as they could benefit the world so much.
<</laura>>
<</linkreplace>>
</div>
<div id="option_cum2">
<<linkreplace "I will do that right now">>
<<run $('#option_cum1').hide()>>
<<run $('#option_test').show()>>
<<set $characters.laura.relationship +=2>>
<<laura>>
I have better idea. Take your pants off. I'll do it myself so we don't waste any of your samples.
<</laura>>
<</linkreplace>>
</div>
<div id="option_test" style="display:none;">
<br /><br />
You pull down your pants and lay down on your bed. Before she starts she takes out gloves and puts them on with smile on her face. She gazes at your balls in amazement.
<br /><br />
<<video 'laura/sample_gloves'>>
<br /><br />
She firmly grabs your dick and slowly starts to jerk it off while still not taking eyes off your balls.
<br /><br />
<<video 'laura/sample_bj'>>
<br /><br />
<<laura>>
If you don't hurry, this will take us the whole day.
<</laura>>
<br /><br />
She significantly speeds up her hand movements and starts squeezing your balls with her other hand.
<br /><br />
<<video 'laura/sample_bj2'>>
<br /><br />
<<linkreplace 'Cum'>>
<center>
[img[setup.ImagePath+'people/laura/sample_cum.webp']]
</center>
<br /><br />
Before you cum she puts another sample cup in front of your dick and collects all cum you shoot out.
<br /><br />
<<laura>>
Perfect! I can continue my research. I'll be back after few days with results.
<</laura>>
<br /><br />
<<link 'Leave'>>
<<set $characters.laura.quests.successful_test = true>>
<<set $characters.laura.quests.lastTestDay = $game.day>>
<<goto 'Outside'>>
<</link>>
<<horny_reset>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<</linkreplace>><h1 class="ptitle">CITY</h1>
<<newgirl>>
<<set
$tmpGirl.name = 'Laura',
$tmpGirl.birthDate = setup.getBirthDate(40),
$tmpGirl.hair = 'brown',
$tmpGirl.race = 'white',
$tmpGirl.breasts = 'big',
$tmpGirl.quests = {
metOnDay: $game.day
}
>>
<<set $characters.laura = $tmpGirl>>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/toxic_rain1.jpg']]
</center>
<br /><br />
As you ventured through the desolate streets of the ruined city, the acrid stench of decay hung in the air. The once towering skyscrapers now stood as skeletal remnants of the past, their shattered windows like empty eye sockets. Your footsteps echoed off the cracked pavement as you navigated the eerie silence.
<br /><br />
Then, a low rumble filled the atmosphere, and you looked up to see dark clouds gathering overhead. It had been years since anyone had witnessed rain in this apocalyptic wasteland. The first few drops fell, and you raised your face to the sky, feeling the cool sensation on your skin. It was almost refreshing, a stark contrast to the constant dust and dryness of this world.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/toxic_rain2.jpg']]
</center>
<br /><br />
However, your joy was short-lived. As the rain continued to fall, an intense burning sensation started to gnaw at your exposed skin. Panic set in as you realized something was horribly wrong. You needed shelter, fast.
<br /><br />
Frantically, you sought refuge in an old, crumbling building, descending into its dimly lit basement. The rain's acidic touch had left painful welts on your skin. It was a dire situation, and you feared for your survival.
<br /><br />
As you explored the basement, your eyes landed on a set of heavily reinforced, locked doors. Desperation drove you to investigate further. You called out, pounding on the doors, hoping for any sign of life.
<br /><br />
To your astonishment, a voice responded from the other side. "<strong>Who's there?</strong>" it called out, filled with both surprise and trepidation.
<br /><br />
"It's me," you replied hastily. "I sought shelter from the rain. It's burning my skin."
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/toxic_rain3.jpg']]
</center>
<br /><br />
After a series of clicks and mechanical noises, the doors creaked open, revealing a dimly lit laboratory. Inside, you found a woman, her lab coat spattered with various chemicals, and her hands gloved and covered with protective gear. She was slightly disheveled but had an air of determined intellect about her.
<br /><br />
<<laura>>
Quickly, get inside!
<</laura>>
<br /><br />
She urged, pulling you in and sealing the doors behind you.
<br /><br />
<<laura>>
My name is Dr. Laura Finch, a scientist. I've been researching this rain, trying to understand its properties.
<</laura>>
<br /><br />
You explained the burning sensation you had felt, and Dr. Finch nodded gravely.
<br /><br />
<<laura>>
Yes, it's highly acidic. It's not just rain; it's a result of the environmental catastrophe that has befallen our world. The atmosphere is filled with toxic compounds, and this rain is one of its manifestations
<</laura>>
<br /><br />
<<linkreplace "Ask on what else she's working">>
Dr. Laura Finch led you further into her makeshift laboratory, which was filled with an assortment of scientific equipment and notes scrawled across chalkboards. She spoke with a hint of excitement in her voice, her eyes shining with a determined glint.
<br /><br />
<<laura>>
One of my projects involves a growth potion. This concoction could accelerate the aging process, allowing people to reach maturity and physical peak faster, hopefully making them more resilient to the dangers of this world.
<</laura>>
<br /><br />
She carefully picked up a vial filled with a mysterious liquid and continued...
<br /><br />
<<laura>>
I've made progress, but I'm missing a few critical ingredients to complete the formula. With those, I could potentially create a significant breakthrough in our struggle to survive.
<</laura>>
<br /><br />
<<linkreplace 'Ask about missing ingredients'>>
<<laura>>
I require samples of irradiated fungal glowing mushrooms and an enzyme. Mushrooms I might find somewhere on my own but enzyme would be tricky one.
<br />
The enzyme I need can only be extracted from the sperm of males who haven't been exposed to the initial nuclear radiation. It's a complex biological process, and these specific conditions are crucial for the enzyme's purity.
<</laura>>
<br /><br />
<<linkreplace "Tell her you wasn't exposed to the initial radiation">>
Dr. Laura Finch eyes you warily, her scientific skepticism evident in her expression. She's heard similar claims before, and as a scientist in this unforgiving world, she's learned to trust cautiously. Her doubts are understandable, given the desperation of others who have tried to deceive her.
<br /><br />
<<laura>>
Nice try. I bet you want me to extract it from you?
<</laura>>
<br /><br />
<<linkreplace '...'>>
She takes a deep breath and a second later, she hand you a small cup where she expects you will cum. After that she goes away to other room.
<br /><br />
<<laura>>
Call me when you're close.
<</laura>>
<br /><br />
<<linkreplace 'Take dick out and jerk off'>>
<center>
[img[setup.ImagePath+'places/explore/toxic_rain_jerk.webp']]
</center>
<br /><br />
You take out your dick and slowly start to jerk yourself off. As Laura goes out of the room she takes a quick peek what your packing as she's exiting the room. <br />
Your dick slowly grows bigger and harder as you put more pressure on it.
<br /><br />
<<linkreplace 'Call for her'>>
<center>
[img[setup.ImagePath+'places/explore/toxic_rain_cum.webp']]
</center>
<br /><br />
She enters the room slowly and confidently, looks at your dick, grabs it, and places it under the previously prepared transparent cup. The moment she wraps her hand around your dick you cum...
<br /><br />
<<laura>>
I hope this was worth it.. If tests will come back positive. I'll find you. You should leave now.
<</laura>>
<br /><br />
<<horny_reset>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle"><<cabinName>></h1>
<<set _npc1 = $settlers[0]>>
<<set _npc2 = $settlers[1]>>
Their faces soften with a mixture of relief and gratitude. <<=setup.displayName(_npc1)>> nods quickly, reaching for your hand with a grip that speaks of survival,
of a person ready to build a life from the ground up, no matter how hard it may be.
<br /><br />
<<sayNpc $tmpGirl>>
Thank you so much!
<</sayNpc>>
<br />
You lead them down the worn path through the heart of the settlement, the dirt packed hard from footsteps.
The air feels a little warmer here, sheltered from the cold and open wilds beyond the walls, and they relaxes just a fraction as they realize they've made it.
<<=setup.displayName(_npc1)>> looks at <<=setup.displayName(_npc2)>> with a smile on <<=setup.pronounceWho(_npc1)>> face.
<br /><br />
<center>
<<image 'places/cabin/new_settlers2.jpg'>>
</center>
<br /><br />
Finally, you arrive at one of the empty houses. The roof, though patched in places, holds strong, and the door swings open with a soft creak.
Dust hangs in the air, disturbed as they step inside, and though the place is bare, it's shelter—a gift of unimaginable value in these times.
<br /><br />
<<link 'Leave'>>
<<set $player.baseManagement ??= {}>>
<<set $player.baseManagement.settlers = ($player.baseManagement.settlers ?? 0) + $settlers.length>>
<<set $player.baseManagement.settlersFemales ??= 0>>
<<for _s range $settlers>>
<<if !_s.gender>>
<<set $player.baseManagement.settlersFemales += 1>>
<</if>>
<</for>>
<<unset $settlers>>
<<addhours 1>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">NURSERY</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/nursery_built.jpg']]
</center>
<br /><br />
<<if $characters.blair.quests?.nursery>>
<<blair>>
Well, not exactly what I had imagined, but having a roof over their head will definitely be suitable. Maybe in the future, you could consider making it more colorful and appealing to children's eyes.
<</blair>>
<<else>>
You step back and look at what you've built. It's modest, but it'll do — somewhere safe the little ones can actually call their own.
<</if>>
<br /><br />
<<set _newGuests = []>>
<<set _newSlaves = []>>
<<set _tempCompanions = []>>
<<for _nursCompI, _nursComp range $player.companions ?? []>>
<<set _nursCompKey = _nursCompI.split(':')>>
<<if _nursCompKey[0] === 'guest'>>
<<run _tempCompanions.push($guests[_nursCompKey[1]].name + ':' + $guests[_nursCompKey[1]].birthDate.getTime())>>
<</if>>
<</for>>
<<set $nursery = []>>
<<for _nurGuestI to 0; _nurGuestI lt ($guests ?? []).length; _nurGuestI++>>
<<capture _nurGuestI>>
<<if setup.getAge($guests[_nurGuestI]) < 17>>
<<run $nursery.push($guests[_nurGuestI])>>
<<else>>
<<run _newGuests.push($guests[_nurGuestI])>>
<</if>>
<</capture>>
<</for>>
<<for _nurSlaveI to 0; _nurSlaveI lt ($slaves ?? []).length; _nurSlaveI++>>
<<capture _nurSlaveI>>
<<if setup.getAge($slaves[_nurSlaveI]) < 17>>
<<run $nursery.push($slaves[_nurSlaveI])>>
<<else>>
<<run _newSlaves.push($slaves[_nurSlaveI])>>
<</if>>
<</capture>>
<</for>>
<<set _tempCompanionsNew = {}>>
<<for _newGuestI, _newGuest range _newGuests>>
<<if _tempCompanions.includes(_newGuest.name + ':' + _newGuest.birthDate.getTime())>>
<<set _tempCompanionsNew['guest:' + _newGuestI] = true>>
<</if>>
<</for>>
<<set $guests = _newGuests>>
<<set $slaves = _newSlaves>>
<<set $player.companions = _tempCompanionsNew>>
<<set $game.location.nursery = true>>
<<set $game.location.youth_district = true>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">
<<backButton 'Youth district'>>
NURSERY
</h1>
<<set _sleepingChance = 0>>
<<if timeBetween('20:00', '23:00')>>
<<set _sleepingChance = 40>>
<<elseif timeBetween('23:00', '23:59')>>
<<set _sleepingChance = 70>>
<<elseif timeBetween('23:59', '01:00')>>
<<set _sleepingChance = 100>>
<<elseif timeBetween('01:00', '02:00')>>
<<set _sleepingChance = 100>>
<</if>>
<<if ($nursery ?? []).length < 1>>
<div style="margin-top: 20px;">
Noone is living here...
</div>
<<else>>
<<set _nurserySorter = setup.npcSortedIndices($nursery, $nsortBy)>>
<<if ($nsortBy === 'M')>>
<<run _nurserySorter.sort((a, b) => {
const mA = setup.getNpcById($nursery[a].family?.mother)?.name ?? 'zzz';
const mB = setup.getNpcById($nursery[b].family?.mother)?.name ?? 'zzz';
return mA < mB ? -1 : mA > mB ? 1 : 0;
})>>
<<elseif ($nsortBy === 'A')>>
<<run _nurserySorter.sort((a, b) => setup.getAge($nursery[b]) - setup.getAge($nursery[a]))>>
<</if>>
<<set $nSortPanelOpen ??= false>>
<<set _nSelfReload = State.history.length > 1 && State.history[State.history.length - 2].title === 'Nursery'>>
<<if !_nSelfReload>>
<<set $nSortPanelOpen = false>>
<</if>>
<table id="slaves" class="npc-list">
<tr class="item">
<td colspan="2">
<details id="nursery-sort-details">
<summary class="sort-summary"><small>Sort options</small></summary>
<div class="sort-options" style="display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 0.5rem;">
<span>
<<if ($nsortBy !== 'N')>>
Sort by: <<link 'Name'>><<set $nsortBy = 'N'>><<goto 'Nursery'>><</link>>
<<else>>
Sort by: <strong>Name</strong>
<</if>>
</span>
<span>
<<if ($nsortBy !== 'M')>>
<<link 'Mother'>>
<<set $nsortBy = 'M'>>
<<goto 'Nursery'>>
<</link>>
<<else>>
<strong> Mother </strong>
<</if>>
</span>
<span>
<<if ($nsortBy !== 'A')>>
<<link 'Age (descending)'>>
<<set $nsortBy = 'A'>>
<<goto 'Nursery'>>
<</link>>
<<else>>
<strong> Age (descending) </strong>
<</if>>
</span>
<span>
<<if ($nsortBy == 'N' || $nsortBy == 'M' || $nsortBy == 'A')>>
<<link 'Arrival (default)'>><<set $nsortBy = 'D'>><<goto 'Nursery'>><</link>>
<<else>>
<strong>Arrival (default)</strong>
<</if>>
</span>
</div>
</details>
<<done>>
<<run document.getElementById('nursery-sort-details').open = State.variables.nSortPanelOpen>>
<<run jQuery('#nursery-sort-details').on('toggle', function() { State.variables.nSortPanelOpen = this.open; })>>
<</done>>
</td>
</tr>
<<set _currentMom = ''>>
<<for _sortOrder, _realIdx range _nurserySorter>>
<<set _nursery = $nursery[_realIdx]>>
<<capture _realIdx, _nursery>>
<<set _genderClass = 'gender-' + setup.genderClass(_nursery)>>
<<if setup.percentageChance(_sleepingChance)>>
<<set _nursery.sleeping = true>>
<</if>>
<<set _customColorStyle = ''>>
<<if typeof _nursery.color !== 'undefined' >>
<<set _customColorStyle = ' npc-color color-' + _nursery.color >>
<</if>>
<<set _motherNpc = ''>>
<<if (_nursery.family ?? false) && (_nursery.family.mother ?? false)>>
<<set _motherNpc = setup.getNpcById(_nursery.family.mother)>>
<</if>>
<<if $nsortBy === 'M'>>
<<if _motherNpc !== _currentMom>>
<tr class="item">
<td colspan="3">
<<if (_motherNpc?.name ?? false)>>
Kid(s) of <<=setup.displayName(_motherNpc)>>:
<<else>>
Orphan(s):
<</if>>
</td>
</tr>
<<set _currentMom = _motherNpc>>
<</if>>
<</if>>
<tr class="item">
<td class="min25">
<span @class="_genderClass + _customColorStyle">
<span data-balloon-length="medium" @aria-label="'Mother: ' + (_motherNpc ? _motherNpc.name : '????') + ''" data-balloon-pos="up-left">
<<link _nursery.name>>
<<unset $guestId, $charId, $slaveId>>
<<set $childId = _realIdx>>
<<set $tmpGirl = _nursery>>
<<set $tmpGirlBack = 'Nursery'>>
<<set $tmpGirlViewBack = 'Child view'>>
<<goto 'Child view'>>
<</link>>
</span>
</span>
<<=setup.npcListInfo(_nursery)>>
<<if setup.getAge(_nursery) >= 5 && ($player.quests.school_built ?? false)>>
<span data-balloon-length="medium" @aria-label="'Student: ' + _nursery.teach" data-balloon-pos="up-left">
🎒
</span>
<</if>>
</td>
<td>
<span data-balloon-length="medium" @aria-label="'Born: ' + (_nursery ? _nursery.birthDate.toDateString() : '????') + ((_nursery.birthDate.getDate() == $gameDate.getDate() && _nursery.birthDate.getMonth() == $gameDate.getMonth()) ? '. 🎁 Happy Birthday! 👶 ' : '')" data-balloon-pos="up-left">
Age: <<=setup.getAge(_nursery)>>
</span>
</td>
<td class="throw-out">
<<link 'Throw out'>>
<<dialog 'Throw out'>>
Are you sure you want to throw <<=(_nursery.gender ? 'him' : 'her')>> out?
<br />
<<link 'Yes' 'Nursery'>>
<<set _nurseryI = _realIdx >>
<<run $nursery.splice(_nurseryI, 1)>>
<<dialogclose>>
<<set $player.goodwill -= 2>>
<</link>>
<</dialog>>
<</link>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<</if>>
<style>
.min25 {
min-width: 25%;
}
.throw-out {
width: 29%;
}
</style>
[[Back|Youth district]]<h1 class="ptitle"><<cabinName>></h1>
<br />
<<if $pregnancyStreetsHappening.type === 'slave'>>
<<set $tmpGirl = $slaves[$pregnancyStreetsHappening.id]>>
<<else>>
<<set $tmpGirl = $guests[$pregnancyStreetsHappening.id]>>
<</if>>
The air in the makeshift shelter was thick with tension as I descended the creaky stairs, my eyes adjusting to the dim light of a single flickering lantern.
The low hum of distant wind echoed through the underground chambers, carrying with it the whispers of a world that had crumbled into chaos.
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/table_woman_crying.jpg']]
</center>
<br />
As you reached the bottom step, you noticed a small figure hunched over at a table in the corner. <<=setup.displayName($tmpGirl)>>, her shoulders shaking with silent sobs.
She looked up as you approached, her eyes red and swollen.
<br /><br />
<<linkreplace 'Hey! Are you okay?'>>
<<run $('#option_leave').hide()>>
Her gaze fell to the floor, and she hesitated before finally speaking.
<br /><br />
<<sayNpc $tmpGirl>>
I'm pregnant. From one of my clients from the streets. I don't know what to do.
<</sayNpc>>
<br />
Tears welled up in her eyes again as she pondered the question.
<br /><br />
<<linkreplace 'What you want to do?'>>
<<sayNpc $tmpGirl>>
I don't know if I can provide a life for a child in this world. It's so messed up, and I'm barely making it as it is.
<</sayNpc>>
<br />
<<if setup.percentageChance(50)>>
<<set _wantsToKeep = true>>
<<sayNpc $tmpGirl>>
I... I want to keep it. Despite everything, this child could be a glimmer of hope in all this darkness. I can't let the world take away the one thing that could still bring some meaning to my life.
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
I don't want to keep that bastard. This world is already messed up enough, and I can't bring a child into it, especially not from some guy who doesn't even care about anything but his own pleasure.
<</sayNpc>>
<</if>>
<br />
<div id="option_yes">
<<linkreplace 'Keep it'>>
<<run $('#option_no').hide()>>
<<run $('#option_leave').show()>>
<<if _wantsToKeep>>
<<sayNpc $tmpGirl>>
Really?! Thank you so much!
<</sayNpc>>
<br />
She hugs you and with a smile on her face leaves the building.
<<else>>
<<sayNpc $tmpGirl>>
Why!? No! I fucking hate this place.
<</sayNpc>>
<<set $tmpGirl.relationship -= 10>>
<<set $tmpGirl.happy -= 40>>
<strong>Relationship decreased by 10</strong>
<br />
<strong>Happiness decreased by 40</strong>
<</if>>
<</linkreplace>>
</div>
<div id="option_no">
<<linkreplace 'Don\'t keep it'>>
<<run $('#option_yes').hide()>>
<<run $('#option_leave').show()>>
<<if !_wantsToKeep>>
<<sayNpc $tmpGirl>>
Really?! Thank you so much!
<</sayNpc>>
<br />
She hugs you and with a smile on her face leaves the building.
<<else>>
<<sayNpc $tmpGirl>>
Why!? No! I fucking hate this place.
<</sayNpc>>
<<set $tmpGirl.relationship -= 10>>
<<set $tmpGirl.happy -= 40>>
<strong>Relationship decreased by 10</strong>
<br />
<strong>Happiness decreased by 40</strong>
<</if>>
<<run delete $tmpGirl.pregnancy>>
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
<br /><br />
<<link 'Leave'>>
<<if $pregnancyStreetsHappening.type === 'slave'>>
<<set $slaves[$pregnancyStreetsHappening.id] = $tmpGirl>>
<<else>>
<<set $guests[$pregnancyStreetsHappening.id] = $tmpGirl>>
<</if>>
<<unset $pregnancyStreetsHappening>>
<<goto 'Wood cabin'>>
<</link>>
</div>
<</linkreplace>>
<</linkreplace>>
<div id="option_leave">
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
</div><h1 class="ptitle"><<cabinName>></h1>
<br />
By midday, a platform had been assembled in the center of the settlement—simple, crude, and impossible to ignore.
<<=setup.displayName($tmpGirl)>> laid down in the pillory, wrists and neck secured in the wooden frame.
She was fully naked, pale but steady, eyes fixed somewhere beyond the crowd.
<br /><br />
<<set $tmpGirl.location = 'pillory'>>
<center>
<<actionImage $tmpGirl 'punish'>>
</center>
<br />
No one cheered. No one jeered. They simply watched, silent and grim, reminded of the rules that kept us alive.
<br /><br />
She would remain there until sunset—a full day—exposed, not to shame her, but to imprint the consequence on every mind that still ached for closeness.
<br /><br />
<<for _guestI, _guest range $guests>>
<<if setup.getAge(_guest) < 18>>
<<continue>>
<</if>>
<<set _randomSubInc = randomInteger(10, 20)>>
<<setNpcStats 'guest' _guestI 'sub' _randomSubInc>>
<<=$guests[_guestI].name>> submission increased by <<=_randomSubInc>>
<br />
<<if (_guest.traits ?? []).includes('sadistic')>>
<<set _hornyInc = randomInteger(15, 30)>>
<<set $guests[_guestI].horny = Math.min(100, ($guests[_guestI].horny ?? 0) + _hornyInc)>>
<<=$guests[_guestI].name>> is visibly aroused by the spectacle.
<br />
<</if>>
<<if typeof $guests[_guestI].quests === 'undefined'>>
<<set $guests[_guestI].quests = {}>>
<</if>>
<<set $guests[_guestI].quests.lastInteractionDay = $game.day>>
<</for>>
<br /><br />
<<link 'Leave'>>
<<addmins 30>>
<<set
$tmpGirl.sub = Math.min(100, $tmpGirl.sub += 20),
$tmpGirl.happy -= 40
>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">GUEST HOUSE</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/outside/scavenging_empty_bed.png']]
</center>
You went to the guest house and noticed that
<strong><<=setup.displayName($guests[$scavengingDidntReturn])>></strong> didn't came home from the <<=$guests[$scavengingDidntReturn].assignedTo == 'scavenging' ? 'scavenging' : 'forest'>> last night.
<<set _goLookLink = 'Go look for ' + setup.pronounceWho($guests[$scavengingDidntReturn])>>
<br /><br />
<<link _goLookLink>>
<<goto 'Scavenging - look for'>>
<</link>>
<<link 'Ignore'>>
/* a capable scavenger usually finds their own way home */
<<if setup.percentageChance(setup.fight.scavengerCapability($guests[$scavengingDidntReturn]) >= 60 ? 15 : 50)>>
<<guestRemove $scavengingDidntReturn>>
<</if>>
<<unset $scavengingDidntReturn>>
<<goto 'Bedroom'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<<if $guests[$scavengingDidntReturn].gender == 1>>
<<set _imgUrl = 'scavenging_alive_male.jpg'>>
<<else>>
<<set _imgUrl = 'scavenging_walk_girl.webp'>>
<</if>>
<center>
<<set _img = 'places/outside/' + _imgUrl>>
<<image _img 'sfw'>>
</center>
<br /><br />
<<set _heshe = setup.pronounceWhat($guests[$scavengingDidntReturn])>>
<<set _hisher = setup.pronounceWhos($guests[$scavengingDidntReturn])>>
After few hours of walking you finally noticed <<=setup.pronounceWho($guests[$scavengingDidntReturn])>> in the distance
as <<=setup.pronounceWhat($guests[$scavengingDidntReturn])>> walked towards you.<br />
<<=setup.pronounceWhat($guests[$scavengingDidntReturn], true)>> noticed you and started to run towards you. When <<=_heshe>> finally reached you <<=_heshe>> jumped around your neck and hugged you strongly with tears all over <<=_hisher>> eyes.
<br />
<br />
<<if !$guests[$scavengingDidntReturn].gender>>
<center>
<<image 'places/outside/scavenging_hug.webp' 'sfw'>>
</center>
<br />
<br />
<</if>>
<<=setup.pronounceWhat($guests[$scavengingDidntReturn], true)>> told you that <<=setup.pronounceWhat($guests[$scavengingDidntReturn])>> met some scavengers and decided to hide till they went away.
<br /><br />
<<set _linkDisappointed = "Tell " + setup.pronounceWho($guests[$scavengingDidntReturn]) + " that you're disappointed">>
<<if !$guests[$scavengingDidntReturn].gender>>
<<linkreplace _linkDisappointed>>
She wiped her eyes and gets on her knees while looking at you and telling that she's really sorry and that won't happen again. <br />
She unzips your pants and puts your dick in her mouth and starts to suck it.
<center>
<<image 'places/outside/scavenging_bj.webp'>>
</center>
<br /><br />
<<set $guests[$scavengingDidntReturn].sub += 5>>
<strong><<=$guests[$scavengingDidntReturn].name>> submission increased by 5</strong>
<br /><br />
<<linkreplace 'Tell her turn around'>>
She instantly gets up, pulls down her pants and turns around and presses herself against the fence.
<br /><br />
<center>
<<image 'places/outside/scavenging_ass.webp'>>
</center>
<br /><br />
You grab your dick and shove it inside her ass and fuck her while she still sobs up and keeps telling you that she's really sorry.
<br />
<br />
<<set $guests[$scavengingDidntReturn].sub += 5>>
<strong><<=$guests[$scavengingDidntReturn].name>> submission increased by 5</strong>
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</if>>
<<set _linkHome = 'Take ' + setup.pronounceWho($guests[$scavengingDidntReturn]) + ' home'>>
<<link _linkHome>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<center>
<<if $guests[$scavengingDidntReturn].gender == 1>>
<<set _imgUrl = 'male'>>
<<else>>
<<set _imgUrl = 'female'>>
<</if>>
[img[setup.ImagePath+'places/outside/scavenging_dead_' + _imgUrl + '.jpg']]
</center>
<br /><br />
You kept walking for few hours and suddently you noticed someone in the distance on the ground. Your rushed toward the body and found that it's <<=setup.pronounceWho($guests[$scavengingDidntReturn])>>.
<br />
<<=setup.displayName($guests[$scavengingDidntReturn])>> clothes were ripped apart and <<=setup.pronounceWhat($guests[$scavengingDidntReturn])>> was left laying on the ground with a knife wound.
<strong><<=setup.pronounceWhat($guests[$scavengingDidntReturn], true)>>'s dead.</strong>
<br /><br />
<<link 'Return home'>>
<<guestRemove $scavengingDidntReturn>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<<set _npc = $guests[$scavengingDidntReturn]>>
<!-- #### places/outside/scavenging_holding_out.jpg | a capable armed survivor sitting on a broken wall of a ruined building in a post-apocalyptic wasteland at dawn, a makeshift barricade of debris behind them, a bag full of scavenged goods at their feet, weapon resting across their knees, tired but unhurt, dust and smoke in the air, cinematic, realistic --ar 4:2 --p -->
<center>
<<if _npc.gender == 1>>
<<image 'places/outside/scavenging_alive_male.jpg' 'sfw'>>
<<else>>
<<image 'places/outside/scavenging_walk_girl.webp' 'sfw'>>
<</if>>
</center>
<br /><br />
After a few hours you found fresh tracks and a thin line of smoke rising from the ruins of an old building. Broken furniture and scrap had been dragged across the doorway into a barricade.
<br /><br />
Behind it sat <strong><<=setup.displayName(_npc)>></strong>, tired and covered in dust, but unhurt. A bag full of salvage lay at <<=setup.pronounceWhos(_npc)>> feet, and <<=setup.pronounceWhat(_npc)>> was keeping a close eye on the street.
<br /><br />
<<sayNpc _npc>>
Raiders came through last night. I couldn't outrun them with all this, so I dug in and waited them out. They lost interest after I put one of them down.
<</sayNpc>>
<br />
<<=ucfirst(setup.pronounceWhat(_npc))>> grinned when <<=setup.pronounceWhat(_npc)>> saw you, clearly proud of having held <<=setup.pronounceWhos(_npc)>> ground. Together you carried the salvage back home.
<br /><br />
<<set _holdItem = either(setup.items.scavenging)>>
<<set _holdCount = random(2, 4)>>
<<run setup.cabinInventory.pickup(_holdItem, _holdCount)>>
<<set _npc.relationship = Math.min((_npc.relationship ?? 0) + 5, 100)>>
<<set _npc.happy = Math.min((_npc.happy ?? 0) + 10, 100)>>
<<set _holdEndurance = setup.fight.gainEndurance(_npc, setup.fight.JOB_ENDURANCE_CAP)>>
<strong>You got <<=_holdCount>> <<=Item.get(_holdItem).name>></strong>
<br />
<strong><<=_npc.name>> relationship increased by 5</strong>
<<if _holdEndurance>>
<br />
<strong><<=_npc.name>> endurance increased by 1</strong>
<</if>>
<br /><br />
<<set _linkHome = 'Take ' + setup.pronounceWho(_npc) + ' home'>>
<<link _linkHome>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/outside/scavenging_walk.webp']]
</center>
<br /><br />
You kept walking but didn't saw a living soul anywhere. After few more hours your hope to find <<=setup.displayName($guests[$scavengingDidntReturn])>> was gone.
<br /><br />
<<link 'Return home'>>
/* a capable scavenger usually finds their own way home */
<<if setup.percentageChance(setup.fight.scavengerCapability($guests[$scavengingDidntReturn]) >= 60 ? 15 : 50)>>
<<guestRemove $scavengingDidntReturn>>
<</if>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<<set _npc = $guests[$scavengingDidntReturn]>>
As you trekked deeper into the ruins, the sound of a struggle reached your ears—muffled screams and frantic scuffling. Your pulse quickened, and you broke into a run, your breath coming in sharp, desperate gasps.
The noise grew louder, more distinct, guiding you through the maze of debris and crumbling walls.
<br /><br />
<center>
<<image 'places/cabin/scavenging_fight.jpg' 'sfw'>>
</center>
<br /><br />
You skidded to a halt as you rounded a corner, your heart leaping into your throat. There, in the middle of a narrow alleyway, <<=setup.displayName(_npc)>> was grappling with two men. Her face was twisted in a fierce snarl, and she fought like a cornered animal, but she was outmatched.
One of the men had her pinned, while the other was trying to wrestle her makeshift knife from her grasp. They managed to unarm her and started to tie her down against the tree.
<br /><br />
<<link 'Help her'>>
<<set $tmpEvent = {
help: true
}>>
<<generateEnemies 2>>
<<fight $enemies 'Scavenging - look for girl fight won' 'Scavenging - look for girl fight lost'>>
<</link>>
<<link 'Continue to watch'>>
<<set $tmpEvent = {
watch: true
}>>
<<goto 'Scavenging - look for girl fight'>>
<</link>><<guestRemove $scavengingDidntReturn>>
<<goto 'Outside'>><h1 class="ptitle">FOREST</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/outside/scavenging_untie.webp']]
</center>
<br /><br />
As both guys were laying on the ground, you went to <<=$guests[$scavengingDidntReturn].name>> and untied her hands.
<br /><br />
She felt ashamed and couldn't even look at you.
<br /><br />
<<linkreplace "Tell her that you're disappointed">>
She wiped her eyes and gets on her knees while looking at you and telling that she's really sorry and that won't happen again. <br />
She unzips your pants and puts your dick in her mouth and starts to suck it.
<center>
[img[setup.ImagePath+'places/outside/scavenging_bj.webp']]
</center>
<br /><br />
<<set $guests[$scavengingDidntReturn].sub += 5>>
<strong><<=$guests[$scavengingDidntReturn].name>> submission increased by 5</strong>
<br /><br />
<<linkreplace 'Tell her turn around'>>
She instantly gets up, pulls down her pants and turns around.
<br /><br />
<center>
[img[setup.ImagePath+'places/outside/scavenging_ass.webp']]
</center>
<br /><br />
<</linkreplace>>
<</linkreplace>>
<<link 'Take her home'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<<if $tmpEvent?.watch>>
As you watched, one of the men, his face a mask of cruelty, heard Mia's desperate screams and threw her against the closest tree with a sickening thud. She crumpled to the ground, momentarily stunned.
The man then knelt down and began to rip her clothes off, his intentions clear and terrifying.
<br /><br />
<</if>>
<center>
<<image 'places/outside/scavenging_fuck.webp'>>
</center>
<br /><br />
<<if $tmpEvent?.watch>>
As soon as her panties where ripped of she hold her down as he shoved his dick inside her. She let out another scream for help as he started to fuck her.
<<else>>
You took the route through the forest and after some time you heard a scream in the distance. Someone screamed for help. You rushed toward the sound and noticed your girl, tied up to the tree as two guys fucked her and she couldn't do anything.
<</if>>
<br /><br />
<<linkreplace 'Keep watching'>>
<center>
<<image 'places/outside/scavenging_cum.webp'>>
</center>
<br /><br />
She begged them to stop while she still tried to scream for help. After few rough minutes they untied her and punched her few times as one of them hold her by hair and second one started to cum all over her face
<br /><br />
<</linkreplace>>
<<link 'Fight them'>>
<<unset $tmpEvent>>
<<generateEnemies 2>>
<<fight $enemies 'Scavenging - look for girl fight won' 'Scavenging - look for girl fight lost'>>
<</link>>
<<link 'Leave her'>>
<<unset $tmpEvent>>
<<guestRemove $scavengingDidntReturn>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/outside/scavenging_walk.webp']]
</center>
<<addhours 3>>
<br /><br />
<<set _npc = $guests[$scavengingDidntReturn]>>
You took your stuff and decided to walk in the direction you thought <<=setup.pronounceWho(_npc)>> would go. You walk for a few hours till you reached crossroads and you had to decide where to go next.
<br /><br />
/* Outcomes are weighted by how well the scavenger can look after themselves (setup.fight.scavengerCapability):
a strong, armed and armored scavenger is rarely found dead, and at 60+ can be found holding out on their own. */
<<set _capability = setup.fight.scavengerCapability(_npc)>>
<<set _crossroadOptions = ['Scavenging - look for - alive', 'Scavenging - look for - not found']>>
<<if _capability >= 30>>
<<run _crossroadOptions.push('Scavenging - look for - alive')>>
<</if>>
<<if _capability < 70 && (!(_npc.skills ?? []).includes('scavenger') || setup.percentageChance(50))>>
<<run _crossroadOptions.push('Scavenging - look for - dead')>>
<</if>>
<<if _capability >= 60>>
<<run _crossroadOptions.push('Scavenging - look for - holding out', 'Scavenging - look for - holding out')>>
<</if>>
<<if [0, 2].includes(_npc.gender)>>
<<run _crossroadOptions.push('Scavenging - look for girl fight')>>
<<if setup.npcInventoryHas(_npc, 'knife') && _npc.strength >= 50 && setup.npcInventoryHas(_npc, 'body_armor')>>
<<run _crossroadOptions.push('Scavenging - look for girl fight #2')>>
<</if>>
<</if>>
<<if _npc.assignedTo === 'forest'>>
<<run _crossroadOptions.push('Forest - look for - wolves')>>
<</if>>
<<set _crossroadOption = either(_crossroadOptions)>>
<<addhours 3>>
<<link 'Go left'>>
<<goto `_crossroadOption`>>
<</link>>
<<link 'Go straight'>>
<<goto `_crossroadOption`>>
<</link>>
<<link 'Go right'>>
<<goto `_crossroadOption`>>
<</link>><h1 class="ptitle">
SHOP
</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
As you lead the shopkeeper into the small pantry room, her nervousness is palpable. She sits down on the chair you gesture to, fidgeting with her hands as she waits for you to speak.
The tension in the air is thick, but there's also a sense of relief that the conversation is now private.
<br /><br />
<<sayNpc _npc>>
What would it take for you to forget about it? I really like it here.
<</sayNpc>>
<br />
<<video 'shop/steal1'>>
<br /><br />
She suddenly pauses and nervously takes off her jacket. Her movements are hesitant, almost as if she's unsure whether this action will alleviate her anxiety or draw more attention to herself.
<br /><br />
<<linkreplace 'Take dick out'>>
<<video 'shop/steal3'>>
<br /><br />
She deeply exhales as she understands what you want. She hesitantly drops on her knees in front of you and grabs your dick. She strokes it nervously before she tells that maybe there is some other way.
<br /><br />
<<sayNpc _npc>>
Not this... Please, something else... I can work double shift..
<</sayNpc>>
<br />
<div id="option_suck">
<<linkreplace 'Force her to suck you'>>
<<set _sucked = true>>
<<video 'shop/steal2'>>
<br /><br />
You wrap her hair around your hand and push her head onto your dick. She starts slowly and is by the look is disgusted. She doesn't put any effort in it.
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Turn her around'>>
<<if !_sucked>>
<<run $('#option_suck').hide()>>
<</if>>
<<video 'shop/steal4'>>
<br /><br />
As you turn her around you grab her skirt and pull them down revealing her fit ass. Her initial surprise gives away as she remains cooperative throughout the process.
You give her ass a good slap before pulling her panties down.
<br /><br />
<<video 'shop/steal6'>>
<br /><br />
As you slide in your dick into her pussy she initially lets out small moan but as you continue to fuck her she keeps quiet. Feels like she just want this to be over.
You decide not to spare her.
<br /><br />
<<video 'shop/steal7'>>
<br /><br />
You wrap your hands around her neck and put pressure on it as you pick up your phase and with each thrust put it more strength. She bites her lower lip and closes her eyes as she tries not to show any emotions.
<br /><br />
<<linkreplace 'Cum'>>
<<set _npc.submission += 10>>
<<set _npc.happy -= 7>>
<<video 'shop/steal5'>>
<br /><br />
You pull down her from the table and throw her on the floor, she instantly gets up on her knees as you start to cum all over her chest and breasts. She just looks at you with a hope that it's over.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<linkreplace 'Tell her to leave'>>
<<sayNpc _npc>>
Thank you! I promise this wont happen again.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>><h1 class="ptitle">
SHOP
</h1>
<br /><br />
<<set _shopKeeperId = setup.getPersonsForLocation($guests, 'shop')>>
<<set _shopKeeper = $guests[_shopKeeperId[0]]>>
As you walk into the settlement store, you notice <<=setup.displayName(_shopKeeper)>>, a woman you've known for some time, acting suspiciously.
She quickly tries to hide something under her dress as she notices you entering.
<br /><br />
<center>
[img[setup.ImagePath+'places/shop/shopkeeper_steal.jpg']]
</center>
<br /><br />
<div id="option_ignore">
<<linkreplace 'Ignore her'>>
<<run $('#option_confront').hide()>>
You choose to keep quiet for now. <<=setup.displayName(_shopKeeper)>> looks at you with worried eyes but do not push and acts like nothing has happened.
<br /><br />
<<if setup.cabinInventory.has('food')>>
<<run setup.cabinInventory.drop('food')>>
<</if>>
<</linkreplace>>
</div>
<div id="option_confront">
<<linkreplace 'Confront Her'>>
<<run $('#option_ignore').hide()>>
<<set _shopKeeper.relationship -= 10>>
<<=setup.displayName(_shopKeeper)>> eyes widen slightly, and she stammers for a moment before composing herself.
<br /><br />
<<sayNpc _shopKeeper>>
I never meant to cause trouble. Please forgive me.
<</sayNpc>>
<br />
Despite her confession, there's a sense of remorse and vulnerability in her demeanor. It's clear that she's torn between the need to survive and the guilt of her actions.
<br /><br />
<div id="option_forgive">
<<linkreplace 'Forgive her'>>
<<run $('#option_private').hide()>>
<<if setup.cabinInventory.has('food')>>
<<run setup.cabinInventory.drop('food')>>
<</if>>
<<set _shopKeeper.relationship += 10>>
Your forgiveness carries a weight of understanding and empathy, recognizing the hardships that led the shopkeeper to her desperate actions.
As you hear her confession and see the remorse in her eyes, you soften your stance, realizing that survival in this post-apocalyptic world often means making difficult choices.
<br /><br />
<</linkreplace>>
</div>
<div id="option_private">
<<if recall($suppCode)>>
<<link 'Lead her to private room'>>
<<set $tmpEvent = {
id: _shopKeeperId[0]
}>>
<<goto 'Shop - stealing shopkeeper fuck'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Lead her to private room
<<notPatreonIcon>>
</div>
<</if>>
</div>
<</linkreplace>>
</div>
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>><<set _npc = $guests[$tmpEvent.id]>>
<<set $guestId = $tmpEvent.id>>
<<run delete $slaveId>>
<<run delete $charId>>
<<set $tmpGirl = _npc>>
<h1 class="ptitle">SHOP</h1>
<br />
<center>
<<image 'places/shop/shop_slow_day.jpg' sfw>>
</center>
<br />
<<=setup.displayName(_npc)>> was leaning on the counter with her chin in one hand when you came in, staring at a crate that clearly needed no attention. She looked up when she heard you.
<br /><br />
<<sayNpc _npc>>
Oh, thank god. Someone to talk to.
<</sayNpc>>
<br />
You asked how business was.
<br /><br />
<<sayNpc _npc>>
Three people, all morning. Two of them were just looking.
<</sayNpc>>
<br />
You came around the counter. She was still leaning against the shelving, arms crossed, watching you. There wasn't much space back there. When you stepped close she didn't back up.
<br /><br />
<<sayNpc _npc>>
You know what would actually help my mood right now?
<</sayNpc>>
<br />
<div id="ssd_ask">
<<linkreplace '"What?"'>>
<<run $('#ssd_leave').hide()>>
She stepped into you and kissed you — not hesitant, not testing, just decided. Her hands moved to your shirt and started working the buttons from the bottom up.
<br /><br />
<div id="ssd_undress">
<<linkreplace 'Let her'>>
<<run $('#ssd_decline').hide()>>
<<addmins 5>>
<center>
<<video 'shop/slow_day1'>>
</center>
<br />
You let her pull your shirt open. Her mouth found your jaw, your neck. She kissed down your chest while her fingers moved to your belt, unhooking it with practiced patience.
<br /><br />
<<sayNpc _npc>>
I've been thinking about this since you walked in last week.
<</sayNpc>>
<br />
She got your trousers open and pushed them down your hips, then looked up at you from below the counter level.
<br /><br />
<<linkreplace 'Let her keep going'>>
<<addmins 8>>
<center>
<<video 'shop/slow_day2'>>
</center>
<br />
She took your cock in her hand and pulled it toward her mouth. Her lips closed around the head and she took you in slow, keeping her eyes up. Then she put both hands flat on your chest and pushed — not hard, just firm — until you were on your back across the storage table.
<br /><br />
<<sayNpc _npc>>
Stay there.
<</sayNpc>>
<br />
She leaned over you and took you back into her mouth, one hand braced on the table beside your hip. Head bobbing in a slow, deliberate rhythm. You were flat on your back staring at the ceiling while she worked, the shop completely silent except for the sounds she was making.
<br /><br />
<<linkreplace 'Grab her hair'>>
<<addmins 8>>
<center>
<<video 'shop/slow_day3'>>
</center>
<br />
You threaded your fingers into her hair — not forcing, just holding. She made a low sound around your cock and kept going. With your free hand you reached down and slid your palm under her skirt, running a finger through her pussy. She was already wet, slick against your fingertips.
She pulled off for a moment, breath short.
<br /><br />
<<sayNpc _npc>>
Don't stop doing that.
<</sayNpc>>
<br />
She went back down on your cock while you worked two fingers into her, curling them slow. Her hips rolled against your hand. She was soaking.
<br /><br />
<<linkreplace 'Pull her up'>>
<<addmins 5>>
<center>
<<video 'shop/slow_day4'>>
</center>
<br />
You tugged her up by the hair. She came off your cock with a gasp and stood between your legs, chest rising fast. She grabbed the hem of her dress and pulled it over her head in one motion. Nothing under it but skin.
She looked at you for exactly one second, then grabbed your cock with one hand, positioned herself, and started sitting down on it.
<br /><br />
<<if _npc.virgin>>
She lowered herself slowly, brow furrowed, breath held. There was a moment of resistance and then she pushed through it — a sharp exhale, her nails digging into your shoulders. She went still on top of you, adjusting.
<br /><br />
<<sayNpc _npc>>
Give me a second.
<</sayNpc>>
<br />
You held her hips and waited. After a moment the tension left her face.
<br /><br />
<<run setup.npc.addHistory(_npc, 'virgin_lost')>>
<<set _npc.virgin = false>>
<em>(<<=setup.displayName(_npc)>> lost her virginity.)</em>
<br /><br />
<<else>>
She sank down on your cock in one long smooth motion, exhaling through her teeth, and immediately rolled her hips.
<br /><br />
<</if>>
<<linkreplace 'Grab her hips and take control'>>
<<addmins 15>>
<center>
<<video 'shop/slow_day5'>>
</center>
<br />
You gripped her hips hard and started driving up into her — fast, no warmup, no mercy. Her whole body rocked with it. She threw her head back.
<br /><br />
<<sayNpc _npc>>
Oh god — yes — don't stop —
<</sayNpc>>
<br />
She planted her hands on your chest for balance and matched your rhythm, slamming herself down as hard as you were pushing up. Her moans came out full volume, completely unguarded — she wasn't even trying to keep quiet. The counter shook. Anyone outside could have heard it.
<br /><br />
<<sayNpc _npc>>
Harder — I don't care who hears —
<</sayNpc>>
<br />
You gave her harder. Her nails raked down your chest and she came apart on top of you, thighs shaking, voice cracking on the peak.
<br /><br />
<<set _npc.horny = 0>>
<<set _npc.orgasms ??= 0>>
<<set _npc.orgasms++>>
<div id="ssd_inside">
<<linkreplace 'Cum inside her'>>
<<run $('#ssd_tits').hide()>>
<<addmins 5>>
<<horny_reset>>
You pulled her back down on your cock and came inside her — deep, buried to the base, her thighs locked tight around your hips. She made a sound like she'd been punched, then went limp against your chest.
<br /><br />
<center>
<<image 'game/misc/creampie_cowgirl.webp'>>
</center>
<br />
Neither of you moved for a moment.
<br /><br />
<<sayNpc _npc>>
You could have warned me.
<</sayNpc>>
<br />
You asked if she was complaining.
<br /><br />
<<sayNpc _npc>>
No. Definitely not complaining.
<</sayNpc>>
<br />
<center>
<<video 'shop/slow_day7'>>
</center>
<br />
She climbed off slowly and picked her dress up off the floor. Stepped into it, pulled it up, smoothed the front down with both hands. Fixed her hair by touch without a mirror.
<br /><br />
<<sayNpc _npc>>
You should probably leave before someone actually comes in.
<</sayNpc>>
<br />
She walked back around the counter and set her clipboard on the surface like nothing had happened.
<br /><br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.pussy = (_npc.sexStats.pussy ?? 0) + 1>>
<<set _npc.sexStats.bj = (_npc.sexStats.bj ?? 0) + 1>>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy = 0>>
<<set _npc.pregnancy_father = 'mc'>>
<</if>>
<<setNpcStats 'guest' $guestId 'relationship' 12>>
<<setNpcStats 'guest' $guestId 'happy' 10>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +12, Happy +10)</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<div id="ssd_tits">
<<linkreplace 'Cum on her tits'>>
<<run $('#ssd_inside').hide()>>
<<addmins 5>>
<<horny_reset>>
<center>
<<video 'shop/slow_day6'>>
</center>
<br />
You pulled her off you at the last second, grabbed her by the shoulder and pushed her down, and came across her chest — long streaks across her tits while she watched with her mouth open.
<br /><br />
She looked down at herself, then up at you.
<br /><br />
<<sayNpc _npc>>
That's going to be a problem. I don't have anything to clean up with.
<</sayNpc>>
<br />
You found a cloth on a shelf behind her and handed it over. She took it and wiped herself down slowly, watching you get dressed.
<br /><br />
<<sayNpc _npc>>
Same time next week?
<</sayNpc>>
<br />
You said you'd think about it.
<br /><br />
<<sayNpc _npc>>
Liar. You'll be back tomorrow.
<</sayNpc>>
<br />
<center>
<<video 'shop/slow_day7'>>
</center>
<br />
She pulled her dress back on and smoothed it down. Walked back around to her side of the counter without a word, picked up her clipboard, and was a shopkeeper again.
<br /><br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.pussy = (_npc.sexStats.pussy ?? 0) + 1>>
<<set _npc.sexStats.bj = (_npc.sexStats.bj ?? 0) + 1>>
<<setNpcStats 'guest' $guestId 'relationship' 8>>
<<setNpcStats 'guest' $guestId 'happy' 10>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +8, Happy +10)</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="ssd_decline">
<<linkreplace 'Stop her'>>
<<run $('#ssd_undress').hide()>>
<<addmins 5>>
You caught her hands. She looked up, searching your face, then stepped back without a word. The moment passed.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="ssd_leave">
<<linkreplace 'Get back to it'>>
You checked what you needed and left her to it.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div><<set _npc = $guests[$tmpEvent.id]>>
<<set $guestId = $tmpEvent.id>>
<<run delete $slaveId>>
<<run delete $charId>>
<<set $tmpGirl = _npc>>
<h1 class="ptitle">SHOP</h1>
<br />
You heard it from outside the storeroom door — a voice, low and strained.
<br /><br />
<<sayNpc _npc>>
Hello? Is anyone there? I'm stuck.
<</sayNpc>>
<br />
You pushed the door open.
<br /><br />
<center>
<<video 'shop/stuck1'>>
</center>
<br />
She was on her knees in the narrow gap between the shelving units, arm wedged behind a stack of metal crates, shoulder twisted at an angle that clearly wasn't going anywhere on its own. Light blue shirt pulled up from the struggle. White skirt. She looked back at you over her shoulder, flushed.
<br /><br />
<<sayNpc _npc>>
Oh god — can you help me? My hand is caught. I can't get it out.
<</sayNpc>>
<br />
<div id="ssr_grope">
<<linkreplace 'Take a look'>>
<<run $('#ssr_help').hide()>>
<<addmins 5>>
<center>
<<video 'shop/stuck2'>>
</center>
<br />
You crouched behind her and ran your hands up the backs of her thighs. Her skirt went up with them — you flipped it over her lower back without stopping. Her whole body went rigid.
<br /><br />
<<sayNpc _npc>>
W — what are you doing? That's not —
<</sayNpc>>
<br />
You grabbed her ass with both hands, squeezing hard. She couldn't pull away — arm still pinned, legs braced for balance.
<br /><br />
<<sayNpc _npc>>
Please. Just get me out.
<</sayNpc>>
<br />
<<if !(_npc.likesGuys ?? true)>>
<<sayNpc _npc>>
Get your hands off me. I don't — I'm not into guys. Back off right now.
<</sayNpc>>
<br />
She twisted as hard as she could, face red.
<br /><br />
You freed her hand from the crates. She scrambled to her feet and shoved past you without a word.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<<else>>
<<set _groped = true>>
<div id="ssr_ppd">
<<linkreplace 'Pull her panties down'>>
<<run $('#ssr_free_g').hide()>>
<<addmins 5>>
<<set _panties = true>>
<center>
<<video 'shop/stuck3'>>
</center>
<br />
You hooked your fingers into her panties and dragged them down to her knees in one slow pull. She made a sharp sound.
<br /><br />
<<sayNpc _npc>>
Don't — stop —
<</sayNpc>>
<br />
Her ass was bare. You ran a thumb through her pussy and felt how wet she already was.
<br /><br />
<<sayNpc _npc>>
I'm not — that doesn't mean anything —
<</sayNpc>>
<br />
<<if _npc.virgin>>
You shifted behind her, positioning yourself. She felt what was coming before it happened.
<br /><br />
<<sayNpc _npc>>
Wait — I... this isn't how I imagined it would happen.
<</sayNpc>>
<br />
She was shaking slightly, cheek pressed to the crate.
<br /><br />
<div id="ssr_vir_stop">
<<linkreplace 'Pull back'>>
<<run $('#ssr_vir_go').hide()>>
<<addmins 3>>
You stepped back. She exhaled a long breath.
Neither of you said anything for a moment.
<br /><br />
You worked the crates apart until her hand came free. She got to her feet slowly without looking at you, tugged her skirt down, and walked out.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<div id="ssr_vir_go">
<<linkreplace 'Push in anyway'>>
<<run $('#ssr_vir_stop').hide()>>
<<addmins 5>>
<center>
<<video 'shop/stuck4'>>
</center>
<br />
You pushed in slowly. She tensed hard — a sharp breath through her teeth, knuckles white against the crate she couldn't move away from. You felt the resistance and pushed through it.
<br /><br />
<<sayNpc _npc>>
Ah — wait — I haven't —
<</sayNpc>>
<br />
You buried yourself to the hilt. She exhaled in a long shudder.
<br /><br />
<<run setup.npc.addHistory(_npc, 'virgin_lost')>>
<<set _npc.virgin = false>>
<em>(<<=setup.displayName(_npc)>> lost her virginity.)</em>
<br /><br />
<<linkreplace 'Start fucking her'>>
<<addmins 15>>
<center>
<<video 'shop/stuck5'>>
</center>
<br />
You grabbed her hips and started moving — deep, steady strokes, pulling her back onto you with each thrust. She had nowhere to go. Her free hand scrabbled at the floor. The shelving rattled.
<br /><br />
<<sayNpc _npc>>
Oh — oh — wait —
<</sayNpc>>
<br />
She stopped asking you to wait. Her breath broke into short rhythmic sounds that matched your pace.
<br /><br />
<<sayNpc _npc>>
Don't — don't stop —
<</sayNpc>>
<br />
<div id="ssr_anal_v">
<<linkreplace 'Take her ass'>>
<<run $('#ssr_pussy_cum_v').hide()>>
<<run $('#ssr_free_f_v').hide()>>
<<addmins 5>>
<center>
<<video 'shop/stuck6'>>
</center>
<br />
You pulled out of her pussy and pressed against her ass. She tensed immediately.
<br /><br />
<<sayNpc _npc>>
Not there — please — not —
<</sayNpc>>
<br />
You pushed in slowly. She made a strangled sound and gripped the crate edge hard.
<br /><br />
<<linkreplace 'Fuck her ass'>>
<<addmins 15>>
<center>
<<video 'shop/stuck7'>>
</center>
<br />
You started moving — slower but no less deep. She'd stopped saying anything coherent. Her free hand had gone flat to the floor, bracing.
<br /><br />
<div id="ssr_cum_back_av">
<<linkreplace 'Cum on her back'>>
<<run $('#ssr_cum_ass_v').hide()>>
<<horny_reset>>
<<addmins 5>>
You pulled out and came across her lower back, streaks landing across bare skin and the bunched hem of her shirt.
<br /><br />
<center>
<<image 'game/misc/cum_on_back.webp'>>
</center>
<br />
<<sayNpc _npc>>
Are you done?
<</sayNpc>>
<br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.anal = (_npc.sexStats.anal ?? 0) + 1>>
<<setNpcStats 'guest' $guestId 'relationship' 8>>
<<setNpcStats 'guest' $guestId 'happy' 5>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +8, Happy +5)</strong>
<br /><br />
You worked the crates apart until her hand came free. She pulled her arm in, sat there a moment, then tugged her skirt down without a word.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<div id="ssr_cum_ass_v">
<<linkreplace 'Cum in her ass'>>
<<run $('#ssr_cum_back_av').hide()>>
<<horny_reset>>
<<addmins 5>>
You drove in deep and came inside her ass, holding her hips flush against you. She went limp.
<br /><br />
<center>
<<image 'game/misc/creampie_anal_doggy.webp'>>
</center>
<br />
<<sayNpc _npc>>
Please get me out now.
<</sayNpc>>
<br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.anal = (_npc.sexStats.anal ?? 0) + 1>>
<<setNpcStats 'guest' $guestId 'relationship' 10>>
<<setNpcStats 'guest' $guestId 'happy' 5>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +10, Happy +5)</strong>
<br /><br />
You freed her hand. She fixed her skirt, stood, and walked out of the storeroom.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="ssr_pussy_cum_v">
<<linkreplace 'Finish'>>
<<run $('#ssr_anal_v').hide()>>
<<run $('#ssr_free_f_v').hide()>>
<div id="ssr_cum_back_v">
<<linkreplace 'Cum on her back'>>
<<run $('#ssr_cum_pussy_v').hide()>>
<<horny_reset>>
<<addmins 5>>
You pulled out and came across her lower back — long streaks across bare skin and the bunched hem of her shirt.
<br /><br />
<center>
<<image 'game/misc/cum_on_back.webp'>>
</center>
<br />
<<sayNpc _npc>>
Are you done?
<</sayNpc>>
<br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.pussy = (_npc.sexStats.pussy ?? 0) + 1>>
<<setNpcStats 'guest' $guestId 'relationship' 8>>
<<setNpcStats 'guest' $guestId 'happy' 5>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +8, Happy +5)</strong>
<br /><br />
You freed her hand from the crates. She sat back, tugged her skirt down, and didn't look at you.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<div id="ssr_cum_pussy_v">
<<linkreplace 'Cum inside her'>>
<<run $('#ssr_cum_back_v').hide()>>
<<horny_reset>>
<<addmins 5>>
You thrust deep and came inside her pussy, gripping her hips hard as you finished. She made a quiet sound and pressed her forehead to the floor.
<br /><br />
<center>
<<image 'game/misc/creampie_prone.webp'>>
</center>
<br />
<<sayNpc _npc>>
You — you came inside me.
<</sayNpc>>
<br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.pussy = (_npc.sexStats.pussy ?? 0) + 1>>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy = 0>>
<<set _npc.pregnancy_father = 'mc'>>
<</if>>
<<setNpcStats 'guest' $guestId 'relationship' 10>>
<<setNpcStats 'guest' $guestId 'happy' 5>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +10, Happy +5)</strong>
<br /><br />
You worked the crates apart and freed her hand. She stayed kneeling for a moment, then slowly stood and straightened her skirt without a word.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="ssr_free_f_v">
<<linkreplace 'Help her get free'>>
<<run $('#ssr_anal_v').hide()>>
<<run $('#ssr_pussy_cum_v').hide()>>
<<addmins 5>>
You pulled out. She drew a sharp breath.
<br /><br />
<<sayNpc _npc>>
Are you done?
<</sayNpc>>
<br />
You worked the crates apart and freed her hand. She stood, straightened her skirt, and walked out without a word.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
</div>
<<else>>
<div id="ssr_slide">
<<linkreplace 'Slide dick into her pussy'>>
<<run $('#ssr_free_p').hide()>>
<<addmins 5>>
<center>
<<video 'shop/stuck4'>>
</center>
<br />
You gripped her hip with one hand and pushed your cock into her pussy in a single slow thrust. She pitched forward with a gasp, cheek nearly touching the crate.
<br /><br />
<<sayNpc _npc>>
Oh god —
<</sayNpc>>
<br />
<<linkreplace 'Start fucking her'>>
<<addmins 15>>
<center>
<<video 'shop/stuck5'>>
</center>
<br />
You grabbed her hips and started moving — deep, steady strokes, pulling her back onto you with each thrust. She had nowhere to go. Her free hand scrabbled at the floor. The shelving rattled.
<br /><br />
<<sayNpc _npc>>
Oh — oh — wait —
<</sayNpc>>
<br />
She stopped asking you to wait. Her breath broke into short rhythmic sounds that matched your pace.
<br /><br />
<<sayNpc _npc>>
Don't — don't stop —
<</sayNpc>>
<br />
<div id="ssr_anal">
<<linkreplace 'Take her ass'>>
<<run $('#ssr_pussy_cum').hide()>>
<<run $('#ssr_free_f').hide()>>
<<addmins 5>>
<center>
<<video 'shop/stuck6'>>
</center>
<br />
You pulled out of her pussy and pressed against her ass. She tensed immediately.
<br /><br />
<<sayNpc _npc>>
Not there — please — not —
<</sayNpc>>
<br />
You pushed in slowly. She made a strangled sound and gripped the crate edge hard.
<br /><br />
<<linkreplace 'Fuck her ass'>>
<<addmins 15>>
<center>
<<video 'shop/stuck7'>>
</center>
<br />
You started moving — slower but no less deep. She'd stopped saying anything coherent. Her free hand had gone flat to the floor, bracing.
<br /><br />
<div id="ssr_cum_back_a">
<<linkreplace 'Cum on her back'>>
<<run $('#ssr_cum_ass').hide()>>
<<horny_reset>>
<<addmins 5>>
You pulled out and came across her lower back, streaks landing across bare skin and the bunched hem of her shirt.
<br /><br />
<center>
<<image 'game/misc/cum_on_back.webp'>>
</center>
<br />
<<sayNpc _npc>>
Are you done?
<</sayNpc>>
<br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.anal = (_npc.sexStats.anal ?? 0) + 1>>
<<setNpcStats 'guest' $guestId 'relationship' 8>>
<<setNpcStats 'guest' $guestId 'happy' 5>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +8, Happy +5)</strong>
<br /><br />
You worked the crates apart until her hand came free. She pulled her arm in, sat there a moment, then tugged her skirt down without a word.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<div id="ssr_cum_ass">
<<linkreplace 'Cum in her ass'>>
<<run $('#ssr_cum_back_a').hide()>>
<<horny_reset>>
<<addmins 5>>
You drove in deep and came inside her ass, holding her hips flush against you. She went limp.
<br /><br />
<center>
<<image 'game/misc/creampie_anal_doggy.webp'>>
</center>
<br />
<<sayNpc _npc>>
Please get me out now.
<</sayNpc>>
<br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.anal = (_npc.sexStats.anal ?? 0) + 1>>
<<setNpcStats 'guest' $guestId 'relationship' 10>>
<<setNpcStats 'guest' $guestId 'happy' 5>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +10, Happy +5)</strong>
<br /><br />
You freed her hand. She fixed her skirt, stood, and walked out of the storeroom.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="ssr_pussy_cum">
<<linkreplace 'Finish'>>
<<run $('#ssr_anal').hide()>>
<<run $('#ssr_free_f').hide()>>
<div id="ssr_cum_back">
<<linkreplace 'Cum on her back'>>
<<run $('#ssr_cum_pussy').hide()>>
<<horny_reset>>
<<addmins 5>>
You pulled out and came across her lower back — long streaks across bare skin and the bunched hem of her shirt.
<br /><br />
<center>
<<image 'game/misc/cum_on_back.webp'>>
</center>
<br />
<<sayNpc _npc>>
Are you done?
<</sayNpc>>
<br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.pussy = (_npc.sexStats.pussy ?? 0) + 1>>
<<setNpcStats 'guest' $guestId 'relationship' 8>>
<<setNpcStats 'guest' $guestId 'happy' 5>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +8, Happy +5)</strong>
<br /><br />
You freed her hand from the crates. She sat back, tugged her skirt down, and didn't look at you.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<div id="ssr_cum_pussy">
<<linkreplace 'Cum inside her'>>
<<run $('#ssr_cum_back').hide()>>
<<horny_reset>>
<<addmins 5>>
You thrust deep and came inside her pussy, gripping her hips hard as you finished. She made a quiet sound and pressed her forehead to the floor.
<br /><br />
<center>
<<image 'game/misc/creampie_prone.webp'>>
</center>
<br />
<<sayNpc _npc>>
You — you came inside me.
<</sayNpc>>
<br />
<<set _npc.sexStats ??= {}>>
<<set _npc.sexStats.pussy = (_npc.sexStats.pussy ?? 0) + 1>>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy = 0>>
<<set _npc.pregnancy_father = 'mc'>>
<</if>>
<<setNpcStats 'guest' $guestId 'relationship' 10>>
<<setNpcStats 'guest' $guestId 'happy' 5>>
<strong>(<<=setup.displayName(_npc)>>: Relationship +10, Happy +5)</strong>
<br /><br />
You worked the crates apart and freed her hand. She stayed kneeling for a moment, then slowly stood and straightened her skirt without a word.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="ssr_free_f">
<<linkreplace 'Help her get free'>>
<<run $('#ssr_anal').hide()>>
<<run $('#ssr_pussy_cum').hide()>>
<<addmins 5>>
You pulled out. She drew a sharp breath.
<br /><br />
<<sayNpc _npc>>
Are you done?
<</sayNpc>>
<br />
You worked the crates apart and freed her hand. She stood, straightened her skirt, and walked out without a word.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="ssr_free_p">
<<linkreplace 'Help her get free'>>
<<run $('#ssr_slide').hide()>>
<<addmins 5>>
You stepped back. She exhaled hard.
<br /><br />
<<sayNpc _npc>>
Pull my panties up.
<</sayNpc>>
<br />
You tugged them back up. Then you worked the crates apart until her hand came free. She stood, fixed her skirt, and left without looking at you.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<</linkreplace>>
</div>
<div id="ssr_free_g">
<<linkreplace 'Help her get free'>>
<<run $('#ssr_ppd').hide()>>
<<addmins 5>>
You pulled your hands back. She exhaled sharply.
<br /><br />
<<sayNpc _npc>>
Don't ever touch me like that again.
<</sayNpc>>
<br />
You worked the crates apart until her hand slipped free. She got to her feet without looking at you and walked out.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<</linkreplace>>
</div>
<div id="ssr_help">
<<linkreplace 'Help her get free'>>
<<run $('#ssr_grope').hide()>>
<<addmins 5>>
You crouched beside her and worked the crates apart until her hand slipped free. She sat back on her heels, rubbing her wrist.
<br /><br />
<<sayNpc _npc>>
Thank you. I thought I was going to be there all day.
<</sayNpc>>
<br />
She straightened her shirt and stood, not quite meeting your eyes.
<br /><br />
<<link 'Leave'>>
<<goto 'Shop'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">
SHOP
</h1>
<br /><br />
<<if typeof $storage === 'undefined'>>
<<newinv $storage>>
<</if>>
<<if typeof $player.manageGoods === 'undefined'>>
<<set $player.manageGoods = {}>>
<</if>>
<<for _shopInventoryItemId, _shopInventoryItem range setup.inventoryManageable>>
<<if typeof $player.manageGoods[_shopInventoryItemId] === 'undefined'>>
<<set $player.manageGoods[_shopInventoryItemId] = {
min: 0,
max: 0,
priority: false
}>>
<</if>>
<</for>>
<<set _shopKeeperIds = setup.getPersonsForLocation($guests, 'shop')>>
<<if _shopKeeperIds.length>>
<<set _shopKeeper = $guests[_shopKeeperIds[0]]>>
<table id="manage-goods">
<tr>
<td></td>
<td></td>
<td>Storage</td>
<td>Min</td>
<td>Max</td>
<td>High priority</td>
</tr>
<<for _shopInventoryItemId, _shopInventoryItem range setup.inventoryManageable>>
<<capture _shopInventoryItemId>>
<tr>
<td class="icon">
[img[setup.ImagePath+'game/inventory/' + _shopInventoryItemId + '.png']]
</td>
<td class="name">
<<=Item.get(_shopInventoryItemId).name>>
</td>
<td class="qty">
<<=$storage.count(_shopInventoryItemId)>>
</td>
<td class="qty-input">
<<numberbox `"$player.manageGoods[_shopInventoryItemId].min"` `setup.shopGetDefaultInput(_shopInventoryItemId, 'min')`>>
</td>
<td>
<<numberbox `"$player.manageGoods[_shopInventoryItemId].max"` `setup.shopGetDefaultInput(_shopInventoryItemId, 'max')`>>
</td>
<td>
<<checkbox `"$player.manageGoods[_shopInventoryItemId].priority"` false true autocheck>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br /><br />
<div id="goods-managament-description">
<div class="icon">
⁈
</div>
The shopkeeper's task will be to try to bargain goods for which you have set a minimum or maximum value. This means that as soon as the goods go beyond the specified numbers, the seller will either try to buy or sell the particular product.
It should be noted that not every item is in demand, which means that some goods may be sold very slowly while others sell faster.
<br />
<div>
* min - minimal amount of item you want to have in your storage.
</div>
<div>
* max - maximum amount of item you want to have in your storage.
</div>
<div>
* high priority - Restock at Any Cost (Shopkeeper will focus and buy even with high price)
</div>
</div>
<<if !($locationEvents.shop ?? false) && !setup.family.isBloodToMC(_shopKeeper)>>
<<if !_shopKeeper.gender && _shopKeeper.sub <= 50 && setup.percentageChance(5)>>
<<set $locationEvents.shop = true>>
<<goto 'Shop - stealing shopkeeper'>>
<<elseif !_shopKeeper.gender && (_shopKeeper.likesGuys ?? true) && _shopKeeper.relationship >= 40 && timeBetween('09:00', '18:00') && setup.percentageChance(10)>>
<<set $tmpEvent = {id: _shopKeeperIds[0]}>>
<<set $locationEvents.shop = true>>
<<goto 'Shop [Event] - slow day'>>
<<elseif !_shopKeeper.gender && _shopKeeper.race !== 'black' && setup.percentageChance(8)>>
<<set $tmpEvent = {id: _shopKeeperIds[0]}>>
<<set $locationEvents.shop = true>>
<<goto 'Shop [Event] - storeroom'>>
<</if>>
<</if>>
<<else>>
You need to assign someone with <strong>shopkeeper</strong> trait to this job.
<</if>>
<br /><br />
<<link 'Storage'>>
<<script>>
Dialog.setup("Storage", "Storage");
Dialog.wiki(Story.get("Storage").processText());
Dialog.open();
<</script>>
<</link>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">SHOWER</h1>
<br />
<<set _npc1 = $guests[$tmpEvent.id1]>>
<<set _npc2 = $guests[$tmpEvent.id2]>>
As you stood under the warm shower, the water cascading down your body, you felt a sense of calm wash over you.
The stress and tension of the day seemed to melt away with each passing moment, and you closed your eyes, letting the water soothe your muscles.
<br /><br />
But suddenly, you heard the sound of the shower door opening, and you felt a presence behind you.
You turned to see <<=setup.displayName(_npc1)>>, her naked body glistening with water droplets, as she stepped into the shower with you.
She smiled mischievously, her eyes sparkling with excitement, and began to tease you, her hands tracing the contours of your body.
<br /><br />
<center>
<<image 'places/shower/threesome_intro.gif'>>
</center>
<br /><br />
<<sayNpc _npc1>>
I think you need some help to wash your body and maybe something more
<</sayNpc>>
<br />
<div id="option_fuck">
<<linkreplace 'Push her against the wall'>>
<<run $('#option_leave').hide()>>
You felt a surge of arousal, and before you knew it, you had pushed her against the wall, your lips descending onto her pussy.
She gasped, her eyes widening in surprise, but she didn't resist, instead, she began to moan, her body responding to your touch.
<br /><br />
<<video 'shower/threesome1'>>
<br /><br />
As you continued to lick her pussy, <<=setup.displayName(_npc1)>>'s moans grew louder and more intense. She was completely lost in the moment, her body responding to your touch with abandon. Her legs began to tremble, and her hips started to buck, as she pressed herself against your mouth.
<br /><br />
<<video 'shower/threesome2'>>
<br /><br />
Just as you were getting into the rhythm, you heard the sound of the shower door opening again, and <<=setup.displayName(_npc2)>> stepped in, her naked body joining the mix.
She smiled, her eyes locking onto yours, and you could see the excitement and anticipation in her gaze.
<br /><br />
<<video 'shower/threesome3'>>
<br /><br />
<<sayNpc _npc2>>
Why didn't I get invite to the party?
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>>, not to be left out, joined in, her mouth wrapping around your cock, as the two women started to take turns sucking you off.
<br /><br />
<<video 'shower/threesome4'>>
<br /><br />
You felt like you were in heaven, the two women working together to drive you wild with pleasure. You groaned, your eyes closing, as they worked their magic on you.
<br /><br />
As <<=setup.displayName(_npc2)>> stopped sucking your dick, she looked up at you with a mischievous glint in her eye.
<<=setup.displayName(_npc2)>> gently directed your cock towards <<=setup.displayName(_npc1)>>'s pussy, which was now exposed and inviting.
<br /><br />
<<video 'shower/threesome5'>>
<br /><br />
<<=setup.displayName(_npc2)>>'s eyes were fixed on your balls, her gaze intense as she watched them move with each thrust.
She seemed to be fascinated by the way they swung back and forth, and she continued to lick them.
<br /><br />
As you pushed <<=setup.displayName(_npc1)>> against the wall, she let out a soft gasp of surprise. But she didn't resist, instead seeming to melt into the touch as you pinned her against the cool tile.
<br /><br />
<<video 'shower/threesome6'>>
<br /><br />
<<=setup.displayName(_npc2)>>, who had been watching with interest, stepped forward and put her hands on <<=setup.displayName(_npc1)>>'s hips, holding her still as you prepared to fuck her.
<<=setup.displayName(_npc1)>>'s eyes locked onto yours, as she let out a lot more loud moans as you fucked her hard.
<br /><br />
<<video 'shower/threesome7'>>
<br /><br />
<<=setup.displayName(_npc2)>>'s hands on <<=setup.displayName(_npc1)>>'s hips seemed to be holding her back, keeping her from moving as you fucked her.
But <<=setup.displayName(_npc1)>> didn't seem to mind, instead seeming to enjoy the feeling of being held still as you thrust into her.
<br /><br />
As you approached the point of no return, <<=setup.displayName(_npc1)>>'s eyes went wide with pleasure.
She let out a loud cry, her body convulsing with orgasm as you felt yourself cumming.
You thrust into her one final time, your body shuddering with pleasure as you came.
<br /><br />
<<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> exchanged a glance, and then they both dropped to their knees in front of you.
<<=setup.displayName(_npc2)>> reached out and took your cock in her hand, her fingers wrapping around it with a firm touch.
<br /><br />
<<video 'shower/threesome8'>>
<br /><br />
As the first drops of your semen emerged, <<=setup.displayName(_npc2)>> expertly guided them onto <<=setup.displayName(_npc1)>>'s face,
her aim true as she covered her friend's skin with your cum.
<<=setup.displayName(_npc1)>> let out a laugh, her eyes sparkling with amusement as she felt the warm liquid hit her face.
<br /><br />
You smiled back at them, feeling a sense of satisfaction and pleasure at the moment.
Then, without saying a word, you turned and left, leaving the two women to clean up and process what had just happened.
<br /><br />
<<link 'Leave'>>
<<horny_reset>>
<<addmins 20>>
<<set
_npc1.horny = 0,
_npc2.horny = 0,
_npc1.relationship += 10,
_npc2.relationship += 10
>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_leave">
<<link 'Leave'>>
<<addmins 5>>
<<set
_npc1.relationship -= 10,
_npc1.happy -= 10,
_npc1.sub -= 10
>>
<<unset $tmpEvent>>
<<goto 'Wood cabin'>>
<</link>>
</div><h1 class="ptitle">SHOWER</h1>
<<set $player.mast to true>>
<center>
<<image 'places/cabin/mast1.webp'>>
</center>
<<horny_reset>>
<br /><br />
You soap your own dick and firmly start to jerk off.
<br /><br />
<<set _guests = setup.getAvailablePersons18yo($guests)>>
<<if (_guests[0] ?? []).length && setup.percentageChance(30)>>
<<set _guestId = _guests[0][Math.floor(Math.random()*_guests[0].length)];>>
<<set _npc = $guests[_guestId]>>
<<if _npc.likesGuys && _npc.relationship >= 30 && _npc.horny >= 50>>
<<set _isFeral = (_npc.traits ?? []).includes('feral')>>
You don't notice, but you hear the sound of a door closing. You turn around and see <<=setup.displayName(_npc)>>. She stands at the door with smile on her face. After brief moment she bends and takes off her clothes.
<br /><br />
<center>
<<image 'places/shower/join1.webp'>>
</center>
<br />
<<if _isFeral>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*presses close, her nose nuzzling your shoulder, and glances into your eyes, no words, but the intent is clear*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
How about I join you?
<</sayNpc>>
<</if>>
<br />
<div id="option_yes">
<<linkreplace 'Sure'>>
<<run $('#option_no').hide()>>
<center>
<<image 'places/shower/join2.webp'>>
</center>
<br />
She steps into the shower with you and, standing behind you, starts washing your back. After a moment, she reaches her arm around you and grabs your hard dick and starts to jerk you off.
<br /><br />
<<if _isFeral>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*lets out a soft purr against the back of your neck, her hand moving over your cock with an instinctive rhythm*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Like this? Heh.
<</sayNpc>>
<</if>>
<br />
<center>
<<image 'places/shower/join3.webp'>>
</center>
<br />
<<=setup.displayName(_npc)>> turns you around and puts your hard dick between her ass cheeks. She teases you by rubbing her ass against it as she presses her hands against the wall.
<br /><br />
<<if _isFeral>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*presses back against you with a low sound in her throat, her head dropping forward as she offers herself in a mating posture...*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
You like this? I bet this will be even better.
<</sayNpc>>
<</if>>
<br />
<center>
<<image 'places/shower/join4.webp'>>
</center>
<br />
Without saying anything you grab her by her hips and hold her still as you shove your dick inside her. She lets out loud moan.
<br /><br />
<<if _isFeral>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*lets out a breathless, panting whine, her fingers curling like claws against the tiles as her body begs you to keep going*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
Oh shit... Yes.. Keep going...
<</sayNpc>>
<</if>>
<br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<set $guests[_guestId].horny = 0>>
<<setNpcStats 'guest' _guestId 'happy' 5>>
<<if setup.pregnancyChance($guests[_guestId])>>
<<set $guests[_guestId].pregnancy_father = 'mc'>>
<<set $guests[_guestId].pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<center>
<<image 'game/misc/creampie.webp'>>
</center>
<br />
You press on her back as you cum right into her wet pussy. Some cum leaks out and water washes it away instantly.
<br /><br />
<</linkreplace>>
<</linkreplace>>
</div>
<div id="option_no">
<<linkreplace 'Maybe some other time'>>
<<run $('#option_yes').hide()>>
<<set $guests[_guestId].relationship -= 10>>
<<set $guests[_guestId].happy -= 5>>
<<if _isFeral>>
<<set _girlVisual = _npc>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_npc.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName(_npc)>></strong></div>
<div class="npc-say-text"><em>*tilts her head, confused, then slinks back with a quiet whine*</em></div>
</div>
</div>
<<else>>
<<sayNpc _npc>>
<<=either('Something wrong?', 'Eh, and I hoped for something.')>>
<</sayNpc>>
<</if>>
<br />
You see disappointment on her face as she picks up her clothes from the ground, gets dressed, and leaves.
<br /><br />
<</linkreplace>>
</div>
<</if>>
<</if>>
<<link 'Back'>>
<<goto 'Shower-room'>>
<</link>><h1 class="ptitle">SHOWER</h1>
<<set $player.showered to true>>
<<addmins 30>>
<<if $game.hotShower is true || $isBathhouse>>
<center>
<<image 'places/cabin/hot_shower.webp'>>
</center>
<br /><br />
<strong>Your energy increased by 20</strong>
<<energy 20>>
<<else>>
<center>
<<image 'places/cabin/cold_shower.webp'>>
</center>
<br /><br />
You take a freezing cold shower!
<br /><br />
<strong>Your energy increased by 10</strong>
<<energy 10>>
<</if>>
<br /><br />
<<if $isBathhouse>>
<<for _bathGuestI, _bathGuest range $guests>>
<<capture _bathGuestI, _bathGuest>>
<<if _bathGuest.location !== 'bathhouse'>>
<<continue>>
<</if>>
<<if setup.sexChance(_bathGuest) && !_bathGuest.gender || true>>
<<if (_bathGuest.traits ?? []).includes('feral')>>
<<sayNpc _bathGuest>>
<em>*pauses at the entrance, ears perking up at the sound of running water, then nudges the door open and peers in at you*</em>
<</sayNpc>>
<<else>>
<<sayNpc _bathGuest>>
Oh, it's taken already. Mind if I join?
<</sayNpc>>
<</if>>
<br /><br />
<<link 'Agree'>>
<<set $tmpGirl = _bathGuest>>
<<set $guestId = _bathGuestI>>
<<run delete $slaveId>>
<<run delete $charId>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $tmpGirl.location = 'shower'>>
<<set $tmpGirlBack = 'Bathhouse'>>
<<fuck $tmpGirl>>
<</link>>
<<break>>
<</if>>
<</capture>>
<</for>>
<</if>>
<<if (!$game.locationEvents?.shower)>>
<<set _hornyBlondes = setup.filterNPCs($guests, { hair: 'blonde', horny_gte: 60, 'virgin': false})>>
<<if setup.percentageChance(20) && (_hornyBlondes[0] ?? []).length >= 2 && recall($suppCode)>>
<<set _hornyBlondes = _hornyBlondes[0].shuffle()>>
<<set $tmpEvent = {
id1: _hornyBlondes[0],
id2: _hornyBlondes[1]
}>>
<<goto 'Shower - threesome'>>
<</if>>
<</if>>
<<link 'Back'>>
<<if $isBathhouse>>
<<goto 'Bathhouse'>>
<<else>>
<<goto 'Shower-room'>>
<</if>>
<<unset $isBathhouse>>
<</link>><h1 class="ptitle">SHOWER</h1>
<br /><br />
<<if $player.showered is false && hasTime(0, 30)>>
<<link 'Take a shower'>>
<<goto 'Shower-action'>>
<</link>>
<</if>>
<<if $player.mast is false && hasTime(0, 30)>>
<<link 'Masturbate'>>
<<addmins 30>>
<<goto 'Shower-action-mast'>>
<</link>>
<</if>>
<<if !($locationEvents.shower ?? false)>>
<<set _girls = setup.getAvailablePersons18yo($guests)[0] ?? []>>
<<set _randomGirlId = setup.getRandomElement(_girls)>>
<<if setup.percentageChance(10) && _randomGirlId && $guests[_randomGirlId].likesGuys>>
<<set $locationEvents.shower = true>>
<<set $tmpEvent = {
id: _randomGirlId
}>>
<<goto 'Event [Shower] - Taken'>>
<</if>>
<</if>>
<<link 'Back'>>
<<addmins 5>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle">SHOWER</h1>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'shower'>>
<br /><br />
<center>
<<actionImage $tmpGirl wash>>
</center>
<br /><br />
You bring <strong><<=setup.displayName($tmpGirl)>></strong> upstairs and let the hot water run in the shower.<br />You stand guard as <<=setup.pronounceWhat($tmpGirl)>> starts to wash <<=setup.pronounceWho($tmpGirl)>>self.
<br /><br />
<<addmins 15>>
<<set _wasFirstWash = !($tmpGirl.washDays ?? false)>>
<<run setup.wash($tmpGirl, { beautyMultiplier: 7, washDays: 7, relationshipBonus: 5, happyBonus: 10, markWashed: true })>>
<<if _wasFirstWash>>
<strong><<=$tmpGirl.name>></strong> beauty temporary increased by <<=($tmpGirl.washBeauty * 7)>><br />
<strong><<=$tmpGirl.name>></strong> relationship increased by 5
<br /><br />
<</if>>
<<linkreplace 'Help wash'>>
<center>
<<actionImage $tmpGirl help>>
</center>
<br /><br />
You walk behind <<=setup.pronounceWho($tmpGirl)>> and slowly massage <<=setup.pronounceWhos($tmpGirl)>> body as <<=setup.pronounceWhat($tmpGirl)>> quietly gasps,
<<if setup.percentageChance(setup.sexChance($tmpGirl))>>
<<=setup.pronounceWhat($tmpGirl)>> presses <<=setup.pronounceWhos($tmpGirl)>> body against yours and you think that <<=setup.pronounceWhat($tmpGirl)>>'s really enjoying the moment.
<<else>>
<<=setup.pronounceWhat($tmpGirl)>> looks a bit uncomfortable and says <<=setup.pronounceWhat($tmpGirl)>> is finished washing.
<</if>>
<br /><br />
<<if $player.energy >= 30>>
<<set _linkName = 'Fuck ' + setup.pronounceWho($tmpGirl)>>
<<linkreplace `_linkName`>>
<<fuck $tmpGirl>>
<</linkreplace>>
<</if>>
<</linkreplace>>
<<link 'Take <<=setup.pronounceWho($tmpGirl)>> back to the cell'>>
<<if $oldTmpGirlLocation>>
<<set $tmpGirl.location = $oldTmpGirlLocation>>
<<run delete $oldTmpGirlLocation>>
<</if>>
<<goto 'NPC view'>>
<</link>><<if typeof $storage === 'undefined'>>
<<newinv $storage>>
<</if>>
<<set
_qtyTransferBackpack = {},
_qtyTransferStorage = {}
>>
<<set _backpackItems = $backpack.table>>
<<set _storageItems = $storage.table>>
<div id="storage-transfer">
<div id="storage-transfer-left">
<fieldset>
<legend>Backpack</legend>
<table>
<<for _itemStorageBackpack, _amountStorageTransfer range _backpackItems>>
<<capture _itemStorageBackpack, _qtyTransferBackpack>>
<<if Item.get(_itemStorageBackpack).unique>>
<<continue>>
<</if>>
<<set _icon = _itemStorageBackpack>>
<<if _icon.indexOf("dumb") !== -1>>
<<set _icon = 'dumbbell'>>
<</if>>
<tr>
<td class="icon">
[img[setup.ImagePath+'game/inventory/' + _icon + '.png']]
</td>
<td class="name"><<=Item.get(_itemStorageBackpack).name>></td>
<td class="qty">
<<numberbox `"_qtyTransferBackpack[_itemStorageBackpack]"` _amountStorageTransfer>>
</td>
<td class="transfer">
<<link '>>'>>
<<if parseInt(_qtyTransferBackpack[_itemStorageBackpack]) < 0 || $backpack.count(_itemStorageBackpack) < parseInt(_qtyTransferBackpack[_itemStorageBackpack])>>
<<notify 6s>>
Error. Not enough stock
<</notify>>
<<else>>
<<transfer $backpack $storage _itemStorageBackpack `parseInt(_qtyTransferBackpack[_itemStorageBackpack])`>>
<<script>>
Dialog.setup("Storage", "Storage");
Dialog.wiki(Story.get("Storage").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</if>>
<</link>>
</td>
</tr>
<</capture>>
<</for>>
</table>
</fieldset>
</div>
<div id="storage-transfer-right">
<fieldset>
<legend>Storage</legend>
<table>
<<for _itemStorageBackpack, _amountStorageTransfer range _storageItems>>
<<capture _itemStorageBackpack, _qtyTransferStorage>>
<<if Item.get(_itemStorageBackpack).unique>>
<<continue>>
<</if>>
<<set _icon = _itemStorageBackpack>>
<tr>
<td class="transfer">
<<link '<<'>>
<<if parseInt(_qtyTransferStorage[_itemStorageBackpack]) < 0 || $storage.count(_itemStorageBackpack) < parseInt(_qtyTransferStorage[_itemStorageBackpack])>>
<<notify 6s>>
Error! Not enough stock
<</notify>>
<<else>>
<<transfer $storage $backpack _itemStorageBackpack `parseInt(_qtyTransferStorage[_itemStorageBackpack])`>>
<<script>>
Dialog.setup("Storage", "Storage");
Dialog.wiki(Story.get("Storage").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</if>>
<</link>>
</td>
<td class="qty">
<<numberbox `"_qtyTransferStorage[_itemStorageBackpack]"` _amountStorageTransfer>>
</td>
<td class="icon">
[img[setup.ImagePath+'game/inventory/' + _icon + '.png']]
</td>
<td class="name"><<=Item.get(_itemStorageBackpack).name>></td>
</tr>
<</capture>>
<</for>>
</table>
</fieldset>
</div>
</div><h1 class="ptitle">STREETS</h1>
<br />
<center>
<<image 'places/underground/street_killer_group_lost.jpg'>>
</center>
<br /><br />
You got out. That was the best that could be said for it.
<br /><br />
They caught you with more than you expected and you took hits you couldn't absorb. At some point your body made the decision for you and you ran — through a side passage, over rubble, until the sound of boots behind you stopped.
<br /><br />
You sat against a wall somewhere you didn't recognise and waited for the ringing to stop.
<br /><br />
They were still out there. And now they knew someone was looking.
<br /><br />
<<energy -30>>
<<unset $game.streetsKilledNpc>>
<<link 'Drag yourself home'>>
<<goto 'Underground city'>>
<</link>><h1 class="ptitle">STREETS</h1>
<br />
<center>
<<image 'places/underground/street_killer_group_won.jpg'>>
</center>
<br /><br />
Both of them were down. One wasn't getting back up. The other was conscious, barely, hands raised — more reflex than surrender.
<br /><br />
<<newguy>>
<<set $tmpGuy.name = either('Vorn', 'Cass', 'Drek', 'Sutter', 'Bale', 'Rook')>>
<<set $tmpGuy.strength = randomInteger(10, 25)>>
<<set $tmpGuy.loyal = false>>
<<sayNpc $tmpGuy>>
Alright — alright. Just don't —
<</sayNpc>>
<br />
He couldn't finish the sentence.
<br /><br />
<<unset $game.streetsKilledNpc>>
<div id="skgw_kill_block">
<<linkreplace 'Kill him'>>
<<set _skgwName = $tmpGuy.name>>
<<unset $tmpGuy>>
<<run $('#skgw_take_block').hide()>>
You didn't leave him with a choice. Neither had he.
<br /><br />
<<link 'Leave'>>
<<goto 'Underground city'>>
<</link>>
<</linkreplace>>
</div>
<div id="skgw_take_block">
<<linkreplace 'Take him'>>
<<run setup.npc.addHistory($tmpGuy, 'enslaved', { reason: 'street_murder' })>>
<<run $slaves.push($tmpGuy)>>
<<unset $tmpGuy>>
<<run $('#skgw_kill_block').hide()>>
You hauled him up by the collar. He came without a fight — which somehow made it worse.
<br /><br />
<<link 'Head home'>>
<<goto 'Underground city'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">STREETS</h1>
<br />
<center>
<<image 'places/underground/street_killer_group.jpg'>>
</center>
<br /><br />
The alley opened into a small courtyard behind a collapsed building. You heard them before you saw them — laughter, the clink of bottles.
<br /><br />
Four of them. Only two looked like they could actually fight, but that was enough. One of them clocked you the moment you stepped in and the laughter stopped.
<br /><br />
You could see dried blood on the nearest one's knuckles.
<br /><br />
They spread out without a word — the casual confidence of men who'd done this before.
<br /><br />
<<generateEnemies 2>>
<<link 'Fight'>>
<<fight $enemies 'Street killer - group won' 'Street killer - group lost'>>
<</link>>
<<link 'Back off'>>
<<unset $game.streetsKilledNpc>>
<<goto 'Underground city'>>
<</link>><h1 class="ptitle">STREETS</h1>
<br />
<center>
<<image 'places/underground/street_killer_lone.jpg'>>
</center>
<br /><br />
The tip led you to a storage room behind the old market — the kind of place people use when they don't want to be found.
<br /><br />
He was alone. Drunk, still wearing the same jacket from last night. He looked up when you stepped through the door and didn't even try to run.
<br /><br />
<<newguy>>
<<set $tmpGuy.name = either('Cain', 'Voss', 'Rex', 'Decker', 'Harlan', 'Pike', 'Slade', 'Murt', 'Breck')>>
<<set $tmpGuy.strength = randomInteger(15, 35)>>
<<set $tmpGuy.loyal = false>>
<<sayNpc $tmpGuy>>
You got nothing on me. She was just a whore.
<</sayNpc>>
<br />
He said it like it was supposed to end the conversation.
<br /><br />
<div id="sk_kill_block">
<<linkreplace 'Kill him'>>
<<set _skKillerName = $tmpGuy.name>>
<<unset $tmpGuy>>
<<unset $game.streetsKilledNpc>>
<<run $('#sk_enslave_block').hide()>>
He barely got another word out. You made it quick — as quick as he'd made it for <<=($game.streetsKilledNpc?.name ?? 'her')>>.
<br /><br />
<<=_skKillerName>> wouldn't be doing this to anyone else.
<br /><br />
<<link 'Leave'>>
<<goto 'Underground city'>>
<</link>>
<</linkreplace>>
</div>
<div id="sk_enslave_block">
<<linkreplace 'Take him'>>
<<run setup.npc.addHistory($tmpGuy, 'enslaved', { reason: 'street_murder' })>>
<<run $slaves.push($tmpGuy)>>
<<unset $tmpGuy>>
<<unset $game.streetsKilledNpc>>
<<run $('#sk_kill_block').hide()>>
You dragged him out by the collar. He started talking then — explaining, justifying — but you weren't listening.
<br /><br />
The kind of man who only goes after people who can't fight back tends to go very quiet once someone finally does.
<br /><br />
<<link 'Head home'>>
<<goto 'Underground city'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">STREETS</h1>
<br />
<center>
<<image 'places/underground/street_killer_search.jpg'>>
</center>
<br /><br />
<<set _killedName = $game.streetsKilledNpc.name>>
You worked the block for hours — the girls who were out last night, the cigarette vendor near the corner arch, the drunk sleeping in the doorway opposite the body site. Most looked through you. Nobody wanted to be the one who talked.
<br /><br />
Eventually a nod here, a gesture there gave you something. Three possible directions the killer might have gone. No guarantee any of them leads anywhere real.
<br /><br />
<<addhours 3>>
<<set _skOptions = ['Street killer - not found', 'Street killer - lone killer', 'Street killer - group']>>
<<set _skOutcome = either(_skOptions)>>
<<link 'Follow the alley east'>>
<<goto `_skOutcome`>>
<</link>>
<<link 'Check the old warehouse district'>>
<<goto `_skOutcome`>>
<</link>>
<<link 'Head toward the underground market'>>
<<goto `_skOutcome`>>
<</link>><h1 class="ptitle">STREETS</h1>
<br />
<center>
<<image 'places/underground/street_killer_dead_end.jpg'>>
</center>
<br /><br />
Every lead went cold. Either nobody saw anything, or whoever did wasn't talking — and down here, not talking was just good sense.
<br /><br />
You circled the same blocks until your legs ached and the light shifted to early dusk. Nothing. Not a face, not a name.
<br /><br />
<<=($game.streetsKilledNpc?.name ?? 'She')>> was gone. Whoever took her wasn't going to answer for it tonight.
<br /><br />
<<link 'Head home'>>
<<unset $game.streetsKilledNpc>>
<<goto 'Underground city'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
Even in a post-apocalyptic world, there are moments of quiet contemplation. You close the gates of your settlement behind you, the metallic clang echoing in the stillness.
As you turn, you see Vincent standing there, his weathered face crinkling into a familiar smile. He's an old friend, a constant presence in this harsh new world.
<br /><br />
[img[setup.ImagePath+'places/cabin/gate_hand.jpg']]
<br /><br />
He gazes at the gates for a moment, a thoughtful expression crossing his face.
<br /><br />
<<vincent>>
You know, you should think more about developing your base.
<</vincent>>
<br />
You raise an eyebrow, curious. Vincent has always been a wealth of knowledge, and you can tell he's about to share something important.
<br /><br />
<<vincent>>
Solar panels. Set up a few panels on the rooftops, connect them to a battery bank. You'll have electricity production, enough to power lights, defenses, living houses and maybe even some small appliances
<</vincent>>
<br />
He pauses, letting the idea sink in before continuing.
<br /><br />
<<vincent>>
Electricity consumption needs to be managed, though. Keep in mind that if you wil have not enough electricity, all your grid will be shut down.
<</vincent>>
<br />
You nod, already visualizing the changes. But Vincent isn’t done.
<br /><br />
<<vincent>>
And defenses. Walls alone won't cut it. Think about towers at the corners, places where you can set up lookout points or mount some kind of defense mechanisms. It could be as simple as a slingshot or something more advanced if you find the right materials.
<</vincent>>
<br />
He steps closer, his eyes locking onto yours
<br /><br />
<<vincent>>
It's not just about keeping people out. It's about creating a place where others can live. Not just your usual slaves or guests, but settlers. People who can contribute, bring skills and knowledge. Random folks who need a place to stay, who can become part of your community.
<</vincent>>
<br />
Vincent's words hit home. In this desolate world, survival is about more than just walls and gates. It's about building something sustainable, something that can grow and thrive.
<br /><br />
<<you>>
I see what you're saying. It's time to start thinking bigger, to create a real community.
<</you>>
<br />
Vincent smiles again, a twinkle in his eye.
<br /><br />
<<vincent>>
Exactly. A place where we can rebuild, piece by piece.
<</vincent>>
<br />
With a nod, you turn back towards the gates, your thoughts now a whirl of blueprints and strategies. The post-apocalyptic world may be harsh, but with Vincent's advice, there's hope for a brighter, more sustainable future.
<br /><br />
<strong>You have unlocked base building in Settlement management view!</strong>
<br /><br />
<<link 'Leave'>>
<<set $player.quests.base_building = true>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
The air was thick with the smell of oil, sweat, and the faint scent of rust, but it was home—at least for now. You sat at a makeshift desk, going over the day's reports, when Vincent walked in.
His shoulders slumped with exhaustion, his usually sharp eyes dull with fatigue. He dropped into the chair opposite you, running a hand through his graying hair.
<br /><br />
<center>
[img[setup.ImagePath+'people/vincent/sitting.jpg']]
</center>
<br />
<<vincent>>
Got something for you.
<</vincent>>
<br />
Vincent started, his voice rough, like gravel grinding in the back of his throat.
<br /><br />
<<you>>
You look like hell, Vince. When's the last time you slept?
<</you>>
<br />
<<vincent>>
No time for that. I’ve been thinking... and I think we need to take that milk delivery to the next level.
<</vincent>>
<br />
You straightened up, suddenly more alert. The last run to the underground city with breast milk had been a surprising success, bringing in more supplies than you’d anticipated.
But it was a one-off, a lucky break in a world where luck was hard to come by.
<br /><br />
<<you>>
What do you mean, next level?
<</you>>
<br />
Vincent leaned over the desk, unrolling the blueprints.
<br /><br />
<<vincent>>
A milk farm. Automated, efficient, and safe. The women who are pregnant. We set up a system with these machines I’ve been sketching out.
Theyd pump and store the milk in a sterile environment. I have one freezer, where you could keep them but it will require electricity.
We could keep up a steady supply to the underground city. Regular shipments, regular income. It could stabilize things around here.
<</vincent>>
<br />
You looked down at the blueprints, a mix of old-world technology and post-apocalyptic ingenuity. The machines were cobbled together from parts of old engines, medical equipment, and whatever else Vincent had been able to scavenge.
The design was rough, but you could see the potential.
<br /><br />
You studied the blueprints again, the flickering lantern light casting dancing shadows over the sketches.
The idea was bold, maybe even crazy, but in this world, crazy might just be what kept you alive.
<br /><br />
<<vincent>>
Anyway, it's up to you. Do what you think is the best.
<</vincent>>
<br />
<<link 'Leave'>>
<<addmins 60>>
<<notify 5s>>
Now you can build milk barn
<</notify>>
<<set $player.quests.milk_farm = true>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<div class="menu-grid">
<<grid cabin bedroom Bedroom 'Your room'>>
<<if hasTime(0, 30)>>
<<grid cabin shower Shower-room Shower>>
<</if>>
<<if (hasTime(0, 30) || $player.hunger != $player.maxHunger)>>
<<grid cabin kitchen Kitchen-room Kitchen>>
<</if>>
<<if ($game.location.workbench ?? false) && hasTime(0, 30)>>
<<grid cabin workbench Workbench Workbench false 1>>
<</if>>
<<if ($game.location.basement ?? false) && hasTime(0, 30)>>
<<grid cabin basement Basement Basement false 1>>
<</if>>
<<if ($game.location.greenhouse ?? false) && hasTime(0, 30)>>
<<grid cabin greenhouse Greenhouse Greenhouse false 1>>
<</if>>
<<if ($game.location.guesthouse ?? false) && hasTime(0, 30)>>
<<grid cabin guesthouse 'Guest house' 'Guest house' false 1>>
<</if>>
<<if ($game.location.bathhouse ?? false) && hasTime(0, 30)>>
<<grid cabin bathhouse 'Bathhouse' 'Bathhouse' false 1>>
<</if>>
<<if ($game.location.youth_district ?? false) && hasTime(0, 30)>>
<<grid cabin youth_district 'Youth district' 'Youth district' false 1>>
<</if>>
<<if ($game.location.shop ?? false) && hasTime(0, 30)>>
<<grid cabin shop 'Shop' 'Shop' false 1>>
<</if>>
<<grid cabin fireplace 'Fire place' 'Fire place'>>
<<set _isDisabled = ($weather?.sandStorm ? 30 : 0.5)>>
<<set _disabledDescription = 'Sand storm outside'>>
<<grid cabin outside Outside Outside 0 _isDisabled>>
<<if ($game.location.garage ?? false) && hasTime(0, 30)>>
<<grid cabin garage 'Garage' 'Garage' false 1>>
<</if>>
</div>
<<set _percentageUninvitedCouple = 5>>
<<set _percentageFoodForager = 2>>
<<if setup.getPersonsForLocation($guests, 'guard')>>
<<set _percentageUninvitedCouple = 1>>
<<set _percentageFoodForager = 1>>
<</if>>
<<if $tmpEventWedding && timeBetween('18:00', '22:00')>>
<<if setup.getNpcById($tmpEventWedding.id1) && setup.getNpcById($tmpEventWedding.id2)>>
<<goto 'NPC between marry'>>
<<else>>
<<unset $tmpEventWedding>>
<</if>>
<</if>>
<<if !($locationEvents.cabin ?? false)>>
<<if $game.pendingUltimatumRaid && $game.cabinName>>
<<set $tmpSettlement = $game.pendingUltimatumRaid>>
<<unset $game.pendingUltimatumRaid>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Settlement raid'>>
<<elseif $game.tributeGift && $game.cabinName>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Tribute gift'>>
<<elseif $game.targetedAbduction && $game.cabinName>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Targeted abduction'>>
<<elseif $game.womanDemand && $game.cabinName>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Woman demand'>>
<<elseif $game.desperateDeal && $game.cabinName>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Desperate deal'>>
<<elseif $game.blackmailEvent && $game.cabinName>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Blackmail'>>
<<elseif $game.foodSabotageDiscovery && $game.cabinName>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: Kitchen Sabotage'>>
<<elseif $characters?.elsa?.quests?.attack_day && !$characters?.elsa?.quests?.new_home>>
<<goto 'Elsa - new home'>>
<<elseif $characters?.octavia?.quests?.kidnapped_found && !$characters.octavia.quests.betrayal &&
(!$characters.octavia.quests.kidnapped_found_day || ($characters.octavia.quests.kidnapped_found_day + 5) < $game.day) &&
timeBetween('08:00', '16:00')
>>
<<goto 'Octavia - The Troubled Messenger'>>
<<elseif $characters?.octavia?.quests?.betrayal && !$characters.octavia.quests.betrayal2 &&
(($characters.octavia.quests.betrayal_day + 3) < $game.day) &&
timeBetween('08:00', '16:00')
>>
<<goto 'Octavia - Blackthorn camp'>>
<<elseif $characters?.octavia?.quests?.betrayal2 && !$characters.octavia.quests.next_move &&
(($characters.octavia.quests.betrayal2_day + 3) < $game.day) &&
timeBetween('08:00', '16:00')
>>
<<goto 'Octavia - Annihilation'>>
<<elseif $characters?.isabel?.quests?.pregnant && ($characters.isabel.quests.pregnant_day + 5) <= $game.day && !$characters.isabel.quests.dom_return && !$characters?.dom?.dead && !$characters?.dom?.quests?.alt_route>>
<<goto 'Dom - return'>>
<<elseif timeBetween('21:30', '22:30') && $characters?.blair?.quests?.missing_friend_found && $characters.blair.quests.missing_friend_basement && $characters.blair?.quests?.sex && $gameDate.getDay() === 6>>
<<set $locationEvents.cabin = true>>
<<goto 'Blair - Ashley threesome'>>
<<elseif $game.lone_survivor>>
<<set $game.lone_survivor = false>>
<<set $locationEvents.cabin = true>>
<<if setup.percentageChance(20)>>
<<goto 'Event: A lone survivor: steal'>>
<<else>>
<<goto 'Event: A lone survivor: gift'>>
<</if>>
<<elseif !($game.location.nursery ?? false) && !($player.quests?.nursery_request ?? false) && !($characters.blair.quests?.nursery ?? false) && setup.filterNPCs($guests, {'pregnancy_gte': 1})[0]?.length && setup.percentageChance(40)>>
<<set $player.quests.nursery_request = true>>
<<goto 'Event: Nursery request'>>
<<elseif $guests.filter(function(g) { return setup.getAge(g) >= 18 && [0,2].includes(g.gender) && !(g.traits ?? []).includes('feral'); }).length >= 4 && setup.percentageChance(30) && !$player.quests.bathhouse_talk && $game.day > 80>>
<<set $player.quests.bathhouse_talk = true>>
<<goto 'Event: Bathhouse talk'>>
<<elseif setup.assignedToCount('garden') >= 4 && setup.percentageChance(($game.location.freezer && setup.baseManagement.electricity.hasElectricity()) ? 2 : 5) && ($backpack.count('food') + $storage.count('food') ) > 0 && (!$game.rotten_rations_day || ($game.rotten_rations_day + 7) < $game.day)>>
<<set _kitchenAssigned = setup.getPersonsForLocation($guests, 'kitchen')>>
<<set _rottenFoodChance = 100>>
<<if _kitchenAssigned[0].length && ($guests[_kitchenAssigned[0][0]].skills ?? []).includes('cook')>>
<<set _rottenFoodChance = 50>>
<</if>>
<<if setup.percentageChance(_rottenFoodChance)>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: Rotten Rations'>>
<</if>>
<<elseif (setup.getAvailablePersons18yo($guests)[0] ?? []).length >= 2 && setup.percentageChance(1)>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: Common capital'>>
<<elseif $game.cabinName && setup.percentageChance(5)>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: A lone survivor'>>
<<elseif $game.cabinName && setup.percentageChance(1) && (!$game.baby_merchant_day || ($game.baby_merchant_day + 60) < $game.day)>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: Baby merchant'>>
<<elseif $game.cabinName && setup.percentageChance(1) && (!$game.virgin_merchant_day || ($game.virgin_merchant_day + 60) < $game.day)>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - virgin merchant'>>
<<elseif $game.refugeeEvent && $game.cabinName>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Refugee influx'>>
<<elseif $game.cabinName && setup.percentageChance(4) && setup.settlements.getRaidableByCandidates($game.day).length>>
<<set _srCands = setup.settlements.getRaidableByCandidates($game.day)>>
<<set _srPick = _srCands[randomInteger(0, _srCands.length - 1)]>>
<<set $tmpSettlement = _srPick.id>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Settlement raid'>>
<<elseif $game.cabinName && setup.percentageChance(6) && setup.settlements.getTraderCandidates($game.day).length>>
<<set _stCands = setup.settlements.getTraderCandidates($game.day)>>
<<set _stPick = _stCands[randomInteger(0, _stCands.length - 1)]>>
<<set $tmpSettlement = _stPick.id>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Settlement trader'>>
<<elseif $game.cabinName && setup.percentageChance(1) && (($player?.quests?.gateDoneDay ?? 0 + 60) < $game.day)>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: Base attack'>>
<<elseif $game.cabinName && setup.percentageChance(1) && (($player?.quests?.gateDoneDay ?? 0 + 60) < $game.day)>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - Base attack with car'>>
<<elseif $game.cabinName && isMetChar('rodger') && ($characters.rodger.quests.horse ?? false) && !$player.horse && setup.percentageChance(1)>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: Horse merchant'>>
<<elseif ($backpack.count('food') || $storage.count('food')) && setup.percentageChance(_percentageFoodForager) && setup.baseIntruderChance()>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: Food forager'>>
<<elseif ($backpack.count('antibiotics') || $storage.count('antibiotics')) && setup.percentageChance(3) && setup.baseIntruderChance()>>
<<set $locationEvents.cabin = true>>
<<if setup.percentageChance(50)>>
<<goto 'Event - Medicine mob'>>
<<else>>
<<goto 'Event - Desperate parent'>>
<</if>>
<<elseif ($backpack.count('food') || $storage.count('food')) && timeBetween('19:00', '23:00') && setup.percentageChance(_percentageUninvitedCouple) && $game.day > 30 && setup.baseIntruderChance()>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: The uninvited couple'>>
<<elseif setup.getPersonsForLocation($guests, 'guard').length && setup.percentageChance(3) && timeBetween('08:00', '11:00') && setup.baseIntruderChance()>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: guard caught intruder'>>
<<elseif isMetChar('laura') && !$characters.laura.quests.successful_test && $characters.laura.quests.metOnDay < ($game.day - 3)>>
<<goto 'Laura - successful test'>>
<<elseif isMetChar('laura') && $characters.laura.quests.successful_test && !$characters.laura.quests.first_vials && $characters.laura.quests.lastTestDay < ($game.day - 5)>>
<<goto 'Laura - first vials'>>
<<elseif isMetChar('laura') && $characters.laura.quests.first_vials && !$characters.laura.quests.lab_workbench && $characters.laura.quests.lastTestDay < ($game.day - 7)>>
<<goto 'Laura story - The shattered lab'>>
<<elseif isMetChar('laura') && ($game.location.lab ?? false) && !$characters.laura.quests.living>>
<<goto 'Laura story - New home'>>
<<elseif !$locationEvents.cabin && (setup.getAvailablePersons18yo($guests)[0] ?? []).length >= 1 && setup.percentageChance(30) && recall($suppCode) && timeBetween('22:00', '00:00')>>
<<set _npcs = setup.filterNPCs($guests, { gender: 0, horny_gte: 50, 'virgin': false, chasityBelt: 0, race_in: ['white', 'latina']})>>
<<if _npcs[0] ?? [].length>>
<<set $tmpEvent = {
id: setup.getRandomElement(_npcs[0])
}>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: Late dance'>>
<</if>>
<<elseif isMetChar('vincent') && ($game.location.garage ?? false) && !$characters.vincent.quests.military_base && ($characters.vincent.car_get_day + 3) < $game.day>>
<<goto 'Vincent - Strange note'>>
<<elseif timeBetween('08:00', '12:00') && isMetChar('eve') && $characters.rodger.quests.faith && !$player.quests?.settlement_burned && (($characters.eve.quests.shower_day ?? 0) + 10) < $game.day && setup.percentageChance(10)>>
<<goto 'Eve - shower visit'>>
<<elseif timeBetween('20:00', '24:00') && $game.lone_survivor && setup.percentageChance(50) && (setup.getAvailablePersons18yo($slaves)[0] ?? []).length>>
<<set $locationEvents.cabin = true>>
<<goto 'Event - A lone survivor fuck'>>
<<elseif timeBetween('16:00', '20:00') && setup.getPersonsForLocation($guests, 'forest').length > 1 && $weather?.weather !== 'storm' && setup.percentageChance(5)>>
<<set $locationEvents.cabin = true>>
<<goto 'Forest - fallen tree'>>
<<elseif timeBetween('08:00', '17:00') && setup.getPersonsForLocation($guests, 'forest').length >= 1 && setup.percentageChance(3)>>
<<set $locationEvents.cabin = true>>
<<goto 'Event: Forest animal attack'>>
<<elseif ($player.quests.first_settlers ?? false) && ($player.baseManagement.settlersFemales ?? 0) > 4 && ($player.baseManagement.taxes ?? 0) > 0 && $gameDate.getDay() === 1 && timeBetween('08:00', '15:00') && (!$game.settler_tax_day || ($game.settler_tax_day + 14) < $game.day) && setup.percentageChance(25)>>
<<set $locationEvents.cabin = true>>
<<goto "Event: Settler can't pay tax">>
<</if>>
<</if>><h1 class="ptitle">WORKBENCH</h1>
<<include 'Workbench items'>>
<br />
<<run window.wbMultipliers = window.wbMultipliers || {}; window.wbRequirements = {};>>
<<set _isStorageAvailable = ($game.location.shop ?? false)>>
<<set _items to Object.keys(_workbenchItems)>>
<<for _i to 0; _i lt _items.length; _i++>>
<<set _item = _workbenchItems[_items[_i]]>>
<<capture _i, _item, _workEnergy, _required>>
<<if !_item.show>>
<<continue>>
<</if>>
<<run _workEnergy = clone(_item.energy)>>
<<if $player.int > 30>>
<<run _workEnergy -= 20>>
<<elseif $player.int > 20>>
<<run _workEnergy -= 10>>
<</if>>
<<set _workEnergy = Math.abs(Math.min(10, _workEnergy))>>
<<set _required to Object.keys(_item.required)>>
<<set _itemHasResources to true>>
<<set _maxBuild = Math.floor($player.energy / _workEnergy)>>
<<if !(_item.multi ?? false)>>
<<set _maxBuild = Math.min(_maxBuild, 1)>>
<</if>>
<div class="workbench-item" @data-item="_items[_i]">
<table>
<tr>
<td style="width: 67%">
<h3><<=_workbenchItems[_items[_i]].title>></h3>
<<=_workbenchItems[_items[_i]].description>>
<br />
In storage: <<=setup.cabinInventory.count(_items[_i])>>
</td>
<td>
<div class="workbench-required">
Required:<br />
<<for _r to 0; _r lt _required.length; _r++>>
<<set _reqKey = _required[_r]>>
<<set _reqCount = _item.required[_reqKey]>>
<<set _hasCount = $backpack.count(_reqKey) + (_isStorageAvailable ? $storage.count(_reqKey) : 0)>>
<<set _maxBuild = Math.min(_maxBuild, Math.floor(_hasCount / _reqCount))>>
<<set _needtxt = ''>>
<<if _hasCount < _reqCount>>
<<set _itemHasResources = false>>
<<set _needtxt = '(missing ' + (_reqCount - _hasCount) + ')'>>
<</if>>
<span><<=_reqCount>> <<=Item.get(_reqKey).name>> _needtxt</span><br />
<</for>>
<span><<=_workEnergy>> energy</span>
<<if $player.energy < _workEnergy>>
<<set _itemHasResources = false>>
<</if>>
<<run window.wbRequirements[_items[_i]] = {max: _maxBuild, energy: _workEnergy, materials: Object.assign({}, _item.required)};>>
</div>
</td>
<td>
<span class="build-link-wrap" @style="_itemHasResources ? '' : 'display:none'">
<<link 'Build'>>
<<set _wbMult = (window.wbMultipliers?.[_items[_i]] ?? 1)>>
<<energy `-_workEnergy * _wbMult`>>
<<set $player.debug = _workbenchItems[_items[_i]].energy>>
<<for _r to 0; _r lt _required.length; _r++>>
<<capture _r>>
<<set _reqKey = _required[_r]>>
<<set _reqCount = _item.required[_reqKey] * _wbMult>>
<<if _isStorageAvailable>>
<<transfer $storage $backpack _reqKey _reqCount>>
<</if>>
<<drop $backpack _reqKey _reqCount>>
<</capture>>
<</for>>
<<for _mi to 0; _mi lt _wbMult; _mi++>>
<<run _workbenchItems[_items[_i]].after()>>
<</for>>
<<run delete window.wbMultipliers[_items[_i]]>>
<<goto _workbenchItems[_items[_i]].goto>>
<</link>>
</span>
<div class="workbench-not-enough build-not-enough-dyn" @style="_itemHasResources ? 'display:none' : ''">
Not enough resources
</div>
<div class="build-multiplier">
<button class="mult-btn mult-decr" disabled onclick="adjustWbMult(this, -1)">−</button>
<span class="mult-value">×1</span>
<<if _maxBuild > 1>>
<button class="mult-btn mult-incr" onclick="adjustWbMult(this, 1)">+</button>
<<else>>
<button class="mult-btn mult-incr" disabled onclick="adjustWbMult(this, 1)">+</button>
<</if>>
</div>
</td>
</tr>
</table>
</div>
<</capture>>
<</for>>
<script>
window.adjustWbMult = function(btn, delta) {
var item = btn.closest('.workbench-item');
if (!item) return;
var key = item.dataset.item;
var reqs = window.wbRequirements && window.wbRequirements[key];
var max = reqs ? reqs.max : 1;
var curr = window.wbMultipliers[key] || 1;
var next = Math.max(1, Math.min(max, curr + delta));
window.wbMultipliers[key] = next;
window.refreshWbMult(item, next);
};
window.refreshWbMult = function(item, mult) {
var key = item.dataset.item;
var reqs = window.wbRequirements && window.wbRequirements[key];
if (!reqs) return;
var max = reqs.max;
item.querySelector('.mult-value').textContent = '×' + mult;
var decrBtn = item.querySelector('.mult-decr');
var incrBtn = item.querySelector('.mult-incr');
if (decrBtn) decrBtn.disabled = mult <= 1;
if (incrBtn) incrBtn.disabled = mult >= max;
var allOk = mult <= max;
var buildWrap = item.querySelector('.build-link-wrap');
var notEnough = item.querySelector('.build-not-enough-dyn');
if (buildWrap) buildWrap.style.display = allOk ? '' : 'none';
if (notEnough) notEnough.style.display = allOk ? 'none' : '';
};
</script>
<style>
.build-multiplier {
display: flex;
align-items: center;
justify-content: center;
gap: 3px;
margin-top: 5px;
}
.mult-btn {
background: #3a3a3a;
border: 1px solid #777;
color: #ccc;
cursor: pointer;
width: 18px;
height: 18px;
padding: 0;
font-size: 14px;
line-height: 1;
text-align: center;
border-radius: 2px;
}
.mult-btn:hover:not(:disabled) {
background: #555;
border-color: #aaa;
}
.mult-btn:disabled {
opacity: 0.3;
cursor: default;
}
.mult-value {
font-size: 11px;
min-width: 22px;
text-align: center;
color: #ccc;
}
</style>
<br /><br />
[[Back|Wood cabin]]<h1 class="ptitle"><<cabinName>></h1>
<br /><br />
<<set _teachers = setup.filterNPCs($guests, {'skills_inc': ['teacher'], 'gender':0})[0]>>
<<set _npc = $guests[_teachers[0]]>>
<<set $locationEvents.youth_district = true>>
<<addmins 5>>
<<set _isSunny = ($weather?.weather ?? 'sun') === 'sun'>>
You wandered toward the Youth District.
<br />
You weren't heading there for any real reason — just walking, thinking, watching how your people moved now.
<br /><br />
That's when you spotted <<=setup.displayName(_npc)>>
<br /><br />
<<if _isSunny>>
She stood in the middle of the open plaza, a worn book in her hand, speaking to a small group of people.
Her voice, calm but firm, carried above the low buzz of the district — something about circuits and stored energy, using a broken-down radio as a teaching prop.
<br /><br />
<center>
<<image 'places/school/teaching_outside.jpg' 'sfw'>>
</center>
<br /><br />
She wasn't dressed like a fighter today. Just a faded sundress, patched and faded, her <<=_npc.hair>> hair tied back.
<<else>>
She had gathered a small group under the overhang of one of the buildings, sheltered from the rain. A worn book in her hand, she was explaining something about circuits and stored energy, using a broken-down radio as a teaching prop.
<br /><br />
<center>
<<image 'places/school/teaching_outside_rain.jpg' 'sfw'>>
</center>
<br /><br />
Her jacket was damp at the shoulders, her <<=_npc.hair>> hair clinging to her face in the wet air.
<</if>>
You watched for a moment, leaning against a post as the people asked questions.
She explained patiently, her tone never condescending, always pulling them in. Some of the younger people looked like they were really listening — which said a lot.
<br /><br />
When the impromptu class ended and the group started to scatter, you made you continued with your way.
<br /><br />
<<if setup.percentageChance(60)>>
<<set _talked = true>>
<<=setup.displayName(_npc)>> saw you and smirked.
<br /><br />
<<sayNpc _npc>>
Didn't expect to see you out here. Hope you don't mind.
<</sayNpc>>
She tapped the book against her palm.
<br /><br />
<<sayNpc _npc>>
We need to start building minds again, not just bunkers. I was thinking — what if we actually made a school?
<</sayNpc>>
<br />
<<sayNpc _npc>>
Not just this — not just me talking <<if _isSunny>>in the heat<<else>>in the rain<</if>>. A real space. Please.
<</sayNpc>>
<br />
You looked at her. Not like a dreamer. Like someone making plans.
<br /><br />
<<sayNpc _npc>>
You really want me to beg?
<</sayNpc>>
<br />
Then, as if catching herself, she looked away — lips pressed tight, the heat of the afternoon suddenly heavier between you both.
<br /><br />
Then without another word, <<=setup.displayName(_npc)>> grabbed your wrist—firm, urgent—and pulled you behind the nearest crumbling outbuilding.
<br /><br />
She glanced around, not for fear of being seen, but more like she was bracing herself. Then she pulled her skirt up just above her hip, revealing her naked ass.
<br /><br />
<center>
<<image 'places/school/teacher1.webp'>>
</center>
<br />
Before you could respond, she positioned herself, her legs spreading wide as she prepared to sit on your cock.
She guided you to her entrance, her eyes locked on yours, a look of pure lust and desire in her gaze.
<br /><br />
<center>
<<image 'places/school/teacher2.webp'>>
</center>
<br /><br />
<<=setup.displayName(_npc)>>'s movements were slow and deliberate at first, but as she grew more comfortable, she began to move faster, her hips grinding against yours as she took you deeper and deeper.
<br /><br />
Taking the lead, you began to fuck her with long, deep strokes, your hips moving in a relentless rhythm. You could feel every inch of her, her tightness gripping you, milking you with each movement.
<br /><br />
<<image 'places/school/teacher3.webp'>>
<br /><br />
With a final, deep thrust, you came undone, your hot cum shooting into her, filling her completely.
<<=setup.displayName(_npc)>> let out a loud cry of pleasure, her body convulsing as she reached her own climax, her walls clenching around your cock, milking every last drop of your release.
<br /><br />
<<horny_reset>>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<center>
<<image 'game/misc/creampie.webp'>>
</center>
<br />
<<sayNpc _npc>>
I hope I earned that school.
<</sayNpc>>
<br />
<</if>>
<div id="option_leave">
<<link 'Leave'>>
<<if _talked>>
<<set $player.quests.school_talk = true>>
<<notify 5s>>
School available in base management
<</notify>>
<</if>>
<<goto 'Youth district'>>
<</link>>
</div><h1 class="ptitle">HOSPITAL</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
<<sayNpc _npc>>
You've been through a lot.
<</sayNpc>>
<br />
<<video 'hospital/bleeding3'>>
<br /><br />
As she stands up, you expect her to turn away and resume her duties, but instead, she pauses. Slowly, deliberately, she reaches up and begins to unzip her coat.
The sound of the zipper cutting through the tense silence is almost deafening. She pulls it down slowly, her eyes never leaving yours, as she exposes her naked skin and breasts.
<br /><br />
<<sayNpc _npc>>
Maybe, just for a little while, we can forget about the world outside
<</sayNpc>>
<br />
Without waiting for a response, she leans down, her movements slow and deliberate. She brushes her fingers lightly against your thigh, her touch sending a shiver through your body.
<br /><br />
<<video 'hospital/bleeding4'>>
<br /><br />
She grabs your dick and gently puts it in her mouth.
<br />
Her movements are rhythmic, almost soothing, each touch and caress carefully measured. Time seems to stand still, the only sounds the soft rustle of the sheet and the quiet hum of the camp outside.
<br /><br />
After few more strokes and movements with her mouth, she open up her coat, flashing her pussy, and climbs on you.
<br /><br />
<<sayNpc _npc>>
Just relax. I will do all the work. You deserve it.
<</sayNpc>>
<br />
As she clibs onto you, she slides her hand between her legs and grabs your dick, she aims it at her pussy and slowly slides into it.
<br /><br />
<<video 'hospital/bleeding5'>>
<br /><br />
Her first movements are slow but as soon as her pussy is wet enough, she picks up the phase. She leans back, fully exposing her body to you as she rides you with her eyes clothes.
<br />
She cleary is enjoying the moment with each thrust increasing speed a bit more.
<br /><br />
<<sayNpc _npc>>
Can you stand up?
<</sayNpc>>
<br /><br />
<<linkreplace 'Stand up'>>
<<video 'hospital/bleeding6'>>
<br /><br />
With a focused intensity, she takes you into her mouth, her lips wrapping around you with a surprising tenderness. Her eyes close as she concentrates fully on the task at hand, her movements slow and deliberate.
You can feel her tongue skillfully working, the sensation sending waves of pleasure through your body.
<br /><br />
She adjusts her position slightly, her cheek hollowing as she sucks, creating a distinct and intense feeling. Her hands gently hold your thighs, steadying herself as she continues.
<br /><br />
<<linkreplace 'Tell her you are close'>>
<<horny_reset>>
She pulls away immediately, her hands replacing her mouth with practiced ease.
She begins to stroke you, her movements fast and urgent. Her eyes remain locked on yours, her expression one of determination and desire.
<br /><br />
<<video 'hospital/bleeding7'>>
<br /><br />
You start to cum all over her face but for your surprise she doesn't stop to stroke you or even slow down.
<br />
Her hands work with a fervent intensity, the sensation almost overwhelming
<br /><br />
<<sayNpc _npc>>
Just like that, yes, yes.. Give it all to me...
<</sayNpc>>
<br />
When you are fully dry, she finally stops.
<br /><br />
<<video 'hospital/bleeding8'>>
<br /><br />
But instead of letting you go, she decides to put it back to clean you up. Her lips wraps around your dick as her eyes remain locked on yours.
<br /><br />
<<sayNpc _npc>>
I just can't let you out from hospital not cleaned properly, hehe.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto 'Youth district'>>
<</link>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle">HOSPITAL</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
<<set _pronWho = setup.pronounceWho(_npc)>>
<<set _pronWhos = setup.pronounceWhos(_npc)>>
<<set _pronWhat = setup.pronounceWhat(_npc)>>
As you push through the flap of the makeshift hospital tent, the stark contrast between the chaos outside and the relative calm within strikes you immediately.
The dim lighting from a few strategically placed lanterns casts long shadows on the walls.
<br /><br />
<<=setup.displayName(_npc)>>, in white coat stained and worn, notices you as soon as you step inside.
<<=_pronWhos>> eyes narrow in concern as <<=_pronWhat>> spots the blood seeping through your clothes.
<br /><br />
<<sayNpc _npc>>
You're bleeding! We need to take care of that immediately. Please, lay down on this bed.
<</sayNpc>>
<br />
As <<=_pronWhat>> works, <<=_pronWhos>> hands are gentle yet efficient. <<=setup.pronounceWhat(_npc, true)>> cleans the wound with a practiced ease, applying a disinfectant that stings sharply.
<br /><br />
<<sayNpc _npc>>
You're lucky you came in when you did. Out here, infections can be just as deadly as the injuries themselves.
<</sayNpc>>
<br />
<strong class="iitem">You are not bleeding anymore!</strong>
<<run delete $player.perks.bleeding>>
<br /><br />
<<if [0, 1].includes(_npc.gender)>>
<<video 'hospital/bleeding1'>>
<br /><br />
As she cleans up the last of her supplies, you notice her eyes flicker to your crotch a few times, though she quickly averts her gaze each time.
Despite her obvious professionalism, there's a momentary flicker of curiosity or perhaps concern in her expression.
<br /><br />
<<if _npc.horny >= 50>>
<<video 'hospital/bleeding2'>>
<br /><br />
Without warning, she slides her hand under the sheet, her fingers brushing lightly against your dick as she grabs it and strats to stroke it.
Her touch is gentle, almost soothing, but there's an undeniable tension in the air.
<br /><br />
<<if recall($suppCode)>>
<<link 'Let her continue'>>
<<goto 'Hospital - bleeding fuck'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Let her continue
<<notPatreonIcon>>
</div>
<</if>>
<</if>>
<</if>>
<<link 'Leave'>>
<<unset $tmpEvent>>
<<goto 'Youth district'>>
<</link>><h1 class="ptitle">HOSPITAL</h1>
<br />
<<set _randomDoctorJobs = [
'is cleaning up one of the beds.',
'is putting some medicine back in shelves.',
'is cleaning floor.'
]>>
<<set _doctors = setup.getPersonsForLocation($guests, 'hospital')>>
<<unset $tmpGirl>>
<table id="slaves">
<<if _doctors.length > 0 && timeBetween('08:00', '22:00')>>
<<for _doctorI, _doctor range _doctors>>
<<set _guest = $guests[_doctor]>>
<<capture _doctor, _guest>>
<<set _guest.location = 'hospital'>>
<<set _genderClass = 'gender-' + setup.genderClass(_guest)>>
<<set _customColorStyle = ''>>
<<if typeof _guest.color !== 'undefined' >>
<<set _customColorStyle = ' npc-color color-' + _guest.color >>
<</if>>
<<if !_guest.gender && !_femaleDoctor>>
<<set _femaleDoctor = _doctor>>
<</if>>
<tr>
<td style="min-width: 25%">
<center>
<<actionImage _guest working>>
</center>
<span @class="_genderClass + _customColorStyle">
<<link _guest.name>>
<<set $tmpGirl to _guest>>
<<set $tmpGirl.location = 'hospital'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $guestId = _doctor>>
<<unset $slaveId, $childId, $charId>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $tmpGirlBack = 'Hospital'>>
<<goto `$tmpGirlViewBack`>>
<</link>>
</span> <<=setup.getRandomElement(_randomDoctorJobs)>>
<<if (_guest.horny ?? 0) >= 80>>
<<=ucfirst(setup.pronounceWhat(_guest))>> looks <span style="background-image: radial-gradient(rgba(255, 182, 193, 0.5) 10%, transparent 90%); padding: 0 4px;">distracted</span>, and could use some attention.
<</if>>
<<=setup.npcListInfo(_guest, _isSick, _isRest)>>
</td>
</tr>
<</capture>>
<</for>>
<</if>>
<<for _guestI, _guest range $guests>>
<<capture _guestI, _guest>>
<<set _isSick = (typeof _guest.sick !== 'undefined')>>
<<if !_isSick>>
<<continue>>
<</if>>
<tr>
<td style="min-width: 25%">
<<if setup.getAge(_guest) < 18>>
<span @class="''+_genderClass+''">
<<link _guest.name>>
<<set $guestId = _guestI>>
<<unset $slaveId, $charId, $childId>>
<<set $tmpGirl = _guest>>
<<set $tmpGirlBack = 'Guest house'>>
<<goto 'Child view'>>
<</link>>
</span>
<<else>>
<span @class="''+_genderClass+''">
<<=setup.displayName(_guest)>>
</span>
<<=setup.npcListInfo(_guest, _isSick, _isRest)>>
<</if>>
</td>
<td>
<<if [0,2].includes(_guest.gender) && setup.getAge(_guest) >= 17>>
Beauty: <<=_guest.beauty>>
<</if>>
</td>
<td>
Age: <<=setup.getAge(_guest)>>
</td>
<td>
<<if _guest.assignedTo>>
(<<=_guest.assignedTo>>)
<<elseif typeof $player.companions['guest:' + _guestI] !== 'undefined'>>
(companion)
<</if>>
</td>
</tr>
<</capture>>
<</for>>
<<for _npcI, _npc range $slaves>>
<<capture _npcI, _npc>>
<<set _isSick = (typeof _npc.sick !== 'undefined')>>
<<if !_isSick>>
<<continue>>
<</if>>
<tr>
<td style="min-width: 25%">
<<if setup.getAge(_npc) < 18>>
<span @class="''+_genderClass+''">
<<link _npc.name>>
<<set $slaveId = _npcI>>
<<unset $guestId, $charId, $childId>>
<<set $tmpGirl = _npc>>
<<set $tmpGirlBack = 'Hospital'>>
<<goto 'Child view'>>
<</link>>
</span>
<<else>>
<span @class="''+_genderClass+''">
<<=setup.displayName(_npc)>>
</span>
<<=setup.npcListInfo(_npc, _isSick, _isRest)>>
<</if>>
</td>
<td>
<<if [0,2].includes(_npc.gender) && setup.getAge(_npc) >= 17>>
Beauty: <<=_npc.beauty>>
<</if>>
</td>
<td>
Age: <<=setup.getAge(_npc)>>
</td>
<td>
<<if _npc.assignedTo>>
(<<=_npc.assignedTo>>)
<<elseif typeof $player.companions['slave:' + _npcI] !== 'undefined'>>
(companion)
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br />
[[Back|Youth district]]
<<if setup.perkHas('bleeding') && _femaleDoctor>>
<<set $tmpEvent = {
id: _femaleDoctor
}>>
<<goto 'Hospital - bleeding'>>
<</if>><h1 class="ptitle">LIBRARY</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
As you rose, a hand shot out from the shadows beside you, fingers clamping onto the waistband of your pants with surprising force.
<<=setup.displayName(_npc)>> yanked them down in one swift motion, the fabric pooling around your ankles before you could react.
Your cock sprang free, already thick and nearly rigid from the idle tension of the day, veins pulsing along its length, the head flushed and glistening slightly at the tip.
<br /><br />
<<sayNpc _npc>>
Wow!
<</sayNpc>>
<br />
<<video 'library/lib1'>>
<br /><br />
She froze, eyes widening in the low light, her breath catching audibly.
<br /><br />
Her lips parted, but no words came; instead, she stared at your erection bobbing inches from her face, the sheer size and readiness making her cheeks flush beneath the grime.
<br /><br />
<<video 'library/lib2'>>
<br /><br />
<<=setup.displayName(_npc)>>'s tongue darted out tentatively, tracing the underside of your shaft from base to tip in a single, deliberate lick that left a wet trail.
She wrapped her fingers around the base, squeezing gently to steady it, and parted her lips wider.
<br /><br />
<<video 'library/lib3'>>
<br /><br />
You felt her throat tighten as she pushed deeper, gagging slightly but not pulling back, her free hand bracing against your thigh for leverage.
The wet sounds of her sucking filled the quiet library—slurps and soft hums vibrating through your cock, building the pressure in your balls.
<br /><br />
<div id="option_deepthroat">
<<linkreplace 'Force her deeper'>>
<<set _deepthroat = true>>
<<video 'library/lib4'>>
<br /><br />
She struggled, her face turning red, tears welling in her eyes from the strain, but you didn't let up.
Your cock buried itself to the hilt, balls pressing against her slick chin, the tip lodged deep in her gullet.
The sensation was overwhelming—her throat fluttering desperately, hot and vice-like, squeezing you with every futile swallow
<br /><br />
<</linkreplace>>
</div>
<div id="option_fuck">
<<linkreplace 'Fuck her'>>
<<set _fuck = true>>
<<run $('#option_cum_pussy').show()>>
<<if _npc.virgin>><<run setup.npc.addHistory(_npc, 'virgin_lost', { with: 'mc' })>><</if>>
<<set _npc.virgin = false>>
<<if !_deepthroat>>
<<run $('#option_deepthroat').hide()>>
<</if>>
Grabbing her shoulders, you spun her around roughly, forcing her to her hands and knees on the dusty floor amid scattered books and forgotten shelves.
<br />
The fabric clings to her skin, damp from her unwilling excitement, and you tug it to the side with a firm pull, exposing her slick folds completely.
<br /><br />
<<video 'library/lib5'>>
<br /><br />
You gripped her hips harder, thumbs pressing into the soft flesh, and started thrusting, pulling back to plunge deep again.
Each stroke made her body rock forward, her ass cheeks quivering from the impact, while her juices coated your shaft, easing the way for your relentless pace.
<br /><br />
<<video 'library/lib6'>>
<br /><br />
he couch creaked under the force, springs protesting as you set a punishing rhythm, slamming into her over and over.
Her walls fluttered around you, still sensitive from the floor fucking, squeezing your shaft like a vice.
<br /><br />
<</linkreplace>>
</div>
<div id="option_cum_face">
<<linkreplace 'Cum on her face'>>
<<set _npc.horny = 0>>
<<horny_reset>>
<<run $('#option_cum_pussy').hide()>>
<<video 'library/lib7'>>
<<if !_fuck>>
<<run $('#option_fuck').hide()>>
<</if>>
<<if !_deepthroat>>
<<run $('#option_deepthroat').hide()>>
<</if>>
<br /><br />
It splattered across her cheek, hot and sticky, dripping down toward her parted lips.
You angled higher with the next spurt, coating the bridge of her nose and the frames of her glasses, the white strands clinging to the glass like obscene decorations.
She gasped, tongue flicking out instinctively to catch a drop that landed on her lower lip,
but you kept pumping, unleashing more jets—one hitting her forehead, matting her hair, another streaking across her chin and down her neck, pooling in the hollow of her throat.
<br /><br />
<</linkreplace>>
</div>
<div id="option_cum_pussy" style="display:none">
<<linkreplace 'Cum inside her'>>
<<set _npc.horny = 0>>
<<run $('#option_cum_face').hide()>>
<center>
<<image 'game/misc/creampie_prone.webp'>>
</center>
<br />
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<</if>>
Her pussy started to spasm, inner muscles rippling along your length, and you felt your own release coiling tight.
With a final, deep plunge, you buried yourself inside her, grinding against her cervix as you came, hot spurts flooding her depths
<br /><br />
<</linkreplace>>
</div>
<<link 'Leave'>>
<<goto 'Library'>>
<</link>><h1 class="ptitle">LIBRARY</h1>
<br />
<<set _npc = $guests[$tmpEvent.id]>>
<<if $guests[$tmpEvent.id].virgin>><<run setup.npc.addHistory($guests[$tmpEvent.id], 'virgin_lost', { with: 'mc' })>><</if>>
<<set $guests[$tmpEvent.id].virgin = false>>
<<sayNpc _npc>>
Oh I like what you're thinking...
<</sayNpc>>
<br />
A playful smile danced across her lips as she glanced around the secluded space you had crafted, her eyes alight with mischief and curiosity.
<br /><br />
<<video 'library/sex1'>>
<br /><br />
With a deliberate slowness that sent a thrill down your spine, she grabbed your dick, her fingers trailing sensually along it.
Holding your gaze with an intensity that left no room for doubt, she brought your dick to her lips, licking it with a tantalizingly slow and deliberate motion.
<br /><br />
The air between you crackled with an electric tension as she continued, each movement calculated to stoke the flames of desire that burned hot between you.
<br />
She slowly pulled of her shirt and threw it on the ground.
<br /><br />
<<video 'library/sex2'>>
<br /><br />
<<sayNpc _npc>>
How about this?
<</sayNpc>>
<br />
She grabbed her breasts and wrapped them around your dick. With deliberate motion motions she started to rub your dick with them.
<br />
<br />
As the tension between you both reached its peak, she stood up from her seat with a graceful movement that seemed to defy the harshness of the post-apocalyptic world around you.
Turning around to face away from you, her silhouette outlined against the faint light filtering through the room.
<br /><br />
<<video 'library/sex3'>>
<br /><br />
With deliberate slowness, she began to peel away the fabric of her shorts, each movement imbued with a sensuality that left you breathless. The air crackled with anticipation as she revealed more of her sun-kissed skin, the dim light of the room casting soft shadows across her form.
<br /><br />
<<sayNpc _npc>>
How about you fuck me right here?
<</sayNpc>>
<br />
She grabs your dick and puts it against her already half wet pussy.
<br /><br />
<<video 'library/sex4'>>
<br /><br />
You surrendered yourself completely to the pleasure of her touch, allowing yourself to be swept away by the currents of passion that surged between you.
In that moment, there were no words, no thoughts, only the raw intensity of the connection you shared, a symphony of desire and longing that echoed through the depths of your soul as she slides on your dick.
<br /><br />
<<sayNpc _npc>>
Uh, fuck me.. Harder! Harder!
<</sayNpc>>
<br />
<<video 'library/sex5'>>
<br /><br />
With a surge of determination, you take the lead, grabbing her waist and thrusting deep inside her.
<br />
And as you lose yourself in the heat of the moment you stop and she once again takes the lead. With fast movements she fucks you. As you feel you're close you forget to warn her...
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<center>
<<image 'game/misc/creampie.webp'>>
</center>
<br /><br />
<<sayNpc _npc>>
Oh my... That's a lot..
<</sayNpc>>
<br />
She starts to clean up and pick her clothes off the floor.
<br /><br />
<<link 'Leave'>>
<<goto 'Library'>>
<</link>>
<</linkreplace>><h1 class="ptitle">LIBRARY</h1>
<br />
<<run setup.cabinInventory.drop('book', 1)>>
<<set $player.stats.books_read = ($player.stats.books_read ?? 0)+1>>
<center>
<<image 'places/library/read.jpg' 'sfw'>>
</center>
<br />
Amidst the dimly lit confines of our post-apocalyptic sanctuary, you find solace in the pages of a weathered tome salvaged from the remnants of civilization.
With each word absorbed, you feel a spark of intellect flicker within you, a glimmer of hope amidst the desolation that surrounds you.
<br /><br />
<<set _giveInt = 1>>
<<if $player.int < 50>>
<<set _giveInt += 2>>
<<elseif $player.int < 100>>
<<set _giveInt++>>
<</if>>
<<set $player.int += _giveInt>>
<strong>
Your intelligence increased by <<=_giveInt>>.
</strong>
<<addmins 60>>
<<energy -20>>
<<set _guests = setup.getAvailablePersons18yo($guests)>>
<<if (_guests[0] ?? []).length>>
<<set _randomGuestId = setup.getRandomElement(_guests[0])>>
<<set _randomGuest = $guests[_randomGuestId]>>
<<if _randomGuest.horny > 50>>
<<set _npc = _randomGuest>>
<</if>>
<</if>>
<br /><br />
<<if _npc && setup.percentageChance(80)>>
<<sayNpc _npc>>
Lost in another world, I see.
<</sayNpc>>
<br />
She moves closer, her presence enveloping you like a warm embrace.
<br /><br />
<<sayNpc _npc>>
Perhaps we could navigate it together.
<</sayNpc>>
<br />
<<linkreplace 'Unzip your pants'>>
<<run $('#option_no').hide()>>
<center>
<<image 'places/library/bj.webp'>>
</center>
<br />
As you continue to immerse yourself in the book's world, you barely notice <<=setup.displayName(_npc)>> graceful movement as she crawls under the table and grabs your dick while you keep reading it.
<br />
A soft chuckle escapes her lips as she continues.
<br /><br />
<center>
<<image 'places/library/bj2.webp'>>
</center>
<br />
<<sayNpc _npc>>
I hope I'm not distracting you too much from your book.
<</sayNpc>>
<br />
<center>
<<image 'places/library/bj.webp'>>
</center>
<br />
She continues to suck your hard dick as you still hold book in your hands. Look like she wants more attention from you.
<br /><br />
<<horny 20>>
<div id="option_fuck">
<<if recall($suppCode)>>
<<link 'Have more fun'>>
<<set $tmpEvent = {
id: _randomGuestId
}>>
<<goto 'Library - read book extended'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Have more fun
<<notPatreonIcon>>
</div>
<</if>>
</div>
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
<<image 'places/library/cum.webp'>>
</center>
<br />
As you are ready to cum she pushes herself back from you and opens her mouth, letting her tongue out. With naughty smile in her eyes she catches each drop of your cum.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<div id="option_no">
<<if recall($suppCode)>>
<<link 'Tell her that you will continue to read the book'>>
<<set $tmpEvent = {
id: _randomGuestId
}>>
<<goto 'Library - read book 2'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Tell her that you will continue to read the book
<<notPatreonIcon>>
</div>
<</if>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Library'>>
<</link>><h1 class="ptitle">LIBRARY</h1>
<br />
Rusty nails, weathered planks of wood, and discarded furniture become the building blocks of our sanctuary of books.
With each nail hammered into place and each shelf painstakingly erected, the library begins to take shape, a beacon of hope amidst the desolation.
<br /><br />
<center>
[img[setup.ImagePath+'places/library/built.jpg']]
</center>
<br />
Weathered shelves line the walls, their surfaces adorned with an eclectic array of volumes salvaged from abandoned buildings and scavenged from the remnants of civilization.
Tattered pages whisper tales of forgotten worlds, their words a testament to the resilience of human ingenuity in the face of adversity.
<br /><br />
<<if $guests.length > 0>>
<<sayNpc $guests[0]>>
Building this library was a stroke of brilliance, but do you know what's even more fascinating? The power the books hold.
<</sayNpc>>
<br />
<<sayNpc $guests[0]>>
They say that reading these books can increase your intelligence. Imagine what we could learn, what we could become.
<</sayNpc>>
<<else>>
<strong>Now you can read books you have found and increase your intelligence</strong>
<</if>>
<br /><br />
The air around you crackles with anticipation, and in that moment, amidst the shelves of salvaged wisdom, you realized that perhaps there is more to this post-apocalyptic world than mere survival.
<br /><br />
<<link 'Leave'>>
<<set $game.location.library = true>>
<<set $game.location.youth_district = true>>
<<goto 'Youth district'>>
<</link>><h1 class="ptitle">LIBRARY</h1>
<br />
Unread books in your shelves: <strong><<=setup.cabinInventory.count('book')>></strong>
<br /><br />
<<if setup.cabinInventory.count('book') && $player.energy >= 20>>
<<link 'Read book'>>
<<goto 'Library - read book'>>
<</link>>
<</if>>
<<link 'Leave'>>
<<goto 'Youth district'>>
<</link>><br />
<h1 class="ptitle">
MILK BARN
</h1>
<br />
You grabbed a clean glass jar from the shelf—salvaged from some pre-war kitchen—and positioned it under her left breast.
Your rough hand cupped the underside, squeezing firmly from base to tip. A girl winced, a soft gasp escaping her
lips as milk jetted out in forceful streams, splattering into the jar with wet patters.
<br /><br />
<center>
<<image 'game/misc/milking_tit.webp'>>
</center>
<br />
Her breasts were sensitive; you had to pinch and tug gently at first to coax the flow. She whimpered, tears welling in her eyes, but the milk came steadily once started—thin,
steady squirts that puddled in the jar.
<br /><br />
<center>
<<image 'game/misc/milk_drink.gif'>>
</center>
<br /><br />
You lifted the mug, the weight solid in your hand, and met her gaze—defiant spark mixed with weary defeat and wide-eyed fear.
Without breaking eye contact, you brought it to your lips and tilted it back, gulping down the rich, creamy fluid.
<br /><br />
<<set $player.drinkMilk = true>>
<<link 'Leave'>>
<<addmins 10>>
<<energy 20>>
<<goto 'Milk barn'>>
<</link>><br />
<h1 class="ptitle">
<<backButton 'Youth district'>>
MILK BARN
</h1>
<br />
<<set _guestsWomen = setup.getAvailablePersons18yo($guests)[0] ?? []>>
<<set _id = setup.getRandomElement(_guestsWomen)>>
<<set _npc = $guests[_id]>>
As you stepped into the dimly lit milk barn, the scent of damp hay and old wood mingled with the faint aroma of clean laundry.
You noticed <<=setup.displayName(_npc)>> by the far wall, carefully draping freshly washed clothes over a rope stretched across the room, each item dripping slowly onto the dusty floor.
Outside, rain pattered steadily against the corrugated roof, creating a calming rhythm in the barn.
<br /><br />
<center>
<<image 'places/milk_barn/dry.jpg'>>
</center>
<br />
<<linkreplace 'Approach her'>>
<<run $('#option_ignore').hide()>>
<<=setup.displayName(_npc)>> glanced back, a hint of surprise in her eyes quickly fading into a small smile.
<br /><br />
<<sayNpc _npc>>
Hey! Hope you don't mind. Had to find a place to dry out clothes.
<</sayNpc>>
<br />
<<linkreplace 'Lift her dress'>>
Your hand lingered at her waist, and she leaned into your embrace, the warmth between you almost tangible in the chilly, rain-dampened barn.
Then you slowly lifted up her dress, revealing her bare ass. No panties...
<br /><br />
<<video 'milk_barn/dry1'>>
<br /><br />
<<if setup.sexChance(_npc)>>
<<sayNpc _npc>>
Oh what you have in mind?
<</sayNpc>>
<<else>>
<<set _npc.happy -= 20>>
<<sayNpc _npc>>
What are you doing? Not here. Not now
<</sayNpc>>
<</if>>
<br />
<<linkreplace 'Push her on stack of hay'>>
<<video 'milk_barn/dry2'>>
<br /><br />
<<sayNpc _npc>>
Not now! Let me finish the clothes.
<</sayNpc>>
<<set _npc.happy -= 10>>
<br />
<center>
<<image 'places/milk_barn/dry2.jpg'>>
</center>
<br />
<<linkreplace 'Finger her ass'>>
<<video 'milk_barn/dry3'>>
<br /><br />
<<=setup.displayName(_npc)>> stands still as you spit on her ass and slowly slide finger inside it.
She strains her asshole but slowly relaxes as as you slide your finger deper and deeper inside her.
<br /><br />
<<video 'milk_barn/dry4'>>
<br /><br />
<<sayNpc _npc>>
Uh I kind of like that.
<</sayNpc>>
<br />
<<if (_npc.traitsLocked ?? []).includes('analslut') && setup.percentageChance(30)>>
<<run _npc.traitsLocked.splice(_npc.traitsLocked.indexOf('analslut'), 1)>>
<strong>Anal slut locked trait removed!</strong>
<br /><br />
<</if>>
<br /><br />
As she moans inside the barn, she puts her hands behind her and spreads her ass cheeks wide open.
<br /><br />
<<sayNpc _npc>>
Not inside, please!
<</sayNpc>>
<br />
<<video 'milk_barn/dry6'>>
<br /><br />
You can feel her asshole getting more relaxed with each thrust. In few random moments although you feel that thrust has been too hard as she strains her asshole for a second, forcing you to slow down.
<br /><br />
<<linkreplace 'Cum on her ass'>>
<<addmins 20>>
<<horny_reset>>
<<set _npc.horny = 0>>
<<video 'milk_barn/dry7'>>
<br /><br />
With the last of your thrust, you pull your dick out of her ass as you cum all over it and her clean dress too.
She is leaning completely against the pile of hay with her stomach and waiting for you to finish..
<br /><br />
<<sayNpc _npc>>
Are you finished? Can I finish putting out clothes now?
<</sayNpc>>
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Milk barn'>>
<</link>>
<</linkreplace>>
<div id="option_ignore">
<<link 'Ignore her'>>
<<addmins 5>>
<<goto 'Milk barn'>>
<</link>>
</div><h1 class="ptitle">
MILK BARN
</h1>
<br />
<<set _milkwarden = setup.getPersonsForLocation($guests, 'milkwarden')>>
<<set _hasMilkwarden = _milkwarden.length>>
<<if _hasMilkwarden>>
<<set _milkwarden = $guests[_milkwarden[0]]>>
<<=setup.displayName(_milkwarden)>> working in the barn.
<br /><br />
<table id="slaves" class="npc-list">
<<for _i to 0; _i lt $slaves.length; _i++>>
<<capture _i>>
<<set _isSick = (typeof $slaves[_i].sick !== 'undefined')>>
<<set _isRest = (typeof $slaves[_i].rest !== 'undefined')>>
<<set _dayOff = _isSick || _isRest>>
<<if $slaves[_i].assignedTo !== 'milk_barn' || !setup.isAtWork($slaves[_i], $weather)>>
<<continue>>
<</if>>
<<set _hasCow = true>>
<<set $slaves[_i].milking = true>>
<<set _genderClass = 'gender-' + setup.genderClass($slaves[_i])>>
<tr>
<td colspan="3">
<center>
<<set $slaves[_i].location = 'milk_barn'>>
<<set _npc = clone($slaves[_i])>>
<<actionImage _npc 'milking' 'no-text'>>
</center>
</td>
</tr>
<tr class="item">
<td style="min-width: 25%">
<span @class="''+_genderClass+''">
<<link $slaves[_i].name>>
<<set $tmpGirl to $slaves[_i]>>
<<set $tmpGirl.location = 'milk_barn'>>
<<set $tmpGirlBack = 'Milk barn'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $slaveId = _i>>
<<unset $guestId, $charId, $childId>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<=setup.npcListInfo($slaves[_i], _isSick, _isRest)>>
</span>
</td>
<td>
<<npcListView $slaves[_i] _i 'slave'>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<else>>
Milk warden not assigned
<br /><br />
<</if>>
<br />
<<if _hasCow && !$player.drinkMilk>>
<<link 'Drink milk'>>
<<goto 'Milk barn - drink milk'>>
<</link>>
<</if>>
<<set _cheeseOn = ($player.milkBarnCheese !== false)>>
<<set _cheeseToggleLabel = 'Cheese production: ' + (_cheeseOn ? 'ON' : 'OFF')>>
<<linkreplace _cheeseToggleLabel>>
<<set $player.milkBarnCheese = !_cheeseOn>>
Cheese production is now <<if !_cheeseOn>><span style="color:#55cc88;">ON</span> — milk will be converted to food each night.<<else>><span style="color:#e09855;">OFF</span> — milk will accumulate in storage.<</if>>
<</linkreplace>>
<<link 'Back'>>
<<goto 'Youth district'>>
<</link>>
<<if !($locationEvents.milk_barn ?? false)>>
<<if recall($suppCode) && setup.percentageChance(10) && timeBetween('08:00', '12:00') && $weather?.weather == 'rain'>>
<<set $locationEvents.milk_barn = true>>
<<goto 'Milk barn - dry clothes'>>
<</if>>
<</if>><br />
<h1 class="ptitle">
SCHOOL
</h1>
When <<=setup.displayName($tmpGirl)>> eyes found yours near the doorway, she paused, and a slow smirk curved across her lips.
<br /><br />
<<sayNpc $tmpGirl>>
All right, everyone. Take twenty. Stretch, breathe. The world isn’t going anywhere without you.
<</sayNpc>>
<br />
<center>
<<actionImage $tmpGirl 'break'>>
</center>
<br />
The students murmured, sliding off their benches, darting out into the courtyard like a flock of sparrows given sudden freedom.
The air grew quieter, and all her focus turned toward me. You stepped closer, the faint scent of chalk and woodsmoke lingering between you.
<br /><br />
<<sayNpc $tmpGirl>>
You never could resist showing up unannounced
<</sayNpc>>
<br />
She teased, tilting her head slightly.
<br /><br />
<<linkreplace 'Pull down pants'>>
With a slow, deliberate movement, you unzipped your pants, pulling out your already hard cock.
<<=setup.displayName($tmpGirl)>>'s eyes widened in surprise, but the smile on her face grew, a wicked glint replacing the curiosity in her gaze.
<br /><br />
<<video 'school/break1'>>
<br /><br />
Without a word, she rose from her chair, her movements graceful and confident.
She stepped closer, her eyes locked on yours, a look of pure desire and anticipation in her gaze.
With a slow, sensual movement, she reached out, her hand wrapping around your dick, her fingers squeezing and exploring, sending jolts of
pleasure coursing through your body.
<br /><br />
<<sayNpc $tmpGirl>>
You want to do it right here?
<</sayNpc>>
<br />
<<=setup.displayName($tmpGirl)>> got on her knees.
<br /><br />
<<video 'school/break2'>>
<br /><br />
You could feel the heat of her breath, the wetness of her saliva as she began to suck you, her head bobbing up and down,
her movements slow and sensual, her tongue swirling and exploring, sending waves of pleasure coursing through your body.
<br /><br />
<<video 'school/break3'>>
<br /><br />
<<=setup.displayName($tmpGirl)>> pulled back slightly, her eyes watering, but her gaze never leaving yours.
She took a deep breath, her chest heaving, and then she took you in again, this time pushing past the resistance, her throat opening to accommodate your length.
<br /><br />
<<sayNpc $tmpGirl>>
Cum in my mouth
<</sayNpc>>
<br />
<<you>>
Not yet.
<</you>>
<br />
As you pulled her up, your bodies pressing together, your cock still hard and ready, you turned her around, your hands finding her hips,
pulling her back against you. With a sense of urgency and dominance, you bent her over the classroom table, her ass
pressed against you, her back arched, offering you a new angle, a new depth of penetration.
<br />
<<video 'school/break4'>>
<br /><br />
You reached down, your fingers hooking into the waistband of her panties, pulling them aside with a swift, decisive movement.
<br /><br />
<<sayNpc $tmpGirl>>
Just don't rip them, please
<</sayNpc>>
<br />
<<horny 20>>
<<linkreplace 'Fuck her'>>
You thrust into her with a single, deep movement, your cock sliding into her tight, wet pussy with ease.
She let out a loud moan, her body convulsing as you filled her, her pussy clenching around your shaft, milking you with each movement.
<br /><br />
<<video 'school/break5'>>
<br /><br />
<<sayNpc $tmpGirl>>
Ahhh.. Fuck me!
<</sayNpc>>
<br />
<<video 'school/break6'>>
<br /><br />
Her body moved with in sync with you. Her moans got louder and louder as you slowly increased her pace with each thrust.
<br /><br />
<<linkreplace 'Pull out'>>
<<video 'school/break7'>>
<br /><br />
With a final, deep thrust, you pulled out, just before you started to cum all over her ass.
<br /><br />
Exhausted she just lied there on the table with her all ass covered in your warm semen.
<br /><br />
<<horny_reset>>
<<set $tmpGirl.horny = 0>>
<<set $tmpGirl.happy = Math.min(100, $tmpGirl.happy += 10)>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<link 'Talk with her'>>
<<goto 'NPC view - guest'>>
<</link>>
<<link 'Leave'>>
<<set $guests[$guestId] = $tmpGirl>>
<<addmins 5>>
<<goto 'Youth district'>>
<</link>><br />
<h1 class="ptitle">
SCHOOL
</h1>
<<set $player.quests.school_built = true>>
<<set _teachers = setup.filterNPCs($guests, {'skills_inc': ['teacher'], 'gender':0})[0]>>
<<set _npc = $guests[_teachers[0]]>>
You step into the school you’ve built from the bones of a broken world.
The floor creaks under your boots, and light streams through the cracked windows, catching on motes of dust in the air.
It's quiet — almost sacred — like the ruins themselves are holding their breath.
<br /><br />
<center>
<<image 'places/school/interior.jpg' sfw>>
</center>
<br /><br />
<<=setup.displayName(_npc)>> trails in behind you, her eyes scanning the room. She stops, stunned. Then she grins.
<br /><br />
<<sayNpc _npc>>
You actually did it
<</sayNpc>>
<br />
She disappears for a moment into a back room, then returns, dressed in a faded, button-up blouse and round glasses she must have found in a supply crate.
The look is half-serious, half-playful — teacher chic, apocalypse-style. She even picks up a ruler and taps it against her palm with mock sternness.
<br /><br />
<<sayNpc _npc>>
Well? Can I teach here? I promise I’m good at it.
<</sayNpc>>
<br />
She looks up at you through those glasses, lips curved in a teasing smile. Her hand brushes against yours, then lingers.
<br /><br />
<<sayNpc _npc>>
And if you’re still on the fence, maybe I can offer... extra motivation.
<</sayNpc>>
<br />
<<video 'school/teacher1'>>
<br /><br />
Her hands moved lower, unbuckling your belt, unbuttoning your pants.
She dropped to her knees, her eyes never leaving yours as she pulled out your cock, already hard and ready.
She stroked it a few times, her touch firm and confident, before she took you in her mouth, her lips soft and wet.
<br /><br />
<<video 'school/teacher2'>>
<br /><br />
<<=setup.displayName(_npc)>> sucked you with unbridled enthusiasm, her head bobbing up and down with purpose, her hand working in tandem with her mouth.
She took you deep, her nose pressing against your pelvis, her lips tight around the base of your cock.
<br /><br />
<<video 'school/teacher3'>>
<br /><br />
You could feel the back of her throat, the slight gag reflex that only served to heighten the pleasure.
She pulled back slightly, a wicked smile on her lips as she looked up at you.
<br /><br />
<<sayNpc _npc>>
You liked that, didn't you? But I thought you need more motivation.
<</sayNpc>>
<br />
With that, she stood up, pushed a chair against the wall. She turned around, bent over, and pulled down her pants, revealing her bare ass.
<br /><br />
<<video 'school/teacher4'>>
<br /><br />
She looked over her shoulder at you, a flirtatious glint in her eye.
<br /><br />
<<sayNpc _npc>>
Come on, give me what I want, and I'll give you what you need.
<</sayNpc>>
<br />
You didn't need to be told twice. You positioned yourself behind her, your cock hard and ready.
<br /><br />
She let out a loud moan, her back arching as she pushed against you, urging you to go deeper.
<br /><br />
<<video 'school/teacher5'>>
<br /><br />
Your hands gripped her hips, your fingers digging into her soft flesh as you started to move, your hips thrusting in a relentless rhythm.
The room filled with the sound of your bodies slapping together, her moans of pleasure, and your grunts of exertion.
<br /><br />
<<sayNpc _npc>>
Fuck me like you meant it!
<</sayNpc>>
<br />
<<video 'school/teacher6'>>
<br /><br />
You obliged, your hips moving faster, your cock slamming into her with increased force.
The chair rattled against the wall, the sound of your passion echoing through the empty school.
<<=setup.displayName(_npc)>>'s moans turned to screams of pleasure, her body shaking with the intensity of your thrusts.
<br /><br />
<<video 'school/teacher7'>>
<br /><br />
<<=setup.displayName(_npc)>> then got off the chair, her body still shaking slightly from the intensity of her orgasm.
<<set _npc.horny = 0>>
<<set _npc.orgasms ??= 0>>
<<set _npc.orgasms++>>
She looked up at you, a mischievous glint in her eye as she dropped back to her knees.
She took your cock, still hard and glistening with her juices, in her hand and stroked it a few times before taking you back into her mouth.
<br /><br />
<<video 'school/teacher9'>>
<br /><br />
She took you deep again, her nose pressing against your pelvis, her lips tight around the base of your cock. You could feel the pleasure building again, the pressure coiling at the base of your spine, ready to explode once more.
<br /><br />
<<sayNpc _npc>>
Cum for me.
<</sayNpc>>
<br />
<<=setup.displayName(_npc)>> sensed your impending release and pulled back, her hand stroking you quickly and firmly.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<set _npc.horny = 0>>
<<set _npc.relationship = Math.max(_npc.relationship + 10, 100)>>
<<video 'school/teacher8'>>
<br /><br />
With a final, deep stroke, you came undone, your hot cum shooting out, coating her face, her eyes, her nose, her lips.
She closed her eyes, a look of pure bliss on her face as she felt your release on her skin.
<br /><br />
<<sayNpc _npc>>
So... does that mean I got the job?
<</sayNpc>>
<br />
<<you>>
Maybe...
<</you>>
<br />
<<link 'Leave'>>
<<addmins 30>>
<<goto 'Youth district'>>
<</link>>
<</linkreplace>><br />
<h1 class="ptitle">
<<backButton 'Youth district' 'State.setVar("$teach", undefined)'>>
SCHOOL
</h1>
<br />
<<set _teachOptions = ['random', 'gardener', 'cook', 'doctor', 'shopkeeper', 'teacher', 'hunter']>>
<<set _teacherList = setup.getPersonsForLocation($guests, 'school')>>
<<set _randomTeacherJobs = [
'is writing something on the board.',
'is reading aloud from a battered textbook.',
'is marking papers at the front desk.',
'is pinning a hand-drawn map to the wall.',
'is sorting through a pile of salvaged books.',
'is helping a student sound out a word.',
'is explaining something with chalk in hand, back to the class.'
]>>
<<if _teacherList.length > 0 && timeBetween('09:00', '15:00')>>
<<set _teacher = $guests[_teacherList[0]]>>
<<set _teacher.location = 'school'>>
<center>
<<actionImage _teacher teaching>>
</center>
<br />
<<=setup.displayName(_teacher)>> <<=setup.getRandomElement(_randomTeacherJobs)>>
<<if (_teacher.horny ?? 0) >= 80>>
<br /><<=ucfirst(setup.pronounceWhat(_teacher))>> looks <span style="background-image: radial-gradient(rgba(255, 182, 193, 0.5) 10%, transparent 90%); padding: 0 4px;">distracted</span>, and could use some attention.
<</if>>
<br /><br />
<<set _girlGuestLink = 'Approach ' + _teacher.name>>
<<link `_girlGuestLink`>>
<<set $tmpGirl = _teacher>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $tmpGirlBack = 'School'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $guestId = _teacherList[0]>>
<<unset $slaveId, $charId, $childId>>
<<if $tmpGirl.horny >= 50 && $tmpGirl.likesGuys && $tmpGirl.race == 'white' && !$tmpGirl.gender && recall($suppCode)>>
<<goto 'School - teacher break'>>
<<else>>
<<goto 'NPC view - guest'>>
<</if>>
<</link>>
<br /><br />
<table id="slaves" class="npc-list">
<<for _nurseryI, _nursery range $nursery>>
<<capture _nurseryI>>
<<set _age = setup.getAge(_nursery)>>
<<if _age < 5>>
<<continue>>
<</if>>
<<set _genderClass = 'gender-' + setup.genderClass(_nursery)>>
<<set _customColorStyle = ''>>
<<if typeof _nursery.color !== 'undefined'>>
<<set _customColorStyle = ' npc-color color-' + _nursery.color>>
<</if>>
<<if !$nursery[_nurseryI].teach>>
<<set $nursery[_nurseryI].teach = 'random'>>
<</if>>
<<set _localTeach = $nursery[_nurseryI].teach>>
<tr class="item">
<td class="min25">
<<if ($nursery[_nurseryI].teachAdvStudy ?? 0) > 0 >>
<span style="margin-left: 18px; font-size:140%" data-balloon-length="medium" @aria-label="'Advanced Study active'" data-balloon-pos="up-left">
📖
</span>
<<elseif setup.cabinInventory.count('book') >>
<span data-balloon-length="medium" @aria-label="'Enable Advanced Study'" data-balloon-pos="up-left">
<<link '📘'>>
<<dialog 'Begin Advanced Study'>>
<<if (setup.cabinInventory.count('book') ?? 0) > 0 >>
Do you want to consume one book (you have <<= setup.cabinInventory.count('book') >>) to enroll <<= $nursery[_nurseryI].name>> in advanced study? <br />(Accelerates learning, lasts 5-10 days) <br />
<<link 'OK'>>
<<set $nursery[_nurseryI].teachAdvStudy = randomInteger(5,10)>>
<<run setup.cabinInventory.drop('book', 1)>>
<<dialogclose>>
<<goto 'School'>>
<</link>>
<<else>>
You need at least one book in inventory to enroll a student in advanced study. <br />
<<link 'OK'>>
<<dialogclose>>
<</link>>
<</if>>
<</dialog>>
<</link>>
</span>
<</if>>
<span @class="_genderClass + _customColorStyle">
<<= setup.displayName(_nursery)>>
</span>
<<= setup.npcListInfo(_nursery)>>
</td>
<td>
Age: <<= _age >>
</td>
<td>
<<set _teachVar = "$nursery[" + _nurseryI.toString() + "].teach">>
<<for _teachOption range _teachOptions>>
<<if (_nursery.skills ?? []).includes(_teachOption)>>
<label style="color: cyan">
<<radiobutton _teachVar _teachOption autocheck>> <<= _teachOption >>
</label>
<<else>>
<label>
<<radiobutton _teachVar _teachOption autocheck>> <<= _teachOption >>
</label>
<</if>>
<</for>>
<<set $nursery[_nurseryI].teach = _localTeach>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<</if>>
<<if !$locationEvents.school>>
<<if !$player.quests.school_built>>
<<set _teachers = setup.filterNPCs($guests, {'skills_inc': ['teacher'], 'gender':0, 'race_in':['white', 'latina']})[0] ?? []>>
<<if _teachers.length>>
<<set $locationEvents.school = true>>
<<goto 'School built'>>
<</if>>
<</if>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<unset $teach>>
<<goto 'Youth district'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
<div class="menu-grid">
<<set _cabinName = $game.cabinName ?? 'Cabin'>>
<<set _cabinImg = $game.cabinName ? 'gate' : 'cabin'>>
<<grid outside `_cabinImg` 'Wood cabin' `_cabinName`>>
<<if ($game.location.nursery ?? false) && hasTime(0, 30)>>
<<grid cabin nursery 'Nursery' 'Nursery' false 1>>
<</if>>
<<if ($game.location.library ?? false) && hasTime(0, 30)>>
<<grid cabin library 'Library' 'Library' false 1>>
<</if>>
<<if ($game.location.hospital ?? false) && hasTime(0, 30)>>
<<grid cabin hospital 'Hospital' 'Hospital' false 1>>
<</if>>
<<if ($game.location.milk_barn ?? false) && hasTime(0, 30)>>
<<grid cabin milk_barn 'Milk barn' 'Milk barn' false 1>>
<</if>>
<<if ($game.location.school ?? false) && hasTime(0, 30)>>
<<grid cabin school 'School' 'School' false 1>>
<</if>>
<<if ($game.location.church ?? false) && hasTime(0, 30)>>
<<grid church church 'Church' 'Church' false 1>>
<</if>>
</div>
<<if !($locationEvents.youth_district ?? false)>>
<<if !($game.location.school ?? false) && !$player?.quests.school_talk && $game.day > 100 && setup.percentageChance(40) && timeBetween('12:00', '16:00') && !($weather?.heatWave ?? false) && !($weather?.coldSnap ?? false) && (setup.filterNPCs($guests, {'skills_inc': ['teacher'], 'gender':0})[0] ?? []).length>>
<<set $locationEvents.youth_district = true>>
<<goto 'Event - Youth district - teaching outside'>>
<</if>>
<</if>><<set _randomNumber to Math.floor(Math.random() * 100) + 1>>
<<set _compEvent = (Object.keys($player.companions ?? {}).length > 0 ? setup.companionEvents.pick('car') : null)>>
<<energy -30>>
<<set _breakdownRisk = (100 - $player.car.health)/4>>
<<if setup.percentageChance(_breakdownRisk)>>
<<goto 'Car breakdown event - Engine Failure'>>
<<elseif $characters?.elsa?.quests?.shower_day && !$characters?.elsa?.quests.well_day>>
<<goto 'Elsa - Village well'>>
<<elseif _compEvent && setup.percentageChance(5)>>
<<set $companionEvent = _compEvent>>
<<set $companionEventBack = 'Garage'>>
<<set _compPassage = _compEvent.passage>>
<<goto _compPassage>>
<<elseif _randomNumber <= 5 && $weather?.weather === 'sun'>>
<<goto 'Car explore event - The Chain Road'>>
<<elseif _randomNumber <= 10 && $weather?.weather === 'rain'>>
<<goto 'Car explore event - The Graveyard of Steel'>>
<<elseif _randomNumber <= 15>>
<<goto 'Car explore - meet person'>>
<<elseif _randomNumber <= 20>>
<<goto 'Car explore event - The last light'>>
<<elseif _randomNumber <= 30>>
<<goto 'Car explore event - girl gas station'>>
<<elseif _randomNumber <= 40>>
<<goto 'Car explore event - injured guy'>>
<<elseif _randomNumber <= 60>>
<<goto 'Car explore event - attack car'>>
<<elseif _randomNumber <= 62>>
<<goto 'Car explore event - robber justice'>>
<<elseif _randomNumber <= 64>>
<<goto 'Car explore event - fuel dilemma'>>
<<elseif _randomNumber <= 66>>
<<goto 'Car explore event - dead convoy'>>
<<elseif _randomNumber <= 70>>
<<goto 'Car explore event - abandoned outpost'>>
<<elseif _randomNumber <= 72 && recall($suppCode)>>
<<goto 'Car explore event - gypsy family'>>
<<elseif _randomNumber <= 74>>
<<goto 'Car explore event - stranded driver'>>
<<elseif _randomNumber <= 78>>
<<goto 'Car explore event - hidden cache'>>
<<elseif !($game.worldMapUnlocked ?? false) && ($characters.vincent?.quests?.car_fixed ?? false) && $game.day >= ($characters.vincent.quests.car_fixed_day ?? 0) + 20>>
<<goto 'Car explore event - settlement discovery'>>
<<elseif ($game.worldMapUnlocked ?? false) && _randomNumber <= 80>>
<<goto 'Car explore event - settlement discovery'>>
<<elseif setup.percentageChance(100) && !($game.location.car_stadium ?? false)>>
<<goto 'Car - race stadium introduction'>>
<<else>>
<<include 'Car explore - nothing found'>>
<</if>><h1 class="ptitle">OUTSIDE</h1>
<br />
<<set _hornyCompanions = setup.companions.getHorny(50)>>
<<set _eligibleKeys = []>>
<<for _ck range (_hornyCompanions[0] ?? [])>>
<<set _ckNpc = setup.companionGet(_ck)>>
<<if !_ckNpc>><<continue>><</if>>
<<if _ckNpc.married && _ckNpc.family?.husband !== 'mc' && !setup.npc.isSpouseLost(_ckNpc.family?.husband)>><<continue>><</if>>
<<if $player?.baseManagement?.noIncest && setup.family.isBloodToMC(_ckNpc)>><<continue>><</if>>
<<if (_ckNpc.traits ?? []).includes('nymphomaniac')>>
<<run _eligibleKeys.push(_ck)>>
<<continue>>
<</if>>
<<if !_ckNpc.likesGuys>><<continue>><</if>>
<<if setup.npc.isExOfMc(_ckNpc)>><<continue>><</if>>
<<run _eligibleKeys.push(_ck)>>
<</for>>
<<if _eligibleKeys.length == 0>>
<<include 'Car explore - nothing found'>>
<<else>>
<<set _randomNpc = setup.getRandomElement(_eligibleKeys)>>
<<set _guestId = _randomNpc.split(':')[1]>>
<<set _npc = setup.companionGet(_randomNpc)>>
<<set $locationEvents.explore_car = true>>
The cracked highway stretches endlessly ahead, the ruins of the old world standing like silent ghosts on either side.
The low hum of the engine is the only sound, save for our breathing.
<<=setup.displayName(_npc)>> fingers trail over my leg, deliberate and slow,
her touch sending a warmth through me that has nothing to do with the sun beating down on the dusty windshield.
<br /><br />
She glances at you, mischief dancing in her storm-colored eyes.
Without a word, she starts unbuttoning your pants and pulled out your dick.
<br /><br />
<<video 'explore_car/fun1'>>
<br /><br />
She started to slowly jerk you off as you tried to keep focus on the road. Slowly with a big smirk on her face she increased the speed and soon enough your dick was hard as rock.
<br />
A smirk plays on her lips as she leans closer, her breath hot against your dick. A moment later she is already sucking your dick.
<br /><br />
<<video 'explore_car/fun2'>>
<br /><br />
Her tongue swirled around your dick, tracing the veins and ridges as she worked to drive you wild.
You could feel her hot breath on your skin, and the gentle scrape of her teeth as she moved up and down.
The sensation was almost too much to bear, and you had to fight to keep your eyes on the road as she sucked you off with abandon.
<br /><br />
<<sayNpc _npc>>
We should pull over
<</sayNpc>>
<br />
<div id="option_no">
<<linkreplace "That's enough">>
<<run $('#option_stop').hide()>>
<<set _npc.horny = 0>>
<<set _npc.relationship -= 20>>
<<set _npc.sub -= 15>>
<<set _npc.happy -= 15>>
She froze, then slowly leaned back, studying his face. For a second, something unreadable flickered in her eyes—disappointment, amusement, maybe even a hint of hurt—but she said nothing.
Instead, she shifted back into her seat, crossing her arms as she gazed out the window.
<br /><br />
<<link 'Continue journey'>>
<<goto 'Car - Explore'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_stop">
<<linkreplace 'Pull over'>>
<<run $('#option_no').hide()>>
As soon as you stopped, she adjusted her position, getting into a better spot to continue sucking you off.
Her mouth was warm and wet, and she was relentless, taking you deeper and deeper.
<br /><br />
<<video 'explore_car/fun3'>>
<br /><br />
After a while, she pulled back, and you could see the hunger in her eyes.
You knew what she wanted, and you were more than happy to give it to her.
You pushed her back against the seat, and she spread her legs, inviting you in.
You plunged your cock into her pussy, feeling her tight walls wrap around you.
<br /><br />
<<video 'explore_car/fun4'>>
<br /><br />
She got off you and positioned herself in a way that allowed her to continue pleasuring you.
She wrapped her hand around your cock, her fingers closing tightly around your shaft as she began to jerk you off.
At the same time, she leaned forward and took your cock in her mouth, her lips wrapping around you as she started to suck me off.
<br /><br />
<<video 'explore_car/fun5'>>
<br /><br />
Her hand and mouth worked in tandem, moving in a synchronized rhythm that drove you wild.
Her hand pumped up and down, her fingers squeezing and releasing in a gentle yet firm motion.
Her mouth, meanwhile, was a whirlwind of sensation, her tongue swirling and dancing around your dick as she sucked you off.
The combination of her hand and mouth was almost too much to bear, and you felt yourself getting closer and closer to the edge.
<br /><br />
<<video 'explore_car/fun6'>>
<br /><br />
As she continued to jerk and suck you off, you could feel your pleasure building to a crescendo.
Her hand was moving faster and faster, her fingers flying up and down your dick as she worked to bring you to the edge.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<set _npc.horny = 0>>
<<video 'explore_car/fun7'>>
<br /><br />
You started to cum, your cock erupting in a burst of pleasure as your cum shot out of you and into her hand.
She kept jerking you off, her hand moving up and down your hard dick as she milked you for every last drop.
<br /><br />
<<link 'Continue journey'>>
<<goto 'Car - Explore'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
</div>
<</if>><h1 class="ptitle">GARAGE</h1>
<br />
The next day, as the first light of dawn filters through the settlement, Vincent returns, his steps still weary but determined.
He finds you amidst the scattered tools and remnants of the broken car, ready to face the challenges ahead.
<br /><br />
<center>
[img[setup.ImagePath+'places/garage/car_first_day.jpg']]
</center>
<br />
With a nod of acknowledgment, Vincent rolls up his sleeves, and together, you set to work on crafting a new vehicle from the salvaged parts.
The rhythm of the work is both familiar and comforting, a testament to the resilience of the human spirit in the face of adversity.
<br /><br />
<<vincent>>
Eh, it's useless without spare parts. We'll need some specific parts to get this running smoothly. And, of course, we'll need gas to get around.
<</vincent>>
<br />
With a shared understanding, you make a mental note of the needed components.
The settlement, though meager, holds the promise of scavenging opportunities, a potential source of the parts required to bring the new car to life.
<br /><br />
Vincent leaves, leaving you with a broken car.
<br /><br />
<<addhours 3>>
<<link 'Leave'>>
<<goto 'Car - repair fuck'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
The sun hangs low in the sky, casting a blood-red hue over the desolate landscape.
Your car rumbles beneath you, the engine's steady purr the only sound breaking the silence of the wasteland.
You've been driving for hours, the road ahead nothing but cracked asphalt and scattered debris, remnants of a world long gone.
Up ahead, something catches your eye—a glint of metal in the distance, moving against the backdrop of the ruined city.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/race_stadium.jpg']]
</center>
<br />
As you get closer, you spot a small convoy of vehicles—three, maybe four cars—moving in formation.
Instinctively, you ease off the accelerator, keeping your distance. Out here, encounters with others rarely end well.
But there's something different about these vehicles. They're heavily modified, bristling with makeshift armor and weapons.
These aren't just survivors—they've found something worth protecting.
<br /><br />
You decide to follow them.
<br /><br />
The convoy weaves through the ruins, and you trail behind, careful not to get too close.
After a while, they turn off the main road, heading toward a large, crumbling structure looming on the horizon.
As you draw nearer, you realize it's an old stadium, half-collapsed and overtaken by the encroaching desert.
The entrance is a jagged maw of concrete and twisted metal, but the convoy drives through it without hesitation.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/race_stadium1.jpg']]
</center>
<br /><br />
You pull over behind the rusted remains of a billboard and step out of your car, approaching the stadium on foot.
The low rumble of engines echoes from within, a sound that sends a shiver down your spine.
When you reach the entrance, you peer inside, your breath catching at what you see.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/race_stadium2.jpg']]
</center>
<br /><br />
Inside, the stadium has been transformed.
The once grand structure is now a massive racing track, with high fences encircling the perimeter.
The track is scarred and worn, with deep grooves in the asphalt carved by countless races.
But what really grabs your attention are the cars.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/race_stadium3.jpg']]
</center>
<br /><br />
Dozens of them line the sides of the track, each one a menacing beast of metal and death.
Blades protrude from tire rims, guns are mounted on roofs, and spikes adorn bumpers.
These are not just racing machines; they are weapons, designed to kill as much as to win.
The people gathered around them are no different—hardened survivors, their faces marked by the harshness of the world they inhabit.
<br /><br />
You slip inside, keeping your head down as you move through the crowd. No one seems to notice you, their focus on the track. There's no race happening right now, but the air hums with anticipation. You make your way toward the far end of the stadium, where a small makeshift shop has been set up.
<br /><br />
Behind the counter sits an older man, his hair graying but his eyes sharp. He’s fiddling with a piece of metal, but he looks up as you approach.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/race_stadium4.jpg']]
</center>
<br />
<<newguy>>
<<sayNpc $tmpGuy>>
New face. You lost, or you looking to stir up some trouble?
<</sayNpc>>
<br />
You shake your head, glancing around at the various car parts, weapons, and supplies cluttering his table.
<br /><br />
<<you>>
Just curious. What is this place?
<</you>>
<br />
<<sayNpc $tmpGuy>>
This? This is where the fun happens, friend. Races. Big ones. You got a car and the guts to back it up, you can race.
<</sayNpc>>
<br />
<<sayNpc $tmpGuy>>
Hell, if you win, you can take the other guy's car. Sometimes people bet other things—supplies, weapons. Even slaves, if they’re desperate enough.
<</sayNpc>>
<br />
He shrugs as if it’s the most natural thing in the world.
<br /><br />
<<sayNpc $tmpGuy>>
People get in over their heads. This place... it ain't for the weak.
<</sayNpc>>
<br />
You nod, trying to process what you’re hearing.
<br /><br />
<<you>>
And you? What do you do here?
<</you>>
<br />
<<sayNpc $tmpGuy>>
Me? I sell things. Car parts, upgrades—whatever you need to get an edge on the track.
I ain't got everything right now, but my stock’s coming in soon. You got something to trade, I got something you need.
<</sayNpc>>
<br />
You scan the items on his table—scrap metal, old batteries, a few rusty weapons.
Nothing that catches your eye, but the thought of racing, of testing your skills and your car against these monsters... there’s a thrill to it that you can’t ignore.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/race_stadium1.jpg']]
</center>
<br /><br />
As you walk away, you can feel the weight of the stadium pressing down on you, the eyes of the other racers following your every move. You’re an outsider here, a newcomer in a world that plays by its own brutal rules. But you’ve come this far, and there’s no turning back now.
<br /><br />
<<link 'Leave'>>
<<set $game.location.car_stadium = true>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">GARAGE</h1>
<br />
<<addmins 20>>
<center>
[img[setup.ImagePath+'places/garage/car_first_day.jpg']]
</center>
<<set _eligibleGuests = setup.getAvailablePersons18yo($guests)[0]?.filter(i => !$player?.baseManagement?.noIncest || !setup.family.isBloodToMC($guests[i])) ?? []>>
<<set _npcId = setup.getRandomElement(_eligibleGuests)>>
<<run _npc = $guests[_npcId]>>
<br /><br />
As you focus on the car, your hands deftly maneuvering through the engine, you become engrossed in the task at hand. The rhythmic clinking of tools and the hum of your concentration fill the air.
<br /><br />
Suddenly, a voice interrupts your thoughts.
You look up to find <<=setup.displayName(_npc)>> approaching, a friendly smile on her face.
You strike up a conversation, about the car, sharing stories of their own experiences with vehicles in this unforgiving world.
<br /><br />
<<sayNpc _npc>>
You look tired. You could use some break.
<</sayNpc>>
<br />
She smiles and eyes you with intent. You get the feeling she's offering more than just conversation.
<br /><br />
<<linkreplace 'Accept'>>
<<if _npc.virgin>><<run setup.npc.addHistory(_npc, 'virgin_lost', { with: 'mc' })>><</if>>
<<set _npc.virgin = false>>
She crawls toward you, unzips your pants and with a smirk on her face puts your dick in her mouth.
<br /><br />
<<video 'garage/car_repair1'>>
<br /><br />
<<if _npc.bj >= 60>>
Magically, your dick disappears into her mouth completely. It can be seen that she is quite experienced. And the sensations are indescribable.
<<else>>
She tries to fully deepthroat your dick but fails and instead just pokes her cheek from inside with it.
<</if>>
<br /><br />
<<sayNpc _npc>>
Feeling better? I can do better, heh.
<</sayNpc>>
<br /><br />
She pulls off her skirt and turns around bending over the open car hood.
<br /><br />
<<video 'garage/car_repair2'>>
<br /><br />
You grab her leg and lift it. After that you shove your dick inside her tight, already wet pussy and instantly start to fuck her pussy. She moans and grabs by some engine tubes..
<br /><br />
<<sayNpc _npc>>
Deeper! I want to feel you all!
<</sayNpc>>
<br />
<<video 'garage/car_repair3'>>
<br /><br />
She grabs your hand and pulls you off her as she lies down on the ground with some dirty rag under her and pulls you on her. Then she wraps her legs around your back and pulls herself onto your dick.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<video 'garage/car_repair4'>>
<br /><br />
You grab her by the hair and pull strongly towards you. She immediately opens her mouth, and you cum all over her tits while aiming for her tongue.
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<<link 'Decline'>>
<<goto 'Garage'>>
<</link>>
<<set $locationEvents.garage = true>><h1 class="ptitle">OUTSIDE</h1>
<br />
The passing dunes become a blur as you drive through the featureless landscape, lost momentarily in your thoughts. Suddenly your attention is yanked back to reality as you feel an unexpected rumble in the engine. Moments later, the rumble grows to an violent shudder as the engine struggles to continue, only to lurch violently as the engine seizes.
<br /><br />
You grumble in frustration as you coast the disabled vehicle to a stop, the indicators on the dashboard making it clear that the damage to the car has caused the engine to fail.
<br /><br />
<center>
<<image 'places/explore_car/fail.jpg' sfw>>
</center>
<<set _mechanics = setup.companions.getBySkill(variables().player.companions, 'mechanic')>>
<<if (_mechanics.length > 0)>>
<<set _mechanic = either(_mechanics)>>
<<set _mechanicName = _mechanic.name>>
<<set _what = setup.pronounceWhat(_mechanic, true)>> /* He/She */
<<if $backpack.has('car_part') >>
<<=_mechanicName>> gets out of the car and strides to the front to take a look under the hood, waving the steam out of <<=setup.pronounceWhos(_mechanic)>> face as it rises up from the engine block.
<br /><br />
<<sayNpc _mechanic>>
Oof, you have to stop giving her such a beating. She's not a masochist.
<</sayNpc>>
<br />
<<=_mechanicName>> gets to work, pulling out her spare toolkit, and one of the car parts you keep on hand for emergencies. The rest of your companions mill about as you wait for <<=setup.pronounceWho(_mechanic)>> to complete the repairs, eyes alert for any sign of danger or activity on the horizon...
<br /><br />
After about an hour of work, <<=_mechanicName>> slaps the side of the car to get your attention.
<br /><br />
<<sayNpc _mechanic>>
Okay, try it now!
<</sayNpc>>
<br />
You turn the key and make a wish, the car vibrating as the engine cycles and sputters, until suddenly it turns over with a satisfying roar.
<<=_mechanicName>> has once again shown <<=setup.pronounceWhos(_mechanic)>> skills under the hood. You'll have to make sure to properly reward <<=setup.pronounceWho(_mechanic)>> when you get back home. In the meantime, you get back on the road, to see what adventures it will bring.
<br /><br />
<<drop $backpack 'car_part' 1>>
<<set $player.car.health = Math.min($player.car.health + 10, 100)>>
<<link 'Leave'>>
<<addhours 1>>
<<goto 'Car - Explore'>>
<</link>>
<<else>>
<<=_mechanicName>> gets out of the car, looking pessimistic as <<=setup.pronounceWhat(_mechanic)>> walk around to the front to take a look under the hood. <<=setup.pronounceWho(_mechanic)>> cough and sputter as <<=setup.pronounceWho(_mechanic)>> waves the steam that rises up from the engine block out of <<=setup.pronounceWhos(_mechanic)>> face.
<br /><br />
<<sayNpc _mechanic>>
You've been running her too hard. I might be able to fix the problem if we had some parts, but I can't conjure them from thin air.
<</sayNpc>>
<br />
With a disappointed sigh, you disengage the brake and direct your team to grab onto the frame and start pushing, eyes ever alert for signs of danger. Fortunately no threats arise to take advantage of your vulnerable state, though you know better than to let this happen again.
<br/><br/>
<<if setup.companions.count() > 3>>
<<set _pushTime = 2>>
It's a long way home, but with <<=setup.companions.count()>> companions sharing the work, you do your best and make it home in a reasonable time.
<br/><br/>
<<elseif setup.companions.count() > 1>>
<<set _pushTime = 3>>
With only <<=setup.companions.count()>> companions to push, the trek back is arduous and seems to take forever. You get back to the cabin exhausted, but at least on one piece..
<br/><br/>
<<else>>
<<set _pushTime = 6>>
You and your lone companion set out to push the car down the long trek back home. You take turns steering to give each other a break, but the trip is exhausting. Every downhill slope feels like a gift from heaven, and every incline is yet another hellish punishment for your lack of preparation. But eventually, you make it back to the safety of the garage.
<br/><br/>
<</if>>
<<link 'Leave'>>
<<addhours _pushTime>>
<<goto 'Garage'>>
<</link>>
<</if>>
<<else>>
<<if $backpack.has('car_part') && ($player.int >= 70)>>
You get out of the car and walk around to the front to take a look under the hood, waving the steam out of your face as it rises up from the engine block.
Fortunately, you've spent enough time working with the vehicle in the garage to know the basics of how it functions, though it would be really handy to have an actual mechanic on hand right now...
<br /><br />
You get to work, inspecting the engine and trying to sort through the various signs of damage to trace the problem to its source.
It takes a while, but finally you work out where the failure originated, going to the trunk to get one of the car parts you keep on hand for emergencies. The rest of your companions mill about as you complete the repairs, eyes alert for any sign of danger or activity on the horizon...
<br /><br />
After a couple of hours of work, you get back into the driver's seat and turn the key, the car vibrating as the engine cycles and sputters,
until suddenly it turns over with a satisfying roar. You smile with satisfaction, relieved that you are spared the arduous task of pushing the car back home.
<br /><br />
It took longer than it would have for a mechanic, but you still have some time to get back on the road.
You were not able to do anything about the existing damage to the car, so when you get back to the garage you will definitely have to have your mechanic give the vehicle some proper attention.
<br /><br />
<<drop $backpack 'car_part' 1>>
<<link 'Leave'>>
<<addhours 3>>
<<goto 'Car - Explore'>>
<</link>>
<<else>>
You get out of the car, wishing you had brought a mechanic along for the ride, as you walk around to the front to take a look under the hood. You cough and sputter, waving the steam out of your face as it rises up from the engine block.
<br /><br />
<<if $backpack.has('car_part') >>
You have the parts available to fix the car, but your tinkering in the garage has not given you the knowledge you need to figure out a problem like this.
<br/><br/>
<<else>>
You've spent enough time working with the vehicle in the garage to know the basics of how it functions, and you think you can work out how to get the car running again, but you do not have the parts necessary to repair the damage to the engine.
<br/><br/>
<</if>>
<<if setup.companions.count() > 3>>
<<set _pushTime = 2>>
With a disappointed sigh, you disengage the brake and direct your companions to grab onto the frame and start pushing, eyes ever alert for signs of danger. Fortunately no threats arise to take advantage of your vulnerable state, though you know better than to let this happen again.
<br/><br/>
It's a long way home, but with <<=setup.companions.count()>> companions sharing the work, you do your best and make it home in a reasonable time.
<br/><br/>
<<elseif setup.companions.count() > 1>>
<<set _pushTime = 3>>
With a disappointed sigh, you disengage the brake and direct your companions to grab onto the frame and start pushing, eyes ever alert for signs of danger. Fortunately no threats arise to take advantage of your vulnerable state, though you know better than to let this happen again.
<br/><br/>
With only <<=setup.companions.count()>> companions to push, the trek back is arduous and seems to take forever. You get back to the cabin exhausted, but at least on one piece..
<br/><br/>
<<elseif setup.companions.count() > 1>>
<<set _pushTime = 6>>
With a disappointed sigh, you disengage the brake and direct your companion to grab onto the frame and start pushing, eyes ever alert for signs of danger. Fortunately no threats arise to take advantage of your vulnerable state, though you know better than to let this happen again.
<br/><br/>
You and your lone companion take on the laborious task of pushing the car along the long trek back home. You take turns steering to give each other a break, but the trip is exhausting. Every downhill slope feels like a gift from heaven, and every incline is yet another hellish punishment for your lack of preparation. But eventually, you make it back to the safety of the garage.
<br/><br/>
<<else>>
<<set _pushTime = 8>>
You picked a lousy time to go on a solo drive by yourself. Opening the driver's side window, you lean in and grab the steering wheel to guide the car as you begin the slow, painstaking process of pushing the car along on your own. It is truly a miracle that you don't get run down by a bunch of bandits, though they might just take pity on you.
<br/><br/>
Everyone is long since in bed by the time you drag yourself through the garage. Wearily you park the car back in its place and head inside to let your household know you are still alive.
<br/><br/>
<</if>>
<<link 'Leave'>>
<<addhours _pushTime>>
<<goto 'Garage'>>
<</link>>
<</if>>
<</if>><br />
<h1 class="ptitle">GARAGE</h1>
<br />
You pulled the car door open, and a blast of frozen air slapped you in the face.
<br /><br />
You slid into the driver’s seat, your breath instantly fogging the windshield from the inside. Even through your gloves, your fingers ached as you turned the key.
<br /><br />
<<video 'garage/cold_start'>>
<br /><br />
The engine cranked, a tired, dragging groan that seemed too loud in the dead stillness. It tried—once, twice—but each attempt faded into a weak sputter.
No ignition. Outside, the wind pressed against the frame, whining through cracks that hadn’t been there before.
<br /><br />
You tried again. And again. Each try sounded more hopeless, as if the car itself was giving up along with you. On the last attempt, the engine didn’t even bother to complain; it just clicked, cold and defeated.
<br /><br />
<<set $player.car.health = Math.max(0, $player.car.health-5)>>
<<link 'Leave'>>
<<addmins 5>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<<set _npcGenderOptions = [0, 1]>>
<<if settings.transEnabled>>
<<set _npcGenderOptions.push(2)>>
<</if>>
<<set _npcGender = setup.getRandomElement(_npcGenderOptions)>>
<<if _npcGender === 0>>
<<newgirl>>
<<elseif _npcGender === 1>>
<<newguy>>
<<set $tmpGirl = $tmpGuy>>
<<elseif _npcGender === 2>>
<<newtransgirl>>
<</if>>
<<set $tmpGirl.location = 'car'>>
<<set _npcDataMapped = [
{
default: {
text: "As you drive along a cracked, abandoned highway, you spoted a lone girl walking on the roadside in a desolate stretch of wasteland. You slowed down, wondering what she’s doing out here.",
img: 'found_female_highway',
},
},
{
default: {
text: "While driving down the deserted highway, you noticed a solitary man trudging along the shoulder. You considered stopping to see why he's traveling alone in this wasteland.",
img: "found_male_highway",
}
},
{
default: {
text: "You passed a slightly masculine girl walking beside the abandoned highway. She looked alerted, scanning the ruins as she traveled. You wondered if she needs help.",
img: "found_transfemale_highway",
}
}
] >>
<<set _type = 'default'>>
<<set _npcData = _npcDataMapped[$tmpGirl.gender][_type]>>
<<if _npcData.textTop>>
<<=_npcData.textTop>>
<br /><br />
<</if>>
<center>
<<set _imageUrl = 'places/explore_car/' + _npcData.img + '.jpg'>>
<<image _imageUrl sfw>>
</center>
<br /><br />
<<=_npcData.text>>
<br /><br />
<<link 'Go closer'>>
<<set $tmpGirl.rape to true>>
<<set $tmpGirlCapture = true>>
<<set $tmpGirlInvite = true>>
<<unset $tmpGirlViewBack>>
<<unset $slaveId, $guestId, $charId, $childId>>
<<set $tmpGirlBack = 'Garage'>>
<<goto [[NPC view]]>>
<</link>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
<center>
[img[setup.ImagePath+'places/explore_car/nothing.jpg']]
</center>
<br /><br />
You found nothing while driving around.
<br /><br />
<<set _companionKeys = Object.keys($player.companions ?? {})>>
<<set _eligibleKeys = []>>
<<for _ck range _companionKeys>>
<<set _ckNpc = setup.companionGet(_ck)>>
<<if !_ckNpc>><<continue>><</if>>
<<if _ckNpc.married && _ckNpc.family?.husband !== 'mc' && !setup.npc.isSpouseLost(_ckNpc.family?.husband)>><<continue>><</if>>
<<if $player?.baseManagement?.noIncest && setup.family.isBloodToMC(_ckNpc)>><<continue>><</if>>
<<if (_ckNpc.traits ?? []).includes('nymphomaniac')>>
<<run _eligibleKeys.push(_ck)>>
<<continue>>
<</if>>
<<if !_ckNpc.likesGuys>><<continue>><</if>>
<<if setup.npc.isExOfMc(_ckNpc)>><<continue>><</if>>
<<run _eligibleKeys.push(_ck)>>
<</for>>
<<if _eligibleKeys.length > 0>>
<<set _chosenKey = either(..._eligibleKeys)>>
<<set _splitCompanionKey = _chosenKey.split(':')>>
<<set $tmpGirl = setup.companionGet(_chosenKey)>>
<<unset $slaveId, $guestId, $charId, $childId>>
<<if _splitCompanionKey[0] === 'guest'>>
<<set $guestId = _splitCompanionKey[1]>>
<<else>>
<<set $slaveId = _splitCompanionKey[1]>>
<</if>>
<<set $tmpGirl.location = 'car'>>
<<set _pronHerHim = setup.pronounceWho($tmpGirl)>>
<<set _pronHerHis = setup.pronounceWhos($tmpGirl)>>
<<set $tmpGirlBack = 'Garage'>>
<<sayNpc $tmpGirl>>
It's pointless. Let's just go back.
<</sayNpc>>
<br />
<<linkreplace 'Suggest to have fun'>>
<<if setup.percentageChance(setup.sexChance($tmpGirl))>>
<<sayNpc $tmpGirl>>
Oh, this could be fun.
<</sayNpc>>
<br /><br />
<<=setup.displayName($tmpGirl)>> with smile unzips your pants and pulls out your dick.
<br /><br />
<<actionImage $tmpGirl 'handjob'>>
<<set $sexAction = 'handjob'>>
<br />
<<link 'Fuck'>>
<<fuck $tmpGirl>>
<</link>>
<<else>>
<<sayNpc $tmpGirl>>
No! I don't want to. Let's just go back.
<</sayNpc>>
<br />
<<set _linkName = 'Force ' + _pronHerHim>>
<<link _linkName>>
<<fuck $tmpGirl>>
<<set $sexForced = true>>
<</link>>
<</if>>
<</linkreplace>>
<</if>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
The dust still hung in the air, thick and bitter with the smell of oil and blood. You leaned against the dented hood of your car, catching your breath.
<br /><br />
The road was quiet again, except for the faint rattle of the chains you’d just broken.
<br /><br />
Most of the captives had scattered during the fight, fleeing into the dunes before you could even call out. But four remained.
<br /><br />
<center>
<<image 'places/explore_car/chain_road3.jpg'>>
</center>
<br />
They stood a few paces away, the rope still dangling from their wrists, faces gaunt and sunburned. Each of them looked at you differently — one with gratitude, one with suspicion, another with blank exhaustion, and the last with something unreadable in her eyes.
<br /><br />
<<newgirl>>
<<set _npc1 = $tmpGirl>>
<<newgirl>>
<<set _npc2 = $tmpGirl>>
<<newgirl>>
<<set _npc3 = $tmpGirl>>
<<newgirl>>
<<set _npc4 = $tmpGirl>>
<<sayNpc _npc1>>
What now? What will you do with us?
<</sayNpc>>
<br />
<div id="option_free">
<<linkreplace 'You are free to go'>>
<<run $('#option_capture, #option_housing').hide()>>
You cut the last of their bindings and released them.
<br /><br />
<<you>>
You are free to go.
<</you>>
<br />
<<sayNpc _npc2>>
Really? Thank you good sir.
<</sayNpc>>
<br />
They hesitated, unsure whether to trust you, but eventually started walking.
The youngest looked back once, lips parting as if to say something — then turned away.
You watched until they disappeared into the heat haze.
<br /><br />
<<set $player.goodwill += 15>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<<set _freeSpace = $basementLimit - $slaves.length>>
<<if ($game.location.basement ?? false) && _freeSpace>>
<<set _linkName = 'Capture ' + (_freeSpace >= 4 ? 'all of them' : _freeSpace + 'of them')>>
<div id="option_capture">
<<linkreplace _linkName>>
<<run $('#option_free, #option_housing').hide()>>
You looked at the ropes and at the empty horizon. The world had taught you to prioritize survival. You told them bluntly: they could come with you, but not as guests — as labor.
<br /><br />
<<sayNpc _npc3>>
Oh god, next one... You stupid bitch
<</sayNpc>>
<br /><br />
They reacted differently — one spat, another bowed her head, the youngest stared with a mix of fear and calculation.
You bound them so they couldn’t bolt immediately, not with cruel knots or humiliation, but with firm cuffs and a carved token on each wrist that marked them as yours.
<br /><br />
<<set _npc1.beauty = Math.max(100, _npc1.beauty + randomInteger(10, 30))>>
<<set _npc2.beauty = Math.max(100, _npc2.beauty + randomInteger(10, 30))>>
<<set _npc3.beauty = Math.max(100, _npc3.beauty + randomInteger(10, 30))>>
<<set _npc4.beauty = Math.max(100, _npc4.beauty + randomInteger(10, 30))>>
<<run $slaves.push(_npc1)>>
<<run setup.npc.addHistory(_npc1, 'captured')>>
<<run $slaves.push(_npc2)>>
<<run setup.npc.addHistory(_npc2, 'captured')>>
<<run $slaves.push(_npc3)>>
<<run setup.npc.addHistory(_npc3, 'captured')>>
<<run $slaves.push(_npc4)>>
<<run setup.npc.addHistory(_npc4, 'captured')>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<<if setup.baseManagement.population.hasFreeHouse()>>
<div id="option_housing">
<<linkreplace 'Invite as settlers'>>
<<run $('#option_capture, #option_free').hide()>>
You told them about your settlement — a place where they would be safe and could live their own lives.
<br /><br />
They exchanged uncertain looks. Finally, the eldest nodded.
<br /><br />
<<sayNpc _npc3>>
Not me. I better will try to take my chances.
<</sayNpc>>
<br />
Others agreed.
<br /><br />
<<set $player.goodwill += 6>>
<<set $player.baseManagement ??= {}>>
<<set $player.baseManagement.settlers = ($player.baseManagement.settlers ?? 0) + 3>>
<<set $player.baseManagement.settlersFemales ??= 0>>
<<set $player.baseManagement.settlersFemales += 3>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<</if>><h1 class="ptitle">OUTSIDE</h1>
<br />
The road stretched ahead — cracked asphalt disappearing into the shimmering horizon. You’d been driving for hours, the fuel gauge hovering near empty, when you spotted movement in the distance. A line of figures walked slowly along the roadside, kicking up dust — half a dozen people, roped together at the wrists, led by a pair of armed men in battered body armor.
<br /><br />
<center>
<<image 'places/explore_car/chain_road1.jpg'>>
</center>
<br /><br />
As you drew closer, the scene became clearer. The chained group looked half-dead — thin, sunburned, stumbling with exhaustion
<br /><br />
You pulled to a stop behind a wrecked car, watching from cover.
The slavers were arguing — one shouting about fuel rations, the other about.
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
The buyers waiting east.
<</sayNpc>>
<br />
The slaves barely moved. One of them, a woman in a torn coat, glanced toward your car — her eyes meeting yours for only a heartbeat before she was shoved forward again.
<br /><br />
<center>
<<image 'places/explore_car/chain_road2.jpg'>>
</center>
<br />
<div id="option_ignore">
<<linkreplace 'Ignore them'>>
<<run $('#option_deal, #option_fight').hide()>>
<<set _ignore = true>>
You stayed hidden. The convoy trudged past, slow and miserable, until the dust swallowed them.
You told yourself it wasn’t your fight — you had no spare fuel, no ammo, no reason to die for strangers. Still, long after you drove off, you couldn’t shake the image of the woman’s eyes.
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_deal">
<<linkreplace 'Make a deal'>>
<<run $('#option_ignore, #option_fight').hide()>>
You drove closer, hands raised, and called out that you wanted to trade.
The slavers eyed your car, your pack, and laughed. After a tense moment, they lowered their guns.
<br /><br />
<<sayNpc $tmpGuy>>
You want one? Costs 30 caps.
<</sayNpc>>
<br />
As she shoves one of the girl towards you.
<br /><br />
<<newgirl>>
<<set $tmpGirl.beauty = Math.max(100, $tmpGirl.beauty + 30)>>
<<include 'NPC info'>>
<<if $slaves.length < $basementLimit && $player.money >= 50>>
<br /><br />
<<link 'Buy'>>
<<set _npc.capture = false>>
<<set $slaves.push(_npc)>>
<<run setup.npc.addHistory(_npc, 'captured')>>
<<set $player.money -= 50>>
<<goto 'Garage'>>
<</link>>
<<linkdesc>>
-50 caps
<</linkdesc>>
<</if>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_fight">
<<linkreplace 'Intervene'>>
<<run $('#option_ignore, #option_deal').hide()>>
You couldn’t just watch.
<br />
You started the car, revved the engine, and burst from behind cover.
The slavers turned in surprise — one dropping his pack, the other drawing a long, jagged knife.
You rammed the lead guy hard enough to send him rocking onto the side of the highway.
<br /><br />
Before they could recover, you kicked open the door and charged.
<br /><br />
<<link 'Fight'>>
<<generateEnemies 3 0>>
<<run $enemies.push($tmpGuy)>>
<<fight $enemies 'Car explore event - The Chain Road won' 'Garage'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br />
The road had been silent except for the low hum of your engine. Dust clouds rose behind the car as you drove through the remains of a forgotten highway.
On both sides, rusted carcasses of vehicles littered the cracked asphalt — a car graveyard stretching as far as the eye could see.
<br /><br />
<center>
<<image 'places/explore_car/car_graveyard.jpg'>>
</center>
<br />
You slowed down and pulled over. Something about the place had drawn you in — maybe it was the scavenger’s instinct, maybe just curiosity.
The air had smelled of rust and oil. Crows perched on twisted metal frames, watching in silence. You stepped out, your boots crunching on shattered glass.
<br /><br />
<<video 'explore_car/graveyard_steel1'>>
<br /><br />
For a moment, it had been peaceful — just the wind whistling through hollow car shells. Then, faintly, you heard voices.
<br />
You crouched behind a burned-out truck, your heart pounding. The voices grew clearer — rough, angry tones bouncing between the wrecks.
<br /><br />
<<newguy>>
<<set _npc1 = $tmpGuy>>
<<newguy>>
<<set _npc2 = $tmpGuy>>
<<sayNpc _npc1>>
…heard they’ve been traveling this way.
<</sayNpc>>
<br />
<<sayNpc _npc2>>
Good. We find ‘em, we take everything. Leave no one breathing.
<</sayNpc>>
<br />
Your stomach tightened. They were talking about you.
<br /><br />
<<set _awaySuccess = 50>>
<<set _searchSuccess = 10>>
<<if $player.int >= 50>>
<<set _awaySuccess += 30>>
<<set _searchSuccess += 30>>
<</if>>
<div id="option_search">
<<linkreplace 'Keep searching'>>
<<set _search = true>>
<<set _awaySuccess -= randomInteger(10, 20)>>
Despite the danger, you stayed low and continued to scavenge, moving quietly between the cars.
Every creak of metal sounded like thunder, every whisper of wind felt like footsteps closing
<br /><br />
<<if setup.percentageChance(_searchSuccess)>>
But luck was on your side — behind a collapsed hood, you found <strong class="iitem">two usable car parts</strong>.
You stuffed them into your pack just as one of the voices grew closer.
<<pickup $backpack 'car_part' 2>>
<<else>>
You searched desperately, crawling through twisted frames and broken glass, but everything had already been stripped bare.
Nothing useful remained. Then a voice echoed far too close
<</if>>
<br /><br />
<</linkreplace>>
</div>
<div id="option_away">
<<linkreplace 'Get away'>>
<<if !_search>>
<<run $('#option_search').hide()>>
<</if>>
<<if setup.percentageChance(_awaySuccess)>>
You bolted on instinct, low and fast between sun-bleached fenders. One of them barked an order; a flashlight beam cut across the rust like a blade.
You didn’t look back. You dove into the driver’s seat, slammed the door, and fumbled the key into the ignition
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<<else>>
You reached for the car, but a boot slammed into your shoulder and a hand yanked you off balance.
A flashlight lanced across your face — three silhouettes loomed, weapons raised. There was no clean escape anymore.
<br /><br />
<<sayNpc _npc2>>
Hey! He's here!
<</sayNpc>>
<br />
<<link 'Fight'>>
<<newguy>>
<<set _npc1.inventory = {
knife: 1
}>>
<<set _npc2.inventory = {
knife: 1
}>>
<<set _enemies = [
_npc1,
_npc2,
$tmpGuy
]>>
<<fight _enemies 'Garage' 'Garage'>>
<</link>>
<</if>>
<</linkreplace>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br />
You spotted a faint glow ahead — a flicker of firelight on the broken highway. You slowed the car, engine growling softly.
<br /><br />
<center>
<<image 'places/explore_car/last_light2.jpg'>>
</center>
<br />
As you rolled closer, you saw it: a small camp by the roadside, a half-collapsed tent, and a single figure sitting beside the fire.
The flames licked against the cold metal of a wheelchair. The person turned slowly as your tires crunched over the gravel — an older man, gray-haired and hollow-eyed
<br /><br />
<center>
<<image 'places/explore_car/last_light3.jpg'>>
</center>
<br />
He didn’t raise it.
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
Don’t come too close
<</sayNpc>>
<br />
<<sayNpc $tmpGuy>>
I’m not lookin’ for trouble. Just waiting to die where it’s quiet.
<</sayNpc>>
<br />
<center>
<<image 'places/explore_car/last_light1.jpg'>>
</center>
<br /><br />
You stopped a few paces away, keeping your hands visible. His leg was gone below the knee, bandaged with filthy rags.
A small tin of food and an empty water bottle sat beside him. He must’ve been stranded for days.
<br /><br />
He looked at you, eyes hollow but strangely calm.
<br /><br />
<div id="option_give">
<<if $backpack.has('food')>>
<<linkreplace 'Give him some food'>>
<<set _food = true>>
<<run $('#option_steal').hide()>>
You reached into your pack, pulled out a sealed can, and handed it to him. He stared at it like it was a miracle, fingers trembling as he accepted it. He ate slowly, each bite careful and reverent, and when he finished he closed his eyes and said
<br /><br />
<<sayNpc $tmpGuy>>
Thank you!
<</sayNpc>>
<br />
<<set $player.goodwill += 3>>
<<drop $backpack 'food' 1>>
<</linkreplace>>
<</if>>
</div>
<div id="option_steal">
<<linkreplace 'Steal his last food'>>
<<set _steal = true>>
He turned mid-sip and saw you with your hand on the pack. His face didn’t show surprise — only a small, defeated understanding, like he’d been waiting for this outcome.
<br /><br />
<<sayNpc $tmpGuy>>
I knew there’d be those who’d take.
<</sayNpc>>
<br />
<<run $('#option_give').hide()>>
<<set $player.goodwill -= 2>>
<<pickup $backpack 'food' 1>>
You stole <strong> 1 food</strong>
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Leave'>>
<<if !_steal>>
<<run $('#option_steal').hide()>>
<</if>>
<<if !_food>>
<<run $('#option_food').hide()>>
<</if>>
In your mirror, the firelight grew smaller and smaller until it was swallowed by the haze. You told yourself it was mercy — letting him face the end his own way.
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>><h1 class="ptitle">OUTSIDE</h1>
<br />
A squat cinderblock building sits back from the road, half-swallowed by weeds — a checkpoint nobody ever checked out of. The barrier arm is still down across the lane. Camo netting sags from rusted poles. A faded laminated sign reads STOP — DOCUMENTS REQUIRED. No one's required anything here in a long time.
<br /><br />
<center>
<<image 'places/explore_car/outpost1.jpg' sfw>>
</center>
<br />
You cut the engine and listen. Wind. Crows somewhere distant. Nothing else. But there's something off — the tire tracks in the dirt near the barrier. Not yours. Recent enough that the edges haven't crumbled.
<br /><br />
Someone else with a vehicle came through here. Not long ago.
<br /><br />
A tin cup on the window sill, not yet rusted through. The door is ajar.
<br /><br />
<div id="opt_inside">
<<linkreplace 'Search inside'>>
<<run $('#opt_perimeter').hide()>>
<<run $('#opt_wait').hide()>>
<<run $('#opt_drive').hide()>>
<<addmins 15>>
<<if setup.percentageChance(60)>>
<center>
<<image 'places/explore_car/outpost2.jpg' sfw>>
</center>
<br />
Overturned chairs. A filing cabinet gutted onto the floor. Old duty rosters, names you don't recognize. But behind a false panel in the back wall — still sealed — a crate of field rations and a first aid kit, vacuum-packed and dry.
<br /><br />
On top of the crate, a handwritten note: <em>"For whoever finds this. You're probably doing better than we did. — R."</em>
<br /><br />
<<set _food = randomInteger(3, 5)>>
You found <strong class="iitem"><<=_food>> food</strong> and <strong class="iitem">1 bandage</strong>.
<<pickup $backpack 'food' _food>>
<<pickup $backpack 'bandage' 1>>
<<else>>
<center>
<<image 'places/explore_car/outpost2.jpg' sfw>>
</center>
<br />
Stripped clean — probably months ago. Nothing left that matters. The duty log on the desk goes up to a date, then stops mid-sentence: <em>0600 — vehicle approaching from north, unable to identify — </em>
<br /><br />
The entry below it is someone else's handwriting. Just two words: <em>don't stop.</em>
<br /><br />
You stand there a moment with that, then turn to leave. Your boot catches something low and taut — a wire, shin-height, stretched across the doorway. The tension releases. A rusted shelf bracket swings down from above and connects hard with your shoulder before you can get clear.
<br /><br />
Rigged. Whoever stripped this place didn't want anyone else getting comfortable here.
<<perkAdd 'beaten'>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="opt_perimeter">
<<linkreplace 'Check the perimeter'>>
<<run $('#opt_inside').hide()>>
<<run $('#opt_wait').hide()>>
<<run $('#opt_drive').hide()>>
<<addmins 10>>
<<if setup.percentageChance(55)>>
The tire tracks lead around the back. Whoever it was pulled in off the road and parked out of sight — smart habit. They left in a hurry though: a sealed jerry can sits forgotten against the back wall, wedged behind a generator that stopped working years ago.
<br /><br />
<center>
<<image 'places/explore_car/outpost3.jpg' sfw>>
</center>
<br />
Still sloshing. You don't ask questions about abandoned fuel.
<br /><br />
You got <strong class="iitem">fuel (+20)</strong>.
<<set $player.car.fuel = Math.min($player.car.fuel + 20, 100)>>
<<else>>
Three shallow mounds behind the building, no markers. The kind of graves people dig fast and don't come back to. A rusted rifle jammed barrel-down into the earth next to the largest one — whether that's a grave marker or a warning is hard to say.
<br /><br />
The tire tracks circle around and head back north. You're following them with your eyes when movement in the brush behind the fence line resolves into a person — lean, hood up, already running. They'd been watching the whole time. They shove you hard as they bolt past, enough to put you in the dirt, and by the time you're up they're gone. Your car is fine. Your pride less so.
<<perkAdd 'beaten'>>
<br /><br />
Nothing useful. You get back in the car.
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="opt_wait">
<<linkreplace 'Cut the engine and wait'>>
<<run $('#opt_inside').hide()>>
<<run $('#opt_perimeter').hide()>>
<<run $('#opt_drive').hide()>>
<<addmins 25>>
<<if setup.percentageChance(40)>>
Fifteen minutes of silence. Then — distant, but getting closer — an engine. Not yours.
<br /><br />
<center>
<<image 'places/explore_car/outpost4.jpg' sfw>>
</center>
<br />
A motorcycle pulls up. The rider kills the engine and sits on it for a long moment, staring at your car the way people stare at things that shouldn't exist. Then, slowly, they pull off their helmet.
<br /><br />
<<if setup.percentageChance(50)>><<newgirl>><<set _roadNpc = $tmpGirl>><<else>><<newguy>><<set _roadNpc = $tmpGuy>><</if>>
They're young. Tired. They look at your car, then at you, then back at the car.
<br /><br />
<<sayNpc _roadNpc>>
<<= either("Where did you get that?", "That thing actually runs?", "I haven't seen a working car in two years.")>>
<</sayNpc>>
<br />
The conversation that follows is brief. They trade information — a safe route north, a water source two days east — for the chance to just sit next to a running engine for a minute. They press their palm flat against the hood while it's still warm.
<br /><br />
<<set _food = randomInteger(1, 2)>>
They left <strong class="iitem"><<=_food>> food</strong> and a piece of useful information.
<<pickup $backpack 'food' _food>>
<<else>>
Nobody comes. The tracks are old enough after all — or whoever made them has no reason to return. You sit in the quiet with the engine off for twenty minutes before deciding the wait isn't worth it.
<br /><br />
The silence out here is its own kind of answer.
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="opt_drive">
<<link 'Drive on'>>
<<goto 'Garage'>>
<</link>>
</div><h1 class="ptitle">DESERT</h1>
<br />
Dazed and disoriented, you slowly regain consciousness, your head throbbing with pain from the brutal beating you suffered at the hands of the scavengers. Blinking away the haze, you struggle to sit up, taking stock of your surroundings.
<br /><br />
Your car is still there, a reassuring presence amidst the desolate landscape, but something feels off. As you inspect the vehicle, you notice that a significant amount of fuel is missing from the tank, leaving you with a sinking feeling in the pit of your stomach.
<br /><br />
It becomes clear that while you were unconscious, the scavengers took advantage of the situation to siphon off fuel from your car, leaving you stranded in the unforgiving desert wasteland. Anger and frustration bubble up within you as you realize the extent of their betrayal.
<br /><br />
Casting a wary glance around the deserted landscape, you can't help but wonder what other dangers may be lurking nearby.
With your fuel reserves depleted and your body battered from the encounter, you know that your survival in this harsh post-apocalyptic world just became even more precarious.
With determination fueling your resolve, you steel yourself for the challenges ahead as you contemplate your next move in this unforgiving desert wilderness.
<br /><br />
<<set $player.car.health -=5>>
<<set $player.car.fuel = Math.max(0, $player.car.fuel - 20)>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">DESERT</h1>
<br />
As you catch your breath amidst the aftermath of the intense skirmish, you hear the distant rumble of an engine.
Turning to see the scavenger's driver, his face obscured by a tattered scarf, hastily retreating in his vehicle.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/car_attack_drive.jpg']]
</center>
<br />
With a final glance at his fallen comrades,
he abandon his defeated allies and drove away into the desert,
leaving you victorious but wary of the challenges that still lie ahead in this harsh post-apocalyptic world.
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">DESERT</h1>
<br />
As the scorching sun beat down upon the endless expanse of desert wasteland, you navigated your rugged post-apocalyptic car across the unforgiving terrain. The distant horizon shimmered with heat waves, mirages teasing your weary eyes as you searched for valuable salvage among the sands.
<br /><br />
Suddenly, the tranquility of the desert was shattered by the roar of engines. Your heart raced as you spotted another scavenger car barreling towards you from a distant dune. Instinctively, you tightened your grip on the steering wheel, preparing for whatever confrontation lay ahead.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/car_attack.webp']]
</center>
<br />
With a deafening crunch, the opposing vehicle slammed into the side of your car, sending metal screeching and glass shattering.
The impact jolted you violently, threatening to throw you off course as the two vehicles careened dangerously across the sand.
<br /><br />
Cursing and shouting erupted from the other car as <strong>four</strong> figures emerged, their faces hidden behind makeshift masks and goggles.
They brandished makeshift weapons, their intentions clear as they yelled at you to stop.
<br /><br />
<<set $player.car.health -=20>>
<<newguy>>
<<sayNpc $tmpGuy>>
Stop the car now or die!
<</sayNpc>>
<br />
<div id="option_stop">
<<linkreplace 'Stop the car'>>
<<run $('#option_run').hide()>>
As you bring your car to a screeching halt in the gritty sand, the other vehicle pulls up just meters ahead, kicking up clouds of dust in its wake.
With a tense silence hanging in the air, the <strong>three</strong> scavengers leap out of their battered car, their boots thudding against the ground as they approach you.
<br /><br />
<<sayNpc $tmpGuy>>
Oh you are so dead!
<</sayNpc>>
<br />
<<link 'Fight them'>>
<<set _enemies = []>>
<<run _enemies.push($tmpGuy)>>
<<newguy>>
<<set $tmpGuy.inventory = {
knife: 1
}>>
<<run _enemies.push($tmpGuy)>>
<<newguy>>
<<set $tmpGuy.inventory = {
knife: 1
}>>
<<run _enemies.push($tmpGuy)>>
<<fight _enemies 'Car explore event - attack car won' 'Car explore event - attack car lost'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_run">
<<linkreplace 'Try to run away'>>
<<run $('#option_stop').hide()>>
<<set _chanceOfDamage = 100>>
<<if $player.int > 50>>
<<set _chanceOfDamage -= 20>>
<</if>>
<<if $player.int > 100>>
<<set _chanceOfDamage -= 30>>
<</if>>
<<if setup.percentageChance(_chanceOfDamage)>>
<<set $player.car.health -=20>>
As the other scavenger car bears down on you, you grit your teeth and press down hard on the accelerator, determined to escape the looming threat. With a roar of engines, your car lurches forward, kicking up a cloud of sand in its wake as you veer off course, desperately trying to evade the incoming collision.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/car_attack_crash.jpg']]
</center>
<br />
But the scavenger car is relentless, its drivers skilled in the art of pursuit amidst the harsh desert terrain. With a sickening jolt, the other vehicle slams into the side of your car once again, sending shocks of pain reverberating through your body as metal grinds against metal.
<<else>>
With quick thinking and a keen eye, you deftly maneuver your car, anticipating the scavenger's next move. As their vehicle barrels towards you for another collision, you swiftly veer to the side, narrowly avoiding the impact. The scavenger car zooms past, the roar of its engine fading into the distance as you breathe a sigh of relief.
<</if>>
<br /><br />
With a final burst of speed, you manage to break free from the scavenger car's clutches, leaving it behind in a cloud of dust and debris as you race away into the vast expanse of the desert. Adrenaline courses through your veins as you push your car to its limits, putting as much distance as possible between you and the dangerous foes hot on your tail.
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br />
Your tires crunch gravel as you ease off the gas. The wind carries the low hum of decay.
<br /><br />
Up ahead, the road is partially blocked by three rust-choked vehicles: a military truck with faded green paint and two civilian cars riddled with bullet holes.
<br /><br />
<center>
<<image 'places/explore_car/dead_convoy1.jpg' sfw>>
</center>
<br />
The truck’s cab door hangs open, swinging in the breeze with a rusty groan.
Flies buzz thick around a torn canvas tarp in the back. One car is burned out, the other crushed against a rusting road sign
<br /><br />
Empty shell casings glint in the dirt. A child's shoe lies in the middle of the road.
<br /><br />
The whole place feels dead, but not forgotten.
<br /><br />
<div id="option_search">
<<linkreplace 'Stop and search the convoy'>>
<<run $('#option_avoid').hide()>>
<<if setup.percentageChance(50)>>
<center>
<<image 'places/explore_car/dead_convoy2.jpg' sfw>>
</center>
<br />
Inside the truck’s locked crate, you find old supplies.
<br /><br />
<<set _food = randomInteger(1,5)>>
You found <strong class="iitem"><<=_food>> food</strong>
<<pickup $backpack 'food' _food>>
<br />
<<if setup.percentageChance(10)>>
You found <strong class="iitem">1 gas mask</strong>
<<pickup $backpack 'gas_mask' 1>>
<</if>>
<<else>>
<center>
<<image 'places/explore_car/dead_convoy3.jpg' sfw>>
</center>
<br /><br />
When you open the trunk of the civilian car, a rigged crossbow goes off with a deafening bang.
You’re grazed in the arm—minor injury—and your vehicle’s window is shattered by the blast. Someone set this up and never came back for it.
<<perkAdd 'bleeding'>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_avoid">
<<linkreplace 'Drive around and avoid it'>>
<<run $('#option_search').hide()>>
<<if setup.percentageChance(50)>>
You turn onto a broken side path through dry brush. Takes longer, but you avoid any contact.
<br />
You catch sight of distant shapes watching from a ridge, but they don’t follow.
<<else>>
<center>
<<image 'places/explore_car/dead_convoy4.jpg' sfw>>
</center>
<br />
As you pull off-road, your front tire suddenly deflates—a spike strip buried under loose gravel.
<br />
Takes 30 minutes to patch or swap. You get the uneasy feeling this wasn’t an accident.
<<addmins 30>>
<<set $player.car.health -=5>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br />
You spotted it from the road — a column of smoke, thin and deliberate, rising from somewhere past the treeline. Not a brushfire. Something that needed tending. Something with people behind it.
<br /><br />
You killed the engine and coasted to a stop at the edge of the road, scanning the area before you got any closer. Nothing moved on the approach. You waited, then edged forward on foot until you had a clear line of sight.
<br /><br />
<center>
<<image 'places/world/raider_camp.jpg' sfw>>
</center>
<br />
A camp. Organized, armed, and settled in. Not a temporary shelter — someone had put effort into this. You'd known other groups existed out there, but knowing it and seeing it up close were different things. It made the map in your head feel smaller. More crowded.
<br /><br />
Who were they? What did they want? And how many more setups like this were scattered across the roads you hadn't driven yet?
<br /><br />
You pulled out a scrap of paper and sketched what you could make out. Location, rough layout, anything that might matter later.
<br /><br />
<center>
<<image 'places/world/first_settlement_map.jpg' sfw>>
</center>
<br />
<!-- #### places/world/first_settlement_map.jpg | weathered hands holding a rough hand-drawn map on crumpled paper, post-apocalyptic, close-up --ar 4:2 --p -->
<<you>>
There will be more of them out there. Better start keeping records.
<</you>>
<br />
<p style="color: #55cc88; font-size: 0.9em;">★ The World map is now accessible from your Garage.</p>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
Her eyes widen slightly as she understands your implication.
She looks back at her camp, then turns to you with a resigned nod.
<br /><br />
<<sayNpc $tmpGirl>>
Alright. If that's what it takes to keep us going.
<</sayNpc>>
<br />
<center>
[img[setup.ImagePath+'places/explore_car/fuel_dilemma_undress.jpg']]
</center>
<br />
She climbs into the back seat of your car, the intimacy of the enclosed space heightening the tension.
As she begins to undress, the air fills with a mix of apprehension and vulnerability. She removes her pants and panties and spreads her legs, waiting for you.
<br />
You pull down your pants and get between her legs.
You reach out, attempting to create a moment that feels more human than transactional, but her expression doesn't change.
She lies back, her eyes fixed on a point beyond you, distant and vacant.
<br /><br />
<<video 'explore_car/fuel_dilemma1'>>
<br /><br />
As soon as you slide your hard dick into her dry pussy, she lets out surprised moan and her face lights up a bit as she puts hands up and pushes them against the door of the car.
<br /><br />
<<sayNpc $tmpGirl>>
Ouch.. Mmmm.. Faster..
<</sayNpc>>
<br />
Instead of looking at fixed point behind you she starts to look at you.
<br /><br />
<<video 'explore_car/fuel_dilemma2'>>
<br /><br />
She clearly starts to enjoy more and more this as she lets out louder and louder moans. As you start to make deeper and harder thrusts she slowly starts to unbutton her top...
<br /><br />
<<sayNpc $tmpGirl>>
Oh yes, continue.. Fuck me.
<</sayNpc>>
<br />
<<video 'explore_car/fuel_dilemma3'>>
<br /><br />
<<sayNpc $tmpGirl>>
Faster, faster!
<</sayNpc>>
<br />
As you pick up the speed she finishes to unbutton her top and flashes her tits, letting them out. As you fuck her faster and faster she plays with her nipples while her eyes are fully locked on you.
<br /><br />
<<sayNpc $tmpGirl>>
Just not inside mmm... me... Holly shiiit...
<</sayNpc>>
<br />
<<linkreplace 'Cum on her face'>>
<<video 'explore_car/fuel_dilemma4'>>
<<horny_reset>>
<br /><br />
You catch her by suprise as you pull out and move your dick towards her face. Instead of opening her mouth, she keeps it closed as you cum all over her face.
<br /><br />
<<sayNpc $tmpGirl>>
What the... I didn't expect it there.
<</sayNpc>>
<br />
She started to clean her face with her top as she dressed and get out of your car.
<br /><br />
<<sayNpc $tmpGirl>>
Thank you for the fuel, I guess...
<</sayNpc>>
<br />
As you drive away, the encounter weighs heavily on your conscience.
The road stretches out before you, each mile a reminder of the choices made in a world where survival often demands sacrifices that go beyond physical resources.
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>><h1 class="ptitle">OUTSIDE</h1>
<br />
As you traverse the rugged terrain in your well-maintained vehicle, you come across a traveling camp of settlers.
<br />
Their makeshift tents hint at a nomadic lifestyle, but something seems amiss as you drive closer.<br />
A small group is gathered around a fuel drum, their expressions tense and worried.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/fuel_dilemma1.jpg']]
</center>
<br />
A sudden movement catches your attention.
<br />
A young woman from the camp rushes onto the road, waving her hands frantically to get your attention.
Her face is a mix of desperation and urgency, and you can sense that something important is on her mind.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/fuel_dilemma_girl.webp']]
</center>
<br /><br />
<<newgirl>>
<<set _npcGirl = clone($tmpGirl)>>
<<set _npcGirl.race = 'white'>>
<div id="option_stop">
<<linkreplace 'Stop'>>
<<run $('#option_ignore').hide()>>
<<run $('#option_leave').show()>>
Intrigued and concerned, you ease off the accelerator and come to a halt a short distance away from her. The rest of the camp watches curiously as the young woman approaches your vehicle, her eyes locked on yours.
<br /><br />
<<sayNpc _npcGirl>>
Thank you for stopping!
<</sayNpc>>
<br />
<<sayNpc _npcGirl>>
We're really struggling out here. Our generators are barely running on fumes, and without more fuel, we won't be able to keep warm or power essential equipment.
<</sayNpc>>
<br />
Taking a deep breath to compose herself, she begins to explain their dire situation with fuel.
<br />
Her words resonate with you, reminding you of the precariousness of survival in this unforgiving world
<br /><br />
<<if $player.car.fuel < 20 && $backpack.count('fuel') < 2>>
<strong>You don't have enough fuel to help</strong>
<br /><br />
<<else>>
<<if $backpack.count('fuel') >= 2>>
<<set _gaveCans = true>>
<strong>You will give 2 fuel cans</strong>
<<else>>
<strong>You will give her 20% of your fuel tank</strong>
<</if>>
<br /><br />
<div id="option_give">
<<linkreplace 'Give her fuel'>>
<<if $backpack.count('fuel') >= 2>>
<<drop $backpack 'fuel' 2>>
<<else>>
<<set $player.car.fuel -= 20>>
<</if>>
<<set $player.goodwill += randomInteger(3, 5)>>
<<run $('#option_bj, #option_fuck').hide()>>
<<sayNpc _npcGirl>>
Really? Thank you so much
<</sayNpc>>
<br />
<<if _gaveCans>>
The woman watches anxiously as you carefully take two cans of fuel out of your car and give them to her.
<<else>>
The woman watches anxiously as you carefully draw fuel from your tank into the container. Once you've filled it with a reasonable amount, you hand it to her.
<</if>>
<br /><br />
<<you>>
This should give you a bit of breathing room. I need to ensure I have enough for my own journey, but I hope this helps.
<</you>>
<br />
<<set $player.reputation += 2>>
She nods gratefully, clutching the container tightly.
<br /><br />
<<sayNpc _npcGirl>>
Thank you. This will make a world of difference for us. We won't forget your kindness.
<</sayNpc>>
<br />
<</linkreplace>>
</div>
<div id="option_capture">
<<linkreplace 'Try to capture her'>>
<<run $('#option_bj,#option_give, #option_fuck').hide()>>
As you grab her hand she starts to scream and resist. Other people from her group notices what you are doing.
Some just look away and tries to ignore but other starts to scream at you and when gathered together starts to run towards you.
<br /><br />
<<link 'Fight them'>>
<<generateEnemies 3 2>>
<<set $tmpGirl = _npcGirl>>
<<run $enemies.push($tmpGirl)>>
<<fight $enemies 'Garage' 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_bj">
<<linkreplace 'Ask for a blowjob'>>
<<run $('#option_give, #option_fuck').hide()>>
<<sayNpc _npc>>
Fuck you all! You're all the same... Give me the fuel and I will suck you off.
<</sayNpc>>
<br />
The woman watches anxiously as you carefully draw fuel from your tank into the container. Once you've filled it with a reasonable amount, you hand it to her.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/fuel_dilemma_bj1.webp']]
</center>
<br />
Then she opens door of your car and gets in and waits for you. As soon as you get in the car, without hesitation she unzips your pants, takes out your dick and carefully puts it in her mouth.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/fuel_dilemma_bj2.webp']]
</center>
<br /><br />
She doesn't put much effort in and just keeps it slow but somehow her lips are so tight that you don't mind it. Then she increases her speed a bit and you feel it won't be long anymore.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/fuel_dilemma_bj3.webp']]
</center>
<br />
<<horny_reset>>
As you start to cum in her mouth, she instantly pulls your dick out and spits out all cum you managed to shot in her mouth. She slowly continues to jerk you off as you keep cumming.
<br /><br />
<<sayNpc _npc>>
Deal is a deal. Now leave. Thank you.
<</sayNpc>>
<br /><br />
<<if $backpack.count('fuel') >= 2>>
<<drop $backpack 'fuel' 2>>
<<else>>
<<set $player.car.fuel -= 20>>
<</if>>
<</linkreplace>>
</div>
<div id="option_fuck">
<<if !recall($suppCode)>>
<div class="link-internal disabled" style="background: #ccc">
Ask for a fuck
<<notPatreonIcon>>
</div>
<<else>>
<<link 'Ask for a fuck'>>
<<goto 'Car explore event - fuel dilemma fuck'>>
<</link>>
<</if>>
</div>
<</if>>
<</linkreplace>>
</div>
<div id="option_ignore">
<<linkreplace 'Ignore her'>>
<<run $('#option_stop').hide()>>
<<run $('#option_leave').show()>>
<center>
[img[setup.ImagePath+'places/explore_car/fuel_dilemma_finger.jpg']]
</center>
<br />
Glancing back in the mirror, you catch a glimpse of the woman's frustrated expression.
She raises a defiant middle finger in your direction, yelling something indiscernible over the roar of your engine.
<br />
Her anger is palpable, a tangible reminder of the consequences of your choice to prioritize your own journey over helping others in need.
<br /><br />
<<set $player.goodwill -= 10>>
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
</div><h1 class="ptitle">DESERT</h1>
<br />
After a tense standoff, you managed to outsmart and overcome the two bulky figures, leaving them sprawled in the unforgiving desert dust.
As the adrenaline began to subside, you turned your attention to the young woman who had been chained to the pole. The air hung heavy with the weight of the post-apocalyptic world.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/explore_girl_gas_station2.jpg']]
</center>
<br />
Approaching her cautiously, you extended a helping hand to lift her from the ground. However, to your surprise, she remained on her knees, unmoving.
<br /><br />
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit>>
<div id="option_slave">
<<linkreplace 'Enslave her'>>
<<run $('#option_guest').hide()>>
<<set $tmpGirl.capture = false>>
<<set $tmpGirl.happy -= 40>>
<<set $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<statsAdd 'people_captured'>>
<<sayNpc $tmpGirl>>
Do whatever you like. There is no point to struggle.
<</sayNpc>>
<br />
With a firm grip, you pulled her up, her frail frame resisting the movement at first. She yielded, allowing herself to be lifted from the unforgiving ground.
The silence lingered, broken only by the distant howls of the wind. The vast expanse of the deserted landscape stood witness to this unexpected moment.
<br /><br />
<</linkreplace>>
</div>
<</if>>
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<div id="option_guest">
<<linkreplace 'Invite her as guest'>>
<<run $('#option_slave').hide()>>
<<set $tmpGirl.capture = false>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 40, 100)>>
<<set $tmpGirl.happy += 80>>
<<set $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<sayNpc $tmpGirl>>
You don't need to do that.
<</sayNpc>>
<br />
Her eyes, though still carrying the weight of the world, held a glimmer of gratitude
<br />
Without uttering another word, she nodded towards your vehicle, silently agreeing to venture into the unknown.
<br /><br />
<</linkreplace>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">DESERT</h1>
<br />
The sun beat down mercilessly on the barren landscape as you navigated your makeshift vehicle through the desolate desert, its tires kicking up swirls of dust that hung in the air like a ghostly veil.
The world had changed, ravaged by some catastrophic event that left only remnants of civilization behind.
<br /><br />
In the distance, you spotted the faded sign of an old gas station, its once vibrant colors now muted by years of neglect. Curiosity getting the better of you, you decided to pull over and investigate.
As you approached, the creaking hinges of the station door echoed through the emptiness, setting an eerie tone.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/explore_girl_gas_station1.jpg']]
</center>
<br />
Among the rusted pumps, you noticed a young woman.
She appeared fragile, chained to a weathered pole as if abandoned in this desolate place. Her sunken eyes met yours as you cautiously approached her.
<br /><br />
<<newgirl>>
<<sayNpc $tmpGirl>>
Leave me alone!
<</sayNpc>>
<br />
<<linkreplace 'You need some help?'>>
<<you>>
Hey, are you okay? Do you need help?
<</you>>
<br />
Her voice, filled with a mix of desperation and defiance, whispered through the dry air.
<br /><br />
<<sayNpc $tmpGirl>>
Just go away. You can't help me.
<</sayNpc>>
<br />
<<linkreplace 'Break her chains'>>
The silence was shattered by the sudden appearance of two hulking figures emerging from the shadows, seemingly materializing from the vast emptiness of the desert.
<br /><br />
Their bulky frames and worn leather attire hinted at a rugged existence in this harsh world.
Their eyes met yours with a menacing glare, and the atmosphere grew tense. It became clear that the woman was not alone in this desolation, and your intrusion had not gone unnoticed.
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
Looks like we got ourselves a curious wanderer.
<</sayNpc>>
<br />
The other cracked his knuckles, a sinister grin stretching across his weathered face.
<br /><br />
<<generateEnemies 2>>
<<link 'Fight them'>>
<<fight $enemies 'Car explore event - girl gas station won' 'Garage'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<div id="option_leave">
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br />
The family fights you off, running into the house and locking the door on you as they leaving you battered and bleeding in their yard. You drag yourself to the car, barely escaping with your life, regretting your choice to make trouble for the family.
<br /><br />
Looks like you dropped some of your caps in the struggle.
<br /><br />
<<if $player.money >= 200>>
<<set $player.money -= 100>>
<<else>>
<<set $player.money /= 2>>
<</if>>
<<link 'Leave'>>
<<addhours 1>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
<<if !$capturing>>
You hold back the angry husband as the women dash into your car. As you drive off, they take one last look back at their old broken down home, the husband on the side of the road, beaten and sulking as he watches the car drive away. The turn and settle into their seats, eyes forward as you drive them to their new life in your household.
<br /><br />
<<for _i to 0; _i lt $carTemp.length; _i++>>
<<set $tmpGirl = $carTemp[_i]>>
<<include 'NPC info'>>
<<run $guests.push($carTemp[_i])>>
<<run setup.npc.addHistory($carTemp[_i], 'invited')>>
<</for>>
<<else>>
You gather up your defeated captives into the car and drive back to the cabin with your spoils.
<br /><br />
<<for _i to 0; _i lt $carTemp.length; _i++>>
<<set $tmpGirl = $carTemp[_i]>>
<<include 'NPC info'>>
<<run $slaves.push($carTemp[_i])>>
<<run setup.npc.addHistory($carTemp[_i], 'captured')>>
<</for>>
<</if>>
<<link 'Leave'>>
<<addhours 1>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
The cracked road stretches ahead, winding through a forest that feels untouched for years.
Your car hums beneath you, tires crunching over debris as you navigate cautiously.
It’s been hours since you last saw anything but trees, so when an old house emerges from the wilderness, you instinctively slow down.
The structure is worn—its roof sagging, windows dark, and porch half-collapsed. Something about it prickles at the back of your neck.
<br /><br />
<center>
<<image 'places/explore_car/gypsy_family.jpg' sfw>>
</center>
<br /><br />
You step out, the air thick with the scent of damp wood and decay. As you move closer, footsteps echo from the side of the house. A family emerges—a tall, burly man with a thick beard, a woman with tired but sharp eyes, and a younger girl, perhaps in her late teens, standing cautiously behind them.
<br /><br />
<<video 'explore_car/ghipsy1'>>
<br /><br />
The man steps forward first, his face twisting with suspicion and anger.
<br /><br />
<<newguy>>
<<set _father = $tmpGuy>>
<<newgirl>>
<<set _mother = $tmpGirl>>
<<newgirl>>
<<set _daughter = $tmpGirl>>
<<set _daughter.race = _mother.race>>
<<sayNpc $tmpGuy>>
Get lost!
<</sayNpc>>
<br />
He barks, voice carrying through the trees. His posture is tense, shoulders squared as if expecting trouble.
Before things can escalate, the woman places a hand on his arm, murmuring something that softens his scowl.
He huffs, shaking her off before stomping back behind the house, leaving you alone with her gaze lingering on you.
<br /><br />
<<sayNpc _mother>>
Best you move along
<</sayNpc>>
<br />
She says, though her tone lacks the aggression of her husband’s.
<br /><br />
<center>
<<image 'places/explore_car/gypsy_family2.jpg' sfw>>
</center>
<br /><br />
<<if $player.money >= 50>>
<<linkreplace 'Pull out 50 caps'>>
<<set $player.money -= 50>>
<<run $('#desc_caps, #option_leave').hide()>>
Instead of turning away, you reach into your pack, pulling out a handful of caps—currency in this shattered world.
The faint jingle catches her attention, and her expression shifts. She steps a little closer, arms crossing.
<br /><br />
<<video 'explore_car/ghipsy2'>>
<br /><br />
<<sayNpc _mother>>
That’s a lot! What do you want?
<</sayNpc>>
<br />
<strong>You point at her daughter.</strong>
<br /><br />
She instantly goes back to her daughter, grabs her by hand and pulls her towards you while whispering something in her ear.
As they both approaches, mother moves her hand towards your bulge and helps her get out your dick and grab it.
<br /><br />
<<video 'explore_car/ghipsy3'>>
<br /><br />
<<sayNpc _mother>>
This? You want this?
<</sayNpc>>
<br />
Young woman gently jerks you as mother quietly tells her to put your dick in her mouth.
<br /><br />
<<sayNpc _mother>>
Do it sweety. This man paid us good.
<</sayNpc>>
<br />
Her mother stands beside her, arms crossed, watching intently at your hard cock going inside her daughter's mouth.
<br /><br />
<<video 'explore_car/ghipsy4'>>
<br /><br />
The young woman lets out a muffled gag as she struggles with you pushing your dick all the way inside her mouth.
She knows what she’s doing—her lips move with practiced ease, and she even mutters small things under her breath.
<br /><br />
<<video 'explore_car/ghipsy5'>>
<br /><br />
As you put your hand on daughter's head and force yourself deeper into her mouth, mother doesn't seem bothered.
She gets a better angle for a moment to check how she's doing before going back to her old spot.
<br /><br />
<<sayNpc _mother>>
Good job sweety. Do what this man paid for.
<</sayNpc>>
<br />
<<video 'explore_car/ghipsy6'>>
<br /><br />
Then young woman goes down towards your balls and licks them while you grab your own dick and jerk it off meanwhile.
Mother slowly walks around her daughter and leans closer to your dick. But instead of what you imagined, she whispers something in her ear.
<br /><br />
<<sayNpc _mother>>
Make him happy. Look at his car. He has everything. We could use that.
<</sayNpc>>
<br />
Suddenly, from the corner of your eye, you see a movement. Father fuming—emerges from behind a crumbling wall. The mother stiffens, her face paling in an instant.
<br /><br />
<<video 'explore_car/ghipsy7'>>
<br /><br />
Without thinking, she moves in front of you two, throwing open her robe in a desperate, instinctual act to block his line of sight.
Her breasts, inside her black bra, with golden chain around her neck looks so firm and good for her age.
She moves closer and panic whispers to both of you as she pushes you both back, out of the sight.
<br /><br />
<<sayNpc _mother>>
Father... Lets move a bit further. Otherwise he will kill as all.
<</sayNpc>>
<br /><br />
Three of you go a bit further away from the home, behind some trees, behind one of the shed.
As you move bit further, daughter presses herself against a tree, looking at you, while lifting her skirt, revealing her naked body under her clothes.
She steadies herself and prepares for you as mother notices.
<br /><br />
<center>
<<image 'places/explore_car/gypsy_family_skirt.webp'>>
</center>
<br /><br />
<<sayNpc _mother>>
Just be gentle to her.
<</sayNpc>>
<br /><br />
You position yourself against her pussy, by your surprise, already moist and slowly slide into her. Mother looks worried a bit and asks if she feels good.
Daughter nods with a gasp of moan.
<br /><br />
<<video 'explore_car/ghipsy8'>>
<br /><br />
With each thrust you go faster and deeper. Same goes for daughter's moans. She grabs tree with both hands and presses against it, helping you with her motions.
<br /><br />
You notice for a brief moment that mother bites her lower lip, as she steps a bit away from you two and looks away.
In that moment daughter pushes herself off the tree and forces you to sit down on the cut down tree behind you as she keeps jumping on you.
<br /><br />
<<video 'explore_car/ghipsy9'>>
<br /><br />
<<sayNpc _mother>>
Oh dear. Are you good?
<</sayNpc>>
<br />
<<sayNpc _daughter>>
Yes mother.. I kinda... Like it..
<</sayNpc>>
<br />
Daughter's movements get more fluent and agressive as she clearly tries to make you cum as fast and hard as you can.
Mother sits down next to her and holds her hand while glancing at your dick once in a while.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<if setup.pregnancyChance(_daughter)>>
<<set _daughter.pregnancy_father = 'mc'>>
<<set _daughter.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<<set _daughter.pregnancy_encounter_day = $game.day>>
<<set _daughter.pregnancy_encounter_place = 'unknown'>>
<<run ($pregnantStrangers ??= []).push(clone(_daughter))>>
<</if>>
<center>
<<image 'game/misc/creampie_reverse_cowgirl.webp'>>
</center>
<br /><br />
As you cum deep inside daughter she feels that and jumps off you, letting your cum leak out of her pussy. She clearly didn't like that you cum inside her.
<br /><br />
<<sayNpc _daughter>>
Mother...
<</sayNpc>>
<br />
Mother looks down but ignores that situation and what you have done.
<br /><br />
<<sayNpc _mother>>
It's okay sweety. It's fine.
<</sayNpc>>
<br /><br />
<<sayNpc _mother>>
Thank you good sir. Now leave before my husband sees us!
<</sayNpc>>
<br />
<<set _daughterAge = randomInteger(19, 20)>>
<<set _momAge = _daughterAge + randomInteger(18, 25)>>
<<set _mother.birthDate = setup.getBirthDate(_momAge)>>
<<set _daughter.birthDate = setup.getBirthDate(_daughterAge)>>
<<set _mother.traits = setup.getRandomTraits(_mother, 2)>>
<<set _daughter.traits = setup.getRandomTraits(_daughter, 3)>>
<<set _mother.skills = ['cook', 'shopkeeper']>>
<<set _daughter.skills = ['cook']>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('scavenger')>>
<</if>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('woodcraft')>>
<</if>>
<<set _mother.virgin = false>>
<<set _daughter.virgin = false>>
<<set _daughter.family = {
mother: _mother.id
}>>
<<set _mother.family = {
kids: [
_daughter.id,
]}>>
<<if (($game.location.guesthouse ?? false) && ($guests.length + 1) <= $guesthouseLimit)>>
<div id="option_invite1">
<<linkreplace 'Invite daughter to live with you'>>
<<run $('#option_invite2,#option_capture').hide()>>
<<set _invited = 1>>
Before turning to leave, you look over the daughter, realizing she would make a fine addition to your household.
<br /><br />
<<sayNpc _daughter>>
Really? You want me to come and stay with you?
<</sayNpc>>
<br />
Upon seeing your approval and interest in her daughter, the mother has a shrewd expression.
<br /><br />
<<sayNpc _mother>>
She is very useful around the house, and an adequate cook. It would be very..costly to see her go.
<</sayNpc>>
<br />
Her eyes flick over to the pouch containing your bottle caps with eager interest...
<br /><br />
<<if $player.int > 50>>
<div id="option_convince">
<<linkreplace 'Convince her it would be for the good of the daughter'>>
<<run $('#option_pay, #option_capture, #option_capture2').hide()>>
As you remind the mother that you have the means and resources to give her daughter a better life, her expression softens.
<br /><br />
<<sayNpc _mother>>
It is true.. she deserves better than this. Go, quickly, before her father notices. I will explain things to him. He will come around in time.
<</sayNpc>>
<br />
The daughter looks at you, her expression hesitant but hopeful. She takes your hand as you lead her to the car, and her new life...
<br /><br />
<<set _daughter.relationship = 50>>
<<set _daughter.sub += 10>>
<<set $tmpGirl = _daughter>>
<<include 'NPC info'>>
<<run $guests.push(_daughter)>>
<<run setup.npc.addHistory(_daughter, 'invited')>>
<</linkreplace>>
</div>
<</if>>
<<if $player.money >= 150>>
<div id="option_pay">
<<linkreplace 'Offer 150 bottle caps'>>
<<run $('#option_convince, #option_capture, #option_capture2').hide()>>
<<set $player.money -= 150>>
The mother's eyes light up with avaricious glee as she sees you pull out a generous pile of bottle caps.
<br /><br />
<<sayNpc _mother>>
That should cover our... sacrifice.
<</sayNpc>>
<br />
She scoops up the bottle caps quickly, before you can change your mind. She turns back to her house, already counting the caps.
<br /><br />
<<sayNpc _mother>>
Thanks. She's your problem now.
<</sayNpc>>
<br />
The daughter looks at you with an expression of.. possible relief? It seems like you may be doing her a favor.
<br /><br />
<<set _daughter.relationship = 30>>
<<set _daughter.sub += 40>>
<<set $tmpGirl = _daughter>>
<<include 'NPC info'>>
<<run $guests.push(_daughter)>>
<<run setup.npc.addHistory(_daughter, 'invited')>>
<</linkreplace>>
</div>
<</if>>
<</linkreplace>>
</div>
<</if>>
<<if (($game.location.guesthouse ?? false) && ($guests.length + 2) <= $guesthouseLimit)>>
<div id="option_invite2">
<<linkreplace 'Invite them both to live with you'>>
<<run $('#option_invite1, #option_capture, #option_capture2').hide()>>
Before turning to leave, you look them both over and decide to invite them both to join your household.
<br /><br />
The mother looks a bit surprised to be included in the offer, a slight blush at her cheeks as she sees you admiring her mature figure. She glances over at your car and the prosperity it implies. Then her eyes drift down to your cock, thinking about how much her daughter seemed to enjoy it...
<br /><br />
<<sayNpc _mother>>
A new life would be a welcome change.
<</sayNpc>>
<br />
The daughter nods in agreement.
<br /><br />
<<sayNpc _daughter>>
Yes, he will take much better care of us.
<</sayNpc>>
<br />
Then she turns back to you.
<br /><br />
<<sayNpc _daughter>>
And we will make sure you are satisfied with your choice..
<</sayNpc>>
<br />
The mother turns with a glance back toward her husband, who is storming around the shack.
<br /><br />
<<sayNpc _mother>>
He will not be happy about it, though.
<</sayNpc>>
<br />
<<if $player.int > 30 && $player.money >= 200>>
<div id="option_bribe">
<<linkreplace 'Bribe him to let them go'>>
<<run $('#option_fight, #option_capture, #option_capture2').hide()>>
<<set $player.money -= 200>>
Their readiness to leave tells you that this man has little actual regard for his family's welfare, all too common in this tattered husk of a society.
His attention perks up when you tell him about a club in the underground city where young, beautiful girls are ripe for the picking. With some caps, a man like him could do quite nicely, without all of the responsibility of a hungry family. By the time you pull 200 caps out of your pouch, the man is practically drooling.
<br /><br />
He grins as he takes the pile of bottle caps, counting them greedily. For all his bluster, it seems they were just a burden to him.
<br /><br />
<<sayNpc _father>>
I've given them enough, time to get what I need.
<</sayNpc>>
<br />
He wanders back into the shack, closing the door behind him on his family and former life. The mother and daughter hold hands as they follow you to the car and their new life...
<br /><br />
<<set _daughter.relationship = 50>>
<<set _daughter.sub += 30>>
<<set _mother.relationship = 50>>
<<set _mother.sub += 20>>
<<set $tmpGirl = _mother>>
<<include 'NPC info'>>
<<set $tmpGirl = _daughter>>
<<include 'NPC info'>>
<<run $guests.push(_mother, _daughter)>>
<<run setup.npc.addHistory(_mother, 'invited')>>
<<run setup.npc.addHistory(_daughter, 'invited')>>
<</linkreplace>>
</div>
<</if>>
<div id="option_fight">
<<linkreplace 'Steal them away to the car'>>
<<run $('#option_bribe, #option_capture').hide()>>
You turn and start leading the women to your car. The father comes around the corner, bellowing loudly as he sees you taking them away.
<br /><br />
<<sayNpc _father>>
Where do you think you're going!?!?
<</sayNpc>>
<br />
You turn and brace yourself, ready for a fight!
<br /><br />
<<set _daughter.relationship = 50>>
<<set _mother.relationship = 50>>
<<set _father.strength = randomInteger(30,70)>>
<<set _father.inventory = {
knife: 1
}>>
<<set _dadAge = _daughterAge + randomInteger(18, 35)>>
<<set _father.birthDate = setup.getBirthDate(_dadAge)>>
<<set _daughter.family['father'] = _father.id>>
<<set _mother.family['husband'] = _father.id>>
<<set _mother.married = true>>
<<set _father.family = {
wives: [ _mother.id ],
kids: [
_daughter.id,
]}>>
<<set _father.married = true>>
<<set $carTemp = []>>
<<run $carTemp.push(_mother)>>
<<run $carTemp.push(_daughter)>>
<<set $capturing = false>>
<<link 'Fight'>>
<<set $enemies = []>>
<<run $enemies.push(_father)>>
<<fight $enemies 'Car explore event - gypsy family won' 'Car explore event - gypsy family lost'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<</if>>
<<if (($game.location.basement ?? false) && ($slaves.length + 1) <= $basementLimit) && ($player.money >= 100)>>
<div id="option_capture">
<<linkreplace 'Purchase daughter as slave'>>
<<run $('#option_invite1, #option_invite2, #option_capture2').hide()>>
<<set $player.money -= 100>>
Before turning to leave, you look over the daughter. Deciding you'd like to have her as your possession, you take another 100 caps out of your pouch.
<br /><br />
<<sayNpc _daughter>>
What? You want to buy me?
<</sayNpc>>
<br />
The daughter has a look of shock, her eyes darting between you and her mother as the older woman weighs your offer.
<br /><br />
<<sayNpc _mother>>
He enjoyed you too much. Now he wants to keep you.
<</sayNpc>>
<br />
She considers the bottle caps for a few long moments as she weighs the option, then scoops them up.
<br /><br />
<<sayNpc _mother>>
One less mouth to feed.
<</sayNpc>>
<br />
<<sayNpc _daughter>>
But mother..!
<</sayNpc>>
<br />
Her words fall on deaf ears as her mother turns back to the shack and closes the door. You seize the girl, dragging her back to your car as your newest property.
<br /><br />
<<set _daughter.relationship = 0>>
<<set _daughter.sub += 60>>
<<set $tmpGirl = _daughter>>
<<include 'NPC info'>>
<<run $slaves.push(_daughter)>>
<<run setup.npc.addHistory(_daughter, 'captured')>>
<</linkreplace>>
</div>
<</if>>
<<if (($game.location.basement ?? false) && ($slaves.length + 2) <= $basementLimit) && ($player.energy >= 30)>>
<div id="option_capture2">
<<linkreplace 'Attempt to capture them'>>
<<run $('#option_invite2, #option_capture').hide()>>
<<if !_invited >>
<<run $('#option_invite1').hide()>>
<br /><br />
<<else>>
<<run $('#option_convince, #option_pay').hide()>>
You are finished playing games and bargaining, deciding to just take them by force!
<br /><br />
<</if>>
The women scream as you overpower them, dragging them towards your car. The father comes around the corner, grabbing a knife and running to their defense as he sees you taking his family away.
<br /><br />
<<sayNpc _father>>
LET THEM GO!!!
<</sayNpc>>
<br />
You turn and brace yourself, ready for a fight!
<br /><br />
<<set _daughter.relationship = 0>>
<<set _daughter.sub += 70>>
<<set _mother.relationship = -20>>
<<set _mother.sub += 40>>
<<set _father.strength = randomInteger(30,70)>>
<<set _father.inventory = {
knife: 1
}>>
<<set _dadAge = _daughterAge + randomInteger(18, 35)>>
<<set _father.birthDate = setup.getBirthDate(_dadAge)>>
<<set _daughter.family['father'] = _father.id>>
<<set _mother.family['husband'] = _father.id>>
<<set _mother.married = true>>
<<set _father.family = {
wives: [ _mother.id ],
kids: [
_daughter.id,
]}>>
<<set _father.married = true>>
<<set $carTemp = []>>
<<run $carTemp.push(_mother)>>
<<run $carTemp.push(_daughter)>>
<<set $capturing = true>>
<<link 'Fight'>>
<<set $enemies = []>>
<<run $enemies.push(_father)>>
<<fight $enemies 'Car explore event - gypsy family won' 'Car explore event - gypsy family lost'>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<<link 'Leave'>>
<<addhours 1>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<<linkdesc 'desc_caps'>>
-50 caps
<</linkdesc>>
<<else>>
<div class="link-internal" style="background: #ccc">
Pull out 50 caps
</div>
<</if>>
<div id="option_leave">
<<link 'Leave'>>
<<goto 'Car explore - nothing found'>>
<</link>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br />
Something catches your eye off the road — a glint, low in the scrub. Not glass. Not water. Too deliberate. You pull over and kill the engine.
<br /><br />
<center>
<<image 'places/explore_car/cache1.jpg' sfw>>
</center>
<br />
Thirty meters from the shoulder, half-buried under dirt and dead brush, is a metal box — military-spec, welded reinforced, with a rusted combination lock. A short length of rebar juts from the earth next to it like a marker. Someone planned this. They wanted it found, but not easily.
<br /><br />
Scratched into the top of the box with something sharp, barely legible: <em>FOR THE ROAD.</em>
<br /><br />
Whoever left this had somewhere to go, and a vehicle to get there.
<br /><br />
<div id="opt_dig">
<<linkreplace 'Dig it out and force it open'>>
<<run $('#opt_grab').hide()>>
<<run $('#opt_leave').hide()>>
<<addmins 25>>
The lock goes with leverage and patience — rebar as a pry bar, the lip of a rock as a fulcrum. When it gives, the seal breaks with a sound like a breath held too long.
<<if setup.percentageChance(15)>>
The lid snaps back harder than expected — a spring-loaded mechanism, probably meant to alert the owner. The edge catches your forearm clean. Not deep, but enough to bleed.
<<perkAdd 'bleeding'>>
<br /><br />
<</if>>
<br /><br />
<center>
<<image 'places/explore_car/cache2.jpg' sfw>>
</center>
<br />
Inside, carefully packed: vacuum-sealed rations, a first aid kit still in the original wrap, a hand-drawn map on oilcloth, and a folded note.
<br /><br />
The note reads: <em>"If you found this, you're on the road. That means you have something worth protecting. The three circles on the map — fuel, food, people. In that order of reliability. Good luck."</em>
<br /><br />
The map marks routes between locations — old highway connectors, fuel caches, rest stops. The kind of knowledge that's only useful if you can actually cover ground. Which you can.
<br /><br />
<<set _food = randomInteger(3, 6)>>
You found <strong class="iitem"><<=_food>> food</strong>, <strong class="iitem">2 bandages</strong>, and <strong class="iitem">fuel (+15)</strong>.
<<pickup $backpack 'food' _food>>
<<pickup $backpack 'bandage' 2>>
<<set $player.car.fuel = Math.min($player.car.fuel + 15, 100)>>
<br /><br />
<<set _labelFuel = 'Follow the fuel cache mark'>>
<<set _labelFood = 'Follow the food supply mark'>>
<<set _labelPeople = 'Follow the people mark'>>
<div id="cache_fuel">
<<linkreplace _labelFuel>>
<<run $('#cache_food').hide()>>
<<run $('#cache_people').hide()>>
<<addmins 40>>
<<if setup.percentageChance(65)>>
<center>
<<image 'places/explore_car/cache3.jpg' 'sfw'>>
</center>
<br />
The marked location was a collapsed overpass, two fuel drums tucked under the concrete where they'd be invisible from the road. Whoever left the map knew their routes. The drums were half-full.
<br /><br />
<<set _extraFuel = randomInteger(10, 25)>>
You got <strong class="iitem">extra fuel (+<<=_extraFuel>>)</strong>.
<<set $player.car.fuel = Math.min($player.car.fuel + _extraFuel, 100)>>
<<else>>
The location was picked clean — and the people who picked it were still there. Two of them, sitting on what used to be the cache. They saw the car first and their expressions went from curious to aggressive fast. You got back to the car but not before one of them put a boot through your side mirror and a fist into your ribs.
<br /><br />
You drove away. They didn't follow — the car was enough of a deterrent once it was moving. But the ribs would remind you about this for a few days.
<<perkAdd 'beaten'>>
<<set $player.car.health = Math.max($player.car.health - 5, 0)>>
<</if>>
<br /><br />
<</linkreplace>>
</div>
<div id="cache_food">
<<linkreplace _labelFood>>
<<run $('#cache_fuel').hide()>>
<<run $('#cache_people').hide()>>
<<addmins 40>>
<<if setup.percentageChance(60)>>
The second circle led to a boarded-up rest stop off a highway connector. Behind the counter, stacked neatly in plastic crates: canned goods, dried meat, sealed water bottles. Someone had been stockpiling here — methodically, for a long time. The dust on the shelves said they hadn't been back in months.
<br /><br />
<<set _extraFood = randomInteger(8, 15)>>
You loaded what you could carry. <strong class="iitem">+<<=_extraFood>> food</strong>.
<<pickup $backpack 'food' _extraFood>>
<<else>>
The rest stop was gutted. Shelves stripped, crates smashed, a fire pit in the middle of the floor still warm. Someone beat you to it — recently. Nothing left but wrappers and the smell of smoke.
<</if>>
<br /><br />
<</linkreplace>>
</div>
<div id="cache_people">
<<linkreplace _labelPeople>>
<<run $('#cache_fuel').hide()>>
<<run $('#cache_food').hide()>>
<<addmins 40>>
<<newgirl>>
<<if setup.percentageChance(55)>>
The third circle marked a farmhouse set back from a dirt road. Smoke came from the chimney. You approached carefully.
<br /><br />
A woman opened the door before you knocked — she'd heard the car. She looked tired but not afraid. When you showed her the map, she nodded slowly.
<br /><br />
<<sayNpc $tmpGirl>>
You found one of his caches. He said someone would come eventually.
<</sayNpc>>
<br />
She traded you supplies for news of the roads, and offered directions to two more stashes she knew about.
<br /><br />
<<set _extraFood = randomInteger(3, 6)>>
<<pickup $backpack 'food' _extraFood>>
<<pickup $backpack 'fuel' 1>>
<<set $player.goodwill += 2>>
<strong class="iitem">+<<=_extraFood>> food, +1 fuel, +2 goodwill</strong>.
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<br /><br />
<<set _labelInvite = 'Invite her to your settlement'>>
<<linkreplace _labelInvite>>
<<run $('#cache_leave').hide()>>
<<set $tmpGirl.relationship = 40>>
<<set $player.goodwill++>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<run $guests.push($tmpGirl)>>
<<include 'NPC info'>>
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
<</if>>
<<else>>
The farmhouse was burned out — walls standing, roof gone. In the yard, a shallow grave with a marker made from a car door. Whoever the map was pointing to didn't make it.
<br /><br />
You searched what was left. Found a few things in the cellar they missed.
<br /><br />
<<pickup $backpack 'bandage' 1>>
<<pickup $backpack 'food' 2>>
<strong class="iitem">+2 food, +1 bandage</strong>.
<</if>>
<br /><br />
<</linkreplace>>
</div>
<div id="cache_leave">
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
</div>
<</linkreplace>>
</div>
<div id="opt_grab">
<<linkreplace 'Take what\'s visible without digging'>>
<<run $('#opt_dig').hide()>>
<<run $('#opt_leave').hide()>>
The rebar has a small tin wired to the top — a runner cache, separate from the box. Inside: two cans, a strip of painkillers, and a handwritten note folded twice.
<br /><br />
The note reads: <em>"The box takes work. That's on purpose. If you're in a hurry, hope the cans help. If you have time — dig."</em>
<br /><br />
<<set _food = randomInteger(1, 2)>>
You found <strong class="iitem"><<=_food>> food</strong>.
<<pickup $backpack 'food' _food>>
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="opt_leave">
<<link 'Leave it'>>
<<goto 'Garage'>>
<</link>>
</div><h1 class="ptitle">DESERT</h1>
<br />
<<newguy>>
As you traverse the desolate landscape in your trusty vehicle, you come across a lone figure stumbling along the side of the road. Drawing closer, you realize it's a wounded traveler, desperately clutching a makeshift bandage to a deep gash on their leg.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/injured_guy1.jpg']]
</center>
<br />
The injured individual, a weary and emaciated soul, pleads for your help. They explain that they were part of a larger group that fell victim to an ambush by ruthless marauders. The attackers stole crucial supplies, leaving the rest of the survivors injured and vulnerable.
<br /><br />
<<sayNpc $tmpGuy>>
Maybe you can help me somehow?
<</sayNpc>>
<br />
The injured traveler gazes at you with pleading eyes, awaiting your decision as the winds of the wasteland whisper tales of both compassion and self-preservation.
<br /><br />
<<if $backpack.has('bandage')>>
<div id="option_bandage">
<<linkreplace 'Give him bandage'>>
<<set _giveBandage = true>>
<<drop $backpack 'bandage' 1>>
<<set $tmpGuy.relationship += 40>>
The wounded traveler gratefully accepts the bandage, and with a nod of appreciation, they carefully stow it away in their bag.
Their eyes convey a mix of relief and gratitude as they express their thanks.
<br /><br />
<<sayNpc $tmpGuy>>
Thank you so much!
<</sayNpc>>
<br />
<</linkreplace>>
</div>
<</if>>
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<div id="option_guest">
<<linkreplace 'Invite him as guest'>>
<<run $('#option_slave').hide()>>
<<if !_giveBandage>>
<<run $('#option_bandage').hide()>>
<</if>>
<<set $tmpGuy.capture = false>>
<<set $tmpGuy.relationship += 40>>
<<set $tmpGuy.happy += 80>>
<<set $guests.push($tmpGuy)>>
<<run setup.npc.addHistory($tmpGuy, 'invited')>>
<<sayNpc $tmpGuy>>
Really? I would really like that. Thank you so much!
<</sayNpc>>
<br />
His eyes, though still carrying the weight of the world, held a glimmer of gratitude
<br />
He goes towards car and gets in.
<br /><br />
<</linkreplace>>
</div>
<</if>>
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit>>
<div id="option_slave">
<<linkreplace 'Try to capture him'>>
<<run $('#option_guest').hide()>>
<<if !_giveBandage>>
<<run $('#option_bandage').hide()>>
<</if>>
<<set $tmpGuy.capture = false>>
<<set $tmpGuy.relationship -= 40>>
<<set $tmpGuy.happy -= 20>>
As you unexpectedly lunge at the wounded traveler, he manages to step back just in time, displaying a surprising agility despite his injured state.
The air becomes charged with tension as the traveler readies himself for a potential confrontation.
<br /><br />
<<sayNpc $tmpGuy>>
Fuck you! You are not getting me!
<</sayNpc>>
<br />
<<set $enemies = [$tmpGuy]>>
<<link 'Fight'>>
<<fight $enemies 'Garage' 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
As you navigate the rugged terrain in your trusty post-apocalyptic vehicle, the engine's rumble harmonizes with the wind's mournful howl. Dust swirls in your wake as you scan the horizon for signs of life or danger.
Suddenly, your sharp eyes catch movement ahead—a group of armed figures surrounding someone on the roadside.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/robber_justice.jpg']]
</center>
<br /><br />
You ease off the accelerator, the car's tires crunching on gravel as you approach cautiously. The scene unfolds before you: a young man, hands bound, surrounded by a gang of rough-looking individuals wearing makeshift armor and brandishing weapons. Their leader, a burly figure with a scarred face, barks orders as they accuse the captive of theft.
<br /><br />
Your grip tightens on the steering wheel as you assess the situation. The captors seem poised to mete out their brand of justice, uncaring of due process or innocence
<br /><br />
<<newguy>>
<div id="option_int">
<<linkreplace 'Intervene'>>
<<set _int = true>>
As you pull up closer, the gang's leader, a grizzled man with a scarred face, approaches your vehicle. He eyes you warily, sizing you up before speaking in a gravelly voice.
<br /><br />
<<sayNpc $tmpGuy>>
You got guts, stopping like this. This punk owes us big time. You wanna play hero? Fine. Here's the deal.
<</sayNpc>>
<br />
<<sayNpc $tmpGuy>>
You can buy his sorry hide and pay off his debt to us. Or you throw in something extra to sweeten the deal. Maybe some of them supplies you got in that fancy car of yours.
<</sayNpc>>
<br />
<<if $player.money > 100>>
<div id="option_pay">
<<linkreplace 'Pay his debt'>>
<<run $('#option_pay_desc, #option_ignore').hide()>>
<<run $('#option_leave').show()>>
<<set $player.money -= 100>>
<<set $player.goodwill += 5>>
As soon as he's free, however, he doesn't utter a word of thanks. Instead, he takes off running, disappearing into the dusty landscape without a backward glance. The gang members chuckle at his hasty escape, clearly amused by the turn of events.
<br /><br />
You watch him go, a mix of emotions swirling within you.
Disappointment at his lack of gratitude mingles with a sense of relief that you were able to prevent a senseless execution.
The gang leader grunts again, accepting the payment you've offered, and signals for his group to disperse.
<br /><br />
<</linkreplace>>
</div>
<<linkdesc 'option_pay_desc'>>
-100 caps
<</linkdesc>>
<</if>>
<</linkreplace>>
</div>
<div id="option_ignore">
<<linkreplace 'Ignore'>>
<<if !_int>>
<<run $('#option_int').hide()>>
<</if>>
<<set $player.goodwill -= randomInteger(10,20)>>
<<run $('#option_leave').show()>>
The weight of your decision settles heavily as you shift gears and accelerate away from the grim scene in your rearview mirror.
The echoes of the gang's cruel justice linger in your mind, a haunting reminder of the harsh realities of this post-apocalyptic world.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore_car/robber_justice2.jpg']]
</center>
<br /><br />
In the mirror, you catch a glimpse of the gang's brutality as they shove the captive back and one of them, with a swift motion, cuts his throat.
The crimson spray mingles with the dust of the roadside, a stark testament to the unforgiving nature of survival in this ravaged world.
<br /><br />
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br />
<<set _isFirst = !($game.worldMapUnlocked ?? false)>>
<<if _isFirst>>
<<if !setup.settlements.getAll().length>>
<<set _settlement = setup.settlements.add({ type: 'raider_camp' })>>
<<else>>
<<set _settlement = setup.settlements.getAll()[0]>>
<</if>>
<<set $game.worldMapUnlocked = true>>
<<set $game.location.world = true>>
<<else>>
<<set _settlement = setup.settlements.add()>>
<</if>>
<<run setup.settlements.discover(_settlement, $game.day)>>
<<set $tmpSettlement = _settlement.id>>
<<set _popSize = setup.settlements.getPopulationDescription(_settlement)>>
<<set _genderDesc = setup.settlements.getGenderDescription(_settlement)>>
<<set _defenseDesc = setup.settlements.getDefenseDescription(_settlement)>>
<<set _imgPath = 'places/world/' + _settlement.type + '.jpg'>>
<<set _typeIntros = {
raider_camp: 'Columns of dark smoke rise over a compound of scrap-metal walls and salvaged watchtowers. Movement on the perimeter. Armed.',
biker_gang: 'The sound reached you first — engines, music, shouting. A compound built around an old mechanics yard, bikes lined up outside.',
survivor_camp: 'A cluster of patched tents and prefab modules arranged around a central fire pit. People move between them without hurrying.',
monastery: 'Stone walls that predate the collapse, repaired with newer brick where they\'ve crumbled. A bell tower still stands.',
convent: 'A walled compound, old construction, a small garden visible over the gate. Quiet. Well maintained.',
trading_post: 'A sprawl of stalls and permanent structures built along an old highway junction. Vehicles parked in clusters. People moving goods.',
cult_compound: 'Painted symbols on the outer walls. Banners on poles. The gates are open but the people inside move in deliberate patterns.',
military_base: 'Razor wire. Sandbag positions. A watch post with a working light. Someone kept military discipline alive here after everything else fell apart.',
farming_community: 'Fields. Actual working fields — crops in rows, irrigation lines running from a raised tank. Buildings clustered at the far end.',
medical_colony: 'A white cross on the largest structure, still legible from here. People in pale clothing moving between buildings with purpose.',
tribal_village: 'Circular structures with fire pits between them. Carved wood poles. Traditional construction, built after the collapse.',
prison_colony: 'High walls, minimal windows, a guard tower with a rotating lamp. Whether or not it started as a prison, it functions as one now.',
nomad_caravan: 'A circle of vehicles — trucks, campers, trailers — parked in a defensive ring. They\'ve stopped here, but they don\'t look like they intend to stay.',
amazonian_tribe: 'A settlement built with deliberate care. Watchtowers manned by figures with bows. No men visible from here.',
scavenger_den: 'An enormous mass of salvage — vehicles, appliances, structural steel — surrounding a core of crude buildings. Smoke from a smelter.'
}>>
<center>
<<image _imgPath sfw>>
</center>
<br />
<<=_typeIntros[_settlement.type] ?? setup.settlements.getDescription(_settlement)>>
<br /><br />
A <<= _popSize>> settlement, <<= _genderDesc>>. <<= _defenseDesc[0].toUpperCase() + _defenseDesc.slice(1)>>.
<br /><br />
<<if _isFirst>>
<<goto 'Car explore event - first settlement'>>
<<else>>
<<link 'Approach'>>
<<set $tmpSettlement = _settlement.id>>
<<goto 'Garage - World - Settlement'>>
<</link>>
<br />
<<link 'Leave for now'>>
<<goto 'Garage'>>
<</link>>
<</if>><h1 class="ptitle">OUTSIDE</h1>
<<newgirl>>
<<set $tmpGirl.relationship = 0>>
<br />
You come around a long bend and find her before she finds you — crouched over a dead engine on the shoulder, screwdriver in hand, working by feel in the afternoon heat. Then your engine sound reaches her.
<br /><br />
She goes completely still.
<br /><br />
By the time you slow to a stop she's standing, watching your car the way someone watches something they stopped believing existed. Her mouth moves once without making a sound. Then she catches herself and her expression locks back into something careful and neutral — but she can't stop her eyes going back to the car. The engine. The tires.
<br /><br />
<center>
<<image 'places/explore_car/stranded1.jpg' sfw>>
</center>
<br />
<<sayNpc $tmpGirl>>
That's... running. That's actually running.
<</sayNpc>>
<br />
She says it more to herself than to you. Then she straightens and folds her arms and makes an effort to look less impressed.
<br /><br />
<<sayNpc $tmpGirl>>
I haven't heard an engine in — I don't even know how long.
<</sayNpc>>
<br />
She glances at her own car. Dead for longer than yours has been alive, by the look of it. Then back at you.
<br /><br />
<<sayNpc $tmpGirl>>
I'm not asking for anything.
<</sayNpc>>
<br />
<div id="opt_fix">
<<linkreplace 'Help fix her car'>>
<<run $('#opt_look').hide()>>
<<run $('#opt_ride').hide()>>
<<run $('#opt_water').hide()>>
<<run $('#opt_drive').hide()>>
<<addmins 30>>
<<set $tmpGirl.relationship += 25>>
<center>
<<image 'places/explore_car/stranded2.jpg' sfw>>
</center>
<br />
You get under the hood together. She knows what she's doing — more than most. Calls out what she needs before you can ask, catches a detail you'd have missed. Radiator hose split clean through. The right tape, a half hour, and the engine catches on the second try.
<br /><br />
She stands back and listens to it idle with the same expression you probably had the first time yours started.
<br /><br />
<<sayNpc $tmpGirl>>
You didn't have to do that.
<</sayNpc>>
<br />
<<you>>
I know.
<</you>>
<br />
She digs a small roll of caps from her jacket. She holds it out like she's expecting you to refuse it, and her jaw sets when she sees you consider it.
<br /><br />
<<sayNpc $tmpGirl>>
Take it. I don't do debts.
<</sayNpc>>
<br />
<<if setup.percentageChance(20)>>
Somewhere in there you catch your hand on a sharp bracket — the kind of cut that doesn't hurt until you see it. Not serious. Annoying.
<<perkAdd 'bleeding'>>
<br /><br />
<</if>>
<<set _reward = randomInteger(40, 80)>>
You received <strong class="iitem"><<=_reward>> caps</strong>.
<<set $player.money += _reward>>
<br /><br />
Before you go, she looks at your car one more time.
<br /><br />
<<sayNpc $tmpGirl>>
Take care of it. There's nothing else like it out here.
<</sayNpc>>
<br />
<br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="opt_look">
<<linkreplace 'Let her take a look at your engine'>>
<<run $('#opt_fix').hide()>>
<<run $('#opt_ride').hide()>>
<<run $('#opt_water').hide()>>
<<run $('#opt_drive').hide()>>
<<addmins 20>>
<<if !($tmpGirl.skills ?? []).includes('mechanic')>>
<<run ($tmpGirl.skills = $tmpGirl.skills ?? []).push('mechanic')>>
<</if>>
Something in her changes when you say it. She's around the front of your car before you've finished the sentence, hood up, head bent over the engine with the focused quiet of someone who spent years doing exactly this.
<br /><br />
<center>
<<image 'places/explore_car/stranded3.jpg' sfw>>
</center>
<br />
<<sayNpc $tmpGirl>>
Your coolant intake's running loose. And this belt's going to go in the next hundred miles if you don't replace it. Everything else — honestly better shape than I'd expect.
<</sayNpc>>
<br />
She tightens what she can with what she has and steps back.
<br /><br />
<<sayNpc $tmpGirl>>
That's worth something. Better than caps.
<</sayNpc>>
<br />
<<set $player.car.health = Math.min($player.car.health + 8, 100)>>
Your car health improved. <strong>(+8)</strong>
<br /><br />
She's still watching the engine when you prepare to leave. Like she's memorizing it.
<br /><br />
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<<set _labelInvite = "You could come with me, if you want.">>
<<linkreplace _labelInvite>>
<<run $('#opt_look_leave').hide()>>
<<set $tmpGirl.relationship += 40>>
<<set $tmpGirl.happy += 50>>
<<set $tmpGirl.capture = false>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<run $guests.push($tmpGirl)>>
She looks at you. At the car. At her own dead vehicle on the shoulder. The calculation doesn't take long.
<br /><br />
<<sayNpc $tmpGirl>>
You'd actually need someone who can keep that thing running.
<</sayNpc>>
<br />
She grabs her bag from the backseat without another word.
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
<br />
<</if>>
<div id="opt_look_leave">
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
</div>
<</linkreplace>>
</div>
<div id="opt_ride">
<<linkreplace 'Offer her a ride'>>
<<run $('#opt_fix').hide()>>
<<run $('#opt_look').hide()>>
<<run $('#opt_water').hide()>>
<<run $('#opt_drive').hide()>>
She goes still again. Then she looks at the car — really looks at it this time, the way you look at something when you're trying to find the catch.
<br /><br />
<<sayNpc $tmpGirl>>
In that?
<</sayNpc>>
<br />
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
You tell her where you're headed. She asks a few short questions — practical ones, the kind that tell you she's done this before, evaluating risk. Then she looks at her own car one last time.
<br /><br />
<<sayNpc $tmpGirl>>
Been stuck here two days. Car's not coming back. Alright.
<</sayNpc>>
<br />
She grabs her bag without another word. The door closes. You pull out onto the road.
<br /><br />
After a few miles she stops checking the mirrors and lets herself sink into the seat. You can see it — years working on engines, never getting to ride in a running one. She's not letting herself enjoy it out loud, but she's not fighting it either.
<br /><br />
<<if ($tmpGirl.likesGuys ?? true)>>
<<set _labelMove = 'Make a move'>>
<<linkreplace _labelMove>>
<<set $tmpGirl.location = 'car'>>
<<set $tmpGirlViewBack = 'Stranded driver - after sex'>>
<<unset $slaveId, $guestId, $charId, $childId>>
<<fuck $tmpGirl>>
<</linkreplace>>
<</if>>
<<link 'Keep driving and drop her off'>>
<<set $tmpGirl.relationship = Math.min(($tmpGirl.relationship ?? 0) + 30, 100)>>
<<set $tmpGirl.happy = Math.min(($tmpGirl.happy ?? 0) + 60, 100)>>
<<set $tmpGirl.capture = false>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<run $guests.push($tmpGirl)>>
<<goto 'Garage'>>
<</link>>
<<else>>
<<sayNpc $tmpGirl>>
I appreciate it. But I've got somewhere to be.
<</sayNpc>>
<br />
She says it like she's not sure she believes it herself. But she doesn't move toward the car.
<br /><br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<div id="opt_water">
<<linkreplace 'Leave some supplies and go'>>
<<run $('#opt_fix').hide()>>
<<run $('#opt_look').hide()>>
<<run $('#opt_ride').hide()>>
<<run $('#opt_drive').hide()>>
You set a can and a bandage on the hood of her car without making a production of it. She watches you do it.
<br /><br />
<<sayNpc $tmpGirl>>
Hey.
<</sayNpc>>
<br />
You pause.
<br /><br />
<<sayNpc $tmpGirl>>
Nice car.
<</sayNpc>>
<br />
<<if $backpack.has('food')>>
<<drop $backpack 'food' 1>>
<</if>>
<<if $backpack.has('bandage')>>
<<drop $backpack 'bandage' 1>>
<</if>>
<br />
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="opt_drive">
<<link 'Drive past'>>
<<goto 'Garage'>>
<</link>>
</div><h1 class="ptitle">THE ROAD</h1>
<br />
<<set _cNpc = setup.companionGet($companionEvent.npcKey)>>
<<set _cName = setup.displayName(_cNpc)>>
<<set _cMem = setup.companionEvents.memoryFor($companionEvent.npcId)>>
<<set _cMechanic = (_cNpc.skills ?? []).includes('mechanic')>>
<<set _cHoarder = (_cNpc.traits ?? []).includes('hoarder')>>
<<set _cBonus = (_cMechanic ? 10 : 0)>>
<<addhours 1>>
<center>
<<image 'places/explore_car/companion_siphon_wreck.jpg' sfw>>
</center>
<br /><br />
The gauge had been sitting under a quarter for an hour when <<=_cName>> pointed through the windscreen. A station wagon, off the road, rust up to the sills — and no plates, which usually means somebody pulled them off deliberately.
<br /><br />
You both walked it once. The tank read heavy when <<=_cName>> knocked on it. But there was a bedroll under the rear wheel, a fire ring gone cold, and a shirt hanging off the open tailgate.
<br /><br />
<<sayNpc _cNpc>>
Somebody's living out of this. They're just not in it right now.
<</sayNpc>>
<br />
<<if _cMem.siphonChoice === 'all'>>
<<=setup.pronounceWhat(_cNpc, true)>> said it carefully, watching your face. Last time you had emptied a tank that belonged to somebody.
<br /><br />
<<elseif _cMem.siphonChoice === 'none'>>
<<=setup.pronounceWhat(_cNpc, true)>> said it like a question <<=setup.pronounceWhat(_cNpc)>> already knew the answer to. Last time you had walked away from fuel you needed.
<br /><br />
<</if>>
<<if _cMechanic>>
<<=_cName>> already had the hose out of <<=setup.pronounceWhos(_cNpc)>> pack and the filler neck open, working the line down past the anti-siphon screen like <<=setup.pronounceWhat(_cNpc)>>'d done it a hundred times.
<br /><br />
<</if>>
<center>
<<image 'places/explore_car/companion_siphon_tank.jpg' sfw>>
</center>
<br /><br />
<div id="cs_all">
<<linkreplace 'Take all of it'>>
<<run $('#cs_half, #cs_none').hide()>>
<<set $player.car.fuel = Math.min(($player.car.fuel ?? 0) + 30 + _cBonus, 100)>>
<<set $player.goodwill -= 2>>
<<if _cHoarder>>
<<set _cNpc.happy = Math.min((_cNpc.happy ?? 0) + 5, 100)>>
<<else>>
<<set _cNpc.happy = Math.max((_cNpc.happy ?? 0) - 10, -100)>>
<<set _cNpc.relationship = Math.max((_cNpc.relationship ?? 0) - 5, -100)>>
<</if>>
<<run setup.companionEvents.record($companionEvent.npcId, 'siphon', { siphonChoice: 'all' })>>
You ran it dry. Whoever came back to that wagon would find a shirt on the tailgate and nothing in the tank.
<br /><br />
<<if _cHoarder>>
<<sayNpc _cNpc>>
Good. Leaving half would just mean doing this again in a week.
<</sayNpc>>
<br />
<<=setup.pronounceWhat(_cNpc, true)>> coiled the hose without being asked.
<br /><br />
<strong>(Fuel +<<=30 + _cBonus>>. <<=_cName>>: Happy +5. Goodwill -2)</strong>
<<else>>
<<sayNpc _cNpc>>
They'll die out here without that. You know that, right?
<</sayNpc>>
<br />
<<=setup.pronounceWhat(_cNpc, true)>> got back in the car before you did and didn't say anything else about it.
<br /><br />
<strong>(Fuel +<<=30 + _cBonus>>. <<=_cName>>: Relationship -5, Happy -10. Goodwill -2)</strong>
<</if>>
<br /><br />
<<link 'Drive on'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div>
<div id="cs_half">
<<linkreplace 'Take half and leave the rest'>>
<<run $('#cs_all, #cs_none').hide()>>
<<set $player.car.fuel = Math.min(($player.car.fuel ?? 0) + 15 + _cBonus, 100)>>
<<set _cNpc.relationship = Math.min((_cNpc.relationship ?? 0) + 2, 100)>>
<<run setup.companionEvents.record($companionEvent.npcId, 'siphon', { siphonChoice: 'half' })>>
You pulled the hose when the can was half full and let the rest sit. Enough to get you home, enough left that whoever slept under that wheel still had something to run on.
<br /><br />
<<sayNpc _cNpc>>
That's the right amount of wrong. I can live with that.
<</sayNpc>>
<br />
<strong>(Fuel +<<=15 + _cBonus>>. <<=_cName>>: Relationship +2)</strong>
<br /><br />
<<link 'Drive on'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div>
<div id="cs_none">
<<linkreplace 'Leave it alone'>>
<<run $('#cs_all, #cs_half').hide()>>
<<set $player.goodwill += 1>>
<<set _cNpc.relationship = Math.min((_cNpc.relationship ?? 0) + 5, 100)>>
<<set _cNpc.happy = Math.min((_cNpc.happy ?? 0) + 5, 100)>>
<<run setup.companionEvents.record($companionEvent.npcId, 'siphon', { siphonChoice: 'none' })>>
You put the hose away and got back in. The gauge didn't move and the drive home was going to be tight, and you did it anyway.
<br /><br />
<<sayNpc _cNpc>>
Most people wouldn't have. I'm counting that.
<</sayNpc>>
<br />
<strong>(<<=_cName>>: Relationship +5, Happy +5. Goodwill +1)</strong>
<br /><br />
<<link 'Drive on'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">THE ROAD</h1>
<br />
<<set _cNpc = setup.companionGet($companionEvent.npcKey)>>
<<set _cName = setup.displayName(_cNpc)>>
<<set _cMem = setup.companionEvents.memoryFor($companionEvent.npcId)>>
<<set _cMechanic = (_cNpc.skills ?? []).includes('mechanic')>>
<<addhours 1>>
<center>
<<image 'places/explore_car/companion_roadside.jpg' sfw>>
</center>
<br /><br />
You pulled over where the road ran straight enough to see anything coming, and got out to stretch the drive out of your back. <<=_cName>> didn't get out. <<=setup.pronounceWhat(_cNpc, true)>> stayed in the passenger seat looking at the wheel, and when you came back around <<=setup.pronounceWhat(_cNpc)>> asked before you'd even shut the door.
<br /><br />
<<sayNpc _cNpc>>
Let me drive. Just this stretch. It's straight and there's nothing on it.
<</sayNpc>>
<br />
<<if _cMem.droveChoice === 'no'>>
<<=setup.pronounceWhat(_cNpc, true)>> asked like someone who expected another no, and had decided to ask anyway.
<br /><br />
<<elseif _cMem.droveChoice === 'yes'>>
<<=setup.pronounceWhat(_cNpc, true)>> was already reaching for the door handle. You'd handed the keys over once before and <<=setup.pronounceWhat(_cNpc)>> clearly hadn't stopped thinking about it since.
<br /><br />
<</if>>
<<if _cMechanic>>
<<=setup.pronounceWhat(_cNpc, true)>> knew the engine better than you did — <<=setup.pronounceWhat(_cNpc)>>'d had the housing open twice on this trip alone.
<br /><br />
<</if>>
<center>
<<image 'places/explore_car/companion_driving.jpg' sfw>>
</center>
<br /><br />
<div id="cd_yes">
<<linkreplace 'Hand her the keys'>>
<<run $('#cd_partial, #cd_no').hide()>>
<<if _cMechanic>>
<<set _cNpc.relationship = Math.min((_cNpc.relationship ?? 0) + 5, 100)>>
<<set _cNpc.happy = Math.min((_cNpc.happy ?? 0) + 5, 100)>>
<<else>>
<<set $player.car.health = Math.max(($player.car.health ?? 0) - 5, 0)>>
<<set _cNpc.relationship = Math.min((_cNpc.relationship ?? 0) + 8, 100)>>
<</if>>
<<run setup.companionEvents.record($companionEvent.npcId, 'drive', { droveChoice: 'yes' })>>
You tossed the keys across the roof and <<=setup.pronounceWhat(_cNpc)>> caught them one-handed.
<br /><br />
<<if _cMechanic>>
<<=setup.pronounceWhat(_cNpc, true)>> drove like <<=setup.pronounceWhat(_cNpc)>>'d built the thing — feathering it over the broken sections, listening to the engine more than watching the road. You got twenty miles without a single complaint from under the hood.
<br /><br />
<<sayNpc _cNpc>>
She pulls left. You knew that, right? I'll fix it when we stop.
<</sayNpc>>
<br />
<strong>(<<=_cName>>: Relationship +5, Happy +5)</strong>
<<else>>
<<=setup.pronounceWhat(_cNpc, true)>> ground the gears twice getting it moving and put a wheel into a rut hard enough that you heard something under the floor complain about it. <<=setup.pronounceWhat(_cNpc, true)>> didn't apologise and you didn't ask <<=setup.pronounceWho(_cNpc)>> to.
<br /><br />
<<sayNpc _cNpc>>
Nobody's let me near a working engine since before. I won't forget that you did.
<</sayNpc>>
<br />
<strong>(<<=_cName>>: Relationship +8. Car condition -5.)</strong>
<</if>>
<br /><br />
<<link 'Drive on'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div>
<div id="cd_partial">
<<linkreplace 'Let her drive until the road roughens'>>
<<run $('#cd_yes, #cd_no').hide()>>
<<set _cNpc.relationship = Math.min((_cNpc.relationship ?? 0) + 2, 100)>>
<<run setup.companionEvents.record($companionEvent.npcId, 'drive', { droveChoice: 'partial' })>>
You gave <<=setup.pronounceWho(_cNpc)>> the straight and took it back when the surface started breaking up. <<=setup.pronounceWhat(_cNpc, true)>> slid over without argument, but <<=setup.pronounceWhat(_cNpc)>> watched the road the whole way after that, the way you watch something that was briefly yours.
<br /><br />
<strong>(<<=_cName>>: Relationship +2)</strong>
<br /><br />
<<link 'Drive on'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div>
<div id="cd_no">
<<linkreplace 'Keep the wheel'>>
<<run $('#cd_yes, #cd_partial').hide()>>
<<set _cNpc.relationship = Math.max((_cNpc.relationship ?? 0) - 2, -100)>>
<<set _cNpc.sub = Math.min((_cNpc.sub ?? 0) + 2, 100)>>
<<run setup.companionEvents.record($companionEvent.npcId, 'drive', { droveChoice: 'no' })>>
You told <<=setup.pronounceWho(_cNpc)>> it wasn't the place for it and got back in on the driver's side. <<=setup.pronounceWhat(_cNpc, true)>> didn't push, which you'd have preferred to the silence that followed.
<br /><br />
<strong>(<<=_cName>>: Relationship -2, Submission +2)</strong>
<br /><br />
<<link 'Drive on'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">GARAGE</h1>
<br />
<<set _mechanicList = setup.getPersonsForLocation($guests, 'garage')>>
<<set _npc = $guests[_mechanicList[0]]>>
<<set _npc.location = 'car'>>
Back in the garage, your mechanic, <<=setup.displayName(_npc)>> with oil-streaked hands, walks up to your wreck of a car and whistles low.
<br /><br />
<<sayNpc _npc>>
What the hell happened to this thing? How did you manage to screw it up this bad?
<</sayNpc>>
<br />
<<=setup.pronounceWhat(_npc, true)>> asks, shaking <<=setup.pronounceWhos(_npc)>> head as <<=setup.pronounceWhat(_npc)>> inspects the battered frame.
<br /><br />
You shrug, leaning against a workbench.
<br /><br />
<<you>>
Just bad luck. And maybe a few bad decisions.
<</you>>
<br />
<<sayNpc _npc>>
Maybe? Look at this mess. Suspension’s shot, frame’s bent, tires are shredded. The engine... Damn. I think you melted half your wiring.
<</sayNpc>>
<br />
<center>
<<actionImage _npc 'fix'>>
</center>
<br />
<<you>>
So… can you fix it?
<</you>>
<br />
<<=setup.pronounceWhat(_npc, true)>> wipes <<=setup.pronounceWhos(_npc)>> hands on a rag, sizing you up.
<br /><br />
<<sayNpc _npc>>
I can, but honestly? Maybe it’s time to stop running this thing stock.
<</sayNpc>>
<br />
<<sayNpc _npc>>
You need some armor, reinforced plating at the very least. And weapons—smoke dispensers, spikes, anything to keep these lunatics from turning you into scrap metal.
<</sayNpc>>
<br />
<<you>>
And performance mods?
<</you>>
<br />
<<sayNpc _npc>>
Hell yes. Turbo, reinforced shocks, better steering. If you're gonna race in this wasteland, you need a fighting chance.
<</sayNpc>>
<br />
You both continue discussing potential upgrades, weighing options between practicality and necessity. She points out areas of the car that could be reinforced and suggests salvaging certain parts from nearby wrecks to save resources.
<br /><br />
<center>
<<image 'places/garage/engine.jpg' sfw>>
</center>
<br /><br />
<<sayNpc _npc>>
I'll need some time to gather a few things, get the garage set up for these modifications
<</sayNpc>>
<br />
<<link 'Leave'>>
<<set $player.quests.car_modified = true>>
<<set $player.quests.car_modified_day = $game.day>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">ALLIANCE</h1>
<br />
<<set _alS = setup.settlements.getById($tmpSettlement)>>
<<if !_alS>><<goto 'Garage - World'>><</if>>
<<ensureLeader _alS>>
<<set _alLeader = _alS.leader>>
<<set _alDialogs = setup.settlements.leaderDialogs[_alS.type]>>
<<if setup.settlements.isAllied(_alS)>>
<p style="color: #5599e0;">You are already allied with <<= _alS.name>>.</p>
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<<elseif !setup.settlements.isFriendly(_alS)>>
<p style="color: #e05555;">They need to trust you more before any alliance is possible.</p>
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<<else>>
You've built enough goodwill with <<= _alS.name>> that a formal arrangement might be possible. An alliance means mutual protection — help when you need it, and obligations in return.
<br /><br />
<<if _alLeader>>
<<set _alLine = _alDialogs.intro[randomInteger(0, _alDialogs.intro.length - 1)]>>
<<sayNpc _alLeader>><<= _alLine>><</sayNpc>>
<br />
<</if>>
<div id="alliance_propose">
<<linkreplace 'Propose a formal alliance'>>
<<run $('#alliance_back').hide()>>
<<addmins 60>>
<<set _alHandle = setup.settlements.getById($tmpSettlement)>>
<<set _alRes = setup.settlements.requestAlliance(_alHandle)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<if _alHandle && _alHandle.leader>>
<<if _alRes.success>>
<<set _alReplyPool = _alDialogs.greeting_ok>>
<<else>>
<<set _alReplyPool = _alDialogs.greeting_fail>>
<</if>>
<<sayNpc _alHandle.leader>><<= _alReplyPool[randomInteger(0, _alReplyPool.length - 1)]>><</sayNpc>>
<br />
<</if>>
<<if _alRes.success>>
<span style="color: #5599e0;">★ Alliance formed with <<= _alHandle.name>>.</span>
<<else>>
<span style="color: #e05555;">They declined the offer. Build more trust and try again.</span>
<</if>>
<br /><br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</linkreplace>>
</div>
<div id="alliance_back">
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
</div>
<</if>><h1 class="ptitle">ATTACK</h1>
<br />
<<set _s = setup.settlements.getById($tmpSettlement)>>
<<if !_s>><<goto 'Garage - World'>><</if>>
<<if !setup.settlements.canBeRaided(_s, $game.day)>>
<p style="color: #e05555;">This settlement is still recovering from your last raid. Come back in a few days.</p>
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<<else>>
<<set $tmpRaidersMap = {}>>
<<set _defense = setup.settlements.getDefenseStrength(_s)>>
<p style="color: #aaa; font-size: 0.9em;">Choose which guests will join the attack. Fighter skill adds 50% to their combat power. You always fight alongside them.</p>
<div style="background: rgba(0,0,0,0.15); border-left: 3px solid #e05555; padding: 8px 14px; margin-bottom: 16px; font-size: 0.85em;">
<span style="color: #ccc;"><strong style="color: #ddd;">Settlement defense:</strong> <<= _defense>></span>
<br />
<span style="color: #ccc;"><strong style="color: #ddd;">Your base power:</strong> <<= $player.strength ?? 20>></span>
</div>
<<if $guests.length>>
<table class="npc-list">
<<for _gi = 0; _gi < $guests.length; _gi++>>
<<if $guests[_gi]>>
<<set _cg = $guests[_gi]>>
<<set _cgFighter = (_cg.skills ?? []).includes('fighter')>>
<<set _cgPower = _cg.strength + (_cgFighter ? Math.floor(_cg.strength * 0.5) : 0)>>
<<set _capturedGuestId = _cg.id>>
<<capture _gi _cg _cgFighter _cgPower _capturedGuestId>>
<tr class="item">
<td>
<<checkbox `"$tmpRaidersMap[_capturedGuestId]"` false true autocheck>>
</td>
<td style="min-width: 25%">
<span class="gender-f">
<<= _cg.name >>
<span style="color: #aaa; font-size: 0.85em;"> STR <<= _cg.strength>><<if _cgFighter>> · <span style="color: #e0a055;">Fighter</span><</if>> · Power <<= _cgPower>></span>
</span>
</td>
<td>
<<npcListView _cg _gi 'guest'>>
</td>
</tr>
<</capture>>
<</if>>
<</for>>
</table>
<<else>>
<p style="color: #888; font-size: 0.9em;">You have no guests. You'll be going in alone.</p>
<</if>>
<br />
<<link 'Quick Raid'>>
<<set $tmpAttackMode = 'raid'>>
<<goto 'Garage - World - Attack - Result'>>
<</link>>
<<link 'Full Siege'>>
<<set $tmpAttackMode = 'siege'>>
<<goto 'Garage - World - Attack - Result'>>
<</link>>
<<link 'Back'>>
<<goto 'Garage - World - Settlement'>>
<</link>>
<</if>><<set _s = setup.settlements.getById($tmpSettlement)>>
<<if !_s>><<goto 'Garage - World'>><</if>>
<<set _mode = $tmpAttackMode ?? 'raid'>>
<<set _attackStrength = $player.strength ?? 20>>
<<set _raiders = []>>
<<for _gi = 0; _gi < $guests.length; _gi++>>
<<if $guests[_gi] && ($tmpRaidersMap ?? {})[$guests[_gi].id]>>
<<set _cg = $guests[_gi]>>
<<set _cgPower = _cg.strength + ((_cg.skills ?? []).includes('fighter') ? Math.floor(_cg.strength * 0.5) : 0)>>
<<set _attackStrength = _attackStrength + _cgPower>>
<<set _raiders = _raiders.concat([{ idx: _gi, npc: _cg }])>>
<</if>>
<</for>>
<<set _outcome = setup.settlements.calculateAttackOutcome(_s, _attackStrength, _mode)>>
<<addhours 4>>
<<run setup.settlements.applyAttackOutcome(_s, _outcome, $game.day)>>
<<if _outcome.victory && $game.blackmailEvent && $game.blackmailEvent.id === $tmpSettlement>>
<<run setup.settlements.resolveBlackmail(_s, true)>>
<<unset $game.blackmailEvent>>
<</if>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<h1 class="ptitle"><<= _mode === 'siege' ? 'SIEGE' : 'RAID'>></h1>
<br />
<<if _outcome.victory>>
<h2 style="color: #55cc88; margin: 0 0 10px 0;">VICTORY</h2>
Your group hit <<= _s.name>> hard and broke through their defenses. The settlement took heavy losses — <<= _outcome.populationLoss>> people down.
<<else>>
<h2 style="color: #e05555; margin: 0 0 10px 0;">DEFEAT</h2>
<<= _s.name>> held the line. Your group was driven back before doing any real damage.
<</if>>
<br /><br />
<<set _killed = []>>
<<set _injured = []>>
<<set _captured = []>>
<<for _ri = 0; _ri < _raiders.length; _ri++>>
<<set _raider = _raiders[_ri]>>
<<if randomInteger(1, 100) <= _outcome.mcCasualtyChance>>
<<if _outcome.victory>>
<<if randomInteger(1, 100) <= 60>>
<<set _injured = _injured.concat([_raider])>>
<<else>>
<<set _killed = _killed.concat([_raider])>>
<</if>>
<<elseif randomInteger(1, 100) <= 60>>
<<set _captured = _captured.concat([_raider])>>
<<else>>
<<if randomInteger(1, 100) <= 50>>
<<set _injured = _injured.concat([_raider])>>
<<else>>
<<set _killed = _killed.concat([_raider])>>
<</if>>
<</if>>
<</if>>
<</for>>
<<if _killed.length > 0 || _captured.length > 0 || _injured.length > 0>>
<div style="border-left: 3px solid #e05555; padding: 8px 14px; margin-bottom: 14px; background: rgba(224,85,85,0.08);">
<<if _killed.length > 0>>
<strong style="color: #e05555;">Killed in action:</strong>
<br />
<<for _ki = 0; _ki < _killed.length; _ki++>>
<<= _killed[_ki].npc.name>>
<br />
<</for>>
<</if>>
<<if _injured.length > 0>>
<<if _killed.length > 0>><br /><</if>>
<strong style="color: #e0c055;">Wounded:</strong>
<br />
<<for _ii = 0; _ii < _injured.length; _ii++>>
<<set _injured[_ii].npc.sick = { days: randomInteger(3, 7), desc: 'wounded in the raid on ' + _s.name, id: 'raid_injury' }>>
<<= _injured[_ii].npc.name>> — <<= _injured[_ii].npc.sick.days>> day<<= _injured[_ii].npc.sick.days > 1 ? 's' : ''>> to recover
<br />
<</for>>
<</if>>
<<if _captured.length > 0>>
<<if _killed.length > 0 || _injured.length > 0>><br /><</if>>
<strong style="color: #e09855;">Captured by <<= _s.name>>:</strong>
<br />
<<for _ci = 0; _ci < _captured.length; _ci++>>
<<= _captured[_ci].npc.name>>
<br />
<</for>>
<</if>>
</div>
<</if>>
<<if _outcome.victory && Object.keys(_outcome.spoils).length > 0>>
<div style="border-left: 3px solid #55cc88; padding: 8px 14px; margin-bottom: 14px; background: rgba(85,204,136,0.08);">
<strong style="color: #55cc88;">Seized:</strong>
<br />
<<for _sKey, _sVal range _outcome.spoils>>
<<pickup $backpack _sKey _sVal>>
<<= _sVal>>× <<= _sKey.replace(/_/g, ' ')>>
<br />
<</for>>
</div>
<</if>>
<<set _allCasualties = _killed.concat(_captured).sort(function(a, b) { return b.idx - a.idx; })>>
<<for _ci = 0; _ci < _allCasualties.length; _ci++>>
<<guestLeft _allCasualties[_ci].idx>>
<</for>>
<<if _captured.length > 0>>
<<if !_s.playerCaptives>><<set _s.playerCaptives = []>><</if>>
<<for _cri = 0; _cri < _captured.length; _cri++>>
<<set _captNpc = clone(_captured[_cri].npc)>>
<<set _captNpc.loyal = false>>
<<run _s.playerCaptives.push({ npc: _captNpc, day: $game.day })>>
<</for>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<if _outcome.victory && !(_s.flags.tributeDemanded ?? false) && _s.relationship <= -30>>
<div id="tribute_block">
<<linkreplace 'Demand tribute'>>
<<set _trHandle = setup.settlements.getById($tmpSettlement)>>
<<set _tribResult = setup.settlements.demandTribute(_trHandle)>>
<<if _tribResult.success>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<div style="border-left: 3px solid #e0a055; padding: 8px 14px; margin: 8px 0; background: rgba(224,160,85,0.08);">
<strong style="color: #e0a055;">Tribute collected:</strong>
<br />
<<for _trKey, _trVal range _tribResult.tribute>>
<<if _trVal > 0>>
<<pickup $backpack _trKey _trVal>>
<<= _trVal>>× <<= _trKey.replace(/_/g, ' ')>>
<br />
<</if>>
<</for>>
</div>
<<else>>
<span style="color: #e05555;"><<= _tribResult.reason>></span>
<</if>>
<</linkreplace>>
</div>
<</if>>
<<if _outcome.victory && _s.relationship <= -20 && !(_s.flags?.captiveTaken ?? false)>>
<div id="captive_block">
<<linkreplace 'Take someone with you'>>
<<newgirl>>
<<set $tmpGirl.name = either('Sara', 'Mara', 'Lia', 'Ash', 'Vee', 'Rosa', 'Kira', 'Nora')>>
<<set $tmpGirl.origin = _s.name>>
<<set $tmpGirl.loyal = false>>
<<set _captHandle = setup.settlements.getById($tmpSettlement)>>
<<set $tmpGirl.originId = _captHandle.id>>
<<set _captHandle.population = Math.max(1, _captHandle.population - 1)>>
<<if !_captHandle.flags>><<set _captHandle.flags = {}>><</if>>
<<set _captHandle.flags.captiveTaken = true>>
<<run setup.settlements.modifyRelationship(_captHandle, -5, 'Player took a captive')>>
<<run setup.settlements.logEvent(_captHandle, 'One of theirs was taken captive.')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
She was among those who hadn't made it out. Young, still breathing hard — from the fight, or from fear. Hard to tell which.
<br /><br />
<<sayNpc $tmpGirl>>
You can't do this.
<</sayNpc>>
<br />
She looked at you like she still thought you were going to make the right choice.
<br /><br />
<<link 'Take her'>>
<<run setup.npc.addHistory($tmpGirl, 'siege_captive', { place: _captHandle.name })>>
<<run $slaves.push($tmpGirl)>>
<<unset $tmpGirl>>
<<goto 'Garage - World'>>
<</link>>
<<link 'Leave her'>>
<<unset $tmpGirl>>
<<goto 'Garage - World'>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Garage - World'>>
<</link>><h1 class="ptitle">DONATE</h1>
<br />
<<set _dnS = setup.settlements.getById($tmpSettlement)>>
<<if !_dnS>><<goto 'Garage - World'>><</if>>
<<set _dnConfig = setup.settlements.typeConfig[_dnS.type]>>
<<set _dnWants = _dnConfig.wantsGoods ?? []>>
<<set _dnRelColors = { hostile: '#e05555', unfriendly: '#e09855', neutral: '#999999', friendly: '#55cc88', allied: '#5599e0' }>>
<<set _dnRelLevel = setup.settlements.getRelationshipLevel(_dnS)>>
<<set _dnRelColor = _dnRelColors[_dnRelLevel]>>
<<set _dnCap = setup.settlements.DONATION_DAILY_CAP>>
<<set _dnUsed = (_dnS.donateDay ?? -1) === $game.day ? (_dnS.donateUsed ?? 0) : 0>>
<<set _dnRoom = Math.max(0, _dnCap - _dnUsed)>>
<<if !$tmpDonateOpen>>
<<set $tmpDonateOpen = true>>
<<addmins 30>>
<</if>>
<<script>>
window.awDonate = function(btn) {
var idx = btn.dataset.idx;
var item = btn.dataset.item;
var maxHave = parseInt(btn.dataset.have) || 0;
var qtyEl = document.getElementById('dn_qty_' + idx);
var qty = Math.max(1, Math.min(Math.floor(Number(qtyEl ? qtyEl.value : 1) || 1), maxHave));
var s = setup.settlements.getById(variables().tmpSettlement);
var bp = variables().backpack;
if (!s || !bp || bp.count(item) < qty) return;
bp.drop(item, qty);
variables().tmpDonateGain = setup.settlements.donate(s, item, qty).gain;
Engine.play('Garage - World - Donate');
};
<</script>>
You haul out your supplies and spread them in front of <<= _dnS.name>>. No deal, no strings — just goodwill.
<br /><br />
<span style="color: <<= _dnRelColor>>; font-size: 0.9em;">◈ Currently <<= setup.settlements.getRelationshipLabel(_dnS)>></span>
<br /><br />
<<if typeof $tmpDonateGain !== 'undefined'>>
<<if $tmpDonateGain > 0>>
<span style="color: #55cc88;">They took the supplies gratefully. <strong>Relationship +<<= $tmpDonateGain>></strong></span>
<<else>>
<span style="color: #e09855;">They took the supplies, but you have already earned all the goodwill they will give you today.</span>
<</if>>
<br /><br />
<<unset $tmpDonateGain>>
<</if>>
<div style="background: rgba(0,0,0,0.12); border-left: 3px solid #444; padding: 8px 14px; margin-bottom: 14px; font-size: 0.82em; color: #666;">
Donating items they actually need gives a relationship boost. Large stacks are worth less per item, and goodwill counts for less once a settlement already thinks well of you.
<br />
<<if _dnRoom > 0>>
Goodwill accepted today: <strong><<= _dnUsed>> / <<= _dnCap>></strong>
<<else>>
<span style="color: #e09855;">They have taken all the goodwill they will accept today (<<= _dnCap>> / <<= _dnCap>>).</span>
<</if>>
</div>
<<set _dnHasAny = false>>
<<for _dni = 0; _dni < _dnWants.length; _dni++>>
<<set _dnItem = _dnWants[_dni]>>
<<set _dnHave = $backpack.count(_dnItem)>>
<<if _dnHave > 0>>
<<set _dnHasAny = true>>
<<capture _dni, _dnItem, _dnHave>>
<div id="dn_item_<<= _dni>>" style="padding: 8px 0; border-bottom: 1px solid #1c1c1c; display:flex; align-items:center; gap:8px;">
<span style="flex:1; min-width:120px;"><<= (Item.get(_dnItem)?.name ?? _dnItem.replace(/_/g, ' '))>> <span style="color:#666;">(have <<= _dnHave>>)</span></span>
<input type="number" @id="'dn_qty_' + _dni" value="1" min="1" @max="_dnHave" style="background:#222;color:#eee;border:1px solid #555;width:55px;padding:2px 4px;flex:none;">
<span style="flex:none;"><a href="javascript:void(0)" class="link-internal" @data-idx="_dni" @data-item="_dnItem" @data-have="_dnHave" onclick="window.awDonate(this)">Donate</a></span>
</div>
<</capture>>
<</if>>
<</for>>
<<if !_dnHasAny>>
<p style="color: #888; font-size: 0.9em;">You don't have anything they need right now.</p>
<</if>>
<br />
<<link 'Leave'>>
<<set $tmpDonateOpen = false>>
<<unset $tmpDonateGain>>
<<goto 'Garage - World - Settlement'>>
<</link>><<set _fvS = setup.settlements.getById($tmpSettlement)>>
<<if !_fvS>><<goto 'Garage'>><</if>>
<<ensureLeader _fvS>>
<<set _fvImgPath = 'places/world/' + _fvS.type + '.jpg'>>
<h1 class="ptitle"><<= _fvS.name.toUpperCase()>></h1>
<br />
<center>
<<image _fvImgPath sfw>>
</center>
<br />
<<= setup.settlements.getDescription(_fvS)>>
<br /><br />
<<= setup.settlements.getPopulationDescription(_fvS)[0].toUpperCase() + setup.settlements.getPopulationDescription(_fvS).slice(1)>> group, <<= setup.settlements.getGenderDescription(_fvS)>>. <<= setup.settlements.getDefenseDescription(_fvS)[0].toUpperCase() + setup.settlements.getDefenseDescription(_fvS).slice(1)>>.
<br /><br />
<<if _fvS.leader>>
<<set _fvDialogs = setup.settlements.leaderDialogs[_fvS.type]>>
<<set _fvLine = _fvDialogs.intro[randomInteger(0, _fvDialogs.intro.length - 1)]>>
<<sayNpc _fvS.leader>><<= _fvLine>><</sayNpc>>
<br />
<</if>>
<<link 'Approach openly'>>
<<set _fvHandle = setup.settlements.getById($tmpSettlement)>>
<<run setup.settlements.modifyRelationship(_fvHandle, 5, 'Approached openly on first visit')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<goto 'Garage - World - Settlement'>>
<</link>>
<<link 'Stay cautious'>>
<<goto 'Garage - World - Settlement'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
<<set _hlpS = setup.settlements.getById($tmpSettlement)>>
<<if _hlpS>>
<<set _hlpS.callForHelp = false>>
<<set _hlpS.callForHelpNotified = false>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
You tried. But they had the numbers and the ground. You took too much punishment to keep pushing and had to pull back before it got fatal.
<br /><br />
<<= _hlpS ? _hlpS.name : 'The settlement'>> was left to handle the rest on its own.
<br /><br />
<<link 'Leave'>><<goto 'Garage'>><</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
<<set _hlpS = setup.settlements.getById($tmpSettlement)>>
<<if _hlpS>>
<<set _hlpS.callForHelp = false>>
<<set _hlpS.callForHelpNotified = false>>
<<run setup.settlements.modifyRelationship(_hlpS, 20, 'Defended settlement from raiders')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
You drove them back. The settlement is bruised — a few dead, a section of wall damaged — but standing. Without you showing up when you did, this would have ended differently.
<br /><br />
<<if _hlpS>>
<<ensureLeader _hlpS>>
<<if _hlpS.leader>>
<<set _hlpDialogs = setup.settlements.leaderDialogs[_hlpS.type]>>
<<set _hlpLine = _hlpDialogs.greeting_ok[randomInteger(0, _hlpDialogs.greeting_ok.length - 1)]>>
<<sayNpc _hlpS.leader>><<= _hlpLine>><</sayNpc>>
<br />
<</if>>
<span style="color: #5599e0;">★ Relationship with <<= _hlpS.name>> improved significantly — now <<= setup.settlements.getRelationshipLabel(_hlpS)>></span>
<</if>>
<br /><br />
<<link 'Leave'>><<goto 'Garage'>><</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
<<set _hlpS = setup.settlements.getById($tmpSettlement)>>
<<if !_hlpS>><<goto 'Garage'>><</if>>
<<if !_hlpS.callForHelp>>
By the time you arrive, the attack is already over. Whatever happened here, it didn't need you.
<br /><br />
<<link 'Leave'>><<goto 'Garage'>><</link>>
<<else>>
<center>
<<image 'places/world/settlement_help.jpg' sfw>>
</center>
<br />
You pushed the engine hard to reach <<= _hlpS.name>> before it was too late. You could hear it from the road — gunfire, shouting, the clatter of a breach attempt at the gates.
<br /><br />
A raider party. Not large, but enough to overwhelm them if no one stepped in.
<br /><br />
<<set _hlpCount = Math.max(1, Math.min(2, Math.floor(_hlpS.population / 40)))>>
<<generateEnemies _hlpCount 0 _hlpCount>>
<<for _hlpEi = 0; _hlpEi < $enemies.length; _hlpEi++>>
<<set $enemies[_hlpEi].strength = Math.min($enemies[_hlpEi].strength + randomInteger(15, 40), 100)>>
<<set $enemies[_hlpEi].endurance = Math.min($enemies[_hlpEi].endurance + randomInteger(15, 40), 100)>>
<</for>>
<<set _hlpGuards = setup.getPersonsForLocation($guests, 'guard')>>
<<link 'Fight them off'>>
<<fight $enemies 'Garage - World - Help - Won' 'Garage - World - Help - Lost' false _hlpGuards>>
<<set $fight.skipEndingLost = true>>
<</link>>
<<link 'This isn\'t your fight'>>
<<goto 'Garage'>>
<</link>>
<</if>><h1 class="ptitle">INTELLIGENCE</h1>
<br />
<<set _inS = setup.settlements.getById($tmpSettlement)>>
<<if !_inS>><<goto 'Garage - World'>><</if>>
<<ensureLeader _inS>>
<<set _inLeader = _inS.leader>>
<<set _inDialogs = setup.settlements.leaderDialogs[_inS.type]>>
<<if !setup.settlements.isFriendly(_inS) && !setup.settlements.isAllied(_inS)>>
<p style="color: #e05555;">They don't trust you enough to share information.</p>
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<<else>>
You ask what they've seen out there — troop movements, road threats, anything useful.
<br /><br />
<<if _inLeader>>
<<set _inLine = _inDialogs.intro[randomInteger(0, _inDialogs.intro.length - 1)]>>
<<sayNpc _inLeader>><<= _inLine>><</sayNpc>>
<br />
<</if>>
<div id="intel_ask">
<<linkreplace 'Ask for information'>>
<<run $('#intel_back').hide()>>
<<addmins 30>>
<<set _inHandle = setup.settlements.getById($tmpSettlement)>>
<<set _inRes = setup.settlements.getIntelligence(_inHandle)>>
<<if _inRes.success>>
<<if _inHandle && _inHandle.leader>>
<<sayNpc _inHandle.leader>><<= _inRes.intel>><</sayNpc>>
<<else>>
<p style="color: #aaa;"><<= _inRes.intel>></p>
<</if>>
<<if _inRes.revealed>>
<p style="color: #55cc88; font-size: 0.9em;">★ New settlement added to world map: <strong><<= _inRes.revealed.name>></strong></p>
<</if>>
<<else>>
<p style="color: #e05555;"><<= _inRes.reason>></p>
<</if>>
<br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</linkreplace>>
</div>
<div id="intel_back">
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
</div>
<</if>><<set _lt = setup.settlements.getById($tmpSettlement)>>
<<if !_lt>><<goto 'Garage - World'>><</if>>
<<set _ltLeader = _lt.leader>>
<<set _ltRelLevel = setup.settlements.getRelationshipLevel(_lt)>>
<<set _ltTopRes = Object.keys(_lt.resources ?? {}).filter(function(k) { return (_lt.resources[k] ?? 0) > 0; }).sort(function(a,b) { return _lt.resources[b] - _lt.resources[a]; })>>
<<set _ltFoodCrit = (_lt.resources?.food ?? 0) < 10>>
<<set _ltOpeners = _ltRelLevel === 'allied'
? ["Here's the honest picture of where things stand.",
"Good timing. Let me run you through the full account.",
"Pull up a seat. I'll give you the actual numbers.",
"Glad you came. Let me show you where we're at."]
: ["I can give you a quick rundown of how things are holding up.",
"Fair question — here's where things stand with us.",
"Let me give you a picture of the situation."]>>
<<if _ltLeader>>
<<sayNpc _ltLeader>>
<<= _ltOpeners[randomInteger(0, _ltOpeners.length - 1)]>><<if _ltFoodCrit>> I won't sugarcoat it — food is our biggest concern right now.<</if>>
<</sayNpc>>
<br />
<</if>>
<div style="background: rgba(0,0,0,0.18); border-left: 3px solid #333; padding: 12px 18px; font-size: 0.88em; line-height: 1.9;">
<span style="color: #555; font-size: 0.78em; letter-spacing: 0.06em;">POPULATION</span><br />
<span style="color: #ccc;"><strong><<= _lt.population>></strong> people</span>
<span style="color: #666;"> — <<= setup.settlements.getPopulationDescription(_lt)>>, <<= setup.settlements.getGenderDescription(_lt)>></span>
<br /><br />
<span style="color: #555; font-size: 0.78em; letter-spacing: 0.06em;">DEFENSE</span><br />
<span style="color: #ccc;"><<= setup.settlements.getDefenseDescription(_lt)[0].toUpperCase() + setup.settlements.getDefenseDescription(_lt).slice(1)>></span>
<br /><br />
<<if _ltTopRes.length > 0>>
<span style="color: #555; font-size: 0.78em; letter-spacing: 0.06em;">RESOURCES</span><br />
<<for _ltrI = 0; _ltrI < _ltTopRes.length; _ltrI++>>
<<set _ltrKey = _ltTopRes[_ltrI]>>
<<set _ltrQty = _lt.resources[_ltrKey] ?? 0>>
<<if _ltrQty < 10>>
<<set _ltrLabel = 'critically low'>><<set _ltrColor = '#e05555'>>
<<elseif _ltrQty < 30>>
<<set _ltrLabel = 'low'>><<set _ltrColor = '#e09855'>>
<<elseif _ltrQty < 80>>
<<set _ltrLabel = 'adequate'>><<set _ltrColor = '#aaa'>>
<<elseif _ltrQty < 140>>
<<set _ltrLabel = 'well-stocked'>><<set _ltrColor = '#55cc88'>>
<<else>>
<<set _ltrLabel = 'abundant'>><<set _ltrColor = '#5599e0'>>
<</if>>
<span style="color: #999;"><<= (Item.get(_ltrKey)?.name ?? _ltrKey.replace(/_/g, ' '))>>:</span>
<span style="color: <<= _ltrColor>>;"><<= _ltrQty>> — <<= _ltrLabel>></span><br />
<</for>>
<br />
<</if>>
<<set _ltProdKeys = Object.keys(_lt.production).filter(function(k) { return _lt.production[k] > 0; })>>
<<if _ltProdKeys.length > 0>>
<span style="color: #555; font-size: 0.78em; letter-spacing: 0.06em;">PRODUCTION</span><br />
<<for _ltpI = 0; _ltpI < _ltProdKeys.length; _ltpI++>>
<<set _ltpKey = _ltProdKeys[_ltpI]>>
<span style="color: #999;"><<= (Item.get(_ltpKey)?.name ?? _ltpKey.replace(/_/g, ' '))>>:</span>
<span style="color: #aaa;">×<<= _lt.production[_ltpKey]>>/tick</span><br />
<</for>>
<br />
<</if>>
<span style="color: #555; font-size: 0.78em; letter-spacing: 0.06em;">STANDING</span><br />
<<set _ltRelColor = { hostile: '#e05555', unfriendly: '#e09855', neutral: '#999', friendly: '#55cc88', allied: '#5599e0' }[_ltRelLevel]>>
<span style="color: <<= _ltRelColor>>;"><<= setup.settlements.getRelationshipLabel(_lt)>></span>
<span style="color: #444;"> (<<= _lt.relationship>>/100)</span>
<<if _lt.lastInvestDay>>
<br /><span style="color: #666; font-size: 0.88em;">Last investment: day <<= _lt.lastInvestDay>></span>
<</if>>
</div>
<br />
<<link 'Close'>><<dialogclose>><</link>><h1 class="ptitle">MISSION OFFER</h1>
<br />
<<set _ofS = setup.settlements.getById($tmpSettlement)>>
<<if !_ofS || !$tmpMission>><<goto 'Garage - World - Settlement'>><</if>>
<<ensureLeader _ofS>>
<<set _ofItem = $tmpMission.item.replace(/_/g, ' ')>>
<<if _ofS.leader>>
<<set _ofDial = setup.settlements.leaderDialogs[_ofS.type]>>
<<set _ofLine = _ofDial.trade_ok[randomInteger(0, _ofDial.trade_ok.length - 1)]>>
<<sayNpc _ofS.leader>><<= _ofLine>><</sayNpc>>
<br />
<</if>>
They have a job that needs doing.
<br /><br />
<div style="background: rgba(0,0,0,0.15); border-left: 3px solid #e0a055; padding: 12px 16px; margin-bottom: 16px;">
<strong style="color: #e0a055;">Supply run</strong>
<br /><br />
<span style="color: #ccc;">Bring us <strong><<= $tmpMission.quantity>>× <<= _ofItem>></strong> and we'll pay you <strong style="color: #e0c055;"><<= $tmpMission.reward>> caps</strong>.</span>
<br /><br />
<span style="color: #666; font-size: 0.85em;">You have 10 days to deliver.</span>
</div>
<<link 'Accept'>>
<<set _accHandle = setup.settlements.getById($tmpSettlement)>>
<<set _accHandle.activeMission = $tmpMission>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<unset $tmpMission>>
<<goto 'Garage - World - Settlement'>>
<</link>>
<<link 'Not interested'>>
<<unset $tmpMission>>
<<goto 'Garage - World - Settlement'>>
<</link>><h1 class="ptitle">MISSIONS</h1>
<br />
<<set _ms = setup.settlements.getById($tmpSettlement)>>
<<if !_ms>><<goto 'Garage - World'>><</if>>
<<ensureLeader _ms>>
<<set _msRelLevel = setup.settlements.getRelationshipLevel(_ms)>>
<<set _msRelColors = { hostile: '#e05555', unfriendly: '#e09855', neutral: '#999999', friendly: '#55cc88', allied: '#5599e0' }>>
<<set _msRelColor = _msRelColors[_msRelLevel]>>
<<if !setup.settlements.isFriendly(_ms) && !setup.settlements.isAllied(_ms)>>
<p style="color: #e05555;">They don't trust you enough to ask for your help.</p>
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<<elseif _ms.activeMission && setup.settlements.isMissionExpired(_ms, $game.day)>>
<<set _ms.activeMission = null>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<p style="color: #888;">They found another solution while you were away. No open requests right now.</p>
<br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<<elseif _ms.activeMission>>
<<set _mis = _ms.activeMission>>
<<set _misHave = $backpack.count(_mis.item)>>
<<set _misItemLabel = _mis.item.replace(/_/g, ' ')>>
You have an open delivery for <<= _ms.name>>.
<br /><br />
<div style="background: rgba(0,0,0,0.15); border-left: 3px solid #555; padding: 10px 14px; margin-bottom: 16px; font-size: 0.9em;">
<strong style="color: #ddd;">Requested:</strong> <<= _mis.quantity>>× <<= _misItemLabel>>
<br />
<strong style="color: #ddd;">Reward:</strong> <span style="color: #e0c055;"><<= _mis.reward>> caps</span>
<br />
<span style="color: #666; font-size: 0.85em;">Expires in <<= Math.max(0, _mis.givenDay + 10 - $game.day)>> day<<= (_mis.givenDay + 10 - $game.day) !== 1 ? 's' : ''>></span>
</div>
<<if _ms.leader>>
<<set _msDial = setup.settlements.leaderDialogs[_ms.type]>>
<<set _msLine = _msDial.trade_ok[randomInteger(0, _msDial.trade_ok.length - 1)]>>
<<sayNpc _ms.leader>><<= _msLine>><</sayNpc>>
<br />
<</if>>
<<if _misHave >= _mis.quantity>>
<<set _delLabel = 'Deliver ' + _mis.quantity + '× ' + _misItemLabel>>
<div id="mission_deliver">
<<linkreplace _delLabel>>
<<set _delHandle = setup.settlements.getById($tmpSettlement)>>
<<set _delResult = setup.settlements.completeMission(_delHandle)>>
<<if _delResult.success>>
<<addmins 30>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<drop $backpack _delResult.item _delResult.quantity>>
<<set $player.money += _delResult.reward>>
<span style="color: #55cc88;">Delivered. You collected <<= _delResult.reward>> caps.</span>
<br />
<span style="color: #5599e0; font-size: 0.88em;">Relationship improved — now <<= setup.settlements.getRelationshipLabel(_delHandle)>></span>
<<else>>
<span style="color: #e05555;"><<= _delResult.reason>></span>
<</if>>
<br /><br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</linkreplace>>
</div>
<<else>>
<span style="color: #888; font-size: 0.9em;">You have <<= _misHave>>/<<= _mis.quantity>> <<= _misItemLabel>>. Come back when you have enough.</span>
<br /><br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</if>>
<<else>>
No active requests right now.
<br /><br />
<<if _ms.leader>>
<<set _msDial = setup.settlements.leaderDialogs[_ms.type]>>
<<set _msLine = _msDial.greeting_ok[randomInteger(0, _msDial.greeting_ok.length - 1)]>>
<<sayNpc _ms.leader>><<= _msLine>><</sayNpc>>
<br />
<</if>>
<<link 'Ask if they need anything'>>
<<set _askHandle = setup.settlements.getById($tmpSettlement)>>
<<set $tmpMission = setup.settlements.generateMission(_askHandle)>>
<<if $tmpMission>>
<<goto 'Garage - World - Mission - Offer'>>
<<else>>
<<goto 'Garage - World - Settlement'>>
<</if>>
<</link>>
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</if>><h1 class="ptitle">NEGOTIATE</h1>
<br />
<<set _s = setup.settlements.getById($tmpSettlement)>>
<<if !_s>><<goto 'Garage - World'>><</if>>
<<ensureLeader _s>>
<<set _config = setup.settlements.typeConfig[_s.type]>>
<<set _leader = _s.leader>>
<<set _dialogs = setup.settlements.leaderDialogs[_s.type]>>
<<set _relLevel = setup.settlements.getRelationshipLevel(_s)>>
<<set _relColors = { hostile: '#e05555', unfriendly: '#e09855', neutral: '#999999', friendly: '#55cc88', allied: '#5599e0' }>>
<<set _relColor = _relColors[_relLevel]>>
<<set _relLabel = setup.settlements.getRelationshipLabel(_s)>>
<<set _offersStr = _config.tradeGoods.map(function(i) { return i.replace(/_/g, ' '); }).join(', ')>>
<<set _needsStr = _config.wantsGoods.map(function(i) { return i.replace(/_/g, ' '); }).join(', ')>>
<<set _introLine = _dialogs.intro[randomInteger(0, _dialogs.intro.length - 1)]>>
<<if _leader>>
<<sayNpc _leader>><<= _introLine>><</sayNpc>>
<br />
<</if>>
<div style="background: rgba(0,0,0,0.15); border-left: 3px solid #555; padding: 10px 14px; margin-bottom: 16px; font-size: 0.9em;">
<span style="color: #aaa;"><strong style="color: #ddd;">They offer:</strong> <<= _offersStr>></span>
<br />
<span style="color: #aaa;"><strong style="color: #ddd;">They need:</strong> <<= _needsStr>></span>
</div>
<span style="color: <<= _relColor>>; font-size: 0.9em;">◈ Currently <<= _relLabel>></span>
<br /><br />
<<if _s.relationship > -60>>
<div id="neg_greeting">
<<set _greetLabel = 'Approach with a friendly greeting'>>
<<linkreplace _greetLabel>>
<<run $('#neg_trade, #neg_gift, #neg_tribute, #neg_proposition, #neg_back').hide()>>
<<set _oldLevel = setup.settlements.getRelationshipLevel(_s)>>
<<set _result = setup.settlements.negotiate(_s, 'friendly_greeting')>>
<<run _s.negotiatedCount = (_s.negotiatedCount ?? 0) + 1; setup.settlements.save(setup.settlements.getAll())>>
<<addmins 30>>
You approach with open hands and keep your voice steady.
<br /><br />
<<if _leader>>
<<set _line = _result.success ? _dialogs.greeting_ok[randomInteger(0, _dialogs.greeting_ok.length - 1)] : _dialogs.greeting_fail[randomInteger(0, _dialogs.greeting_fail.length - 1)]>>
<<sayNpc _leader>><<= _line>><</sayNpc>>
<br />
<</if>>
<<if _result.success>>
<<if setup.settlements.getRelationshipLevel(_s) !== _oldLevel>>
<span style="color: #55cc88;">Relationship improved — now <<= setup.settlements.getRelationshipLabel(_s)>></span>
<<else>>
<span style="color: #55cc88;">Relationship improved slightly.</span>
<</if>>
<<else>>
<span style="color: #e05555;">They're not ready to listen.</span>
<</if>>
<br /><br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</linkreplace>>
</div>
<</if>>
<<if _s.relationship > -20>>
<div id="neg_trade">
<<set _tradeLabel = 'Propose a trade arrangement'>>
<<linkreplace _tradeLabel>>
<<run $('#neg_greeting, #neg_gift, #neg_tribute, #neg_proposition, #neg_back').hide()>>
<<set _oldLevel = setup.settlements.getRelationshipLevel(_s)>>
<<set _result = setup.settlements.negotiate(_s, 'trade_offer')>>
<<run _s.negotiatedCount = (_s.negotiatedCount ?? 0) + 1; setup.settlements.save(setup.settlements.getAll())>>
<<addmins 60>>
You lay out what you can offer and what you're looking for.
<br /><br />
<<if _leader>>
<<set _line = _result.success ? _dialogs.trade_ok[randomInteger(0, _dialogs.trade_ok.length - 1)] : _dialogs.trade_fail[randomInteger(0, _dialogs.trade_fail.length - 1)]>>
<<sayNpc _leader>><<= _line>><</sayNpc>>
<br />
<</if>>
<<if _result.success>>
<<if setup.settlements.getRelationshipLevel(_s) !== _oldLevel>>
<span style="color: #55cc88;">Relationship improved — now <<= setup.settlements.getRelationshipLabel(_s)>></span>
<<else>>
<span style="color: #55cc88;">Relationship improved slightly.</span>
<</if>>
<<else>>
<span style="color: #e05555;">They're not ready for that yet.</span>
<</if>>
<br /><br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="neg_gift">
<<set _giftLabel = 'Leave a gift (50 caps)'>>
<<linkreplace _giftLabel>>
<<run $('#neg_greeting, #neg_trade, #neg_tribute, #neg_proposition, #neg_back').hide()>>
<<if $player.money >= 50>>
<<set _oldLevel = setup.settlements.getRelationshipLevel(_s)>>
<<set _result = setup.settlements.negotiate(_s, 'gift', 50)>>
<<if _result.success>>
<<set $player.money -= 50>>
<<run _s.negotiatedCount = (_s.negotiatedCount ?? 0) + 1; setup.settlements.save(setup.settlements.getAll())>>
<<addmins 30>>
You set 50 caps on the table without a word.
<br /><br />
<<if _leader>>
<<set _line = _dialogs.gift_accept[randomInteger(0, _dialogs.gift_accept.length - 1)]>>
<<sayNpc _leader>><<= _line>><</sayNpc>>
<br />
<</if>>
<<if setup.settlements.getRelationshipLevel(_s) !== _oldLevel>>
<span style="color: #55cc88;">Relationship improved — now <<= setup.settlements.getRelationshipLabel(_s)>></span>
<<else>>
<span style="color: #55cc88;">Relationship improved slightly.</span>
<</if>>
<<else>>
<span style="color: #e05555;">They're too hostile to accept a gift.</span>
<</if>>
<<else>>
<span style="color: #e05555;">You don't have enough caps.</span>
<</if>>
<br /><br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</linkreplace>>
</div>
<div id="neg_tribute">
<<set _tributeLabel = 'Offer a large tribute (200 caps)'>>
<<linkreplace _tributeLabel>>
<<run $('#neg_greeting, #neg_trade, #neg_gift, #neg_proposition, #neg_back').hide()>>
<<if $player.money >= 200>>
<<set _oldLevel = setup.settlements.getRelationshipLevel(_s)>>
<<set _result = setup.settlements.offerTribute(_s, 200)>>
<<set $player.money -= 200>>
<<run _s.negotiatedCount = (_s.negotiatedCount ?? 0) + 1; setup.settlements.save(setup.settlements.getAll())>>
<<addmins 30>>
You laid out 200 caps — enough to make them stop and think.
<br /><br />
<<if _leader>>
<<set _line = _dialogs.gift_accept[randomInteger(0, _dialogs.gift_accept.length - 1)]>>
<<sayNpc _leader>><<= _line>><</sayNpc>>
<br />
<</if>>
<<if setup.settlements.getRelationshipLevel(_s) !== _oldLevel>>
<span style="color: #55cc88;">Relationship improved significantly — now <<= setup.settlements.getRelationshipLabel(_s)>></span>
<<else>>
<span style="color: #55cc88;">Relationship improved (+<<= _result.relationshipGain>>).</span>
<</if>>
<<else>>
<span style="color: #e05555;">You don't have enough caps.</span>
<</if>>
<br /><br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</linkreplace>>
</div>
<<set _propTypes = ['raider_camp', 'biker_gang', 'prison_colony', 'amazonian_tribe']>>
<<if _leader && _leader.gender === 0 && (_leader.likesGuys ?? true) && _s.relationship <= -30 && !(_s.flags?.propositionDone ?? false) && _propTypes.includes(_s.type)>>
<div id="neg_proposition">
<<set _propLabel = 'There\'s another way to settle this'>>
<<linkreplace _propLabel>>
<<run $('#neg_greeting, #neg_trade, #neg_gift, #neg_tribute, #neg_back').hide()>>
<<horny_reset>>
<<addmins 30>>
<<set _propOpeners = {
raider_camp: either('Caps are fine. But I want something caps can\'t buy.', 'You want to leave breathing? Start by telling me what else you\'ve got.'),
biker_gang: either('You\'ve got nerve walking in here alone. I can appreciate that. I appreciate other things too.', 'Money\'s one language. Not the only one.'),
prison_colony: either('In here, every new arrangement starts the same way.', 'Currency comes in more forms than caps. Picking that up?'),
amazonian_tribe: either('Words and money mean little to us. There is another way to earn standing here.', 'Our tradition. Outsiders prove themselves. All the way.')
}>>
<<set _propLine = _propOpeners[_s.type] ?? 'There\'s another way to open this door.'>>
<<sayNpc _leader>><<= _propLine>><</sayNpc>>
<br />
She didn't wait for a response. She caught your arm and pulled you toward the back — past the noise, past the others, into a space just barely out of sight.
<br /><br />
<center>
<<image 'places/world/negotiate_proposition.jpg'>>
</center>
<br />
No preamble. She put her hand flat on your chest and pushed you back against the wall, holding eye contact the whole time. No heat in it. Just authority, expressed the old-fashioned way.
<br /><br />
She opened your belt with one hand, unhurried. Then took your cock out and sized you up with the same appraising look she gave everything she picked up. Decided you'd do.
<br /><br />
She hitched her own clothing aside, guided your hand between her thighs — already warm, already slick — then pulled you forward and positioned you herself. The moment you pushed inside her she tilted her hips once, testing, then set a pace that didn't leave room for hesitation. Hard and steady. Her fingers dug into your shoulder. The only sounds she made were her breath and the creak of the wall behind you.
<br /><br />
When you were close she read it somehow and caught the back of your neck.
<br /><br />
<<sayNpc _leader>>
Not inside me.
<</sayNpc>>
<br />
You pulled out and finished across her thigh. She watched without expression, then straightened her clothing with the same efficiency she'd brought to everything else.
<br /><br />
<<sayNpc _leader>>
Now we understand each other. Don't push it.
<</sayNpc>>
<br />
<<set _oldLevel = setup.settlements.getRelationshipLevel(_s)>>
<<if !_s.flags>><<set _s.flags = {}>><</if>>
<<set _s.flags.propositionDone = true>>
<<run setup.settlements.modifyRelationship(_s, 25, 'Proposition encounter')>>
<<run _s.negotiatedCount = (_s.negotiatedCount ?? 0) + 1; setup.settlements.save(setup.settlements.getAll())>>
<<if setup.settlements.getRelationshipLevel(_s) !== _oldLevel>>
<span style="color: #55cc88;">Relationship changed — now <<= setup.settlements.getRelationshipLabel(_s)>></span>
<<else>>
<span style="color: #55cc88;">Relationship improved (+25).</span>
<</if>>
<br /><br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="neg_back">
<<link 'Back'>>
<<goto 'Garage - World - Settlement'>>
<</link>>
</div><h1 class="ptitle">RECRUIT</h1>
<br />
<<set _rS = setup.settlements.getById($tmpSettlement)>>
<<if !_rS>><<goto 'Garage - World'>><</if>>
<<ensureLeader _rS>>
<<set _rCount = setup.settlements.getRecruitableCount(_rS)>>
<<set _rLeader = _rS.leader>>
<<if _rLeader>>
<<set _rDialogs = setup.settlements.leaderDialogs[_rS.type]>>
<<set _rLine = _rDialogs.intro[randomInteger(0, _rDialogs.intro.length - 1)]>>
<<sayNpc _rLeader>><<= _rLine>><</sayNpc>>
<br />
<</if>>
<<if _rCount <= 0>>
<p style="color: #888;">Nobody here is ready to leave <<= _rS.name>> right now.</p>
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<<else>>
<div id="recruit_approach">
<<linkreplace 'Talk to potential recruits'>>
<<addmins 30>>
<<set _rHandle = setup.settlements.getById($tmpSettlement)>>
<<if !_rHandle>>
Something went wrong.
<<else>>
<<set _rResult = setup.settlements.recruit(_rHandle)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<if _rResult.success>>
<<if _rResult.gender === 1>>
<<newguy>>
<<set $tmpGuy.name = _rResult.name>>
<<set $tmpGuy.origin = _rHandle.name>>
<<set $tmpRecruitNpc = $tmpGuy>>
<<else>>
<<newgirl>>
<<set $tmpGirl.name = _rResult.name>>
<<set $tmpGirl.origin = _rHandle.name>>
<<set $tmpRecruitNpc = $tmpGirl>>
<</if>>
<<set _rFull = $tmpRecruitNpc>>
<<sayNpc _rFull>>
<<if _rResult.gender === 1>>
Been here long enough. If you've got room, I'm in.
<<else>>
This place has its problems. What are you offering?
<</if>>
<</sayNpc>>
<br />
<div style="background: rgba(0,0,0,0.15); border-left: 3px solid #444; padding: 8px 14px; margin-bottom: 14px; font-size: 0.9em;">
<strong style="color: #ccc;"><<= _rFull.name>></strong>
<span style="color: #888; margin-left: 8px;"><<= _rFull.gender === 1 ? 'Male' : 'Female'>></span>
<br />
<<if (_rFull.skills ?? []).length>>
<span style="color: #aaa;">Skills: <<= _rFull.skills.join(', ')>></span>
<<else>>
<span style="color: #666;">No particular skills.</span>
<</if>>
<<if _rFull.origin>>
<br /><span style="color: #555; font-size: 0.85em;">From <<= _rFull.origin>></span>
<</if>>
</div>
<<link 'Bring them back'>>
<<run setup.npc.addHistory($tmpRecruitNpc, 'recruited', { place: _rHandle.name })>>
<<run $guests.push($tmpRecruitNpc)>>
<<unset $tmpRecruitNpc>>
<<goto 'Garage - World - Settlement'>>
<</link>>
<<link 'Not this time'>>
<<unset $tmpRecruitNpc>>
<<goto 'Garage - World - Settlement'>>
<</link>>
<<else>>
<span style="color: #e05555;"><<= _rResult.reason>></span>
<br /><br />
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</if>>
<</if>>
<</linkreplace>>
</div>
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<</if>><<set _rscS = setup.settlements.getById($tmpSettlement)>>
<!-- #### places/world/rescue_lost.jpg | post-apocalyptic failed rescue, lone figure retreating from compound under floodlights at night, defeated, gritty --ar 4:2 --p -->
<h1 class="ptitle">RESCUE</h1>
<br />
You didn't make it through. They drove you back at the wire — beaten, bleeding, lucky to be walking.
<br /><br />
<<if _rscS>>
<<run setup.settlements.modifyRelationship(_rscS, -10, 'Failed rescue attempt')>>
<<run setup.settlements.logEvent(_rscS, 'Player attempted a rescue raid and was repelled.')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<</if>>
<<addmins 120>>
<<if _rscS && (_rscS.playerCaptives ?? []).length>>
<span style="color: #e05555;"><<= _rscS.playerCaptives.map(function(c) { return c.npc.name; }).join(', ')>> <<= _rscS.playerCaptives.length === 1 ? 'is' : 'are'>> still held at <<= _rscS.name>>.</span>
<<else>>
<span style="color: #e05555;">They're still in there.</span>
<</if>>
<br /><br />
<<link 'Drive back'>><<goto 'Garage - World'>><</link>><<set _rscS = setup.settlements.getById($tmpSettlement)>>
<!-- #### places/world/rescue_won.jpg | post-apocalyptic rescued companions walking out of compound at night, relief, gritty cinematic --ar 4:2 --p -->
<h1 class="ptitle">RESCUE</h1>
<br />
<<if _rscS && (_rscS.playerCaptives ?? []).length>>
You found them in the back of the compound — roughed up but moving.
<br /><br />
<<for _rci = 0; _rci < _rscS.playerCaptives.length; _rci++>>
<<sayNpc _rscS.playerCaptives[_rci].npc>>
I knew you'd come.
<</sayNpc>>
<br />
<<run $guests.push(_rscS.playerCaptives[_rci].npc)>>
<<run setup.npc.addHistory(_rscS.playerCaptives[_rci].npc, 'rescued', { place: _rscS.name })>>
<</for>>
<<run setup.settlements.modifyRelationship(_rscS, -20, 'Rescue raid')>>
<<run setup.settlements.logEvent(_rscS, 'Player raided compound and freed captives.')>>
<<set _rscS.playerCaptives = []>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 120>>
<br />
<span style="color: #55cc88;">Everyone made it out. <<= _rscS.name>> won't forget this.</span>
<<else>>
<<addmins 60>>
You fought through — but found nothing. They must have moved them already.
<</if>>
<br /><br />
<<link 'Head back'>><<goto 'Garage - World'>><</link>><<set _rscS = setup.settlements.getById($tmpSettlement)>>
<<if !_rscS || !(_rscS.playerCaptives ?? []).length>>
<<goto 'Garage - World - Settlement'>>
<</if>>
<<set _rscGuards = setup.getPersonsForLocation($guests, 'guard')>>
<<set _rscEnemyCount = Math.min(2, Math.max(1, Math.floor((_rscS.defense ?? 100) / 80)))>>
<<generateEnemies _rscEnemyCount 0 _rscEnemyCount>>
<<for _rscei = 0; _rscei < $enemies.length; _rscei++>>
<<set $enemies[_rscei].strength = Math.min(($enemies[_rscei].strength ?? 50) + 20, 100)>>
<<set $enemies[_rscei].endurance = Math.min(($enemies[_rscei].endurance ?? 50) + 20, 100)>>
<</for>>
<!-- #### places/world/rescue_raid.jpg | dark post-apocalyptic rescue mission, small group breaching compound walls at night, searchlights, tense cinematic --ar 4:2 --p -->
<h1 class="ptitle">RESCUE</h1>
<br />
You drove out to <<= _rscS.name>> after dark. <<if _rscS.playerCaptives.length === 1>><<= _rscS.playerCaptives[0].npc.name>> was in there.<<else>><<= _rscS.playerCaptives.length>> of your people were in there.<</if>> Getting them out was going to be messy.
<br /><br />
Their sentries spotted you at the wire before you got close. It went loud fast.
<br /><br />
<<link 'Fight your way through'>>
<<fight $enemies 'Garage - World - Rescue - Won' 'Garage - World - Rescue - Lost' false _rscGuards>>
<<set $fight.skipEndingLost = true>>
<</link>><<set _s = setup.settlements.getDiscovered().find(s => s.id === $tmpSettlement)>>
<<if !_s>>
<<goto 'Garage - World'>>
<</if>>
<<ensureLeader _s>>
<<if !(_s.firstVisitDone ?? false)>>
<<set _s.firstVisitDone = true>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<goto 'Garage - World - First Visit'>>
<</if>>
<<set _relColors = { hostile: '#e05555', unfriendly: '#e09855', neutral: '#999999', friendly: '#55cc88', allied: '#5599e0' }>>
<<set _typeNames = {
biker_gang: 'Biker Gang',
survivor_camp: 'Survivor Camp',
monastery: 'Monastery',
convent: 'Convent',
trading_post: 'Trading Post',
raider_camp: 'Raider Camp',
cult_compound: 'Cult Compound',
military_base: 'Military Base',
farming_community: 'Farming Community',
medical_colony: 'Medical Colony',
tribal_village: 'Tribal Village',
prison_colony: 'Prison Colony',
nomad_caravan: 'Nomad Caravan',
amazonian_tribe: 'Amazonian Tribe',
scavenger_den: 'Scavenger Den'
}>>
<<set _relLevel = setup.settlements.getRelationshipLevel(_s)>>
<<set _relColor = _relColors[_relLevel]>>
<<set _relLabel = setup.settlements.getRelationshipLabel(_s)>>
<<set _typeName = _typeNames[_s.type] ?? _s.type>>
<<set _settName = _s.name.toUpperCase()>>
<<set _typeImg = 'places/world/' + _s.type + '.jpg'>>
<<set _leader = _s.leader>>
<h1 class="ptitle"><<= _settName>></h1>
<br />
<center>
<<image _typeImg sfw>>
</center>
<br />
<div style="border-left: 3px solid <<= _relColor>>; padding: 10px 16px; margin-bottom: 16px; background: rgba(0,0,0,0.2);">
<span style="color: #aaa; font-size: 0.9em;"><<= _typeName>></span>
<span style="color: <<= _relColor>>; font-size: 0.9em; margin-left: 12px;">◈ <<= _relLabel>></span>
<br /><br />
<span style="color: #bbb; font-size: 0.9em;"><<= setup.settlements.getPopulationDescription(_s)>> · <<= setup.settlements.getGenderDescription(_s)>></span>
<br />
<span style="color: #bbb; font-size: 0.9em;"><<= setup.settlements.getDefenseDescription(_s)>></span>
<<if (_s.negotiatedCount ?? 0) > 0 || (_s.attackCount ?? 0) > 0>>
<br /><br />
<span style="color: #666; font-size: 0.82em;">
<<if (_s.negotiatedCount ?? 0) > 0>>Negotiated <<= _s.negotiatedCount>> time<<= _s.negotiatedCount > 1 ? 's' : ''>>.<</if>>
<<if (_s.attackCount ?? 0) > 0>> Attacked <<= _s.attackCount>> time<<= _s.attackCount > 1 ? 's' : ''>> (<<= _s.attackVictories ?? 0>> won).<</if>>
</span>
<</if>>
<<if _s.activeMission && !setup.settlements.isMissionExpired(_s, $game.day)>>
<br /><br />
<span style="color: #e0a055; font-size: 0.82em;">📦 Active mission: <<= _s.activeMission.quantity>>× <<= _s.activeMission.item.replace(/_/g, ' ')>> · <<= _s.activeMission.reward>> caps</span>
<</if>>
<<if (_s.production.food ?? 0) > 0 && (_s.resources.food ?? 0) < 5>>
<br /><br />
<span style="color: #e05555; font-size: 0.85em;">⚠ Food supply critical — people are going hungry</span>
<<if !setup.settlements.isHostile(_s) && setup.cabinInventory.count('food') >= 10>>
<div id="famine_help">
<<set _famineLabel = 'Send emergency food (10)'>>
<<linkreplace _famineLabel>>
<<run setup.cabinInventory.drop('food', 10)>>
<<run setup.settlements.sendEmergencyFood(_s, 10)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 30>>
<span style="color: #55cc88;">You handed over 10 food. They received it without a word — the relief on their faces said enough.</span>
<</linkreplace>>
</div>
<</if>>
<</if>>
</div>
<<if (_s.recentEvents ?? []).length>>
<div style="background: rgba(0,0,0,0.12); border-left: 3px solid #252525; padding: 8px 14px; margin-bottom: 14px; font-size: 0.8em;">
<span style="color: #444; letter-spacing: 0.04em; font-size: 0.85em;">RECENT EVENTS</span>
<br />
<<for _rei = _s.recentEvents.length - 1; _rei >= 0; _rei-->>
<span style="color: #4a4a4a;">◦ <<= _s.recentEvents[_rei]>></span>
<br />
<</for>>
</div>
<</if>>
<<if _leader>>
<<set _introDialogs = setup.settlements.leaderDialogs[_s.type].intro>>
<<set _introLine = _introDialogs[randomInteger(0, _introDialogs.length - 1)]>>
<<sayNpc _leader>><<= _introLine>><</sayNpc>>
<br />
<</if>>
<<if !setup.settlements.isHostile(_s)>>
<<link 'Trade'>>
<<goto 'Garage - World - Trade'>>
<</link>>
<</if>>
<<if !setup.settlements.isAllied(_s)>>
<<link 'Negotiate'>>
<<goto 'Garage - World - Negotiate'>>
<</link>>
<</if>>
<<if !setup.settlements.isHostile(_s)>>
<<link 'Donate'>>
<<goto 'Garage - World - Donate'>>
<</link>>
<</if>>
<<if setup.settlements.isFriendly(_s)>>
<<link 'Request Alliance'>>
<<goto 'Garage - World - Alliance'>>
<</link>>
<</if>>
<<if setup.settlements.isFriendly(_s) || setup.settlements.isAllied(_s)>>
<<link 'Recruit'>>
<<goto 'Garage - World - Recruit'>>
<</link>>
<<link 'Get Intel'>>
<<goto 'Garage - World - Intel'>>
<</link>>
<<link 'Missions'>>
<<goto 'Garage - World - Mission'>>
<</link>>
<<if $game.day >= ((_s.lastInvestDay ?? 0) + 14)>>
<div id="invest_block">
<<set _investLabel = 'Invest (200 caps)'>>
<<linkreplace _investLabel>>
<<if $player.money >= 200>>
<<set _invResult = setup.settlements.investInSettlement(_s, 200)>>
<<if _invResult.success>>
<<set $player.money -= 200>>
<<addmins 60>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<span style="color: #55cc88;">You put 200 caps into <<= _s.name>>. Population up by <<= _invResult.popGain>> and stockpiles boosted.</span>
<<else>>
<span style="color: #e05555;"><<= _invResult.reason>></span>
<</if>>
<<else>>
<span style="color: #e05555;">Not enough caps.</span>
<</if>>
<</linkreplace>>
</div>
<</if>>
<</if>>
<<if _leader && (setup.settlements.isFriendly(_s) || setup.settlements.isAllied(_s))>>
<<link 'Speak with Leader'>>
<<script>>
Dialog.setup("Speak with Leader", "leader-talk");
Dialog.wiki(Story.get("Garage - World - Leader Talk").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<if setup.settlements.typeConfig[_s.type].canSlaveTrade && !setup.settlements.isAllied(_s)>>
<<link 'Slave Trade'>>
<<goto 'Garage - World - Slave Trade'>>
<</link>>
<</if>>
<<if $game.capturedGuest && $game.capturedGuest.settlementId === _s.id>>
<div style="border-left: 3px solid #e09855; padding: 10px 14px; margin: 14px 0; background: rgba(224,152,85,0.07);">
<span style="color: #e09855; font-weight: bold;">⚠ HOLDING CAPTIVE: <<= $game.capturedGuest.npc.name>></span>
<br />
<span style="color: #888; font-size: 0.88em;">She was taken during scavenging.</span>
<br /><br />
<<if $player.money >= 500>>
<div id="ransom_block">
<<linkreplace 'Pay ransom (500 caps)'>>
<<run $('#rescue_block').hide()>>
<<set $player.money -= 500>>
<<run setup.settlements.modifyRelationship(_s, 5, 'Ransom paid')>>
<<run _s.captiveId = null; _s.captiveName = null>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<run $guests.push($game.capturedGuest.npc)>>
<<run setup.npc.addHistory($game.capturedGuest.npc, 'rescued', { place: _s.name })>>
<<guestCaptureResolved $game.capturedGuest.npc true>>
<<unset $game.capturedGuest>>
<<addmins 60>>
<span style="color: #55cc88;">They handed her over at the gate. She looked rough but was breathing. 500 caps lighter.</span>
<</linkreplace>>
</div>
<<else>>
<span style="color: #666; font-size: 0.85em;">Ransom (500 caps) — you don't have enough.</span>
<br />
<</if>>
<div id="rescue_block">
<<link 'Mount a rescue'>>
<<set $tmpRescueSettlement = _s.id>>
<<goto 'Event - Guest rescue'>>
<</link>>
</div>
<br />
<<link 'Leave her'>>
<<set _s.captiveId = null>>
<<set _s.captiveName = null>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<guestCaptureResolved $game.capturedGuest.npc false>>
<<unset $game.capturedGuest>>
<<goto 'Garage - World - Settlement'>>
<</link>>
</div>
<</if>>
<<if (_s.playerCaptives ?? []).length > 0>>
<div style="border-left: 3px solid #e09855; padding: 10px 14px; margin: 14px 0; background: rgba(224,152,85,0.07);">
<span style="color: #e09855; font-weight: bold;">⚠ YOUR PEOPLE HELD HERE</span>
<br />
<<for _pci = 0; _pci < _s.playerCaptives.length; _pci++>>
<span style="color: #aaa; font-size: 0.88em;"><<= _s.playerCaptives[_pci].npc.name>></span>
<br />
<</for>>
<br />
<<set _ransomTotal = _s.playerCaptives.length * 200>>
<<if $player.money >= _ransomTotal>>
<div id="pc_ransom_block">
<<set _ransomLabel = 'Pay ransom (' + _ransomTotal + ' caps)'>>
<<linkreplace _ransomLabel>>
<<run $('#pc_rescue_block').hide()>>
<<set $player.money -= _ransomTotal>>
<<for _rci = 0; _rci < _s.playerCaptives.length; _rci++>>
<<run $guests.push(_s.playerCaptives[_rci].npc)>>
<<run setup.npc.addHistory(_s.playerCaptives[_rci].npc, 'rescued', { place: _s.name })>>
<</for>>
<<run setup.settlements.modifyRelationship(_s, 5, 'Ransom paid for captured raiders')>>
<<set _s.playerCaptives = []>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 60>>
<span style="color: #55cc88;">They brought them out to the gate. <<= _ransomTotal>> caps changed hands. Nobody looked happy about it.</span>
<</linkreplace>>
</div>
<<else>>
<span style="color: #666; font-size: 0.85em;">Ransom (<<= _ransomTotal>> caps) — not enough caps.</span>
<br />
<</if>>
<div id="pc_rescue_block">
<<link 'Mount a rescue'>>
<<goto 'Garage - World - Rescue'>>
<</link>>
</div>
</div>
<</if>>
<<if _s.blackmailActive>>
<div style="border-left: 3px solid #e0c055; padding: 10px 14px; margin: 14px 0; background: rgba(224,192,85,0.06);">
<span style="color: #e0c055; font-weight: bold;">⚠ BLACKMAIL DEMAND</span>
<br />
<span style="color: #888; font-size: 0.88em;">They're holding something over you and expect payment. Deal with it before they act on it.</span>
<br /><br />
<div id="bm_settle_pay">
<<set _bmPayLabel = 'Pay them off (300 caps)'>>
<<linkreplace _bmPayLabel>>
<<run $('#bm_settle_threaten').hide()>>
<<if $player.money >= 300>>
<<set $player.money -= 300>>
<<run setup.settlements.resolveBlackmail(_s, true)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 30>>
<span style="color: #55cc88;">Demand settled. They got their money. You got your peace — for now.</span>
<<else>>
<span style="color: #e05555; font-size: 0.88em;">You don't have 300 caps.</span>
<</if>>
<</linkreplace>>
</div>
<div id="bm_settle_threaten">
<<set _bmThreatenLabel = 'Confront them — make clear there will be consequences'>>
<<linkreplace _bmThreatenLabel>>
<<run $('#bm_settle_pay').hide()>>
<<set _s.blackmailActive = false>>
<<set _s.blackmailCooldown = $game.day + 30>>
<<run setup.settlements.modifyRelationship(_s, -10, 'Player confronted and shut down blackmail demand')>>
<<run setup.settlements.logEvent(_s, 'Player showed up and made the threat clear. They dropped it.')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 30>>
You laid it out plainly — what would happen to them if they followed through. Their contact went quiet. The message didn't get sent.
<br /><br />
<span style="color: #e09855; font-size: 0.88em;">Blackmail dropped. Relationship −10.</span>
<</linkreplace>>
</div>
</div>
<</if>>
<<link 'Attack'>>
<<goto 'Garage - World - Attack'>>
<</link>>
<<if _s.ultimatumActive && setup.settlements.isHostile(_s)>>
<div style="border-left: 3px solid #e05555; padding: 10px 14px; margin: 14px 0; background: rgba(224,85,85,0.06);">
<span style="color: #e05555; font-weight: bold;">⚠ ULTIMATUM</span>
<br />
<span style="color: #aaa; font-size: 0.88em;">They demand <<= _s.ultimatumAmount ?? 500>> caps. Deadline: day <<= (_s.ultimatumDay ?? 0) + 3>>.</span>
<br />
<<if $game.day > (_s.ultimatumDay ?? 0) + 3>>
<span style="color: #e05555; font-size: 0.85em;">The deadline has passed — they're preparing to move.</span>
<<else>>
<span style="color: #888; font-size: 0.85em;"><<= Math.max(0, (_s.ultimatumDay ?? 0) + 3 - $game.day)>> day(s) remaining.</span>
<</if>>
<<if $player.money >= (_s.ultimatumAmount ?? 500)>>
<div id="ultimatum_pay">
<<set _payLabel = 'Pay the demand (' + (_s.ultimatumAmount ?? 500) + ' caps)'>>
<<linkreplace _payLabel>>
<<set _ultResult = setup.settlements.payUltimatum(_s)>>
<<set $player.money -= (_s.ultimatumAmount ?? 500)>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<addmins 15>>
<span style="color: #55cc88;">You paid their demand. The messenger nodded once and left without a word. The threat is off — for now.</span>
<</linkreplace>>
</div>
<<else>>
<br /><span style="color: #e05555; font-size: 0.85em;">You don't have enough caps.</span>
<</if>>
</div>
<</if>>
<<link 'Back'>>
<<goto 'Garage - World'>>
<</link>><h1 class="ptitle">SLAVE TRADE</h1>
<br />
<<set _st = setup.settlements.getById($tmpSettlement)>>
<<if !_st>><<goto 'Garage - World'>><</if>>
<<ensureLeader _st>>
<<set _stSlaves = setup.settlements.generateSlavesForSale(_st, $game.day)>>
<center>
<<image 'places/world/slave_trade.jpg'>>
</center>
<br />
The back room smelled like old metal and sweat. <<= _st.name >>'s people didn't pretend this was anything other than what it was.
<br /><br />
<div id="st_buy_section">
<span style="color: #aaa; font-size: 0.9em; letter-spacing: 0.05em;">AVAILABLE FOR PURCHASE</span>
<br /><br />
<<if _stSlaves.length>>
<<set $game.stBuyIdx = $game.stBuyIdx ?? null>>
<table class="npc-list">
<<for _sti = 0; _sti < _stSlaves.length; _sti++>>
<<set _stEntry = _stSlaves[_sti]>>
<<set _genderClass = 'gender-' + setup.genderClass({ gender: _stEntry.gender ?? 0 })>>
<<capture _sti _stEntry>>
<tr class="item">
<td>
<<radiobutton "$game.stBuyIdx" _sti autocheck>>
</td>
<td style="min-width: 30%">
<span @class="_genderClass"><<= _stEntry.name >></span>
<span style="color: #888; font-size: 0.85em; margin-left: 8px;">Age <<= _stEntry.age >></span>
</td>
<td>
<span style="color: #e0a055; font-size: 0.9em;"><<= _stEntry.price >> caps</span>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br />
<<set _stBuyLabel = 'Buy selected'>>
<<linkreplace _stBuyLabel>>
<<if $game.stBuyIdx !== null && _stSlaves[$game.stBuyIdx]>>
<<set _stPick = _stSlaves[$game.stBuyIdx]>>
<<if $player.money >= _stPick.price>>
<<set $player.money -= _stPick.price>>
<<addmins 45>>
<<newgirl>>
<<set $tmpGirl.name = _stPick.name>>
<<set $tmpGirl.birthDate = setup.getBirthDate(_stPick.age)>>
<<set $tmpGirl.origin = 'Purchased from ' + _st.name>>
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'bought', { place: _st.name })>>
<<unset $tmpGirl>>
<<run _st.slavesForSale.splice($game.stBuyIdx, 1)>>
<<run setup.settlements.modifyRelationship(_st, 2, 'Slave purchase')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<unset $game.stBuyIdx>>
<span style="color: #55cc88;">You paid <<= _stPick.price >> caps. <<= _stPick.name >> is yours now.</span>
<<else>>
<span style="color: #e05555;">Not enough caps — need <<= _stPick.price >>.</span>
<</if>>
<<else>>
<span style="color: #888;">Select someone from the list first.</span>
<</if>>
<</linkreplace>>
<<else>>
<span style="color: #555; font-size: 0.88em;">Nothing for sale right now. Check back in a few days.</span>
<</if>>
</div>
<br />
<div id="st_sell_section">
<span style="color: #aaa; font-size: 0.9em; letter-spacing: 0.05em;">SELL ONE OF YOURS</span>
<br /><br />
<<if $slaves.length>>
<<set $game.stSellId = $game.stSellId ?? null>>
<<set $game.stSellPrices = {}>>
<<for _sts = 0; _sts < $slaves.length; _sts++>>
<<set $game.stSellPrices[$slaves[_sts].id] = Math.floor(80 + Math.random() * 120)>>
<</for>>
<table class="npc-list">
<<for _sts = 0; _sts < $slaves.length; _sts++>>
<<set _stSNpc = $slaves[_sts]>>
<<set _stSellPrice = $game.stSellPrices[_stSNpc.id]>>
<<set _capturedSellId = _stSNpc.id>>
<<set _genderClass = 'gender-' + setup.genderClass(_stSNpc)>>
<<set _customColorStyle = ''>>
<<if typeof _stSNpc.color !== 'undefined'>>
<<set _customColorStyle = ' npc-color color-' + _stSNpc.color>>
<</if>>
<<capture _sts _stSNpc _stSellPrice _capturedSellId>>
<tr class="item">
<td>
<<radiobutton "$game.stSellId" _capturedSellId autocheck>>
</td>
<td style="min-width: 25%">
<span @class="_genderClass + _customColorStyle"><<= _stSNpc.name >></span>
</td>
<td>
<<npcListView _stSNpc _sts 'slave'>>
</td>
<td>
<span style="color: #e0a055; font-size: 0.9em;"><<= _stSellPrice >> caps</span>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br />
<<set _stSellLabel = 'Sell selected'>>
<<linkreplace _stSellLabel>>
<<if $game.stSellId>>
<<set _stSIdx = $slaves.findIndex(function(g) { return g.id === $game.stSellId; })>>
<<if _stSIdx >= 0>>
<<set _stSoldNpc = clone($slaves[_stSIdx])>>
<<set _stSoldPrice = $game.stSellPrices[$game.stSellId] ?? 80>>
<<for _stInvItem, _stInvCount range ($slaves[_stSIdx].inventory ?? {})>>
<<run setup.npcInventoryRemove($slaves[_stSIdx], _stInvItem, _stInvCount)>>
<<pickup $backpack _stInvItem _stInvCount>>
<</for>>
<<if $slaves[_stSIdx].buttplug>>
<<pickup $backpack 'buttplug' 1>>
<</if>>
<<slaveRemove _stSIdx>>
<<set $player.money += _stSoldPrice>>
<<run setup.settlements.modifyRelationship(_st, 2, 'Slave sale')>>
<<run setup.settlements.save(setup.settlements.getAll())>>
<<unset $game.stSellId, $game.stSellPrices>>
<<addmins 30>>
<span style="color: #55cc88;">Sold <<= _stSoldNpc.name >> for <<= _stSoldPrice >> caps.</span>
<<else>>
<span style="color: #e05555;">Couldn't find that person.</span>
<</if>>
<<else>>
<span style="color: #888;">Select someone from the list first.</span>
<</if>>
<</linkreplace>>
<<else>>
<span style="color: #555; font-size: 0.88em;">You have no slaves to sell.</span>
<</if>>
</div>
<br />
<<link 'Back'>>
<<goto 'Garage - World - Settlement'>>
<</link>><h1 class="ptitle">TRADE</h1>
<br />
<<set _trS = setup.settlements.getById($tmpSettlement)>>
<<if !_trS>><<goto 'Garage - World'>><</if>>
<<if !setup.settlements.canTrade(_trS)>>
<p style="color: #e05555;">They're not willing to trade with you right now.</p>
<<link 'Back'>><<goto 'Garage - World - Settlement'>><</link>>
<<else>>
<<if !$tmpTradeOpen>>
<<set $tmpTradeOpen = true>>
<<addmins 30>>
<</if>>
<<script>>
window.awBuy = function(btn) {
var idx = btn.dataset.idx;
var item = btn.dataset.item;
var price = parseInt(btn.dataset.price) || 0;
var stock = parseInt(btn.dataset.stock) || 0;
var qtyEl = document.getElementById('tr_bq_' + idx);
var qty = Math.max(1, Math.min(Math.floor(Number(qtyEl ? qtyEl.value : 1) || 1), stock));
var s = setup.settlements.getById(variables().tmpSettlement);
var pl = variables().player;
if (!s || pl.money < price * qty || (s.resources[item] || 0) < qty) return;
pl.money -= price * qty;
variables().backpack.pickup(item, qty);
s.resources[item] = Math.max(0, (s.resources[item] || 0) - qty);
setup.settlements.modifyRelationship(s, qty, 'Trade');
setup.settlements.save(setup.settlements.getAll());
Engine.play('Garage - World - Trade');
};
window.awSell = function(btn) {
var idx = btn.dataset.idx;
var item = btn.dataset.item;
var price = parseInt(btn.dataset.price) || 0;
var have = parseInt(btn.dataset.have) || 0;
var qtyEl = document.getElementById('tr_sq_' + idx);
var qty = Math.max(1, Math.min(Math.floor(Number(qtyEl ? qtyEl.value : 1) || 1), have));
var s = setup.settlements.getById(variables().tmpSettlement);
var bp = variables().backpack;
if (!s || !bp || bp.count(item) < qty) return;
bp.drop(item, qty);
variables().player.money += price * qty;
s.resources[item] = (s.resources[item] || 0) + qty;
setup.settlements.modifyRelationship(s, 2 * qty, 'Sold wanted goods');
setup.settlements.save(setup.settlements.getAll());
Engine.play('Garage - World - Trade');
};
<</script>>
<<set _trOffer = setup.settlements.getTradeOffer(_trS)>>
<<set _trWants = setup.settlements.getWantsOffer(_trS)>>
<span style="color: #aaa; font-size: 0.88em;">Your caps: <strong style="color: #e0c055;"><<=$player.money>></strong></span>
<br /><br />
<h3 style="color: #ccc; margin: 0 0 8px 0; padding-bottom: 4px; border-bottom: 1px solid #2a2a2a;">Buying from them</h3>
<<if _trOffer && _trOffer.length>>
<<for _tBi = 0; _tBi < _trOffer.length; _tBi++>>
<<set _trBItem = _trOffer[_tBi].item>>
<<set _trBQty = _trOffer[_tBi].quantity>>
<<set _trBPrice = _trOffer[_tBi].priceEach>>
<<capture _tBi, _trBItem, _trBQty, _trBPrice>>
<div id="tr_b_<<= _tBi>>" style="padding: 8px 0; border-bottom: 1px solid #1c1c1c; display:flex; align-items:center; gap:8px;">
<span style="flex:1; min-width:140px;"><<= _trBItem.replace(/_/g, ' ')>> — <<= _trBPrice>> caps ea. <span style="color:#555; font-size:0.78em;">(<<= _trBQty>> in stock)</span></span>
<input type="number" @id="'tr_bq_' + _tBi" value="1" min="1" @max="_trBQty" style="background:#222;color:#eee;border:1px solid #555;width:55px;padding:2px 4px;flex:none;">
<span style="flex:none;"><a href="javascript:void(0)" class="link-internal" @data-idx="_tBi" @data-item="_trBItem" @data-price="_trBPrice" @data-stock="_trBQty" onclick="window.awBuy(this)">Buy</a></span>
</div>
<</capture>>
<</for>>
<<else>>
<span style="color: #888; font-size: 0.9em;">Nothing in stock right now.</span>
<</if>>
<br />
<h3 style="color: #ccc; margin: 16px 0 8px 0; padding-bottom: 4px; border-bottom: 1px solid #2a2a2a;">Selling to them</h3>
<p style="color: #666; font-size: 0.82em; margin: 0 0 8px 0;">They pay above market rate for items they need.</p>
<<set _tSHasAny = false>>
<<for _tSi = 0; _tSi < _trWants.length; _tSi++>>
<<set _tSwItem = _trWants[_tSi].item>>
<<set _tSwPrice = _trWants[_tSi].priceEach>>
<<set _tSwHave = $backpack.count(_tSwItem)>>
<<if _tSwHave > 0>>
<<set _tSHasAny = true>>
<<capture _tSi, _tSwItem, _tSwPrice, _tSwHave>>
<div id="tr_s_<<= _tSi>>" style="padding: 8px 0; border-bottom: 1px solid #1c1c1c; display:flex; align-items:center; gap:8px;">
<span style="flex:1; min-width:140px;"><<= _tSwItem.replace(/_/g, ' ')>> — <<= _tSwPrice>> caps ea. <span style="color:#aaa; font-size:0.78em;">(you have <<= _tSwHave>>)</span></span>
<input type="number" @id="'tr_sq_' + _tSi" value="1" min="1" @max="_tSwHave" style="background:#222;color:#eee;border:1px solid #555;width:55px;padding:2px 4px;flex:none;">
<span style="flex:none;"><a href="javascript:void(0)" class="link-internal" @data-idx="_tSi" @data-item="_tSwItem" @data-price="_tSwPrice" @data-have="_tSwHave" onclick="window.awSell(this)">Sell</a></span>
</div>
<</capture>>
<</if>>
<</for>>
<<if !_tSHasAny>>
<span style="color: #888; font-size: 0.9em;">You don't have anything they want right now.</span>
<</if>>
<br /><br />
<<link 'Done'>>
<<set $tmpTradeOpen = false>>
<<goto 'Garage - World - Settlement'>>
<</link>>
<</if>><h1 class="ptitle">WORLD</h1>
<br />
<<set _discovered = setup.settlements.getAll().filter(function(s) { return s.discovered && !s.destroyed; })>>
<<if _discovered.length === 0>>
You haven't discovered any settlements yet. Explore the roads to find them.
<br /><br />
<<link 'Back'>>
<<goto 'Garage'>>
<</link>>
<<else>>
<p style="color: #888; font-size: 0.9em;">Settlements you've discovered during your travels.</p>
<<set _relColors = { hostile: '#e05555', unfriendly: '#e09855', neutral: '#999999', friendly: '#55cc88', allied: '#5599e0' }>>
<<set _typeNames = {
biker_gang: 'Biker Gang',
survivor_camp: 'Survivor Camp',
monastery: 'Monastery',
convent: 'Convent',
trading_post: 'Trading Post',
raider_camp: 'Raider Camp',
cult_compound: 'Cult Compound',
military_base: 'Military Base',
farming_community: 'Farming Community',
medical_colony: 'Medical Colony',
tribal_village: 'Tribal Village',
prison_colony: 'Prison Colony',
nomad_caravan: 'Nomad Caravan',
amazonian_tribe: 'Amazonian Tribe',
scavenger_den: 'Scavenger Den'
}>>
<<for _si = 0; _si < _discovered.length; _si++>>
<<set _s = _discovered[_si]>>
<<set _relLevel = setup.settlements.getRelationshipLevel(_s)>>
<<set _relColor = _relColors[_relLevel]>>
<<set _relLabel = setup.settlements.getRelationshipLabel(_s)>>
<<set _typeName = _typeNames[_s.type] ?? _s.type>>
<<set _popDesc = setup.settlements.getPopulationDescription(_s)>>
<<capture _s, _relColor, _relLabel, _typeName, _popDesc>>
<div style="border-left: 3px solid <<= _relColor>>; padding: 8px 14px; margin-bottom: 10px; background: rgba(0,0,0,0.2);">
<<if $player.car.fuel >= 20>>
<<set _viewLabel = _s.name>>
<<link _viewLabel>>
<<addhours 2>>
<<carFuel 20>>
<<set $tmpSettlement = _s.id>>
<<goto 'Garage - World - Settlement'>>
<</link>>
<<else>>
<span style="color: #444; cursor: not-allowed;"><<= _s.name>></span>
<span style="color: #e05555; font-size: 0.78em; margin-left: 6px;">(need 20 fuel)</span>
<</if>>
<span style="color: #777; font-size: 0.9em; margin-left: 8px;"><<= _typeName>></span>
<br />
<span style="color: #aaa; font-size: 0.85em;"><<= _popDesc>></span>
<span style="color: <<= _relColor>>; font-size: 0.85em; margin-left: 10px;">◈ <<= _relLabel>></span>
<<if _s.callForHelp>>
<br />
<span style="color: #e05555; font-size: 0.82em; font-weight: bold;">⚠ UNDER ATTACK</span>
<<if $player.car.fuel >= 20>>
<span style="margin-left: 8px;">
<<link 'Respond'>>
<<addhours 2>>
<<carFuel 20>>
<<set $tmpSettlement = _s.id>>
<<goto 'Garage - World - Help'>>
<</link>>
</span>
<</if>>
<</if>>
<<if $game.capturedGuest && $game.capturedGuest.settlementId === _s.id>>
<br />
<span style="color: #e09855; font-size: 0.82em; font-weight: bold;">⚠ HOLDING <<= $game.capturedGuest.npc.name>></span>
<</if>>
<<if (_s.playerCaptives ?? []).length > 0>>
<br />
<<set _pcNames = _s.playerCaptives.map(function(p) { return p.npc.name; }).join(', ')>>
<span style="color: #e09855; font-size: 0.82em; font-weight: bold;">⚠ YOUR PEOPLE HELD — <<= _pcNames>></span>
<</if>>
<<if _s.blackmailActive>>
<br />
<span style="color: #e0c055; font-size: 0.82em; font-weight: bold;">⚠ BLACKMAIL DEMAND</span>
<</if>>
</div>
<</capture>>
<</for>>
<br />
<<link 'Back'>>
<<goto 'Garage'>>
<</link>>
<</if>><h1 class="ptitle">GARAGE</h1>
<<set $locationEvents.garage = true>>
You approached cautiously, boots crunching on gravel, and she turned, a relieved smile breaking through her focused demeanor.
<br /><br />
<<video 'garage/mechanic_help1'>>
<br /><br />
<<sayNpc $tmpGirl>>
Finally! Just the person I needed. This stupid axle is giving me trouble. Can you get under there and hold it steady while I tighten the bolts?
<</sayNpc>>
<br />
The scent of oil and rust filled your nostrils as you slid beneath the car, lying on the cool, hard ground.
<<=setup.displayName($tmpGirl)>> crouched beside the vehicle, her toned arms glistening faintly with sweat as she reached for a wrench.
<br /><br />
Her fingers brushed yours briefly as you worked in tandem, her focus unwavering. Despite the grueling situation, the proximity and trust you shared carried a quiet intimacy that spoke volumes.
<br /><br />
After what felt like an eternity of holding and adjusting, she let out a satisfied sigh.
<br /><br />
<<addmins 20>>
<<sayNpc $tmpGirl>>
Got it. You can come out now.
<</sayNpc>>
<br />
You wriggled out from under the car, dusting off your shirt, though it did little to remove the grime.
<<=setup.displayName($tmpGirl)>> stood and stretched, her shirt riding up slightly to reveal a hint of her lean stomach.
She turned to you, an appreciative grin on her face.
<br /><br />
<<sayNpc $tmpGirl>>
Thanks for the help. I don’t know what I’d do without you.
<</sayNpc>>
<br />
She stepped closer, brushing her hands on her jean shorts before realizing it was futile.
Her ass pressed lightly against your bulge as she leaned in, a casual gesture that sent a jolt of awareness through you.
Her body was warm, her hair carrying the faint scent of sweat and something uniquely her.
<br /><br />
<center>
<<actionImage $tmpGirl 'fix_bulge'>>
</center>
<br />
<<sayNpc $tmpGirl>>
You wanted to talk about something?
<</sayNpc>>
<br />
<<linkreplace 'Pull her closer and pull down her top'>>
<<if $tmpGirl.virgin>><<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $tmpGirl.virgin = false>>
<<video 'garage/mechanic_help2'>>
<<run $('#option_yes').hide()>>
<br /><br />
Your hands instinctively found her waist, hesitating for the briefest of moments before pulling her closer.
<<=setup.displayName($tmpGirl)>> turned her head slightly, her breath catching as she glanced up at you.
<br /><br />
<<if $tmpGirl.horny < 40>>
<<sayNpc $tmpGirl>>
Hey! Not now
<</sayNpc>>
<br />
<<else>>
<<sayNpc $tmpGirl>>
Hey! I am all sweaty and dirty.
<</sayNpc>>
<br />
Your hands began to explore her body, and you started to play with her breast, feeling her nipple harden beneath your fingers.
<br /><br />
<<sayNpc $tmpGirl>>
Oh my.. Not here...
<</sayNpc>>
<br />
You continued to caress her, your hands moving down to her jeans shorts. With a swift motion, you pulled them down, exposing her underneath.
<br /><br />
You could see the excitement building within her.
Her ass was round and firm, and you couldn't help but grab it, squeezing it tightly as you positioned yourself behind her.
You ran your fingers over her pussy, feeling the wetness and heat emanating from her. She was soaking wet, and you knew she was ready for you.
<br /><br />
<<video 'garage/mechanic_help4'>>
<br /><br />
With a deep thrust, you entered her, feeling her tightness envelop you. <<=setup.displayName($tmpGirl)>> let out a moan of pleasure, her body arching to meet yours.
You began to pump into her, your strokes long and deep, filling her completely. Her wet pussy gripped you tightly, and you could feel her juices flowing around you.
<br /><br />
As you fucked her, the sound of your bodies slapping together filled the air, accompanied by the <<=setup.displayName($tmpGirl)>>'s cries of pleasure.
She was enjoying herself, her body responding to every thrust, every touch. You reached out and grabbed her hips, holding her in place as you pounded into her.
<br /><br />
<div id="option_anal">
<<linkreplace 'Put finger in her ass'>>
<<set _analFinger = true>>
<<video 'garage/mechanic_help5'>>
<br /><br />
You slow down as you slowly slide one finger inside her tight ass and then you continue to fuck her pussy leaving your finger inside her ass. She looks back straight at you.
<br /><br />
<<sayNpc $tmpGirl>>
<<set $tmpGirl.anal += 2>>
<<if $tmpGirl.anal > 30>>
<<set _allowAnal = true>>
Heh, I like where this is going...
<<else>>
No! I am not ready.
<</if>>
<</sayNpc>>
<br />
<<if _allowAnal>>
<div id="option_anal_fuck">
<<linkreplace 'Fuck her ass'>>
<<set _analFuck = true>>
<<set $tmpGirl.anal += 5>>
<<video 'garage/mechanic_help6'>>
<br /><br />
You press on her back bending her down as much as you can. She puts her hands on the floor the get some kind of a balance as you slowly pick up the speed.
With each thrust you go deeper and deeper into her tight asshole.
<br /><br />
<<linkreplace 'Cum in ass'>>
<<horny_reset>>
<<set $tmpGirl.horny = 0>>
<<run $('#option_cum_pussy').hide()>>
<center>
<<image 'game/misc/cum_in_ass.webp'>>
</center>
<br /><br />
You hold her down by her hips as you cum deep into her ass.
<br />
As you stood there, catching your breath, you couldn't help but gaze down at the <<=setup.displayName($tmpGirl)>>'s asshole as she was trying to push out your cum.
<br /><br />
<</linkreplace>>
<</linkreplace>>
</div>
<</if>>
<</linkreplace>>
</div>
<div id="option_cum_pussy">
<<linkreplace 'Cum in pussy'>>
<<horny_reset>>
<<set $tmpGirl.horny = 0>>
<<if !_analFinger>>
<<run $('#option_anal').hide()>>
<</if>>
<<if !_analFuck>>
<<run $('#option_anal_fuck').hide()>>
<</if>>
<center>
<<image 'game/misc/creampie_prone.webp'>>
</center>
<br /><br />
You hold her down by her hips as you cum deep into her pussy. Soon enough when your dick gets more relaxed it slips out together with some of your cum.
<br />
As you stood there, catching your breath, you couldn't help but gaze down at the <<=setup.displayName($tmpGirl)>>'s juicy, wet pussy, still throbbing with pleasure.
<br /><br />
<<if setup.pregnancyChance($tmpGirl)>>
<<set $tmpGirl.pregnancy_father = 'mc'>>
<<set $tmpGirl.pregnancy = 0>>
<</if>>
<</linkreplace>>
</div>
<</if>>
<</linkreplace>>
<div id="option_yes">
<<link 'Yes'>>
<<if typeof $guestId !== 'undefined' && $guests[$guestId]>>
<<set $guests[$guestId] = $tmpGirl>>
<</if>>
<<goto 'NPC talk'>>
<</link>>
</div>
<<link 'Leave'>>
<<if typeof $guestId !== 'undefined' && $guests[$guestId]>>
<<set $guests[$guestId] = $tmpGirl>>
<</if>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">GARAGE</h1>
<<set $player.car??={
has: true,
health: 0,
fuel: 0
}>>
<<set _randomMechanicJobs = [
'is working on your car.',
'is elbow-deep under the hood, muttering to herself.',
'is tightening something beneath the chassis.',
'is wiping down a wrench, studying a part in her other hand.',
'is checking the tire pressure, gauge in hand.',
'is draining old oil into a battered pan.',
'is squinting at the engine with a flashlight between her teeth.'
]>>
<<set _mechanicList = setup.getPersonsForLocation($guests, 'garage')>>
<<unset $tmpGirl>>
<<if _mechanicList.length && timeBetween('10:00', '18:00')>>
<<set $tmpGirl = $guests[_mechanicList[0]]>>
<<set $tmpGirl.location = 'car'>>
<</if>>
<br />
<fieldset>
<legend>
Stats
</legend>
<table>
<tr>
<td>Damaged:</td>
<td><<= 100 - $player.car.health>>%</td>
<td>
(In storage: <<=setup.cabinInventory.count('car_part')>>)
</td>
<td>
<<if setup.cabinInventory.has('car_part') && $player.car.health < 100>>
<<link 'Fix'>>
<<set $player.car.health = Math.min($player.car.health + 20, 100)>>
<<addmins 30>>
<<run setup.cabinInventory.drop('car_part', 1)>>
<<goto `passage()`>>
<</link>>
<</if>>
</td>
</tr>
<tr>
<td>Fuel:</td>
<td><<=$player.car.fuel>>%</td>
<td>
(In storage: <<=setup.cabinInventory.count('fuel')>>)
</td>
<td>
<<if setup.cabinInventory.has('fuel') && $player.car.fuel < 100>>
<<link 'Fill up'>>
<<set $player.car.fuel = Math.min($player.car.fuel + 20, 100)>>
<<addmins 5>>
<<run setup.cabinInventory.drop('fuel', 1)>>
<<goto `passage()`>>
<</link>>
<</if>>
</td>
</tr>
<tr>
<td>Headlights:</td>
<td><<if !($player.car.headlights ?? false)>>None<<elseif $player.car.headlightsBroken>>Broken<<else>>Fitted<</if>></td>
<td>
<<if !($player.car.headlights ?? false)>>
(Kit in storage: <<=setup.cabinInventory.count('headlight_kit')>>)
<<elseif $player.car.headlightsBroken>>
(Car parts: <<=setup.cabinInventory.count('car_part')>>)
<</if>>
</td>
<td>
<<set _canInstall = (_mechanicList.length && timeBetween('10:00', '18:00')) || $player.int >= 30>>
<<if !($player.car.headlights ?? false) && setup.cabinInventory.has('headlight_kit')>>
<<if _canInstall && setup.cabinInventory.has('car_part')>>
<<link 'Install'>>
<<set $player.car.headlights = true>>
<<set $player.car.headlightsBroken = false>>
<<run setup.cabinInventory.drop('headlight_kit', 1)>>
<<run setup.cabinInventory.drop('car_part', 1)>>
<<addhours 1>>
<<goto `passage()`>>
<</link>>
<<elseif !_canInstall>>
Needs a mechanic (10:00-18:00) or INT 30
<<else>>
Needs 1 car part
<</if>>
<<elseif $player.car.headlightsBroken && setup.cabinInventory.has('car_part')>>
<<link 'Repair'>>
<<set $player.car.headlightsBroken = false>>
<<run setup.cabinInventory.drop('car_part', 1)>>
<<addmins 30>>
<<goto `passage()`>>
<</link>>
<</if>>
</td>
</tr>
</table>
</fieldset>
<br />
<<if !$characters.vincent.quests.car_fixed && $player.car.fuel === 100 && $player.car.health === 100>>
<<goto 'Vincent quest - Car finished. First explore'>>
<</if>>
<div class="menu-grid">
<<set _props = {
fuel: 20,
disabled: $player.car.fuel < 20
}>>
<<if $player.car.explore>>
<<if setup.night.canStart()>>
<<set _nightHours = setup.night.CAR_HOURS>>
<<set _nightProps = {
fuel: setup.night.CAR_FUEL,
disabled: !setup.night.hasHeadlights() || $player.car.fuel < setup.night.CAR_FUEL || $player.car.health < 20
}>>
<<if !setup.night.hasHeadlights()>>
<<set _disabledDescription = ($player.car.headlightsBroken ? 'Headlights broken' : 'Needs headlights')>>
<</if>>
<<grid garage explore 'Car - Explore night' 'Explore (night)' 30 _nightHours null _nightProps>>
<<else>>
<<set _isDisabled = (!timeBetween('08:00', '20:00') || $player.car.fuel < 20 || $player.car.health < 20 ? 60 : 4)>>
<<if _isDisabled === 60>>
<<set _props.disabled = true>>
<</if>>
<<grid garage explore 'Car - Explore' Explore 30 _isDisabled null _props>>
<</if>>
<</if>>
<<if ($game.location.car_stadium ?? false)>>
<<set _isDisabled = (!timeBetween('08:00', '16:00') || $player.car.fuel < 20 || $player.car.health < 20 ? 60 : 4)>>
<<if _isDisabled === 60>>
<<set _props.disabled = true>>
<</if>>
<<grid garage race_stadium 'Car - Race stadium' 'Race stadium' 30 _isDisabled null _props>>
<</if>>
<<if $game.location.elsa>>
<<set _isDisabled = (!timeBetween('08:00', '20:00') || $player.car.fuel < 60 || $player.car.health < 20 ? 60 : 4)>>
<<if _isDisabled === 60>>
<<set _props.disabled = true>>
<</if>>
<<grid garage wood_house 'Elsa - Wood house' "Elsa's home" 30 _isDisabled null _props>>
<</if>>
<<if ($game.location.world ?? false)>>
<<grid garage world 'Garage - World' World 0 0 null {}>>
<</if>>
</div>
<br /><br />
<<if $tmpGirl>>
<center>
<<actionImage $tmpGirl 'fix'>>
</center>
<<=setup.displayName($tmpGirl)>> <<=setup.getRandomElement(_randomMechanicJobs)>>
<<if ($tmpGirl.horny ?? 0) >= 80>>
<br /><<=ucfirst(setup.pronounceWhat($tmpGirl))>> looks <span style="background-image: radial-gradient(rgba(255, 182, 193, 0.5) 10%, transparent 90%); padding: 0 4px;">distracted</span>, and could use some attention.
<</if>>
<br /><br />
<<set _linkName = 'Approach ' + $tmpGirl.name>>
<<link _linkName>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $tmpGirlBack = 'Garage'>>
<<set $tmpGirl.rape to false>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $guestId = _mechanicList[0]>>
<<unset $slaveId, $charId, $childId>>
<<if recall($suppCode) && !($locationEvents.garage ?? false) && !$tmpGirl.gender>>
<<goto 'Garage - help mechanic'>>
<<else>>
<<goto 'NPC view - guest'>>
<</if>>
<</link>>
<</if>>
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<<if !$player.quests.garage_first>>
<<set $player.quests.garage_first = true>>
<<set $locationEvents.garage = true>>
<<goto 'Car - first event'>>
<<elseif $player?.quests?.race_first && !$player?.quests?.car_modified && $tmpGirl>>
<<goto 'Car - after first race'>>
<<set $locationEvents.garage = true>>
<</if>>
<<if !($locationEvents.garage ?? false)>>
<<set _eligibleGarageGuests = setup.getAvailablePersons18yo($guests)[0]?.filter(i => !$player?.baseManagement?.noIncest || !setup.family.isBloodToMC($guests[i])) ?? []>>
<<if setup.percentageChance(5) && _eligibleGarageGuests.length>>
<<set $locationEvents.garage = true>>
<<goto 'Car - repair fuck'>>
<</if>>
<</if>><<energy -30>>
<<set _nightRoll = random(1, 100)>>
<<set _nightGo = null>>
<<set _breakdownRisk = (100 - $player.car.health) / 4>>
<<if setup.percentageChance(_breakdownRisk)>>
<<set _nightGo = 'Car breakdown event - Engine Failure'>>
<<elseif setup.night.trip()?.mode === 'light'>>
/* Headlights: you cover ground, and anyone on the road sees you coming */
<<if _nightRoll <= 30>>
<<set _nightGo = 'Car night event - roadblock'>>
<<elseif _nightRoll <= 48>>
<<set _nightGo = 'Car explore event - abandoned outpost'>>
<<elseif _nightRoll <= 62>>
<<set _nightGo = 'Car explore event - hidden cache'>>
<</if>>
<<else>>
/* Driving dark: nobody sees you, and you do not see the road either */
<<if _nightRoll <= 30>>
<<set _nightGo = 'Car night event - dark crash'>>
<<elseif _nightRoll <= 50>>
<<set _nightGo = 'Night event - sleeping camp'>>
<<elseif _nightRoll <= 62>>
<<set _nightGo = 'Car explore event - abandoned outpost'>>
<<elseif _nightRoll <= 72>>
<<set _nightGo = 'Car explore event - hidden cache'>>
<</if>>
<</if>>
<<if _nightGo>>
<<goto _nightGo>>
<<else>>
<h1 class="ptitle">NIGHT</h1>
<br /><br />
<center>
<<image 'places/explore_car/night_road_empty.jpg'>>
</center>
<br />
You drove for hours. The road was empty, the towns you passed were dark and dead, and in the end you turned round and followed your own tracks home with nothing to show for the fuel.
<br /><br />
<<link 'Back'>>
<<goto 'Garage'>>
<</link>>
<</if>><h1 class="ptitle">NIGHT</h1>
<br /><br />
<center>
<<image 'places/explore_car/night_drive.jpg'>>
</center>
<br />
You took the car out after dark. Past the edge of the settlement the road vanished into black, and the headlights were the only thing between you and whatever was out there.
<br /><br />
With the lights on you could make time and see what you were driving into. So could anyone watching the road. With them off you would be almost invisible, crawling along by moonlight, hoping nothing was lying in the road.
<br /><br />
<<link 'Drive with the headlights on'>>
<<run setup.night.startTrip('car', 'light', 'headlights')>>
<<goto 'Car - Explore night roll'>>
<</link>><<link 'Kill the lights and drive dark'>>
<<run setup.night.startTrip('car', 'dark')>>
<<goto 'Car - Explore night roll'>>
<</link>><h1 class="ptitle">NIGHT</h1>
<br /><br />
<center>
<<image 'places/explore_car/night_dark_crash.jpg'>>
</center>
<br />
<<set _dcDamage = randomInteger(10, 25)>>
<<set $player.car.health = Math.max($player.car.health - _dcDamage, 0)>>
Driving without lights, you never saw it. One moment the road was a grey ribbon under the moon, the next the car slammed into something big and dark lying across the lane. The wheel jerked out of your hands and the car shuddered to a stop against the wreck of an old truck.
<br /><br />
<strong>(Car damage -<<= _dcDamage>>%)</strong>
<<if setup.percentageChance(25)>>
<<set $player.car.headlightsBroken = true>>
<br />
When you checked the front, one of the headlights was smashed.
<br />
<strong>(Headlights broken, fix them in the garage with a car part)</strong>
<</if>>
<br /><br />
The truck you had hit had been there a long time, but nobody seemed to have stripped it.
<br /><br />
<div id="dc_search">
<<linkreplace 'Search the wreck'>>
<<run $('#dc_drive').hide()>>
<<addmins 30>>
<<set _dcFound = setup.night.loot('wreck', 2)>>
You worked through the truck by moonlight, the cab first and then the cargo bed.
<br /><br />
You salvaged <strong><<= _dcFound>></strong>.
<br /><br />
<<link 'Limp home'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="dc_drive">
<<linkreplace 'Get the car moving and go home'>>
<<run $('#dc_search').hide()>>
You backed off the wreck, checked that the engine still ran and crawled home at walking pace.
<br /><br />
<<link 'Limp home'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">NIGHT</h1>
<br /><br />
<center>
<<image 'places/explore_car/night_roadblock.jpg'>>
</center>
<br />
Your headlights picked it out a hundred metres ahead: burned-out cars dragged across the road nose to tail, and figures getting up from behind them, shielding their eyes against your lights. They had seen you coming for miles.
<br /><br />
<<say 'Raider' setup.ImagePath+'/people/anonguy.png'>>
End of the road! Engine off, hands where we can see them, and step out of the car nice and slow.
<</say>>
<br />
<div id="rb_ram">
<<linkreplace 'Floor it through the gap'>>
<<run $('#rb_fight, #rb_reverse').hide()>>
<<set _rbDamage = randomInteger(15, 30)>>
<<set $player.car.health = Math.max($player.car.health - _rbDamage, 0)>>
You dropped a gear and aimed for the narrowest gap. Metal screamed down both sides of the car and something bounced off the roof, and then you were through with them shouting behind you.
<br /><br />
<strong>(Car damage -<<= _rbDamage>>%)</strong>
<<if setup.percentageChance(40)>>
<<set $player.car.headlightsBroken = true>>
<br />
One of the headlights had not made it through. The road ahead went half dark.
<br />
<strong>(Headlights broken, fix them in the garage with a car part)</strong>
<</if>>
<br /><br />
<<link 'Drive home'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="rb_fight">
<<linkreplace 'Get out and fight'>>
<<run $('#rb_ram, #rb_reverse').hide()>>
You left the headlights blazing in their eyes and came out of the car ready.
<br /><br />
<<link 'Fight'>>
<<generateEnemies 2 1 1>>
<<fight $enemies 'Garage' 'Garage'>>
<</link>>
<</linkreplace>>
</div>
<div id="rb_reverse">
<<linkreplace 'Reverse and take the long way round'>>
<<run $('#rb_ram, #rb_fight').hide()>>
<<set $player.car.fuel = Math.max($player.car.fuel - 10, 0)>>
You threw it into reverse before they could close the distance and swung onto a side road. The detour took an hour and a lot of fuel, but nobody followed.
<br /><br />
<strong>(Fuel -10%)</strong>
<br /><br />
<<link 'Drive home'>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">RACE STADIUM</h1>
<br />
As you walk in, boots crunching on broken glass, a group of men approaches you. Greasy, scarred, and grinning like scavengers, they look you over before one speaks.
<br /><br />
<center>
<<image 'places/race_stadium/first_race1.jpg' sfw>>
</center>
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
Got an open spot in the race.
<</sayNpc>>
<br />
He's tapping a wrench against his palm.
<br /><br />
<<sayNpc $tmpGuy>>
Winner takes a car. You in?
<</sayNpc>>
<br />
You glance at the track—a cracked, uneven loop surrounded by barbed wire and rusted wrecks.
Their vehicles are monstrous, welded steel plating, spiked wheels, nitrous tanks.
<br /><br />
<center>
<<image 'places/race_stadium/first_race2.jpg' sfw>>
</center>
<br /><br />
Yours? A barely-modified sedan from a lost era, patched together with salvaged parts and hope.
<br /><br />
<<linkreplace 'Sure'>>
<<run $('#option_no').hide()>>
<<set $player.quests.race_first = true>>
<<you>>
Sure
<</you>>
<br />
Because in this world, you don’t say no unless you want trouble.
<br /><br />
The race starts with an ear-shattering blast of a sawed-off shotgun.
Your car is no match. The others take off like hellhounds unleashed, tearing through the course with reckless abandon.
You are already falling behind when the first hit comes—one of the racers, a hulking truck with metal tusks, clips your back bumper, sending you skidding into a pile of rubble.
Your engine groans as you force the car back onto the track.
<br /><br />
<center>
<<image 'places/race_stadium/first_race3.jpg' sfw>>
</center>
<br /><br />
Then come the spikes. A hidden strip of metal teeth, likely placed by the organizers for extra entertainment, tears into your tires.
Your front left blows out instantly, forcing you to swerve wildly, barely avoiding a wrecked bus. The crowd howls in approval.
<br /><br />
Smoke billows from your hood as you push the car forward, metal grinding against metal.
Another racer, a dune buggy rigged with flamethrowers, torches the air near you. You swerve too hard,
sending your car into a half-spin before slamming into a rusted barricade. The windshield cracks, your steering barely responding.
<br /><br />
<center>
<<image 'places/race_stadium/first_race4.jpg' sfw>>
</center>
<br /><br />
By the final stretch, your car is nothing but a coughing, limping wreck, dragging itself forward as the others cross the finish line far ahead. You are dead last.
<br /><br />
You sit there, gripping the wheel, waiting for them to strip your car for parts. Instead, the same man from before leans against your window and smirks.
<br /><br />
<<image 'places/race_stadium/first_race5.jpg' sfw>>
<br /><br />
<<sayNpc $tmpGuy>>
Damn. We don't need your junk. Keep it.
<</sayNpc>>
<br />
They walk off laughing, leaving you in your half-dead vehicle, staring at the track ahead.
You might have lost today, but you are still breathing, and in this world, that counts for something.
<br /><br />
With car barely moving you somehow manage to get back to your camp.
<br /><br />
<<link 'Leave'>>
<<addhours 6>>
<<set $player.car.health = 0>>
<<set $player.car.fuel = 0>>
<<goto 'Garage'>>
<</link>>
<</linkreplace>>
<div id="option_no">
<<link 'No'>>
<<goto 'Car - Race stadium'>>
<</link>>
</div><br />
Just that dead, heavy silence when the crowd stops caring, because the winner’s already crossed and you’re just another smudge on the track.
<br /><br />
A few stragglers clap out of pity. One guy boos. You kill the engine and sit there a moment, the taste of burnt oil in your throat and your jaw clenched so hard it might crack.
<br /><br />
<center>
<<image 'places/race_stadium/first_race4.jpg'>>
</center>
<br /><br />
<<set $player.car.health = Math.max(0, $player.car.health - randomInteger(20, 40))>>
<<set $player.car.fuel -= 10>>
<<link 'Leave'>>
<<addmins 10>>
<<goto 'Car - Race stadium'>>
<</link>><br />
<h1 class="ptitle">RACE STADIUM</h1>
<br />
The last turn was hell.
<br /><br />
You came into it hot, buggy rattling like it was about to fall apart, flames licking from the hood.
The yellow-striped bastard tried to cut you off again—same as lap one—but this time, you let the rear tires slide just enough.
You clipped his flank, spun him straight into the wall. Metal screamed. The crowd roared.
<br /><br />
<center>
<<image 'places/race_stadium/first_race1.jpg'>>
</center>
<br /><br />
You won.
<br /><br />
The car stutters to a halt half a klick past the line. You rip the door open and stumble out, armor scorched, visor cracked, lungs full of smoke and adrenaline.
<br /><br />
<<if setup.percentageChance(20)>>
One of the competitors didn't had enough caps so instead he gave you <strong class="iitem">one car battery</strong>.
<<pickup $backpack 'car_battery' 1>>
<<else>>
<<set $player.money += 60>>
<strong>You won 60 caps!</strong>
<</if>>
<br /><br />
<<link 'Leave'>>
<<addmins 10>>
<<goto 'Car - Race stadium'>>
<</link>><h1 class="ptitle">RACE STADIUM</h1>
<br />
The race line is set. Four machines stand ready, each one more monstrous than the last, engines grumbling in anticipation, smoke curling up from cracked exhaust pipes.
The scene is like something out of a nightmare—or a dream, depending on how you look at it.
<br /><br />
<center>
<<image 'places/race_stadium/first_race2.jpg'>>
</center>
<br /><br />
The race is a death trap wrapped in glory.
You’ve heard the stories: engines overheating mid-drift, spike traps in turn three, racers disappearing in the tunnels under lap two.
Hell, some say the Syndicate rigs the whole thing just to see who’s desperate enough to survive it.
<br /><br />
<<if $player.money >= 30>>
<<link '🏁 Start race'>>
<<set $player.money -= 30>>
<<addmins 30>>
<<carRace 'RACE STADIUM' `{won: 'Race stadium - race won', lost: 'Race stadium - race lost'}`>>
<</link>>
<<linkdesc>>
-30 caps
<</linkdesc>>
<<else>>
<strong>Not enough caps (30)</strong>
<br /><br />
<</if>>
<<link 'Leave'>>
<<addmins 5>>
<<goto 'Car - Race stadium'>>
<</link>><h1 class="ptitle">SHOP</h1>
<br /><br />
<<set _shopItems = clone(setup.items.shop.race_stadium)>>
<<if ($player.car?.headlights ?? false) || setup.cabinInventory.has('headlight_kit')>>
<<set _shopItems = _shopItems.filter(shopItem => shopItem.name !== 'headlight_kit')>>
<</if>>
<<shop 'race_stadium' _shopItems 'Race stadium shop'>>
<<link 'Leave'>>
<<goto 'Car - Race stadium'>>
<</link>><h1 class="ptitle">RACE STADIUM</h1>
<div class="menu-grid">
<<set _isDisabled = (!timeBetween('08:00', '20:00') ? 30 : 1)>>
<<grid race_stadium shop 'Race stadium shop' 'Shop' 0 _isDisabled>>
<<if $player?.quests?.race_first>>
<<set _isDisabled = (!timeBetween('12:00', '18:00') ? 30 : 1)>>
<<grid race_stadium race 'Race stadium - race' 'Race' 0 _isDisabled>>
<</if>>
</div>
<br /><br />
<<if !$player?.quests?.race_first && $game.day > 160 && setup.percentageChance(40)>>
<<goto 'Race stadium - first race'>>
<</if>>
<<link 'Leave'>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
The engine hums. Neither of you says anything for a while. She pulls her jacket straight and watches the road with the focus of someone who's decided what version of this they want to remember.
<br /><br />
<center>
<<image 'places/explore_car/stranded_aftersex.jpg' sfw>>
</center>
<br />
<<sayNpc $tmpGirl>>
Not what I expected when I saw the car.
<</sayNpc>>
<br />
You're not sure if that's a compliment.
<br /><br />
<<set _canCapture = $player.energy >= 30 && $slaves.length < $basementLimit>>
<<set _canInvite = ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<div id="sd_capture">
<<if _canCapture>>
<<linkreplace 'Bring her back with you'>>
<<run $('#sd_invite').hide()>>
<<run $('#sd_leave').hide()>>
<<if $player.strength >= $tmpGirl.strength>>
She doesn't get much say in it. You take a different route and she understands what's happening before you need to explain. By then the car's already moving and she's not stronger than you.
<br /><br />
<<set $tmpGirl.capture = false>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<run $slaves.push($tmpGirl)>>
<<addhours 2>>
<<energy -30>>
<<statsAdd 'people_captured'>>
<br /><br />
<<link 'Continue'>>
<<goto 'Basement'>>
<</link>>
<<else>>
When you try it, she moves faster than expected. Gets the door open at a slow bend and hits the ground running. You could follow on foot but the car makes that impossible — too visible, too slow to turn around in the brush. By the time you're back on the road she's already gone.
<br /><br />
<<link 'Drive away'>>
<<goto 'Garage'>>
<</link>>
<</if>>
<</linkreplace>>
<</if>>
</div>
<div id="sd_invite">
<<if _canInvite>>
<<linkreplace 'Ask her to come stay with you'>>
<<run $('#sd_capture').hide()>>
<<run $('#sd_leave').hide()>>
She's quiet for a moment. Then she nods once — the same way she agreed to the ride. Like she's already run the numbers.
<br /><br />
<<sayNpc $tmpGirl>>
You've got the car. I know engines. That's a fair trade.
<</sayNpc>>
<br />
<<set $tmpGirl.capture = false>>
<<set $tmpGirl.relationship = Math.min(($tmpGirl.relationship ?? 0) + 40, 100)>>
<<set $tmpGirl.happy = Math.min(($tmpGirl.happy ?? 0) + 50, 100)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<run $guests.push($tmpGirl)>>
<br /><br />
<<link 'Continue'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<</if>>
</div>
<div id="sd_leave">
<<link 'Drop her off at the next crossroads'>>
<<goto 'Garage'>>
<</link>>
</div><h1 class="ptitle"><<=$carRace.title>></h1>
<br />
<<set _choices = 6>>
<<set $carRace.correctChoice = randomInteger(0, (_choices - 1))>>
<div id="time-bar-container" style="width: 100%; height: 25px; background: #ddd; border-radius: 10px; margin: 10px auto; max-width: 400px;">
<div id="time-bar" style="width: 100%; height: 100%; border-radius: 10px;"></div>
</div>
<div class="cars">
<<for _i to 0; _i < _choices; _i++>>
<<if _i === $carRace.correctChoice>>
<<set _url = "images/places/race_stadium/race_choice_correct.jpg">>
<<else>>
<<set _url = "images/places/race_stadium/race_choice" + (_i + 1) + ".jpg">>
<</if>>
<img @src="_url"
style="width: 200px; height: 120px; margin: 10px; border-radius: 8px; cursor: pointer;"
@data-index="_i"
class="race-choice">
<</for>>
</div>
<script>
function raceGame() {
const maxTime = SugarCube.State.variables.carRace.timer;
let timeLeft = maxTime;
let blinking = false;
const correctIndex = SugarCube.State.variables.carRace.correctChoice;
const timeBar = document.getElementById("time-bar");
const timer = setInterval(() => {
timeLeft -= 0.05;
const percent = Math.max((timeLeft / maxTime) * 100, 0);
timeBar.style.width = percent + "%";
const red = Math.min(255, Math.round((1 - timeLeft / maxTime) * 255));
const green = Math.min(255, Math.round((timeLeft / maxTime) * 200));
timeBar.style.backgroundColor = `rgb(${red}, ${green}, 50)`;
if (percent <= 20 && !blinking) {
blinking = true;
timeBar.classList.add("blinking");
}
if (timeLeft <= 0) {
clearInterval(timer);
SugarCube.Engine.play(SugarCube.State.variables.carRace.passageLost);
}
}, 50);
const images = document.querySelectorAll(".race-choice");
images.forEach(img => {
img.addEventListener("click", () => {
clearInterval(timer);
const index = parseInt(img.dataset.index);
if (index === correctIndex) {
SugarCube.State.variables.carRace.round++;
if (SugarCube.State.variables.carRace.round > SugarCube.State.variables.carRace.totalRounds) {
SugarCube.Engine.play(SugarCube.State.variables.carRace.passageWon);
} else {
SugarCube.State.variables.carRace.correctIndex = Math.floor(Math.random() * 4);
SugarCube.Engine.play('Car mini game - race');
}
} else {
SugarCube.Engine.play(SugarCube.State.variables.carRace.passageLost);
}
});
});
};
raceGame();
</script>
<style>
.cars {
display: flex;
justify-content: center;
flex-wrap: wrap;
}
#time-bar {
transition: width 0.05s linear;
}
#time-bar {
transition: width 0.05s linear, background-color 0.1s linear;
}
.blinking {
animation: blink 0.5s infinite alternate;
}
@keyframes blink {
from { opacity: 1; }
to { opacity: 0.4; }
}
</style><h1 class="ptitle">CAMP</h1>
<br />
<<set _cNpc = setup.companionGet($companionEvent.npcKey)>>
<<set _cName = setup.displayName(_cNpc)>>
<<set _cMem = setup.companionEvents.memoryFor($companionEvent.npcId)>>
<<addhours 1>>
<center>
<<image 'places/explore/companion_ration.jpg' sfw>>
</center>
<br /><br />
You went through the pack twice before accepting what was in it. One tin. Whatever you had counted on finding out here, you hadn't found it, and the walk home was longer than what was left in either of you.
<br /><br />
<<=_cName>> watched you work it out and didn't say anything until you looked up.
<br /><br />
<<sayNpc _cNpc>>
One? That's what's left?
<</sayNpc>>
<br />
<<if _cMem.rationChoice === 'self'>>
<<=setup.pronounceWhat(_cNpc, true)>> already had that look. Last time there had been one tin, and you had eaten it.
<br /><br />
<<elseif _cMem.rationChoice === 'her'>>
<<=setup.pronounceWhat(_cNpc, true)>> reached for the pack and then stopped, remembering that last time you had handed the tin straight over without being asked.
<br /><br />
<</if>>
<center>
<<image 'places/explore/companion_ration_eat.jpg' sfw>>
</center>
<br /><br />
<div id="cr_her">
<<linkreplace 'Give it to her'>>
<<run $('#cr_split, #cr_self').hide()>>
<<drop $backpack 'food' 1>>
<<set _cNpc.food = 100>>
<<set _cNpc.happy = Math.min((_cNpc.happy ?? 0) + 10, 100)>>
<<set _cNpc.relationship = Math.min((_cNpc.relationship ?? 0) + 5, 100)>>
<<if (_cNpc.relationship ?? 0) >= 50>>
<<set _cNpc.loyal = true>>
<</if>>
<<run setup.companionEvents.record($companionEvent.npcId, 'ration', { rationChoice: 'her' })>>
You put the tin in <<=setup.pronounceWhos(_cNpc)>> hands and told <<=setup.pronounceWho(_cNpc)>> you'd eaten at the cabin. It wasn't true and <<=setup.pronounceWhat(_cNpc)>> knew it wasn't, but <<=setup.pronounceWhat(_cNpc)>> ate anyway, and quickly, before you could change your mind.
<br /><br />
<<sayNpc _cNpc>>
I'll remember this. People don't do this out here.
<</sayNpc>>
<br />
<strong>(<<=_cName>>: Fed, Relationship +5, Happy +10. You went without.)</strong>
<br /><br />
<<link 'Head back'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div>
<div id="cr_split">
<<linkreplace 'Split it between you'>>
<<run $('#cr_her, #cr_self').hide()>>
<<drop $backpack 'food' 1>>
<<set $player.hunger = Math.min(($player.hunger ?? 0) + 40, 100)>>
<<set _cNpc.food = Math.min((_cNpc.food ?? 0) + 40, 100)>>
<<set _cNpc.happy = Math.min((_cNpc.happy ?? 0) + 3, 100)>>
<<set _cNpc.relationship = Math.min((_cNpc.relationship ?? 0) + 2, 100)>>
<<run setup.companionEvents.record($companionEvent.npcId, 'ration', { rationChoice: 'split' })>>
You halved it as carefully as you could and handed over the bigger share anyway. Neither of you was full afterwards, but neither of you was the one who went without.
<br /><br />
<<sayNpc _cNpc>>
Fair's fair. Let's get moving before I start thinking about it.
<</sayNpc>>
<br />
<strong>(You and <<=_cName>>: half fed each. Relationship +2, Happy +3)</strong>
<br /><br />
<<link 'Head back'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div>
<div id="cr_self">
<<linkreplace 'Eat it yourself'>>
<<run $('#cr_her, #cr_split').hide()>>
<<drop $backpack 'food' 1>>
<<set $player.hunger = 100>>
<<set _cNpc.happy = Math.max((_cNpc.happy ?? 0) - 15, -100)>>
<<set _cNpc.relationship = Math.max((_cNpc.relationship ?? 0) - 5, -100)>>
<<set _cNpc.sub = Math.min((_cNpc.sub ?? 0) + 2, 100)>>
<<run setup.companionEvents.record($companionEvent.npcId, 'ration', { rationChoice: 'self' })>>
You ate it. <<=_cName>> watched the whole thing without a word, and you told <<=setup.pronounceWho(_cNpc)>> that you were the one carrying the pack and doing the killing, which was true, and which didn't help.
<br /><br />
<<=setup.pronounceWhat(_cNpc, true)>> walked half a step behind you the rest of the way home.
<br /><br />
<strong>(You ate. <<=_cName>>: Relationship -5, Happy -15, Submission +2)</strong>
<br /><br />
<<link 'Head back'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">CAMP</h1>
<br />
<<set _cNpc = setup.companionGet($companionEvent.npcKey)>>
<<set _cName = setup.displayName(_cNpc)>>
<<set _cMem = setup.companionEvents.memoryFor($companionEvent.npcId)>>
<<addhours 4>>
<center>
<<image 'places/explore/companion_camp_night.jpg' sfw>>
</center>
<br /><br />
You'd both been walking since morning and it was starting to show. <<=_cName>> called the halt before you did — a fire small enough to miss from the road, built in the lee of a fallen trunk, and a few hours off your feet before pushing on.
<br /><br />
<<sayNpc _cNpc>>
One of us should stay up. I'm not dozing off out here with the trees that close.
<</sayNpc>>
<br />
<<if _cMem.watchChoice === 'her'>>
<<=_cName>> said it flatly, the way someone does when they already expect the answer. Last time you had left the watching to <<=setup.pronounceWho(_cNpc)>> and taken the rest for yourself.
<br /><br />
<<elseif _cMem.watchChoice === 'alone'>>
<<=_cName>> was already unlacing <<=setup.pronounceWhos(_cNpc)>> boots, expecting the same answer as last time — when you had sat the whole halt yourself and let <<=setup.pronounceWho(_cNpc)>> sleep.
<br /><br />
<</if>>
<center>
<<image 'places/explore/companion_watch.jpg' sfw>>
</center>
<br /><br />
<div id="cw_alone">
<<linkreplace 'Keep watch and let her rest'>>
<<run $('#cw_split, #cw_her').hide()>>
<<energy -10>>
<<set _cNpc.happy = Math.min((_cNpc.happy ?? 0) + 5, 100)>>
<<set _cNpc.relationship = Math.min((_cNpc.relationship ?? 0) + 3, 100)>>
<<run setup.companionEvents.record($companionEvent.npcId, 'watch', { watchChoice: 'alone' })>>
You told <<=_cName>> to put <<=setup.pronounceWhos(_cNpc)>> head down and meant it. <<=setup.pronounceWhat(_cNpc, true)>> argued for about a minute, then gave up and was out inside of five.
<br /><br />
You sat with your back to the trunk and watched the gaps between the trees until the fire burned down. Nothing came out of them. When you shook <<=setup.pronounceWho(_cNpc)>> awake <<=setup.pronounceWhat(_cNpc)>> looked better for it, and noticed that you didn't.
<br /><br />
<<sayNpc _cNpc>>
You should have swapped with me. Next time you swap with me.
<</sayNpc>>
<br />
<strong>(<<=_cName>>: Relationship +3, Happy +5. You got no rest.)</strong>
<br /><br />
<<link 'Move on'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div>
<div id="cw_split">
<<linkreplace 'Split the halt between you'>>
<<run $('#cw_alone, #cw_her').hide()>>
<<set _cNpc.relationship = Math.min((_cNpc.relationship ?? 0) + 1, 100)>>
<<run setup.companionEvents.record($companionEvent.npcId, 'watch', { watchChoice: 'split' })>>
You took the first stretch and woke <<=setup.pronounceWho(_cNpc)>> when the fire burned down to coals. <<=setup.pronounceWhat(_cNpc, true)>> took the second without complaint, and you got a couple of hours flat on your back, which was more than nothing.
<br /><br />
Neither of you saw anything. That was the point.
<br /><br />
<strong>(<<=_cName>>: Relationship +1)</strong>
<br /><br />
<<link 'Move on'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div>
<div id="cw_her">
<<linkreplace 'Tell her to watch while you rest'>>
<<run $('#cw_alone, #cw_split').hide()>>
<<energy 15>>
<<set _cNpc.happy = Math.max((_cNpc.happy ?? 0) - 10, -100)>>
<<set _cNpc.relationship = Math.max((_cNpc.relationship ?? 0) - 3, -100)>>
<<set _cNpc.sub = Math.min((_cNpc.sub ?? 0) + 3, 100)>>
<<run setup.companionEvents.record($companionEvent.npcId, 'watch', { watchChoice: 'her' })>>
You told <<=setup.pronounceWho(_cNpc)>> to wake you if anything moved, put your pack under your head, and left <<=setup.pronounceWho(_cNpc)>> to it.
<br /><br />
You woke sharper than you'd felt all day. <<=_cName>> was sitting exactly where you'd left <<=setup.pronounceWho(_cNpc)>>, eyes red, jaw set, and didn't say a word about it — which was somehow worse than if <<=setup.pronounceWhat(_cNpc)>> had.
<br /><br />
<strong>(<<=_cName>>: Relationship -3, Happy -10, Submission +3. You're rested.)</strong>
<br /><br />
<<link 'Move on'>>
<<goto $companionEventBack>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">FOREST</h1>
<br />
The day is overcast, the sky painted in muted greys that match the barren, desolate landscape.
You’ve been wandering the outskirts of your usual scouting range, your feet crunching over gravel and dried weeds as you explore new territory.
You crest a small hill, and a vast open expanse comes into view—a quarry.
<br /><br />
<center>
<<image 'places/explore/quarry.jpg'>>
</center>
<br /><br />
The pit is massive, its walls steep and lined with jagged layers of stone.
Rusted machinery lies scattered across the area: old conveyors and abandoned trucks. The air is still, thick with the faint tang of minerals and the hint of coal dust.
A few mine shafts are visible along the walls of the quarry, their dark entrances beckoning with the promise of resources—and danger.
<br /><br />
Inside the quarry, you find large chunks of limestone and ores, ideal for construction.
Near the edge of a rusted conveyor belt, you uncover a small pile of unrefined coal—evidence that this place was once an active mining operation.
<br /><br />
<center>
<<image 'places/explore/quarry2.jpg'>>
</center>
<br /><br />
You find veins of coal embedded in the walls, ready to be extracted. There’s also evidence of iron ore—though deeper extraction may require more equipment.
<br /><br />
<<link 'Leave'>>
<<set $game.location.quarry = true>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br />
Breathing hard, you glanced at the woman, still on the ground, eyes wide with shock. You extended a hand to her.
<br /><br />
<<newgirl>>
<center>
<<image 'places/explore/neck_bite_won.jpg'>>
</center>
<br />
<<you>>
Are you alright?
<</you>>
<br />
She nodded, hugging herself as if trying to hold together the pieces of her composure.
<br /><br />
<<sayNpc $tmpGirl>>
I don’t know what to say... I didn’t think anyone would come.
<</sayNpc>>
<br />
<<if (($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit)>>
<div id="option_invite">
<<linkreplace 'Offer your place to live in'>>
<<set _invited = true>>
<<if setup.percentageChance(50)>>
<<run $('#option_slave').hide()>>
You're a life savior. I recently started to look for a new place<br /> I'll go live with you!
<br /><br />
<strong><<=$tmpGirl.name>> moved in as guest</strong>
<<run $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<else>>
Sorry but no. You look like a nice guy but I've got my family and I won't leave them.
<</if>>
<br /><br />
<</linkreplace>>
</div>
<</if>>
<div id="option_slave">
<<if (($game.location.basement ?? false) && $slaves.length < $basementLimit)>>
<<set _pronounceWho = setup.pronounceWho($tmpGirl)>>
<<set _pronounceWhat = setup.pronounceWhat($tmpGirl)>>
<<set _captureLink = 'Capture ' + _pronounceWho>>
<<linkreplace _captureLink>>
<<set _captured = true>>
<<if !_invited>>
<<run $('#option_invite').hide()>>
<</if>>
You grab <<=setup.displayName($tmpGirl)>> from the back. <<=setup.pronounceWhat($tmpGirl, true)>> tries to resist but she's very weak.
<br /><br />
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<</linkreplace>>
<</if>>
</div>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br />
Then, faint at first, you heard voices—an argument.
Instinctively, you crouched low, creeping toward the sound.
The voices grew clearer, one harsh and angry, the other pleading, desperate.
You pushed aside the foliage to peer through the trees and saw them: a man and a woman.
Her hands were bound, tied tightly behind her back.
The man had a knife, glinting in the dim light as he waved it at her, barking words you couldn’t make out.
She struggled to keep pace, her face streaked with dirt and fear.
<br /><br />
<center>
<<image 'places/explore/neck_bite1.webp'>>
</center>
<br />
Suddenly, the man shoved her to the ground, her cry piercing the stillness of the forest. He stood over her, his expression twisted with cruel intent.
They argued again, her voice shaking, his growing more violent until, with an ugly sneer, he dropped to his knees, yanking her toward him as he prepared to take what he wanted by force.
<br /><br />
<div id="option_watching">
<<linkreplace 'Keep watching'>>
<<run $('#option_help').hide()>>
<<set $player.goodwill -= 5>>
<<horny 10>>
He pulled her pants down, revealing her pussy. In the same moment he pulled down his pants just enough that his dick gets out and without any warning thrusted it deep into her.
<br /><br >
<<image 'places/explore/pussy_close.webp'>>
<br />
He was so fucused that he stabs the knife into the ground as he tries to take off her dress fully.
<br /><br />
<<image 'places/explore/neck_bite2.webp'>>
<br />
Seconds later woman has already his knife in her hand and without hesitation she stab him in the neck. You can see horror in his eyes as only thing he can do is bleed out with his dick still inside her.
<br /><br />
<<image 'places/explore/neck_bite3.webp'>>
<br /><br />
She lay there for a moment, breathless and trembling beneath his limp body, blood seeping into the ground around them.
Then, with a fierce shove, she pushed him off, his body slumping lifeless beside her.
Her breathing was ragged, eyes wild, but there was no hesitation as she scrambled to her feet.
<br /><br />
Without a glance back, she bolted into the forest, disappearing into the trees as quickly as the brutal act had unfolded, leaving only the dead man and the silence behind.
You stood there, watching her vanish into the wild, unsure whether to follow or let her go.
<br /><br />
<</linkreplace>>
</div>
<div id="option_help">
<<linkreplace 'Help her'>>
<<set $player.goodwill++>>
<<run $('#option_watching').hide()>>
Without thinking, you stepped out from the cover of the trees, your hand reaching for your weapon. The sound of your movement snapped the man’s attention to you.
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
Get lost! Or you will be next!
<</sayNpc>>
<br />
<<link 'Fight him'>>
<<set $tmpGuy.inventory = {
knife: 1
}>>
<<set $enemies = [$tmpGuy]>>
<<fight $enemies 'Explore event: Bite in neck won' 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<<set _randomCompanion = setup.getRandomElement(Object.keys($player.companions))>>
<<set _npc = setup.companionGet(_randomCompanion)>>
<br />
You and your companions tread carefully through the dense, overgrown forest.
The air is thick with the scent of damp earth and the sounds of distant, unseen creatures.
Sunlight filters through the canopy, casting dappled shadows on the forest floor.
Your group moves cautiously, every step measured to avoid making too much noise.
<br /><br />
Suddenly, the ground beneath <<=setup.displayName(_npc)>> gives way with a sickening crunch.
<<=setup.pronounceWhat(_npc, true)>> cries out in surprise as <<=setup.pronounceWhat(_npc)>> disappears into the earth.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/snake_pit_' + (_npc.gender === 1 ? 'male' : 'female') +'.jpg']]
</center>
<br />
You rush forward, heart pounding, and peer over the edge of a freshly dug pit.
It's deep enough that the fall alone must have hurt, but worse still, the pit is filled with snakes, their scales glinting ominously in the half-light.
<br /><br />
<strong>Snakes look poisonous</strong>
<br /><br />
<<set _linkHelp = 'Help ' + setup.pronounceWho(_npc)>>
<<set _linkLeave = 'Leave ' + setup.pronounceWho(_npc)>>
<div id="option_help">
<<linkreplace _linkHelp>>
<<run $('#option_leave, #option_help_desc').hide();>>
You decide to help your companion, knowing the risks but unwilling to leave <<=setup.pronounceWho(_npc)>>.
Quickly, you grab a sturdy branch from the forest floor and lower it into the pit, instructing your companion to hold on tight.
<br /><br />
<<if setup.percentageChance(50)>>
<<perkAdd 'bleeding'>>
<<perkAdd 'temp_impotence'>>
<strong>
As you lean over the edge, focusing on your companion’s grip, you feel a sharp pain in your arm. One of the snakes has bitten you, its fangs sinking deep into your flesh.
You grit your teeth, fighting through the pain, and concentrate on pulling your companion out of the pit
</strong>
<br /><br />
<</if>>
In the end you manage to pull your companion out and you decide to go back to your camp.
<<set _npc.sick = {
days: 10,
desc: 'Snake bite',
id: 'snake_bite'
}>>
<<companionRemoveItem _randomCompanion>>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<<linkdesc 'option_help_desc'>>
Chance to get bitten and get infection
<</linkdesc>>
<div id="option_leave">
<<linkreplace _linkLeave>>
<<run $('#option_help, #option_help_desc').hide()>>
You stand at the edge of the pit, watching your companion struggle amidst the writhing snakes. The desperation in his eyes tugs at your heart, but the cold logic of survival prevails.
The wasteland is harsh and unforgiving, and you cannot risk your own life and the lives of your remaining companions for a single person, no matter how much it pains you.
<br /><br />
As you leave, the sound of your fallen comrade’s cries fades into the distance.
<br /><br />
<<set _companionType = _randomCompanion.split(':')>>
<<if _companionType[0] === 'slave'>>
<<slaveRemove _companionType[1]>>
<<else>>
<<guestRemove _companionType[1]>>
<</if>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">FOREST</h1>
<br />
<<set _companionsWithoutMaskKeys = []>>
<<set _companionsWithoutMaskNames = []>>
As you venture deeper into the forest, the ancient trees loom overhead, their gnarled branches reaching for the sky.
The air is thick with the scent of moss and earth.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_toxic_cave.jpg']]
</center>
<br />
Suddenly, you spot a cave entrance partially obscured by a strange mist that billows out, its ethereal tendrils dancing in the air.
Curiosity piqued, you approach cautiously. The mist seems to beckon, promising secrets and untold mysteries.
<br /><br />
<<linkreplace 'Go in'>>
With a deep breath, you decide to step inside.
<br />
The cave is dark and damp, its walls glistening with moisture. The air is cooler here, sending shivers down your spine. The mist swirls around your feet, its touch both chilling and invigorating.
<br /><br />
<<if Object.keys($player.companions ?? {}).length>>
<<set _hadCompanions = true>>
Your companions... They follow hesitantly, their apprehension palpable. As they step into the cave, the mist takes on an eerie luminescence, casting strange shadows on the rocky walls.
<br /><br />
<<for _companionKey, _companion range $player.companions>>
<<set _npc = setup.companionGet(_companionKey)>>
<<if !setup.npcInventoryHas(_npc, 'gas_mask')>>
<<run _companionsWithoutMaskKeys.push(_companionKey)>>
<<run _companionsWithoutMaskNames.push(setup.displayName(_npc))>>
<</if>>
<</for>>
<<if _companionsWithoutMaskNames.length>>
Suddenly <<=_companionsWithoutMaskNames.join(', ')>> begin to gasp and choke, their faces contorted in agony. They collapse to the ground, unable to withstand the strange effects of the mist. Panic surges through you as you watch helplessly.
<br /><br />
<</if>>
<</if>>
<<if $backpack.has('gas_mask')>>
<<set _randomUniqueItem = either('gas_mask', 'car_part')>>
The cave's interior is illuminated by the soft glow of luminescent moss, revealing a path that winds deeper into the heart of the earth.
The air feels damp, but your mask ensures each breath is clear and crisp.
<br /><br />
Deeper still, you discover a chamber that seems untouched by time. Crates and barrels lay scattered about, covered in layers of dust and cobwebs. Among the relics of a forgotten era, you find some stuff.
<br /><br />
<<if setup.percentageChance(50)>>
<<for _caveItemI, _caveItem range ['rope', 'glass','plastic']>>
<<set _randomItemCount = randomInteger(1, 10)>>
<strong>You picked up <strong class="iitem"><<=_randomItemCount>> <<=Item.get(_caveItem).name>></strong></strong>
<<pickup $backpack _caveItem _randomItemCount>>
<br />
<</for>>
<br />
<</if>>
Then, in the corner, you spot it...
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_toxic_cave_' + _randomUniqueItem + '.jpg']]
</center>
<br />
<<pickup $backpack _randomUniqueItem 1>>
<strong>You picked up <strong class="iitem"><<=Item.get(_randomUniqueItem).name>></strong></strong>
<br /><br />
<<else>>
<center>
[img[setup.ImagePath+'places/explore/event_toxic_cave_collapse.jpg']]
</center>
<br />
<<if (_companionsWithoutMaskNames ?? []).length>>
You also collapse on the ground and start to choke.
<<else>>
Suddenly you collapse on the ground and start to choke.
<</if>>
<br />
<br />
<<perkAdd 'beaten'>>
Summoning all your strength, you turn and sprint back towards the entrance.
<br />
The mist seems to thicken, pressing in on you from all sides. Your breath comes in ragged gasps, your heart pounding in your chest.
It feels like an eternity, but finally, you burst out into the open air.
<br /><br />
<<if _hadCompanions && !Object.keys($player.companions).length>>
<strong>
None of companions who entered with you comes out. They are all dead...
</strong>
<br /><br />
<<elseif _hadCompanions>>
<strong><<=_companionsWithoutMaskNames.join(', ')>> didn't came out...</strong>
<br /><br />
<</if>>
<<if _companionsWithoutMaskKeys.length>>
<<run _companionsWithoutMaskKeys.sort().reverse()>>
<<for _companionRemoveKey range _companionsWithoutMaskKeys>>
<<companionRemove _companionRemoveKey>>
<</for>>
<</if>>
<</if>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br /><br />
The skirmish was brief but intense. You relied on your training, dodging and countering their attacks, making every movement count.
The forest bore witness to your struggle, leaves dancing in the shadows.
<br /><br />
In the aftermath, you surveyed the fallen rivals in a chance of finding medallions Octavia showed you.
<br />
You checked their pockets, hands steady despite the adrenaline coursing through your veins.
<br /><br />
<<if setup.percentageChance(50)>>
<strong>You picked up <strong class="iitem">1 medallion</strong></strong>
<<pickup $backpack 'tribe_medallion' 1>>
<<else>>
You found nothing else on them...
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br /><br />
Beneath the rustling canopy of leaves, you froze, ears attuned to the faintest of sounds. There it was again, distant voices, foreign and indistinct.
Crouching low, you blended seamlessly with the underbrush, your heart pounding a rhythm of caution.
<br /><br />
Peering through the foliage, you spotted them - members of a rival tribe, unmistakable by their worn emblems and rugged attire.
They moved with a fluidity that spoke of practiced coordination, their eyes scanning the forest like seasoned hunters.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/tribe.jpg']]
</center>
<br />
You held your breath, assessing the situation.
<br />
You needed to observe, to understand their intent. The forest was your sanctuary, every rustling leaf and hidden trail your allies.
<br /><br />
<<link 'Fight them'>>
<<set _inventoryKnife = {
'knife': 1
}>>
<<set $enemies = []>>
<<newgirl>>
<<set $tmpGirl.inventory = _inventoryKnife>>
<<run $enemies.push($tmpGirl)>>
<<newguy>>
<<set $tmpGuy.inventory = _inventoryKnife>>
<<run $enemies.push($tmpGuy)>>
<<newguy>>
<<set $tmpGuy.inventory = _inventoryKnife>>
<<run $enemies.push($tmpGuy)>>
<<fight $enemies 'Explore event: Tribe won' 'Outside'>>
<</link>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br /><br />
As you navigate through the post-apocalyptic world, the dense forest looms before you like a silent guardian of forgotten secrets.
Amongst the twisted trees and overgrown foliage, you stumble upon an old house, its walls choked with moss and its windows barely visible under the weight of neglect.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/wicked_family.jpg']]
</center>
<br />
Before you can contemplate your next move, you notice a young woman sitting outside naked in a wooden bucket, as an old man and an old woman washes her.
<br /><br />
<center>
<<image 'places/explore/family_food.jpg'>>
</center>
<br />
Old man notices you and rushes towards you.
<br /><br />
<<newguy>>
<<newgirl>>
<<set $tmpGirl.hair = 'blonde'>>
<<sayNpc $tmpGuy>>
Hey you! You have food? Give us food!
<</sayNpc>>
<br />
<<if $backpack.count('food') > 15>>
<div id="option_help">
<<linkreplace 'Give them food'>>
<<drop $backpack 'food' 15>>
<<set $player.goodwill++>>
<<run $('#option_leave, #help_desc').hide()>>
You decide to hand over some food, pulling out a small portion from your pack. The old man snatches it quickly, tearing into it with hungry desperation, while the old woman mumbles a quiet prayer of thanks. They seem less hostile now, but the weariness in their eyes remains.
<br /><br />
<<sayNpc $tmpGirl>>
We need to get her inside. She can't stay out here. She's too weak to walk. Bring her in!
<</sayNpc>>
<br />
You glance at the dilapidated house. It doesn't look particularly safe, but leaving the girl outside in the elements seems worse.
The old man with food you just gave rushes inside without even looking at his daughter so you decide to help her.
<br /><br />
<<video 'explore/family_food1'>>
<br /><br />
An old table stands in the center, and on it, the old man has already thrown what remains of the food you gave them.
He's wolfing it down like a starved dog, not even acknowledging you or his daughter. Meanwhile, the old woman has turned to the fireplace, stirring something in an ancient, cracked pot.
The smell of boiled roots fills the air as she mutters to herself, preparing what seems to be a meal.
<br /><br />
<<video 'explore/family_food3'>>
<br /><br />
You carry the young woman to the only bed in the room.
Without thinking, you crouch beside her, and before you can even react, she pulls herself closer, her body trembling as she crawls into your lap.
<br /><br />
<center>
<<image 'places/explore/ass_closeup.webp'>>
</center>
<br />
The old man and woman remain utterly indifferent to the scene, the old man still devouring the food, while the old woman now begins setting up a makeshift feast on the table.
<br /><br />
<div id="option_finger">
<<if recall($suppCode)>>
<<linkreplace 'Finger her pussy'>>
<<set _finger = true>>
<<video 'explore/family_food4'>>
<br /><br />
You lean over her and slowly slide fingers inside her dry pussy as she releases a faint, breathy sigh. Her eyes instantly rolls back as she presses herself onto your fingers.
<br /><br />
<<video 'explore/family_food5'>>
<br /><br />
With your fingers moving deeper and deeper inside her pussy, you fill that something is happening in front of your pants.
Without hesitation she's already unzipped your pants slowly pulls out your dick. As she lets out few moans, she grabs your dick and looks at it for a moment before starting to stroke it.
<br /><br />
<<video 'explore/family_food6'>>
<br /><br />
She doesn't waste any moment and with a small push from you, she wraps her lips around your hard dick. Meanwhile her parents who are so focused on the food keeps ignoring you too.
For a brief moment you think old man looked at you but didn't said anything. She continued to suck your dick.
<br /><br />
<<linkreplace 'Fuck her'>>
<<run $('#option_leave').hide()>>
<<set $player.goodwill-->>
<<video 'explore/family_food7'>>
<br /><br />
Without a word, you grabbed her shoulder and a big of force turned her around on her back. She laid there while looking at your dick without making the slightest sound.
You spread her legs wide open and with a gentle thrust entered her. She instantly let out moan so loud that everyone should hear that. Nothing...
<br />
Parents probably decided to ignore what you're doing just to eat food you just gave them...
<br />
You slowly started to thrust deeper and deeper into her pussy. She was fully in your control as she didn't resist, didn't said a word. With each thrust she lets out a moan.
<br /><br />
<<video 'explore/family_food8'>>
<br /><br />
You grabbed her legs and put them up as you increased the speed. She moved her head closer to you to somehow try and silence her moans but without success as old room was filled with that.
Then she leaned closer to your ear and gently bite in that, in that way approving your movements.
<br /><br />
<<video 'explore/family_food9'>>
<br /><br />
You decided to pick up the pace. She lifted her legs and wrapped them around your neck. With each thrust you felt her legs start to shake more and more...
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
<<image 'game/misc/cum_in_pussy2.webp'>>
</center>
<br /><br />
Without warning you thrust your dick deep into the young woman's pussy and release your cum.
Her legs shakes for a moment as you slowly pull out and let some of your cum drip on the bed.
<br /><br />
You quietly step back, your eyes lingering for a moment on the young woman as she shifts slightly in the bed.
She looks so fragile, so broken, but the longer you remain, the more you feel a growing sense of wrongness about this place.
You take one last look at the old man and woman—they continue to ignore you completely, engrossed in their silent feast.
<br /><br />
<<if (($game.location.guesthouse ?? false) && ($guests.length + 1) <= $guesthouseLimit) && ($backpack.count('food') >= 20) && ($player.int > 50)>>
<div id="option_invite">
<<linkreplace 'Sneak daughter away to safety (-20 food)'>>
<<run $('#option_capture').hide()>>
<<drop $backpack 'food' 20>>
<<set $player.goodwill += 2>>
<<set _mother = $tmpGirl>>
<<newgirl>>
<<set _daughter = $tmpGirl>>
<<set _daughterAge = randomInteger(19, 24)>>
<<set _daughter.birthDate = setup.getBirthDate(_daughterAge)>>
<<set _daughter.traits = setup.getRandomTraits(_daughter, 3)>>
<<set _daughter.virgin = false>>
<<set _daughter.skills = []>>
<<set _daughter.family = {
mother: _mother.id,
father: $tmpGuy.id
}>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('scavenger')>>
<</if>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('woodcraft')>>
<</if>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('gardener')>>
<</if>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('cook')>>
<</if>>
<<set _daughter.sick = {
days: randomInteger(1, 3),
desc: 'starved and neglected by family',
id: 'neglect'
}>>
<<set _daughter.clothes = {}>>
<<if setup.pregnancyChance(_daughter)>>
<<set _daughter.pregnancy_father = 'mc'>>
<<set _daughter.pregnancy = 0>>
<</if>>
You look down at the young woman as she begins to curl up on the threadbare mattress in hopeless resignation. Her frail body shudders slightly in the cool air, the old man and woman either oblivious or outright apathetic to her helpless state. She might as well not exist, and under these conditions, she might not continue much longer.
<br /><br />
Feeling compassion, you crouch down beside the bed, stroking her soothingly as you ask her name, and in a weak voice she tells you it's <<=setup.displayName(_daughter)>>.
<br /><br />
Looking over at the couple, you notice that the flimsy table they are eating off of has a damaged leg, close to giving way. The food you gave them was nearly enough to collapse the table, but it is getting lighter as they consume it. Getting an idea, you take out a larger parcel of food than before, saying "Here, a token of my gratitude." tossing the food carelessly onto the table right over the unsteady leg. Sure enough, the side of the table collapses, food sliding onto the floor and scattering towards the other side of the room!
<br /><br />
The old man and woman practically fall over each other diving to salvage the food from the floor! In the commotion, you easily lift <<=setup.displayName(_daughter)>> into your arms, carrying her out of the room and away from the house.
<br /><br />
For a few minutes, you brace yourself for a possible fight, expecting to see the old couple running out of the door after you, but there is nothing but the sound of the forest. The young woman seems to notice as well, looking sad for a moment, but not surprised. She looks up at you, and a glimmer of hope appears in her eyes. She nestles in your arms, trusting you to take her to a better place.
<br /><br /><br />
<<if $game.location.hospital ?? false>>
<<set _hospitalDoctors = setup.companions.getDoctors()>>
By the time you get <<=setup.displayName(_daughter)>> back to the household, she is exhausted from years of neglect and mistreatment, so you carry her directly to the hospital instead of the guest house.
<br /><br />
<<if _hospitalDoctors.length>>
<<set _doctor = either(_hospitalDoctors)>>
<<=setup.displayName(_doctor)>> helps admit her, looking her over before turning to you<<if typeof _daughter.pregnancy !== 'undefined'>> with a knowing glance<</if>>.
<br /><br />
<<sayNpc _doctor>>
She'll need <<=_daughter.sick.days>> day<<=(_daughter.sick.days > 1 ? 's' : '')>> of rest before she's ready to join the other guests.
<<if typeof _daughter.pregnancy !== 'undefined'>>
Seems like you've been busy. I expect I'll see her again in a few months time...
<</if>>
<</sayNpc>>
<<else>>
She will need several days of rest before she is ready to join the other guests.
<</if>>
<<else>>
By the time you get <<=setup.displayName(_daughter)>> back to the household, she is exhausted from years of neglect and mistreatment.
<</if>>
<br /><br />
<<set _daughter.relationship = 70>>
<<set _daughter.sub += 60>>
<<set $tmpGirl = _daughter>>
<<include 'NPC info'>>
<<run $guests.push(_daughter)>>
<<run setup.npc.addHistory(_daughter, 'invited')>>
<</linkreplace>>
</div>
<</if>>
<<if (($game.location.basement ?? false) && ($slaves.length + 1) <= $basementLimit) && ($player.money >= 50)>>
<div id="option_capture">
<<linkreplace 'Offer to purchase daughter (-50 caps)'>>
<<run $('#option_invite').hide()>>
<<set $player.money -= 50>>
<<set $player.goodwill-->>
<<set _mother = $tmpGirl>>
<<newgirl>>
<<set _daughter = $tmpGirl>>
<<set _daughterAge = randomInteger(19, 24)>>
<<set _daughter.birthDate = setup.getBirthDate(_daughterAge)>>
<<set _daughter.traits = setup.getRandomTraits(_daughter, 3)>>
<<set _daughter.virgin = false>>
<<set _daughter.skills = []>>
<<set _daughter.family = {
mother: _mother.id,
father: $tmpGuy.id
}>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('scavenger')>>
<</if>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('woodcraft')>>
<</if>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('gardener')>>
<</if>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('cook')>>
<</if>>
<<set _daughter.sick = {
days: randomInteger(2, 4),
desc: 'neglected by family and enslaved',
id: 'neglect'
}>>
<<set _daughter.clothes = {}>>
<<if setup.pregnancyChance(_daughter)>>
<<set _daughter.pregnancy_father = 'mc'>>
<<set _daughter.pregnancy = 0>>
<</if>>
You look down at the young woman, her supple form curled up on the threadbare mattress in total submissive acceptance. Her nude body shudders slightly in the cool air, the old man and woman either oblivious or outright apathetic. Either way, it seems a shame to leave such beauty where it is unappreciated.
<br /><br />
You step over to the table, getting the old man's attention as you gesture to the young woman, "If you don't need her...", you take out 50 bottlecaps and set them on the table.
<br /><br />
That clearly captures their interest, the old woman eyeing the caps with greedy eyes. The old man looks at your offer suspiciously at first, then looks over at the young woman, her used pussy still dribbling with your seed. He looks at you with a wry grin, scooping up the bottlecaps.
<br /><br />
<<sayNpc $tmpGuy>>
Have fun. She was useless here, but I'm sure you can find something she's good for.
<</sayNpc>>
<br />
The old man and woman cackle with glee as they count the money, forgetting you as quickly as they noticed you. Turning to the young woman, you easily lift her up over your shoulder, carrying her out of the room and away from the house.
<br /><br />
Adjusting her weight on your shoulder for the hike back home, you give her ripe ass a smack, grinning as you look forward to enjoying your prize. The young woman looks back as her old home recedes back into the forest, resignation filling her as she hopes that whatever her fate holds, it can be better than the hell she leaves behind...
<br /><br /><br />
<<if $game.location.hospital ?? false>>
<<set _hospitalDoctors = setup.companions.getDoctors()>>
By the time you get <<=setup.displayName(_daughter)>> back to the household, she is exhausted from years of neglect and mistreatment, so you carry her directly to the hospital instead of the basement.
<br /><br />
<<if _hospitalDoctors.length>>
<<set _doctor = either(_hospitalDoctors)>>
<<=setup.displayName(_doctor)>> helps admit her, looking her over before turning to you<<if typeof _daughter.pregnancy !== 'undefined'>> with a knowing glance<</if>>.
<br /><br />
<<sayNpc _doctor>>
She'll need <<=_daughter.sick.days>> day<<=(_daughter.sick.days > 1 ? 's' : '')>> of rest before she's ready to join the other slaves.
<<if typeof _daughter.pregnancy !== 'undefined'>>
Seems like you've been busy. I expect I'll see her again in a few months time...
<</if>>
<</sayNpc>>
<<else>>
She will need several days of rest before she is ready to join the other slaves.
<</if>>
<<else>>
By the time you get <<=setup.displayName(_daughter)>> back to the household, she is exhausted from years of neglect and mistreatment.
<</if>>
<br /><br />
<<set _daughter.relationship = 20>>
<<set _daughter.sub += 70>>
<<set $tmpGirl = _daughter>>
<<include 'NPC info'>>
<<run $slaves.push(_daughter)>>
<<run setup.npc.addHistory(_daughter, 'captured')>>
<</linkreplace>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Finger her pussy
<<notPatreonIcon>>
</div>
<</if>>
</div>
<div id="option_leave">
<<linkreplace 'Leave'>>
<<if !_finger>>
<<run $('#option_finger').hide()>>
<</if>>
You slowly rise, carefully slipping out from under the young woman as she releases a faint, breathy sigh.
She rolls over slightly, her body limp as she sinks deeper into the tattered bed. Her grip on your arm loosens as you move away, and for a brief moment, her eyes flicker open, but they are unfocused and distant, as though she's caught in some dream she cannot escape.
<br /><br />
The old couple continues their strange ritual, entirely engrossed in their feast.
The old man stuffs his face, crumbs falling into his long, wiry beard, while the old woman busies herself with rearranging what little remains on the table.
They don’t glance at you once. Their daughter, the very person they were so desperate to get inside, is all but forgotten.
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<<linkdesc 'help_desc'>>
-15 food
<</linkdesc>>
</div>
<</if>>
<div id="option_leave">
<<linkreplace 'Leave'>>
<<run $('#option_help').hide()>>
<<set $player.goodwill -= 5>>
You shake your head, your instincts telling you that something is off.
<br /><br />
<<you>>
I'm sorry, but I can’t spare anything,
<</you>>
<br />
<<sayNpc $tmpGuy>>
You’ll regret this!
<</sayNpc>>
<br />
The old woman’s face contorts as she begins whispering dark words under her breath, her eyes narrowing as she stares at you.
<br /><br />
<<sayNpc $tmpGirl>>
You'll rot out there, just like the rest of them!
<</sayNpc>>
<br />
The dense forest seems to close in, their ominous words clinging to your thoughts as you vanish back into the wilderness, uncertain of the price you may pay for leaving them behind.
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">FOREST</h1>
<br /><br />
As you navigate through the post-apocalyptic world, the dense forest looms before you like a silent guardian of forgotten secrets.
Amongst the twisted trees and overgrown foliage, you stumble upon an old house, its walls choked with moss and its windows barely visible under the weight of neglect.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/wicked_family.jpg']]
</center>
<br />
Before you can contemplate your next move, a gruff voice pierces the air, and an old, fat man emerges from the shadows, his eyes filled with desperation.
<br /><br />
<<newguy>>
<<newgirl>>
<<set $tmpGirl.hair = 'blonde'>>
<<sayNpc $tmpGuy>>
Hey you! I need your help, and I need it now!
<</sayNpc>>
<br />
<div id="option_help">
<<linkreplace 'Help him'>>
<<addmins 30>>
<<run $('#option_leave').hide()>>
Moved by compassion or perhaps curiosity, you agree to aid the old man. With a grateful nod, he ushers you into the decrepit house, its interior shrouded in shadows and mystery.
<br /><br />
As you step across the threshold, a wave of unease washes over you. The air is thick with a palpable sense of dread, and the once welcoming facade of the old man begins to unravel, revealing a darker truth lurking beneath the surface.
<br /><br />
Inside the house, you discover the old man is not alone. He introduces you to his family – a twisted, macabre assembly of individuals whose intentions are as murky as the shadows that dance across the walls. Their requests for help grow increasingly sinister, drawing you deeper into a web of deception and malevolence.
<br /><br />
<<sayNpc $tmpGuy>>
Do you have any food? We need some.
<</sayNpc>>
<br />
<<sayNpc $tmpGirl>>
Ask him for some wood too.
<</sayNpc>>
<br />
<<if $backpack.count('food') >= 10>>
<<linkreplace 'Give 10 food'>>
<<set _giveFood = true>>
<<if _giveFood && _giveWood>>
<<run $('#option_peek').show()>>
<</if>>
<<drop $backpack 'food' 10>>
<<set $player.goodwill++>>
As you extend the plate of food towards the old woman, she reacts with an unexpected sense of urgency, almost snatching it from your hand with a forceful grip.
Without uttering a word of thanks, she abruptly turns and rushes towards the kitchen, her movements swift and determined.
<br /><br />
<</linkreplace>>
<</if>>
<<if $backpack.count('wood') >= 20>>
<<linkreplace 'Give 20 wood'>>
<<set _giveWood = true>>
<<if _giveFood && _giveWood>>
<<run $('#option_peek').show()>>
<</if>>
<<drop $backpack 'wood' 20>>
<<set $player.goodwill++>>
As the old man accepts the firewood from you with gratitude, he nods in appreciation and swiftly makes his way outside, leaving you alone in the dimly lit kitchen.
The door creaks shut behind him, leaving you enveloped in a silence that feels almost suffocating.
<br /><br />
<</linkreplace>>
<</if>>
<div id="option_peek" style="display:none">
As you stand alone in the dimly lit guest room, the silence is suddenly shattered by the sound of scrambling from somewhere nearby.
Your heart skips a beat as you strain to identify the source of the noise, your senses on high alert.
Then, amidst the chaos of the scrambling, you catch a fleeting glimpse of another voice, a younger woman's voice, echoing through the stillness of the house for just a second before it's abruptly silenced.
<br /><br />
<<linkreplace 'Take a peek'>>
<<video 'explore/wicked_family1'>>
<br /><br />
The old woman stands at the stove, her back hunched as she stirs a bubbling pot with deliberate movements. The flickering light casts eerie shadows across the kitchen, adding to the sense of unease that hangs in the air.
<br /><br />
Then, your eyes catch something unexpected—a young woman crouched beneath the table, her form hidden in the shadows. She watches the old woman with wide eyes, a mixture of fear and uncertainty etched upon her face.
<br /><br />
<<video 'explore/wicked_family2'>>
<br /><br />
The young woman lets out a muffled cry of surprise and fear as she's forcefully pulled out from her hiding place beneath the table. Her eyes widen in terror as she's dragged into the dim light of the kitchen, her struggles futile against the old woman's iron grip.
<br /><br />
<<sayNpc $tmpGirl>>
You need to earn this food. I don't stand in the kitchen all day for nothing.
<</sayNpc>>
<br />
Old woman pulls up her old, dirty dress and pulls young woman head between her legs. Young woman starts to lick old woman pussy with muffled cry.
<br /><br />
<<linkreplace 'Keep watching'>>
<<set $player.goodwill-->>
<<video 'explore/wicked_family3'>>
<br /><br />
Your heart pounds in your chest as the old woman's sudden movement catches you off guard.
Before you can react, her bony fingers latch onto your clothes, pulling you forcefully into the kitchen with surprising strength.
<br /><br />
<<sayNpc $tmpGirl>>
This is the man who gave us food. You need to thank him also!
<</sayNpc>>
<br />
She hasn't finished her sentence as old woman slides her hand inside your pants and pulls out your dick. Young woman is still on her knees as old woman pushes your dick in her mouth.
<br /><br />
<<video 'explore/wicked_family4'>>
<br /><br />
The old woman's grip on the young woman loosens, and she pulls her away from you with a sudden, jerking motion.
The young woman stumbles backward, casting a fearful glance at the old woman before her eyes flicker towards you, filled with uncertainty and apprehension.
<br /><br />
<<sayNpc $tmpGirl>>
That's enough! You should leave!
<</sayNpc>>
<br />
<<if recall($suppCode)>>
<div id="option_fuck">
<<linkreplace 'Ask to fuck her'>>
<<set _fucked = true>>
<<set $player.goodwill-->>
<<sayNpc $tmpGirl>>
I guess you deserve it.
<</sayNpc>>
<br /><br />
<<video 'explore/wicked_family5'>>
<br /><br />
With a sudden, decisive movement, the old woman pulls the young woman onto the kitchen table, her actions swift and forceful.
She spreads young woman legs and moves away her dirty dress from the way as you put your dick against young woman pussy and slide it in.
<br /><br />
<<video 'explore/wicked_family6'>>
<br /><br />
<<sayNpc $tmpGirl>>
Yes, yes.. Earn that food! Fuck her.
<</sayNpc>>
<br />
The young woman looks directly into your eyes without any emotions on her face as you fuck her tight pussy.
<br />
Occasionally, she glances at the old woman, and everything seems to satisfy her.
<br /><br />
<<linkreplace 'Cum'>>
<center>
<<image 'game/misc/creampie_on_back.webp'>>
</center>
<br />
As young woman lets out moan as you cum deep inside her you pull out and old woman pulls her down from the table.
<br /><br />
<<set _cumInside = true>>
<<sayNpc $tmpGirl>>
Now leave.
<</sayNpc>>
<br /><br />
<<horny_reset>>
<</linkreplace>>
<</linkreplace>>
</div>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Ask to fuck her
<<notPatreonIcon>>
</div>
<</if>>
<<if (($game.location.guesthouse ?? false) && ($guests.length + 1) <= $guesthouseLimit) && ($backpack.count('sextoy') >= 1) && ($player.int > 50)>>
<div id="option_trade">
<<linkreplace 'Offer a sextoy for her freedom'>>
<<if !_fucked>>
<<run $('#option_fuck').hide()>>
<</if>>
<<run $('#option_buy').hide()>>
<<set _mother = $tmpGirl>>
You put away your dick as you look down at the helpless young woman in her tattered rags, clearly being treated as no more than a pet by these people.
You can see a glimmer of hope in her eyes as she catches your gaze.
<br /><br />
Turning to the older woman, you ask.
<br /><br />
<<you>>
What is she worth to you?
<</you>>
<br />
As you taking out a handful of bottlecaps. The woman sneers at your offer.
<br /><br />
<<sayNpc _mother>>
Forget it, she's not for sale. She's too good at eating pussy!
<</sayNpc>>
<br />
A thought suddenly occurs to you, and you reach into your backpack, pulling out one of the sex toys you bought in the Underground City.
<br /><br />
<<you>>
I bet you don't find a lot of these out here in the woods.
<</you>>
<br /><br />
The old woman looks over the large, plastic phallus, her tongue sliding over her lips as she thinks about how that might feel.
<br /><br />
<<you>>
And it never gets tired..
<</you>>
<br />
You add, waving it in front of her. She smirks and snatches it from your hand.
<br /><br />
<<sayNpc _mother>>
Fine, take her. She never earns her keep anyway.
<</sayNpc>>
<br />
<<newgirl>>
<<set _daughter = $tmpGirl>>
Crouching down, you reach under the table, offering a hand to the young woman as you ask her name.
She crawls out timidly, looking at the floor as she meekly whispers <<=setup.displayName(_daughter)>>,
seemingly afraid to let herself believe this is real.
<br />
Only when you finally lead her outside does she allow herself to smile, leaning against you with exhaustion as you take her to her new life.
<br /><br />
<<drop $backpack 'sextoy' 1>>
<<set $player.goodwill += 2>>
<<set _daughter.race = 'white'>>
<<set _daughter.birthDate = setup.getBirthDate(randomInteger(19, 22))>>
<<set _daughter.traits = setup.getRandomTraits(_daughter, 3)>>
<<set _daughter.likesGirls = true>>
<<set _daughter.skills = []>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('scavenger')>>
<</if>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('gardener')>>
<</if>>
<<if setup.percentageChance(20)>>
<<set _daughter.sick = {
days: randomInteger(1, 2),
desc: 'abused by her former household',
id: 'neglect'
}>>
<</if>>
<<if (_cumInside ?? false) && setup.pregnancyChance(_daughter)>>
<<set _daughter.pregnancy_father = 'mc'>>
<<set _daughter.pregnancy = 0>>
<</if>>
<br />
<<if typeof _daughter.sick !== 'undefined'>>
<<if $game.location.hospital ?? false>>
<<set _hospitalDoctors = setup.companions.getDoctors()>>
By the time you get <<=setup.displayName(_daughter)>> back to the household, she is exhausted from years of neglect and mistreatment, so you bring her directly to the hospital instead of the guest house.
<br /><br />
<<if _hospitalDoctors.length>>
<<set _doctor = either(_hospitalDoctors)>>
<<=setup.displayName(_doctor)>> helps admit her, looking her over before turning to you<<if typeof _daughter.pregnancy !== 'undefined'>> with a knowing glance<</if>>.
<br /><br />
<<sayNpc _doctor>>
She'll need <<=_daughter.sick.days>> day<<=(_daughter.sick.days > 1 ? 's' : '')>> of rest before she's ready to join the other guests.
<<if typeof _daughter.pregnancy !== 'undefined'>>
Seems like you've been busy. I expect I'll see her again in a few months time...
<</if>>
<</sayNpc>>
<<else>>
She will need several days of rest before she is ready to join the other guests.
<</if>>
<<else>>
By the time you get <<=setup.displayName(_daughter)>> back to the household, she is exhausted from years of neglect and mistreatment.
<</if>>
<br /><br />
<</if>>
<<set _daughter.relationship = 70>>
<<set _daughter.sub += 70>>
<<set $tmpGirl = _daughter>>
<<include 'NPC info'>>
<<run $guests.push(_daughter)>>
<<run setup.npc.addHistory(_daughter, 'invited')>>
<</linkreplace>>
</div>
<</if>>
<<if (($game.location.basement ?? false) && ($slaves.length + 1) <= $basementLimit) && ($player.money >= 100)>>
<div id="option_buy">
<<linkreplace 'Offer to buy her (-100 caps)'>>
<<run $('#option_trade').hide()>>
<<if !_fucked>>
<<run $('#option_fuck').hide()>>
<</if>>
<<set $player.money -= 100>>
<<set $player.goodwill-->>
<<set _mother = $tmpGirl>>
<<if _fucked>>
You put away your dick as you look down at panting you woman on the table, her freshly fucked pussy in front of you, her body splayed on the table like an offering, as if ready to be used again. You can see a look of resignation in her eyes as she catches your gaze.
<<else>>
You put away your dick as you look down at the helpless young woman in her tattered rags.
<</if>>
<br /><br />
Turning to the older woman, you say.
<br /><br />
<<you>>
I'd like to enjoy this one some more. I am ready to pay 100 caps.
<</you>>
<br />
As you taking out a handful of bottlecaps. The woman regards your offer warily.
<br /><br />
<<sayNpc _mother>>
It would be difficult to let go of her. You saw how good she is for fucking.
<</sayNpc>>
<br />
You roll your eyes with a sigh, pulling out more bottle caps until a stack of 100 caps sits on the table.
<br /><br />
<<you>>
This will buy plenty of sex toys next time you visit the Underground City.
<</you>>
<br /><br />
The old woman smirks and scoops up the coins.
<br /><br />
<<sayNpc _mother>>
Fine, take her. <<if _fucked>>You probably knocked her up anyway<</if>>
<</sayNpc>>
<br />
Binding the young woman, you lead her off of the table and out of the house.
She follows you timidly, her eyes never lifting from the floor as she plods along beside you, resigned to being an object, traded for food and caps.
<br /><br />
<<newgirl>>
<<set _daughter = $tmpGirl>>
<<set _daughter.race = 'white'>>
<<set _daughter.birthDate = setup.getBirthDate(randomInteger(19, 22))>>
<<set _daughter.traits = setup.getRandomTraits(3)>>
<<set _daughter.virgin = false>>
<<set _daughter.likesGirls = true>>
<<set _daughter.skills = []>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('scavenger')>>
<</if>>
<<if setup.percentageChance(20)>>
<<run _daughter.skills.push('gardener')>>
<</if>>
<<if setup.percentageChance(20)>>
<<set _daughter.sick = {
days: randomInteger(2, 3),
desc: 'abused by her former household',
id: 'neglect'
}>>
<</if>>
<<if (_cumInside ?? false) && setup.pregnancyChance(_daughter)>>
<<set _daughter.pregnancy_father = 'mc'>>
<<set _daughter.pregnancy = 0>>
<</if>>
<<if typeof _daughter.sick !== 'undefined'>>
<br />
<<if $game.location.hospital ?? false>>
<<set _hospitalDoctors = setup.companions.getDoctors()>>
By the time you get <<=setup.displayName(_daughter)>> back to the household, she is exhausted from years of neglect and mistreatment, so you bring her directly to the hospital instead of the basement.
<br /><br />
<<if _hospitalDoctors.length>>
<<set _doctor = either(_hospitalDoctors)>>
<<=setup.displayName(_doctor)>> helps admit her, looking her over before turning to you<<if typeof _daughter.pregnancy !== 'undefined'>> with a knowing glance<</if>>.
<br /><br />
<<sayNpc _doctor>>
She'll need <<=_daughter.sick.days>> day<<=(_daughter.sick.days > 1 ? 's' : '')>> of rest before she's ready to join the other slaves.
<<if typeof _daughter.pregnancy !== 'undefined'>>
Seems like you've been busy. I expect I'll see her again in a few months time...
<</if>>
<</sayNpc>>
<<else>>
She will need several days of rest before she is ready to join the other slaves.
<</if>>
<<else>>
By the time you get <<=setup.displayName(_daughter)>> back to the household, she is exhausted from years of neglect and mistreatment.
<</if>>
<br /><br />
<</if>>
<<set _daughter.relationship = 0>>
<<set _daughter.sub += 85>>
<<set $tmpGirl = _daughter>>
<<include 'NPC info'>>
<<run $slaves.push(_daughter)>>
<<run setup.npc.addHistory(_daughter, 'captured')>>
<</linkreplace>>
</div>
<</if>>
<</linkreplace>>
<</linkreplace>>
</div>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_leave">
<<linkreplace 'Leave'>>
<<run $('#option_help').hide()>>
You turn away from the old man and his dilapidated abode, wary of entangling yourself in the affairs of a stranger in such uncertain times.
You continue on your journey through the forest, leaving behind the echoes of his desperate cries.
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
A wooden crate sat in the middle of the street — supplies, from the look of it. Untouched. In the middle of an otherwise completely stripped block.
<br /><br />
<center>
<<image 'places/explore/ambush_bait.jpg'>>
</center>
<br />
It was too obvious.
<br /><br />
<div id="ab_inspect">
<<set _labelInspect = 'Approach the crate'>>
<<linkreplace _labelInspect>>
<<run $('#ab_circle').hide()>>
Two men stepped out from cover the moment you reached it.
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
Smart enough to find it. Not smart enough to smell us.
<</sayNpc>>
<br />
<<link 'Fight them'>>
<<generateEnemies 2>>
<<fight $enemies 'Explore event - ambush bait won' 'Outside'>>
<</link>>
<<set _labelRun = 'Run'>>
<<linkreplace _labelRun>>
<<energy -10>>
You turned and sprinted before they closed the distance, ducking into a side alley and losing them in the ruins. You made it out without a scratch — and without the crate.
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="ab_circle">
<<set _labelCircle = 'Circle around first'>>
<<linkreplace _labelCircle>>
<<run $('#ab_inspect').hide()>>
<<addmins 20>>
<<if $player.int >= 50>>
You gave the crate a wide berth and worked around the block, moving low and quiet. Two men crouched behind a collapsed wall watching the bait — both facing the wrong direction.
<br /><br />
You got behind them before they knew you were there.
<br /><br />
<<link 'Attack from behind'>>
<<generateEnemies 2>>
<<fight $enemies 'Explore event - ambush bait won' 'Outside'>>
<</link>>
<<else>>
You circled wide but couldn't find where the trap was set from. When you came back around, two men were already dragging the crate away. You let them go.
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</if>>
<</linkreplace>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
The last one dropped and the street went quiet. You caught your breath and turned back to the crate.
<br /><br />
Inside: canned food, a box of rounds, and a fuel can.
<br /><br />
<<pickup $backpack 'food' 5>>
<<pickup $backpack 'bullet_revolver' 10>>
<<pickup $backpack 'fuel' 1>>
<strong>You collected 5 food, 10 rounds, 1 fuel.</strong>
<br /><br />
<<set _labelCheck = 'Check the building they came from'>>
<<linkreplace _labelCheck>>
<<run $('#abw_leave').hide()>>
The building had one back room they had been using as a base — bedrolls, scraps of food, a crate of stolen goods. Tied to a support beam in the corner was a young woman, rope burns on her wrists.
<br /><br />
<<newgirl>>
<<sayNpc $tmpGirl>>
Are they dead?
<</sayNpc>>
<br />
<<you>>
Both of them.
<</you>>
<br />
<<sayNpc $tmpGirl>>
Then get me out of these ropes.
<</sayNpc>>
<br />
<div id="abw_free">
<<set _labelFree = 'Cut her loose'>>
<<linkreplace _labelFree>>
<<run $('#abw_capture').hide()>>
<<set $player.goodwill += 2>>
You cut the ropes. She rubbed her wrists and looked around the room, then at you.
<br /><br />
<<sayNpc $tmpGirl>>
I don't have anywhere to go from here. Is there room where you're based?
<</sayNpc>>
<br />
<div id="abw_invite">
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<<set _labelInvite = 'Take her with you'>>
<<linkreplace _labelInvite>>
<<run $('#abw_letgo').hide()>>
<<set $tmpGirl.relationship = 50>>
<<run $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<include 'NPC info'>>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<</if>>
</div>
<div id="abw_letgo">
<<link 'Let her go'>>
<<goto 'Outside'>>
<</link>>
</div>
<</linkreplace>>
</div>
<div id="abw_capture">
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit && $player.energy >= 30>>
<<set _labelCapture = 'Keep her bound'>>
<<linkreplace _labelCapture>>
<<run $('#abw_free').hide()>>
You tightened the knots instead of cutting them and pulled her to her feet.
<br /><br />
<<set $tmpGirl.sub = Math.min(($tmpGirl.sub ?? 0) + 20, 100)>>
<<set $player.goodwill -= 2>>
<<energy -30>>
<<addhours 2>>
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<statsAdd 'people_captured'>>
<<goto 'Basement'>>
<</linkreplace>>
<</if>>
</div>
<br /><br />
<</linkreplace>>
<div id="abw_leave">
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<br />
As you catch your breath, your gaze falls upon a curious sight amidst the debris—a tattered blueprint, its edges worn with age.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/library_blueprint2.jpg']]
</center>
<br />
Unfurling the weathered parchment, you study its contents with growing fascination. It depicts the layout of a library, its intricate design a testament to the pursuit of knowledge in a world consumed by chaos. Elation washes over you as you realize the significance of your discovery—a beacon of hope amidst the ruins of civilization.
<br /><br />
Clutching the blueprint tightly, you resolve to embark on a quest to bring this vision to life. For in the heart of the city, amidst the crumbling remnants of a lost world, lies the key to preserving the legacy of humanity. And with each step forward, you defy the shadows of the past, forging a path towards a brighter tomorrow.
<br /><br />
<strong>You picked up <strong class="iitem">library blueprint</strong></strong>
<br /><br />
<<link 'Leave'>>
<<set $player.quests.library_blueprint = true>>
<<pickup $backpack 'blueprint_library' 1>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">CITY</h1>
<br />
As you traverse the outskirts of the city, the skyline dominated by skeletal structures and crumbling buildings, a lone house nestled on the periphery catches your eye.
Its presence amidst the urban decay is a stark contrast, a beacon of intrigue amid the desolation.
<br /><br />
<<linkreplace 'Approach it'>>
<<run $('#option_leave').hide()>>
Approaching cautiously, you navigate through the debris-strewn streets, your senses attuned to the slightest hint of danger.
The house stands as a silent sentinel, its weathered façade bearing witness to the ravages of time.
With each step closer, the weight of history presses down upon you, a palpable reminder of the world that once thrived within these walls.
<br /><br />
Entering the abandoned dwelling, a sense of unease settles over you like a shroud. The interior is cloaked in darkness, broken only by shafts of light filtering through cracks in the decaying roof.
The air is thick with the scent of mildew and decay, a testament to years of neglect.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/library_blueprint.jpg']]
</center>
<br />
Suddenly, a shuffling sound echoes from the shadows, and you tense, instinctively reaching for your weapon. From the darkness emerge two scavengers, their ragged appearance a testament to their struggle for survival. With a mixture of fear and desperation in their eyes, they brandish makeshift weapons, ready to defend their territory.
<br /><br />
Heart pounding, you brace yourself for the confrontation, adrenaline coursing through your veins. With practiced precision, you engage in a deadly dance, each movement calculated to evade the scavengers' vicious onslaught. The battle is fierce and unforgiving, the air thick with the clang of metal and the scent of blood.
<br /><br />
<<link 'Fight'>>
<<generateEnemies 2>>
<<fight $enemies 'Explore event - library blueprint won' 'Outside'>>
<</link>>
<</linkreplace>>
<div id="option_leave">
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
Amidst the chaos of overturned furniture and shattered remnants of the building's former inhabitants, your eyes caught sight of a glint of metal tucked away in a corner.
Curiosity piqued, you cautiously approached and reached out to investigate.
<br /><br />
<<pickup $backpack 'fuel' 1>>
<strong>You found <strong class="iitem">1 fuel can</strong></strong>
<br /><br />
<<if recall($suppCode)>>
<<linkreplace 'Check other rooms'>>
Suddenly, a movement caught your attention—a fleeting shadow darting across the wall of one of the adjacent rooms. Instinctively, you froze, muscles tense as you prepared for a potential confrontation. With a cautious step forward, you peered into the room, heart pounding in your chest.
<br /><br />
<<video 'explore/mysterious_scream1'>>
<br /><br />
<<newgirl>>
To your surprise, you discovered a woman huddled in the corner, her eyes wide with fear as she cowered away from your gaze. She was dressed in tattered clothing, her face smudged with dirt and exhaustion evident in every line of her weary frame.
<br /><br />
<<sayNpc $tmpGirl>>
Please don't give me up! They will kill me!
<</sayNpc>>
<br />
<div id="option_slave">
<<if (($game.location.basement ?? false) && $slaves.length < $basementLimit)>>
<<link 'Capture her'>>
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<statsAdd 'people_captured'>>
<<goto 'Basement'>>
<</link>>
<</if>>
</div>
<<linkreplace 'Unzip her jacket'>>
<<run $('#option_slave').hide()>>
<<sayNpc $tmpGirl>>
What are you doing? Will this keep you quiet?
<</sayNpc>>
<br />
<<video 'explore/mysterious_scream2'>>
<br /><br />
You slowly grab her jacket's zipper and slide it down, opening her bare chest. As you continue your movements her tit falls out and you squeeze it.
<br /><br />
<<sayNpc $tmpGirl>>
I can suck your dick, if you promise not to give away my position to those men.
<</sayNpc>>
<br />
<<video 'explore/mysterious_scream3'>>
<br /><br />
She quietly drops on her knees, and while holding your balls in one hand she slowly slides her mouth into your dick and starts to suck it. It continues for few minutes before she gets up.
<br /><br />
<<sayNpc $tmpGirl>>
That should be enough. Now let me leave.
<</sayNpc>>
<br />
<<linkreplace 'Force her to turn around'>>
<<set $player.goodwill-= 5>>
<<sayNpc $tmpGirl>>
What? No! That wasn't the deal.
<</sayNpc>>
<br />
You grab her hand firmly before turning her around. She wants to scream but she knows she might attract the attention so she decides to keep quiet.
<br /><br />
<<video 'explore/mysterious_scream4'>>
<br /><br />
<<sayNpc $tmpGirl>>
We had a deal... Oh...
<</sayNpc>>
<br />
As you slide your dick inside her dry pussy she slowly gets relaxed and you feel her pussy getting wet too. She doesn't resist anymore and look like have decided to enjoy the moment as she doesn't have other options anyway...
<br /><br />
<<sayNpc $tmpGirl>>
Oh too late to stop. A bit faster.
<</sayNpc>>
<br />
She quietly whispers to you as your hand grabs her firm ass while you thrust inside her pussy.
<br /><br />
<<video 'explore/mysterious_scream5'>>
<br /><br />
<<sayNpc $tmpGirl>>
Let me swallow it! I don't want a mess.
<</sayNpc>>
<br />
She quietly lets out few moans and you notice that in any moment she's ready to jump off your dick and put it in her mouth.
<br /><br />
<<linkreplace 'Pull out'>>
<<video 'explore/mysterious_scream6'>>
<br /><br />
As you pull out while still on her knees she turns around, puts just the tip of your dick in her mouth and jerks you off till you cum inside her mouth.
Her movements are getting slower and in the end she lets out smile as small amount of your cum drips out of her mouth.
<br /><br />
<<sayNpc $tmpGirl>>
Wasn't that bad after all...
<</sayNpc>>
<br /><br />
<<horny_reset>>
<<addmins 20>>
<<if (($game.location.basement ?? false) && $slaves.length < $basementLimit)>>
<<link 'Capture her'>>
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<statsAdd 'people_captured'>>
<<goto 'Basement'>>
<</link>>
<</if>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Check other rooms
<<notPatreonIcon>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">CITY</h1>
<br /><br />
As you roamed the desolate city ruins, the echoes of your footsteps mingled with the eerie silence of a world long abandoned.
The buildings stood as decaying monuments to a civilization lost to time and catastrophe.
Amidst the rubble and overgrown vegetation, you heard piercing scream tearing through the stagnant air.
<br /><br />
Without a moment's hesitation, you bolted towards the source of the distress, your senses heightened by the adrenaline coursing through your veins. The sound led you to a partially collapsed building, its five floors looming like ancient guardians over the desolation below.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/mysterious_scream1.jpg']]
</center>
<br />
You noticed how three men rushed inside the house, their hurried footsteps echoing through the desolate streets. The scream that followed pierced the silence of the ruins, sending shivers down your spine. Without a second thought, you hastened towards the half-ruined building, drawn by a mix of curiosity and a sense of duty to help those in distress.
<br /><br />
<<linkreplace 'Follow them inside'>>
<<run $('#option_leave').hide()>>
The air was thick with the scent of decay and dust, and the only sound was the faint rustling of debris under your feet as you cautiously made your way forward. Every step felt like a weighted decision, each corner held the possibility of a lurking threat.
<br /><br />
As you ventured deeper into the building, your senses heightened, alert for any sign of movement or danger. But before you could react, you were suddenly ambushed by unseen assailants, their presence revealed only by the swift and brutal attack that followed.
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
Get him! That must be him who screamed like a girl!
<</sayNpc>>
<br /><br />
<<link 'Fight them'>>
<<generateEnemies 2>>
<<fight $enemies 'Explore event - mysterious scream won' 'Outside'>>
<</link>>
<</linkreplace>>
<div id="option_leave">
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">FOREST</h1>
<br /><br />
A line of wire snares had been set between the trees with practiced care — evenly spaced, well-concealed, the work of someone who knew what they were doing. Two of them held fresh kills.
<br /><br />
<center>
<<image 'places/explore/snare_line.jpg'>>
</center>
<br />
Whoever set these would be back for them soon.
<br /><br />
<div id="sl_wait">
<<set _labelWait = 'Wait nearby'>>
<<linkreplace _labelWait>>
<<run $('#sl_leave').hide()>>
<<addmins 20>>
<<newgirl>>
<<set $tmpGirl.skills ??= []>>
<<if !$tmpGirl.skills.includes('woodcraft')>>
<<run $tmpGirl.skills.push('woodcraft')>>
<</if>>
You settled into the brush. About twenty minutes later a young woman came through the trees with a canvas bag over her shoulder. She stopped when she saw you, hand dropping to a knife at her belt.
<br /><br />
<<sayNpc $tmpGirl>>
Those are my traps.
<</sayNpc>>
<br />
<div id="sl_trade">
<<if $backpack.count('food') >= 5>>
<<set _labelTrade = 'Offer food in trade'>>
<<linkreplace _labelTrade>>
<<run $('#sl_rob').hide()>>
<<run $('#sl_invite').hide()>>
<<run $('#sl_capture').hide()>>
<<addmins 15>>
You held up both hands and set the food down slowly. She studied you for a long moment before the knife hand relaxed. She pulled the kills from the two closest snares and handed them over, then added a bundle of dried herbs from her bag.
<br /><br />
<<drop $backpack 'food' 5>>
<<pickup $backpack 'food' 3>>
<<pickup $backpack 'bandage' 1>>
<<set $player.goodwill++>>
<strong>Traded 5 food for 3 food and 1 bandage.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled">Offer food in trade <em>(need 5 food)</em></div>
<</if>>
</div>
<div id="sl_invite">
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<<set _labelInvite = 'Tell her about your settlement'>>
<<linkreplace _labelInvite>>
<<run $('#sl_trade').hide()>>
<<run $('#sl_rob').hide()>>
<<run $('#sl_capture').hide()>>
<<addmins 30>>
You described the cabin, the guesthouse, the people you had there. She listened without moving, eyes moving between you and the tree line.
<br /><br />
<<sayNpc $tmpGirl>>
You're telling me there's a real bed involved.
<</sayNpc>>
<br />
<<you>>
Real bed.
<</you>>
<br />
She was quiet for a moment. Then she started pulling her remaining snares from the ground one by one.
<br /><br />
<<sayNpc $tmpGirl>>
I've been out here alone long enough. Let me get my things.
<</sayNpc>>
<br />
<<set $tmpGirl.relationship = 35>>
<<set $player.goodwill++>>
<<run $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<include 'NPC info'>>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<</if>>
</div>
<div id="sl_rob">
<<set _labelRob = 'Rob her'>>
<<linkreplace _labelRob>>
<<run $('#sl_trade').hide()>>
<<run $('#sl_invite').hide()>>
<<run $('#sl_capture').hide()>>
<<addmins 10>>
Before she could clear the knife you grabbed her wrist and twisted it free. She stumbled back. You stripped the kills from the snares and went through her bag quickly.
<br /><br />
<<pickup $backpack 'food' 4>>
<<set $player.goodwill -= 3>>
You left her in the trees without looking back. <strong>+4 food.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<div id="sl_capture">
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit && $player.energy >= 30>>
<<set _labelCapture = 'Overpower her'>>
<<linkreplace _labelCapture>>
<<run $('#sl_trade').hide()>>
<<run $('#sl_invite').hide()>>
<<run $('#sl_rob').hide()>>
<<energy -30>>
<<set $player.goodwill -= 2>>
<<if $player.strength > $tmpGirl.strength>>
You lunged before she had the knife fully clear. The struggle was brief.
<br /><br />
<<set $tmpGirl.capture = false>>
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<addhours 2>>
<<statsAdd 'people_captured'>>
<<goto 'Basement'>>
<<else>>
She was faster than she looked. The knife came up and you took a cut across the forearm before you stumbled back — and she was gone into the trees before you could recover.
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</if>>
<</linkreplace>>
<</if>>
</div>
<</linkreplace>>
</div>
<div id="sl_leave">
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
A man sat slumped against the wall of a collapsed storefront, goods scattered across the pavement around him — cans, tools, cloth, bottlecaps. An overturned cart nearby still had one wheel spinning slowly.
<br /><br />
<center>
<<image 'places/explore/wounded_merchant.jpg'>>
</center>
<br />
He was alive. Just.
<br /><br />
<div id="wm_help">
<<set _labelHelp = 'Help him'>>
<<linkreplace _labelHelp>>
<<run $('#wm_loot').hide()>>
<<addmins 30>>
<<newguy>>
He tensed when he heard you coming, reaching for something at his side. His hand dropped when he got a look at you.
<br /><br />
<<sayNpc $tmpGuy>>
Not looking for trouble. Just need a minute to breathe.
<</sayNpc>>
<br />
You got him into a better position and used cloth from his own pack to bind the gash on his leg. When it was done he let out a long, slow breath.
<br /><br />
<<sayNpc $tmpGuy>>
You didn't have to do that. Take something — whatever you can carry. I owe you that much.
<</sayNpc>>
<br />
He nodded at the scattered goods.
<br /><br />
<div id="wm_food">
<<set _labelFood = 'Take the food and caps'>>
<<linkreplace _labelFood>>
<<run $('#wm_ammo').hide()>>
<<run $('#wm_med').hide()>>
<<pickup $backpack 'food' 5>>
<<set $player.money += 25>>
<<set $player.goodwill += 2>>
<strong>+5 food, +25 caps.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<div id="wm_ammo">
<<set _labelAmmo = 'Take the ammo and fuel'>>
<<linkreplace _labelAmmo>>
<<run $('#wm_food').hide()>>
<<run $('#wm_med').hide()>>
<<pickup $backpack 'bullet_revolver' 12>>
<<pickup $backpack 'fuel' 1>>
<<set $player.goodwill += 2>>
<strong>+12 rounds, +1 fuel.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<div id="wm_med">
<<set _labelMed = 'Take the medicine'>>
<<linkreplace _labelMed>>
<<run $('#wm_food').hide()>>
<<run $('#wm_ammo').hide()>>
<<pickup $backpack 'antibiotics' 2>>
<<pickup $backpack 'bandage' 2>>
<<set $player.goodwill += 2>>
<strong>+2 antibiotics, +2 bandages.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="wm_loot">
<<set _labelLoot = 'Loot his goods'>>
<<linkreplace _labelLoot>>
<<run $('#wm_help').hide()>>
<<addmins 10>>
He tried to grab your arm as you went through his things. You shook him off without effort.
<br /><br />
<<pickup $backpack 'food' 6>>
<<pickup $backpack 'bullet_revolver' 8>>
<<set $player.money += 20>>
<<set $player.goodwill -= 3>>
You left him on the pavement. <strong>+6 food, +8 rounds, +20 caps.</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">CITY</h1>
<<run delete $slaveId>>
<<run delete $guestId>>
<<run delete $charId>>
<<set $tmpGirlCapture = true>>
<<set $tmpGirlInvite to true>>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/abandoned_mall.jpg']]
</center>
<br /><br />
Exploring through the city you stumble upon a burnt out shopping center. While not filled with anything of day to day importance perhaps you will find something of use inside.
<br /><br />
<<linkreplace 'Explore'>>
You root around in the dim light cast from the broken atrium windows for some time before stumbling upon a an old drugstore.
<br />
While most of its contents are long looted amidst the back you find a small stash of makeup. While not useful to you, perhaps someone at your settlement could use it.
<br /><br />
<strong>You collected <strong class="iitem">1 cosmetics</strong></strong>
<<pickup $backpack 'cosmetics' 1>>
<br /><br />
<<if $player.int >= 50>>
<<linkreplace 'Listen'>>
<center>
[img[setup.ImagePath+'places/explore/abandoned_mall2.jpg']]
</center>
<br /><br />
You take a moment to observe before diving into the decrepit building. At the edge fo your hearing you only just barely make out a sniffling sound to your side in the old parking garage. Check out the noise tucked away in the corner hiding you spot a girl
<br /><br />
<<newgirl>>
<<include 'NPC info'>>
<br /><br />
<<say 'Unknown girl' setup.ImagePath+'/people/anongirl.png'>>
Please leave me alone! I am just looking for food
<</say>>
<br /><br />
<<if $backpack.count('food') >= 5>>
<<linkreplace 'Offer her food'>>
<<set _gaveFood = true>>
<<run $('#option_food').hide()>>
<<set $player.goodwill++>>
<<set $player.reputation++>>
<<drop $backpack 'food' 5>>
<<say 'Unknown girl' setup.ImagePath+'/people/anongirl.png'>>
Thank you so much sir!
<</say>>
<br /><br />
<</linkreplace>>
<<linkdesc 'option_food'>>
-5 food
<</linkdesc>>
<</if>>
/* include standard rape-attempt here? */
<<if $game.location.basement && $tmpGirlCapture && $slaves.length < $basementLimit && $player.energy >= 30>>
<<link 'Try to capture her'>>
<<if _gaveFood>>
<<set $player.reputation-->>
<</if>>
<<if $player.strength > $tmpGirl.strength>>
<<set $tmpGirl.capture = false>>
<<set $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<addhours 1>>
<<energy -30>>
<<statsAdd 'people_captured'>>
<<goto 'Basement'>>
<<else>>
<<goto 'Girl escape'>>
<</if>>
<</link>>
<</if>>
<<include 'Girl invite - include'>>
<</linkreplace>>
<</if>>
<</linkreplace>>
<<link 'Leave'>>
<<run delete $tmpGirlCapture>>
<<run delete $tmpGirlInvite>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">CITY</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/old_couple_traveling.jpg']]
</center>
<br /><br />
As you move along the ruins of the buildings, in the distance you spot an elderly couple. They appear to be very weak and are barely moving forward, seemingly famished.
<br /><br />
<<linkreplace 'Approach them'>>
Upon seeing that you are approaching them, they come to a complete stop and huddle together. The old woman presses herself against the side of the old man.
<br /><br />
<<anonguy>>
Please! Don't harm us
<</anonguy>>
<br /><br />
<div id="option1">
<<linkreplace 'Rob them'>>
<center>
[img[setup.ImagePath+'places/explore/old_couple_hand.jpg']]
</center>
<br /><br />
The old man puts his hand in his pocket and after a moment, pulls something out. With trembling hands, he reaches forward and opens his hand. In his hand, there's only a bottle cap...
<br /><br />
<div id="option3">
<<linkreplace 'Take it'>>
<<run $('#option2').hide()>>
<<set $player.goodwill -=5>>
<<set $player.money++>>
<center>
[img[setup.ImagePath+'places/explore/old_couple_cry.jpg']]
</center>
<br /><br />
After you have taken everything they had and walked a few steps away, the old woman starts crying, and both of them fall to their knees, holding each other's hands..
"<strong>That was everything we got...</strong>"
<br /><br />
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="option2">
<<if $backpack.count('food') >= 5>>
<<linkreplace 'Offer them food'>>
<<run $('#option1, #option2_desc').hide()>>
<<drop $backpack 'food' 5>>
<<set $player.goodwill++>>
<center>
[img[setup.ImagePath+'places/explore/old_couple_cry.jpg']]
</center>
<br /><br />
The woman dissolves into tears and can't stop thanking you. They both hold the food to their chests as tightly as possible, until they fall to their knees and touch foreheads, leaning on each other.
<br />
"<strong>Thank you! Thank you!</strong>"
<</linkreplace>>
<<linkdesc 'option2_desc'>>
-5 food
<</linkdesc>>
<</if>>
</div>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">OUTSIDE OF THE CITY</h1>
<br /><br />
While you were walking a few kilometers outside the city limits, you noticed a partially abandoned farmhouse where it seemed like you saw a head looking at you from one of the windows.
<br /><br />
You decided to cautiously enter and expected someone to attack you from a corner. As you walked into the next room, you started thinking that perhaps you were experiencing hallucinations, until you reached one of the end rooms...
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_old_ill_man.jpg']]
</center>
<br /><br />
In the corner of the room, near the window, there lies an old man... He appears to be barely breathing, and his skin looks like he has been exposed to a significant amount of radiation. He exhales quietly, beckoning you to come closer.
<br /><br />
You sat down next to him, and he spoke quietly but clearly, explaining that his grandson went out over a week ago to find something to eat. He understood what had likely happened after a few days. His grandson was most likely dead... And he saw no reason to live anymore, neither before nor now... But his grandson insisted and was too weak to end his life... That's why he's asking for your help.
<br /><br />
<div id="option4">
<<if Object.keys($player.companions ?? {}).length>>
<<linkreplace 'Ask your companions for advice'>>
<<set _doctors = setup.companions.getDoctors()>>
<<if _doctors.length>>
<<set _doctor = either(_doctors)>>
<<set _doctorName = _doctor.name>>
<<set _what = setup.pronounceWhat(_doctor, true)>> /* He/She */
<<if $backpack.has('food') && $backpack.has('glowing_mushroom')>>
<<=_doctorName>> suggests easing his pains for a easier transition by making a concoction of food and glowing mushrooms.
<br /><br />
<<linkreplace 'Make the concoction'>>
<<run $('#option1, #option2, #option3, #option4_cost').hide()>>
<<drop $backpack 'food' 1 'glowing_mushroom' 1>>
<<=_what>> locates what goes as the kitchen, boils water and mixes the components into a soup. Now the hard part! Will the old man accept the pain killer?
<br/><br/>
Using <<=setup.pronounceWhos(_doctor)>> best bed-side manner the old man accepts a little soup. It seems to work. He seems to breath more easily and free of pain.
<br/><br/>
A whispered thank you and the old man drifts off to sleep with a peaceful face. With a last breath the sleep becomes permanent. A death without pain is the best you can hope for in this world.
<br /><br />
<<run $('#option_end').show()>>
<</linkreplace>>
<div id="option4_cost">
<<linkdesc>>(-1 food, -1 glowing mushroom)<</linkdesc>>
</div>
<<else>>
"If we had food and glowing mushrooms we could make something to ease the pain. We have not!", says <<=_doctorName>>.
<br/><br/>
<</if>>
<<else>>
No suggestions are forthcoming!
<br/><br/>
<</if>>
<</linkreplace>>
<</if>>
</div>
<div id="option1">
<<linkreplace 'Kill him with pillow'>>
<<statsAdd 'people_killed'>>
<<set $player.goodwill -=5>>
<<run $('#option2, #option3, #option4').hide()>>
<center>
[img[setup.ImagePath+'places/explore/event_old_ill_man_pillow.gif']]
</center>
<br /><br />
You took the pillow that was standing on the chair next to the bed, raised your legs, and placed it on the old man's head. He didn't resist, but after a moment, reflexes kicked in, and he weakly struck your hands a few times. After a while, he had passed away.
<br /><br />
<<run $('#option_end').show()>>
<</linkreplace>>
</div>
<<if $backpack.has('revolver') && $backpack.has('bullet_revolver')>>
<div id="option3">
<<linkreplace 'Shoot him'>>
<<drop $backpack 'bullet_revolver' 1>>
<<statsAdd 'people_killed'>>
<<set $player.goodwill -=5>>
<<run $('#option1, #option2, #option4').hide()>>
<center>
[img[setup.ImagePath+'places/explore/eldery_man_gun.gif']]
</center>
<br /><br />
You take out your revolver from the pocket and with trembling hands aim at the old man. You fire... Silence... The entire pillow suddenly gets stained in red.
<br /><br />
<<run $('#option_end').show()>>
<</linkreplace>>
</div>
<</if>>
<div id="option2">
<<linkreplace 'Say no and leave'>>
<<run $('#option1, #option3, #option4').hide()>>
He barely manages to sit up from the bed and starts shouting at you.
<br /><br />
<strong>"YOU ARE ALL THE SAME! COWARDS! JUST LIKE JOHN! GET OUT!"</strong>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_end" style="display:none;">
<<linkreplace 'Search the house'>>
<<if setup.percentageChance(40)>>
<strong class="iitem">You found 4 .38 bullets</strong>
<<pickup $backpack 'bullet_revolver' 4>>
<<else>>
You found nothing...
<</if>>
<br /><br />
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
As you navigate through the desolate wasteland, you spot a weary group of survivors trudging forward. Among them, you notice an elderly man struggling to keep up, leaning heavily on a makeshift cane. Their face reflects both exhaustion and determination.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_elderly_man.jpg']]
</center>
<br /><br />
Approaching the group, you inquire about the elderly refugee's condition and the reasons behind their struggle to keep pace. The group reluctantly admits that they are considering leaving the elderly man behind, as their slow pace threatens the group's chances of survival.
<br /><br />
<<if $guests.length < $guesthouseLimit && ($game.location.guesthouse ?? false)>>
<<linkreplace 'Offer him to come live with you'>>
<<run $('#option1').hide()>>
<<newguy>>
<<set $tmpGuy.birthDate = setup.getBirthDate(55)>>
<<run $guests.push($tmpGuy)>>
<<run setup.npc.addHistory($tmpGuy, 'invited')>>
Overwhelmed with gratitude, the elderly refugee's eyes well up with tears. They offer a frail yet appreciative smile, reaching out to you for support.
<br /><br />
<<anonguy>>
Thank you, kind soul. Your compassion gives me hope in these dark times. I will do my best to keep up and not burden you. Please, lead the way, and I will follow with all the strength I have left
<</anonguy>>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<</if>>
<div id="option1">
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_enslaved_huts.jpg']]
</center>
<br /><br />
You decide to turn off the main road of the city and pay a visit to a place where there used to be a beautiful park with a forest in the middle. As you travel you run into something unexpected. Two self-made huts stand before you, with bonfires ajacent. But you also overhear some sounds coming from behind them.
<br /><br />
<<linkreplace 'Explore them'>>
<<video 'explore/event_enslaved_village1'>>
<br /><br />
You slowly walk along the edge of one of the huts until you notice a woman tied to a hook behind the planks.
<br /><br />
<<linkreplace 'Continue to explore'>>
<<video 'explore/event_enslaved_village2'>>
<br /><br />
Not too certain as to what's going on here or if someone's near who'd take issue with your presence, you decide to leave the woman hanging for the time being and approach the other hut. As soon as you walk around the corner, the sight is truly horrifying. You find another woman, is tied up with her legs spread apart. Only her lower body is visible, protruding through a hole in the wall.
It's too dehumanising, even for what you've seen so far.
<br /><br />
<<anongirl>>
Hello? Is someone there? Please help us, please! They'll soon will be back!
<</anongirl>>
<br /><br />
We? So the hanging girl is alive then. You honestly wasn't too certain, and was going to check later.
<<linkreplace 'Help them'>>
<<set $player.goodwill++>>
<<run $('#option1').hide()>>
<<video 'explore/event_enslaved_village4'>>
<br /><br />
<<anongirl>>
Thank you so much mister! How can we repay to you?
<</anongirl>>
<br /><br />
<<linkreplace 'Tell her to suck you off'>>
<<video 'explore/event_enslaved_village3'>>
<br /><br />
Without hesitation, she throws herself on her knees. It seems that whatever they've experienced in this place was so harrowing that demanding a blowjob from her doesn't even cross this woman's mind as being too far.
<br /><br />
<<if ($slaves.length + 2) <= $basementLimit && ($game.location.basement ?? false)>>
<<link 'Capture both of them as slaves'>>
<<newgirl>>
<<set
$tmpGirl.relationship = 12,
$tmpGirl.birthDate = setup.getBirthDate(21),
$tmpGirl.beauty = randomInteger(50,70)
>>
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<newgirl>>
<<set
$tmpGirl.relationship = 10,
$tmpGirl.birthDate = setup.getBirthDate(21),
$tmpGirl.beauty = randomInteger(50,70)
>>
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<goto 'Basement'>>
<</link>>
<</if>>
<</linkreplace>>
<<if ($guests.length + 2) <= $guesthouseLimit && ($game.location.guesthouse ?? false)>>
<<link 'Invite them both as guests'>>
<<newgirl>>
<<set
$tmpGirl.relationship = 60,
$tmpGirl.birthDate = setup.getBirthDate(21),
$tmpGirl.beauty = randomInteger(50,70)
>>
<<run $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<newgirl>>
<<set
$tmpGirl.relationship = 55,
$tmpGirl.birthDate = setup.getBirthDate(21),
$tmpGirl.beauty = randomInteger(50,70)
>>
<<run $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<goto 'Guest house'>>
<</link>>
<</if>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<div id="option1">
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">FOREST</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/lost_child3.jpg']]
</center>
<br />
Upon seeing the child, the woman bursts into tears of relief and runs to embrace the child. The man follows, his eyes moist with gratitude.
<br /><br />
<<newgirl>>
<<newguy>>
<<set $tmpGirl.virgin = false>>
<<set $tmpGirl.birthDate = setup.getBirthDate(randomInteger(20, 30))>>
<<set $tmpGuy.birthDate = setup.getBirthDate(randomInteger(20, 30))>>
<<sayNpc $tmpGirl>>
Thank you so much!
<</sayNpc>>
<br />
<<sayNpc $tmpGuy>>
We thought we had lost our child forever. Please, take this as a token of our gratitude.
<</sayNpc>>
<br />
He hands you a small, intricately carved wedding ring.
<br /><br />
<div id="option_accept">
<<linkreplace 'Accept the ring'>>
<<run $('#option_demand, #option_house').hide()>>
As you put ring into your pocket the family departs, and you feel a sense of accomplishment.
<br /><br />
<strong>You got 1 <strong class="iitem">wedding ring</strong></strong>
<<pickup $backpack 'wedding_ring' 1>>
<br /><br />
<</linkreplace>>
</div>
<div id="option_demand">
<<linkreplace 'Demand sexual favor'>>
<<run $('#option_accept, #option_house').hide()>>
<<you>>
I've done my part. Now, I expect something in return. From you.
<</you>>
<br />
You finish your sentence, looking directly at the mother.
<br />
The parents' expressions shift from gratitude to horror.
The mother looks at you with disgust and fear. The father steps in front of her protectively, his face hardening with resolve.
<br /><br />
<<sayNpc $tmpGuy>>
You can take our things, but you won't take our dignity.
<</sayNpc>>
<br />
The child steps back few steps and is ready to run away.
<br /><br />
<<link 'Fight'>>
<<set $enemies = [
$tmpGuy,
$tmpGirl
]>>
<<fight $enemies 'Outside' 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<<if ($game.location.guesthouse ?? false) && ($guests.length + 2) < $guesthouseLimit>>
<div id="option_house">
<<linkreplace 'Invite them to live with you'>>
<<run $('#option_accept, #option_demand, #option_settlers').hide()>>
<<set $player.goodwill++>>
<<set _father = $tmpGuy>>
<<set _mother = $tmpGirl>>
<<newguy>>
<<set _children = $tmpGuy>>
<<set _children.birthDate = setup.getBirthDate(8)>>
<<set _mother.birthDate = setup.getBirthDate(randomInteger(24, 30))>>
<<set _father.birthDate = setup.getBirthDate(randomInteger(24, 30))>>
<<set _children.virgin = true>>
<<set _children.family = {
mother: _mother.id,
father: _father.id
}>>
<<set _father.family = {
wives: [_mother.id],
kids: [
_children.id
]
}>>
<<set _mother.family = {
husband: _father.id,
kids: [
_children.id
]
}>>
<<run $guests.push(_mother)>>
<<run setup.npc.addHistory(_mother, 'invited')>>
<<run $guests.push(_father)>>
<<run setup.npc.addHistory(_father, 'invited')>>
<<run setup.npc.addHistory(_children, 'invited')>>
<<if ($game.location.nursery ?? false)>>
<<run $nursery.push(_children)>>
<<else>>
<<run $guests.push(_children)>>
<</if>>
The mother, still holding her child close, looks at you with tearful eyes.
<br /><br />
<<sayNpc $tmpGirl>>
Thank you. We didn't know if we could trust anyone out here, but you've given us hope.
<</sayNpc>>
<br />
The father steps forward, extending his hand.
<br /><br />
<<sayNpc _father>>
You have no idea what this means to us. We'll do whatever we can to help. Thank you for giving us a chance.
<</sayNpc>>
<br />
<</linkreplace>>
</div>
<</if>>
<<if setup.baseManagement.population.hasFreeHouse()>>
<div id="option_settlers">
<<link 'Invite them as settlers'>>
<<run $('#option_accept, #option_demand, #option_house').hide()>>
<<set $player.goodwill += 2>>
<<set _father = $tmpGuy>>
<<set _mother = $tmpGirl>>
<<newguy>>
<<set _children = $tmpGuy>>
<<set _children.birthDate = setup.getBirthDate(8)>>
<<set _mother.birthDate = setup.getBirthDate(randomInteger(24, 30))>>
<<set _father.birthDate = setup.getBirthDate(randomInteger(24, 30))>>
<<set _children.virgin = true>>
<<set _children.family = {
mother: _mother.id,
father: _father.id
}>>
<<set _father.family = {
wives: [_mother.id],
kids: [_children.id]
}>>
<<set _mother.family = {
husband: _father.id,
kids: [_children.id]
}>>
<<set $settlers = [_mother, _father]>>
<<set $player.baseManagement ??= {}>>
<<if ($game.location.nursery ?? false)>>
<<run $nursery.push(_children)>>
<<else>>
<<set $player.baseManagement.settlers = ($player.baseManagement.settlers ?? 0) + 1>>
<</if>>
<<set $tmpGirl = _mother>>
<<goto 'New settlers'>>
<</link>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br /><br />
As you venture through the desolate forest, you suddenly hear a sound—a cry emanating from the nearby bushes. You cautiously scan your surroundings, but you see no one. However, this absence of visible presence does not necessarily guarantee that it is not an ambush.
<br /><br />
<<linkreplace 'Investigate'>>
<<run $('#option1').hide()>>
You slowly approach the bushes and gently push them aside to see what hides behind them.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/lost_child1.jpg']]
</center>
<br /><br />
You see frightened and disheveled child. He appear to be lost and hungry. His eyes widen with hope as they spot you.
<br />
<strong>Child: "Excuse me, sir/madam. Are you here to help me? I'm lost, and I can't find my parents. I'm really hungry too. Do you have any food?"</strong>
<br /><br />
You notice the child's ragged clothes and unkempt appearance, his vulnerability tugging at your heartstrings
<br /><br />
<div id="option_food">
<<if $backpack.has('food')>>
<<linkreplace 'Give him food'>>
<<set _giveFood = true>>
<<run $('#option2_desc').hide()>>
<<drop $backpack 'food' 1>>
<center>
[img[setup.ImagePath+'places/explore/lost_child2.jpg']]
</center>
<br /><br />
You take out a piece of food and hand it to him. You notice joy in his eyes, and he immediately lunges at the food as if he had never eaten before.
<br /><br />
<</linkreplace>>
<div id="option2_desc">
<<linkdesc>>-1 food<</linkdesc>>
</div>
<</if>>
</div>
<div id="option_yes">
<<linkreplace 'Help him find his parents'>>
<<if !_giveFood>>
<<run $('#option_food').hide()>>
<</if>>
<<addhours 4>>
<<run $('#option_no').hide()>>
<center>
[img[setup.ImagePath+'places/explore/lost_child3.jpg']]
</center>
<br /><br />
You spend a couple of hours walking together through the quiet forest, trying to coax any information from him about where his parents might be or at least the last place they were all together. After a while, you finally notice a couple in the distance, and he simply rushes towards them, calling out, <strong>"Mom, Dad..."</strong>
<br /><br />
<<link 'Approach them'>>
<<goto 'Explore event: The Lost Child approach parents'>>
<</link>>
<<link 'Leave'>>
<<set $player.goodwill++>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_no">
<<linkreplace "Do not help him find his family">>
<<set $player.goodwill -= 5>>
<<run $('#option_yes').hide()>>
He starts crying but doesn't say a word to you. After a moment, he collapses back onto the ground, tears streaming down his face, and closes his eyes tightly.
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<div id="option1">
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">FOREST</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_tits_bar.jpg']]
</center>
<br /><br />
Venturing through the desolation of the post-apocalyptic world, you found yourself lost amidst the twisted remains of what used to be a thriving town. The air was thick with an eerie silence, broken only by the faint sound of the wind rustling through the skeletal structures. As the sun dipped below the horizon, casting long shadows over the wasteland, you stumbled upon an incongruous sight: a dimly lit bar standing isolated in the midst of nowhere.
<br /><br />
<<video 'explore/event_tits_bar1'>>
<br /><br />
Curiosity piqued, you cautiously approached the establishment. Its façade was weathered, the sign above the entrance barely readable, spelling out "The Tits Bar" in fading letters. Door was locked but you noticed a door bell. You pressed it...
<br /><br />
<<video 'explore/event_tits_bar2'>>
<br /><br />
After a moment, the door opened. From it emerged an older-year woman, with bare breasts. Without saying anything, she unlocked the door and let you in.
<br />
The interior took you by surprise. A bar. A damn bar in the middle of nowhere. You carefully looked around to see if you were drawing any unnecessary attention, but it seemed that no one even noticed that you had entered.
<br /><br />
<<linkreplace 'Sit down'>>
<<video 'explore/event_tits_bar3'>>
<br /><br />
You sat down in the only available seat, directly facing the stage. After a moment, the song ended and the next one began. A woman emerged from the adjacent room. For a moment, you thought your eyes were playing tricks on you, but no - she had three breasts. She noticed you and after a while, she approached and without saying anything, began dancing in front of you.
<br /><br />
<<anongirl>>
For 50 caps I might let you have fun with them in other room.
<</anongirl>>
<br /><br />
<<if $player.money >= 50>>
<<linkreplace 'Pay her'>>
<<set $player.money -= 50>>
<<video 'explore/event_tits_bar4'>>
<br /><br />
She grabbed you by the hand and led you into the adjacent room. She didn't allow you to touch her, but she herself got down on her knees and took your belongings into her mouth.
<br /><br />
<<linkreplace 'Fuck her'>>
<<video 'explore/event_tits_bar5'>>
<br /><br />
She didn't even consider taking off her own clothes. It seems you're just another one of her clients. It appears she's enjoying herself as well. Especially when you unexpectedly thrust your dick deeper into her pussy.
<br /><br />
<<linkreplace 'Cum on her breasts'>>
<<horny_reset>>
<<video 'explore/event_tits_bar6'>>
<br /><br />
She knelt on the floor in front of you and with an intriguing gaze, observed as you glanced at her three breasts. It didn't seem like anything new to her.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</if>>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><<set $player.stats.waterfall ??= {
visits: 0,
tricked: 0,
losts: 0,
wins: 0
}>>
<<set _weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][$gameDate.getDay()]>>
/* mc joke. The old swedish name for Saturday means something like washing day */
<<if !$player.stats.waterfall.visits ||
( _weekday === 'Saturday' && setup.percentageChance(100-$player.stats.waterfall.visits))>>
<<include 'Explore event: Waterfall'>>
<<else>>
<h1 class="ptitle">FOREST</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/waterfall_girl.jpg']]
</center>
<br /><br />
As you make your way through an area of the wilderness you hear the faint sounds of
flowing water. Moving closer you come upon a waterfall.<br/>
The kind of waterfall that isn't complete without a water nymph bathing. Is there one?
<br /><br />
With a sense of déjà vu you remember another waterfall with a girl as bait to draw you in and then the ambush...<br/>
<<if $player.stats.waterfall.wins>>
... And the win.
<<elseif $player.stats.waterfall.tricked || $player.stats.waterfall.losts>>
... And the bumps on the head and being plundered.
<</if>>
<br /><br />
You draw closer to the waterfall. Unfortunately nobody is home.
<br /><br />
At least there seems to be fish in the little creek that runs off the pond from under the waterfall. Perhaps not a wasted exploration.
<br /><br />
<<linkreplace 'Go fishing'>>
You <<=setup.companions.count() ? 'and your companions ' : ''>> decide to fish with make-shift rods.
<br /><br />
Success - of sorts! The world ended but plastic remains forever? You hook <strong class="iitem">5 plastic</strong> but no fish.
<<pickup $backpack 'plastic' 5>>
<br /><br />
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</if>>
/* drunk, add to fight */
/*
monday stew pan, leftovers
tuesday fish -- raggmunk= potato pancake, fisk=onsdag
wednesday
thursday pea soup with pork
friday meat
saturday
sunday
*/<h1 class="ptitle">FOREST</h1>
<<set $player.stats.waterfall.losts++>>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/waterfall_wakeup.webp']]
</center>
<br /><br />
Next thing you know the world spins violently and the ground rushes up to meet your face.
Consciousness returns slowly. It brings with it a splitting headache and a litany of pain as your
naked body is covered in scrapes and bruises. The beautiful woman and her hidden compatriots
are long gone and have taken what they wanted from your pack. Thankfully they didn't bother
stealing your clothes
<br /><br />
<<if $backpack.has('knife')>>
<<drop $backpack 'knife' 1>>
You lost <strong class="iitem">1 knife</strong><br />
<</if>>
<<set _lostFood = Math.min($backpack.count('food'), 100)>>
<<if _lostFood>>
<<drop $backpack 'food' _lostFood>>
You lost <strong class="iitem"><<=_lostFood>> food</strong><br />
<</if>>
<<set _lostPlastic = Math.min($backpack.count('plastic'), 100)>>
<<if _lostPlastic>>
<<drop $backpack 'plastic' _lostPlastic>>
You lost <strong class="iitem"><<=_lostPlastic>> plastic</strong><br />
<</if>>
<<set _lostMoney = Math.min($player.money, 200)>>
<<if _lostMoney>>
You lost <strong class="iitem"><<=_lostMoney>> caps</strong>
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<<set $player.stats.waterfall.wins++>>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/waterfall_swim.webp']]
</center>
<br /><br />
In front of the girls' eyes, the guys have fallen to the ground, and shock appears. She jumps back into the water and tries to swim in the opposite direction, but you manage to jump after her and grab her by the hair.
<br /><br />
<<newgirl>>
<<set
$tmpGirl.birthDate = setup.getBirthDate(19),
$tmpGirl.beauty = 99,
$tmpGirl.traits = setup.getRandomTraits($tmpGirl, 3),
$tmpGirl.race = 'white'
>>
<<unset $slaveId, $guestId, $charId>>
<<include 'NPC info'>>
<br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*yanks against your grip frantically, then cowers, shoulders dropping, breath coming hard, watching you with full attention*</em></div>
</div>
</div>
<<else>>
<<anongirl>>
Please let me go! It was their idea! Please!
<</anongirl>>
<</if>>
<br />
<br />
<center>
[img[setup.ImagePath+'places/explore/waterfall_eyes.webp']]
</center>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
She holds very still, eyes wide with a helpless expression. Her gaze drops to your cock and back up to your face, unable to hide her animal curiosity.
<<else>>
Her eyes are filled with a pleading, puppy-like expression, as she hopes for your leniency to let her go; every now and then, she shyly averts her gaze but can't help stealing glances at your dick.
<</if>>
<br /><br />
<<linkreplace 'Fuck her'>>
You unzip your pants and press her down on her knees. She instantly understands what you want it and doesn't resist you because she knows she has no way out
<br /><br />
<<video 'explore/waterfall1'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*goes rigid as you push her down to her knees, sniffing pliantly at your cock*</em></div>
</div>
</div>
<<else>>
<<anongirl>>
Okay! I'll do what you want but after that I am gommmmmhmhhhmhmh
<</anongirl>>
<</if>>
<br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
Instead of waiting for her to act, you take over — gripping her head and fucking her mouth yourself
<<else>>
Instead of letting her suck your hard cock, you catch her by surprise and fuck her mouth instead
<</if>>
<br /><br />
<<video 'explore/waterfall4'>>
<br /><br />
After a while, you turn her around and she ends up on her knees. Without emotions, you embed yourself in her as deeply as you can, and as you pick up the pace, you notice for a brief moment that she enjoys this moment so much that her eyes become uncontrollable.
<<addmins 30>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*lets out a raw, startled cry as you push inside, then her hips start moving on their own, pushing back into each thrust*</em></div>
</div>
</div>
<<else>>
<<anongirl>>
Just please! Let me go after all of this is don-- HOLY SHIT
<</anongirl>>
<</if>>
<br />
<<video 'explore/waterfall5'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
Her eyes go glassy, legs spreading wider on their own — body fully given over to it, open and taking you eagerly.
<<else>>
Her eyes become uncontrollable but she tries to hide it and pretends as if she finds it disgusting. She relaxes her legs and opens them even wider, almost performing a split.
<</if>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*grabs your wrist and pulls back, her body language clear: not inside*</em></div>
</div>
</div>
<<else>>
<<anongirl>>
Not inside me! Let me swallow it!
<</anongirl>>
<</if>>
<br />
<<video 'explore/waterfall6'>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
She drops to her knees and takes you straight into her mouth, her hand working you with focused intent until you cum into her open mouth. She swallows, wipes her mouth, and meets your eyes.
<<else>>
She pushes herself away from you and drops to her knees in front of you. Without waiting a moment, she grabs your dick and takes the tip of it into her mouth, as she quickly continues to jerk you off.
<br />
After some seconds you cum right in her mouth and she... swallows it all... Unexpected..
<</if>>
<br /><br />
<<horny_reset>>
<</linkreplace>>
<<if (($game.location.basement ?? false) && $slaves.length < $basementLimit)>>
<<link 'Capture her'>>
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<statsAdd 'people_captured'>>
<<goto 'Basement'>>
<</link>>
<</if>>
<<link 'Let her go and leave'>>
<<set $player.reputation++>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/waterfall_girl.jpg']]
</center>
<br /><br />
As you make your way through a area of the wilderness you hear the faint sounds of
flowing water. Moving closer you come upon a waterfall.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/waterfall_girl.webp']]
</center>
<br /><br />
Continue to walking closer you notice a beautiful woman bathing in the small waterfall. Her
remarkably smooth skin and toned body suggest that she is healthy and has been eating well,
unlike the starving wretches you have previously seen.
<br />
Either she's horny or the water is a bit cold, because her nipples are hard and her face is
flushed. With great difficulty you take your eyes off her and carefully survey the area. Nobody
else is visible. Female clothes are drying on a nearby rock. The woman appears to be bathing
alone.
<br />
Your swelling cock is making wearing pants increasingly uncomfortable.
<<horny 100>>
<br /><br />
<<set $player.stats.waterfall ??= {
visits: 0,
tricked: 0,
losts: 0,
wins: 0
}>>
<<set $player.stats.waterfall.visits++>>
<<if recall($suppCode)>>
<div id="option1">
<<linkreplace 'Strip and join her in the waterfall'>>
<<run $('#option2, #option3, #option1_desc').hide()>>
Who needs a better invitation than a naked soon-to-be slave? You walk towards the waterfall
while shedding your gear and clothes. The woman finally notices you when you step into the
water a few feet away from her.
Half expecting her to make a run for it, you flex and pose so she can see that neither fight nor
flight would be successful. Instead she smiles coyly, arches her back, and bites her lower lip
before speaking. She purrs gazing at your fully
erect cock.
<br /><br />
<<anongirl>>
I'm cold and my clothes are all wet. Could you warm me up?
<</anongirl>>
<br /><br />
<<set _dejavu = $player.int < 50 && setup.percentageChance($player.stats.waterfall.tricked)>>
<<if _dejavu>>
You walk forward ready to embrace this water goddess when you get a sense of déjà vu. You remember another waterfall, another water goddess, a bump on your head and being robbed blind.<br/>
That can happen when the brain between the legs are in control!
<br/><br/>
<</if>>
<<if $player.int < 50 && !_dejavu>>
<<set $player.stats.waterfall.tricked++>>
<center>
[img[setup.ImagePath+'places/explore/waterfall_handjob.webp']]
</center>
<br /><br />
You walk forward and embrace this water goddess, eager to fuck the daylights out of her.
Tracing your calloused hands over her full tits and perky ass produces sultry moans and playful
giggles. She absolutely feels as delicious as she looked. Her delicate fingers wrap around your
painfully hard erection and she uses your cock like a joystick to guide you over towards the flat
grassy bank. All your attention is focused on her as she slides onto all fours and wriggles her
ass at you in unmistakeable invitation to fuck her.
<br /><br />
<<linkreplace 'Fuck her'>>
<<run setup.blinkScreen()>>
<center>
[img[setup.ImagePath+'places/explore/waterfall_wakeup.webp']]
</center>
<br /><br />
<strong>Intelligence failed!</strong>
<br /><br />
Next thing you know the world spins violently and the ground rushes up to meet your face.
Consciousness returns slowly. It brings with it a splitting headache and a litany of pain as your
naked body is covered in scrapes and bruises. The beautiful woman and her hidden compatriots
are long gone and have taken what they wanted from your pack. Thankfully they didn't bother
stealing your clothes
<br /><br />
<<if $backpack.has('knife')>>
<<drop $backpack 'knife' 1>>
You lost <strong class="iitem">1 knife</strong><br />
<</if>>
<<set _lostFood = Math.min($backpack.count('food'), 100)>>
<<if _lostFood>>
<<drop $backpack 'food' _lostFood>>
You lost <strong class="iitem"><<=_lostFood>> food</strong><br />
<</if>>
<<set _lostPlastic = Math.min($backpack.count('plastic'), 100)>>
<<if _lostPlastic>>
<<drop $backpack 'plastic' _lostPlastic>>
You lost <strong class="iitem"><<=_lostPlastic>> plastic</strong><br />
<</if>>
<<set _lostMoney = Math.min($player.money, 200)>>
<<if _lostMoney>>
You lost <strong class="iitem"><<=_lostMoney>> caps</strong>
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<<else>>
You walk forward and embrace this water goddess, eager to fuck the daylights out of her.
<br />
Suddenly she screams <strong>"NOW"</strong>! When you turn around you see 2 big guys rushing at you.
<br /><br />
You leap away from the naked woman and snatch up your weapon. You may be naked, but at
least you had time to arm yourself. Seeing that the charade is over several men spring from
their concealment and attack you.
<br /><br />
<<link 'Fight'>>
<<set $enemies = []>>
<<set _count = Math.clamp($player.stats.waterfall.wins - $player.stats.waterfall.losts, 2, 6)>>
<<for _i to 0; _i lt _count; _i++>>
<<newguy>>
<<set $tmpGuy.strength = randomInteger(50,100)>>
<<run $enemies.push($tmpGuy)>>
<</for>>
<<fight $enemies 'Explore event: Waterfall won' 'Explore event: Waterfall lost'>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<<else>>
<<notPatreon>>
<br /><br />
<</if>>
<div id="option3">
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_mysterious_illness_settlement.jpg']]
</center>
<br /><br />
While walking through a place where a small village used to be, you come across a small group of people. Some of them have homemade face masks on, while others appear to have their skin peeling off their faces. You approach them, maintaining a safe distance, and they tell you that they have all been affected by some kind of illness over the past month. There is not a single healthy person among them...
<br /><br />
<<if $backpack.has('antibiotics')>>
<<linkreplace 'Give them bottle of antibiotics'>>
<<drop $backpack 'antibiotics' 1>>
<<set $player.goodwill++>>
<center>
[img[setup.ImagePath+'places/explore/event_mysterious_illness_settlement_thanks.jpg']]
</center>
<br /><br />
A woman, upon seeing you giving the bottle of antibiotics to them, suddenly rush towards you, hugging you and praising you, mentioning that you are the reason why her children will be able to live a few more days.
<br /><br />
<</linkreplace>>
<</if>>
<<link 'Leave'>>
<<goto 'Outside'>>
<<set $player.goodwill-->>
<</link>><h1 class="ptitle">CITY</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_toxic_waste.jpg']]
</center>
<br /><br />
<<set _companionNames = []>>
<<set _companionFirst = null>>
<<for _eventCompanionI, _eventCompanion range $player.companions>>
<<set _companion = setup.companionGet(_eventCompanionI)>>
<<run _companionNames.push(_companion.name)>>
<<if !_companionFirst>>
<<set _companionFirst = _companion>>
<<set _companionFirstKey = _eventCompanionI>>
<</if>>
<</for>>
<<set _pronounceWhat = setup.pronounceWhat(_companionFirst)>>
<<set _pronounceWhos = setup.pronounceWhos(_companionFirst)>>
<<set _pronounceWho = setup.pronounceWho(_companionFirst)>>
Together with <strong><<=_companionNames.join(', ')>></strong> you decide to walk past a chemical factory.
<br />
As you approach, you smell a strong and sharp odor, but it's unclear what it really is.
<br />
A moment later, you decide not to get any closer, but unexpectedly <strong><<=setup.displayName(_companionFirst)>></strong> slips and falls into a nearby ditch.
<br />
<strong><<=setup.displayName(_companionFirst)>></strong> is completely wet because <<=_pronounceWhat>> fell face-first into some yellow liquid. Strange-looking barrels are everywhere around.
<br /><br />
<<set _linkName = 'Ask if ' + _pronounceWhat + ' is okay'>>
<<linkreplace _linkName>>
<<=_pronounceWhat.toUpperFirst()>> wiped <<=_pronounceWhos>> face off from
the unknown liquid and said that <<=_pronounceWhat>> was fine. However, after a while, <<=_pronounceWhat>> started to feel nauseous and began to vomit.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_' + (_companionFirst.gender === 1 ? 'guy' : 'girl') + '_vomit.webp']]
</center>
<br /><br />
<<if $backpack.has('antibiotics')>>
You start to look into your backpack and lucky you find <strong>antibiotics</strong>.
<br /><br />
<<set _linkName = 'Give it to ' + _pronounceWho>>
<<linkreplace _linkName>>
<<drop $backpack 'antibiotics' 1>>
<<run $('#option1').hide()>>
<<=_pronounceWhat.toUpperFirst()>> took antibiotics, but the vomiting persisted... After approximately 20 minutes, however, everything calmed down,
and <<=_pronounceWhat>> started to feel better. You decided to return home.
<br /><br />
<<link 'Go back home'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
<div id="option1">
<<set _linkName = 'Leave ' + _pronounceWho + ' to die'>>
<<link _linkName>>
<<companionRemove _companionFirstKey>>
<<goto 'Outside'>>
<</link>>
</div>
<<else>>
You start to look into your backpack but you can't find anything that could help <<=_pronounceWhos>>...
<br />
<strong>The only choice is to leave <<=_pronounceWho>> to die here alone</strong>
<br /><br />
<<set _linkName = 'Leave ' + _pronounceWho + ' to die'>>
<<link _linkName>>
<<companionRemove _companionFirstKey>>
<<goto 'Outside'>>
<</link>>
<</if>>
<</linkreplace>><h1 class="ptitle">CITY</h1>
<br /><br />
As you roamed through the desolate ruins of the city, its once vibrant streets now reduced to debris and decay, a chilling silence hung heavy in the air.
<br />
Every step echoed, reminding you of the world that was lost. Amidst the broken buildings and crumbling structures, you became acutely aware of your solitude.
<br /><br />
But then, a distant howl pierced through the stillness. It was haunting, yet strangely alluring. You turned your gaze towards the source of the sound and saw a pack of wolves emerge from the shadows, their eyes gleaming with a fierce hunger. They moved gracefully, their presence a stark reminder of the tenacity of life in this barren wasteland.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/wolves.jpg']]
</center>
<br /><br />
For a moment, time stood still as you locked eyes, neither predator nor prey. There was a primal understanding between you, an unspoken acknowledgment of survival in a world stripped bare.
<br /><br />
<<if $player.int > 20 && setup.percentageChance(30)>>
<<if settings.transEnabled>>
<<set _gRoll = random(1, 100)>>
<<if _gRoll <= 70>>
<<newgirl>>
<<set $wFeralGender = 0>>
<<set $tmpGirl.strength = random(35, 60)>>
<<elseif _gRoll <= 90>>
<<newguy>>
<<set $tmpGirl = $tmpGuy>>
<<set $wFeralGender = 1>>
<<set $tmpGirl.strength = random(40, 65)>>
<<else>>
<<newtransgirl>>
<<set $wFeralGender = 2>>
<<set $tmpGirl.strength = random(35, 60)>>
<</if>>
<<else>>
<<if random(1, 100) <= 75>>
<<newgirl>>
<<set $wFeralGender = 0>>
<<set $tmpGirl.strength = random(35, 60)>>
<<else>>
<<newguy>>
<<set $tmpGirl = $tmpGuy>>
<<set $wFeralGender = 1>>
<<set $tmpGirl.strength = random(40, 65)>>
<</if>>
<</if>>
<<set $tmpGirl.traits = [...new Set(($tmpGirl.traits ?? []).concat(['feral']))]>>
<<set $tmpGirl.skills = ($tmpGirl.skills ?? []).filter(s => ['woodcraft', 'scavenger', 'fighter'].includes(s))>>
<<set $tmpGirl.washDays = 0>>
<<set $tmpGirl.washBeauty = 0>>
<<set $tmpGirl.location = 'forest'>>
<<set $tmpGirl.likesGuys = true>>
<<set $tmpGirl.corruption = Math.max(($tmpGirl.corruption ?? 0), 70)>>
<<set $tmpGirl.sub = Math.max(($tmpGirl.sub ?? 0), 70)>>
<<set $tmpGirl.anal = Math.max(($tmpGirl.anal ?? 0), 20)>>
<<if $wFeralGender == 1>>
<<set $tmpGirl.traits = [...new Set($tmpGirl.traits.concat(['analslut', 'pacifist']))]>>
<<set $tmpGirl.traits = [...new Set($tmpGirl.traits.concat([either('nymphomaniac', 'crippled', 'masochist')]))]>>
<<else>>
<<set $tmpGirl.traits = [...new Set($tmpGirl.traits.concat(['nymphomaniac']))]>>
<<if ($tmpGirl.traits).includes('infertile')>>
<<set $tmpGirl.traits = [...new Set($tmpGirl.traits.concat([either('masochist', 'analslut', 'hoarder')]))]>>
<<else>>
<<set $tmpGirl.traits = [...new Set($tmpGirl.traits.concat([either('breeder', 'masochist', 'analslut', 'hoarder')]))]>>
<</if>>
<</if>>
<<set $wFeral = clone($tmpGirl)>>
<</if>>
<<if $wFeral>>
You study the pack before committing. Most of them read right — low bodies, shared attention, moving as a unit. But something at the margin doesn't quite fit the pattern the others are working around.
<br /><br />
<</if>>
<div id="w_attack">
<<linkreplace 'Attack them'>>
<<run $('#w_watch, #w_leave').hide()>>
<<set _wolvesKilled = 0>>
<<if $player.strength > 200 && setup.percentageChance(90)>>
<<set _wolvesKilled = 3>>
<<elseif $player.strength > 150 && setup.percentageChance(70)>>
<<set _wolvesKilled = 3>>
<<elseif $player.strength > 100 && setup.percentageChance(60)>>
<<set _wolvesKilled = 2>>
<<elseif $player.strength > 50 && setup.percentageChance(30)>>
<<set _wolvesKilled = 1>>
<</if>>
But your bravado was short-lived. The wolves, sensing my aggression, quickly circled and closed in on me with a ferocity that left me paralyzed with fear. Their fangs gleamed under the pale sunlight, and their eyes burned with an intensity that matched their predatory instincts.
<br /><br />
With a swift and coordinated attack, they lunged at me, tearing through my feeble defenses.
They left you bleeding in the middle of the streets...
<br /><br />
<<if _wolvesKilled>>
You managed to kill _wolvesKilled of them.
<br /><br />
<<pickup $backpack 'pelt_wolf' _wolvesKilled>>
<<pickup $backpack 'food' _wolvesKilled>>
<strong class="iitem">You collected <<=_wolvesKilled>> wolf pelt<<=(_wolvesKilled > 1 ? 's' : '')>></strong>
<br /><br />
<</if>>
<<if _wolvesKilled < 3>>
<<perkAdd 'bleeding'>>
<</if>>
<<if setup.percentageChance(40) && Object.keys($player.companions ?? {}).length > 0>>
<<set _eventCompanionKey = Object.keys($player.companions)[0]>>
<<set _npc = setup.companionGet(_eventCompanionKey)>>
As you bleed out you notice that few of the wolves have torn apart <<=setup.displayName(_npc)>> body and are dragging <<=setup.pronounceWhos(_npc)>> away while leaving a trail of blood behind them.
<<companionRemove _eventCompanionKey>>
<br /><br />
<</if>>
<<link 'Leave'>>
<<unset $wFeral, $wFeralGender>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<<if $wFeral>>
<div id="w_watch">
<<linkreplace 'Watch quietly'>>
<<run $('#w_attack, #w_leave').hide()>>
As you hold your ground and look closer, one of them isn't moving like a wolf. <<if $wFeralGender != 1>>She stands<<else>>He stands<</if>> — upright, holding <<if $wFeralGender != 1>>her<<else>>his<</if>> ground with the patient stillness of something that's learned to be still from the animals around <<if $wFeralGender != 1>>her<<else>>him<</if>>. <<if $wFeralGender != 1>>A girl<<else>>A boy<</if>>, or what was once one — watching you back with eyes that know what you are.
<br /><br />
[[Get a closer look|Explore event wolves feral]]
<<link 'Keep walking'>><<unset $wFeral, $wFeralGender>><<goto 'Outside'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="w_leave">
<<link 'Leave them'>>
<<unset $wFeral, $wFeralGender>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
<<set $tmpGirl = $wFeral>>
<<set _identItem = either('a cracked locket with a name etched inside', 'a hospital ID bracelet worn nearly to illegibility', 'a strip of cloth with a name written in faded marker, knotted around the wrist')>>
<<if $wFeralGender != 1>>
She moves like she grew up low to the ground — weight always forward, never going still the way people go still, just present the way animals are. Her hair is knotted with strips of hide and small bones. She reads the space around her without looking at anything directly, until she looks at you. The wolves give her room in the way they give each other room — not like a tolerated stranger at the margins, but like a member of the pack who happened to turn out different.
<<else>>
He carries himself with the economy of something that's learned to waste nothing. He stands at the pack's edge and watches you with a flat, unhurried patience — the kind that waits for something to change before committing to anything. The wolves around him aren't watching him the way they watch a stray. They've stopped doing that the way you stop watching something you trust.
<</if>>
<br /><br />
You notice <<=_identItem>>. The name reads: <strong><<=setup.displayName($wFeral)>></strong>.
<br /><br />
<<include 'NPC info'>>
<br /><br />
<div id="wf_approach">
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit && $backpack.has('food') && $backpack.has('rope')>>
<<set _approachName = 'Approach ' + ($wFeralGender != 1 ? 'her' : 'him') + ' (−1 food, −1 rope)'>>
<<linkreplace `_approachName`>>
<<run $('#wf_approach_desc, #wf_claim, #wf_claim_desc, #wf_walk').hide()>>
<<drop $backpack 'food' 1>>
<<drop $backpack 'rope' 1>>
<<set $wFeral.relationship = Math.min(($wFeral.relationship ?? 0) + 20, 100)>>
<<set $wFeral.happy = Math.min(($wFeral.happy ?? 0) + 15, 100)>>
<<set $wFeral.sub = Math.min(($wFeral.sub ?? 0) + 5, 100)>>
You move slowly, crouching to bring yourself down, and extend the food without looking directly at <<if $wFeralGender != 1>>her<<else>>him<</if>>. <<if $wFeralGender != 1>>She<<else>>He<</if>> holds still — then edges forward and takes it from your hand. You loop the rope loosely around <<if $wFeralGender != 1>>her<<else>>his<</if>> wrist while <<if $wFeralGender != 1>>she<<else>>he<</if>> eats, and <<if $wFeralGender != 1>>she<<else>>he<</if>> lets you.
<br /><br />
The wolves watch. After a long moment the nearest one turns away, and the rest follow. They've made their decision.
<br /><br />
<<set $tmpGirl = $wFeral>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<run $guests.push($tmpGirl)>>
<<unset $wFeral, $wFeralGender>>
<strong><<=setup.displayName($tmpGirl)>> comes with you.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<div class="link-desc">Relationship +20 • Happiness +15 • Submission +5</div>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Approach <<if $wFeralGender != 1>>her<<else>>him<</if>> (requires food, rope, and guesthouse space)
</div>
<</if>>
<<linkdesc 'wf_approach_desc'>>
Relationship +20 • Happiness +15 • Submission +5 • −1 food • −1 rope
<</linkdesc>>
</div>
<div id="wf_claim">
<<if ($wFeralGender != 1 || settings.gaysEnabled) && $player.strength > 50 && ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<<set _claimName = 'Claim ' + ($wFeralGender != 1 ? 'her' : 'him')>>
<<linkreplace `_claimName`>>
<<run $('#wf_approach, #wf_approach_desc, #wf_claim_desc, #wf_walk').hide()>>
<<set $wFeral.corruption = Math.min(($wFeral.corruption ?? 0) + 10, 100)>>
<<set $wFeral.relationship = Math.min(($wFeral.relationship ?? 0) + 40, 100)>>
<<set $wFeral.sub = Math.min(($wFeral.sub ?? 0) + 10, 100)>>
<<set $wFeral.location = 'forest'>>
<<if $wFeralGender != 1>>
You move toward her without breaking your line of sight — not a threat display, something older than that, something the wolves in her blood would recognize without needing a word for it. She holds still as you close the gap, watching you with those half-wild eyes, and when you put a hand on her hip she makes a sound low in her throat that isn't warning. The wolves have already begun pulling back, giving the clearing the privacy that packs have always known to give. You draw her down onto the ground and she goes without resistance, meeting you on your own terms.
<<else>>
You walk straight toward him without breaking eye contact — no circling, no display, just direct and certain. He squares up for a moment, the animal calculus of whether this is a fight he can win running fast behind his eyes. Then you close the last foot and put a hand on the back of his neck. He stills — not out of fear, out of recognition. The grip says what no posturing could: that the hierarchy has already settled and he's on the right side of it. He lowers his head.
<</if>>
<br /><br />
<<set $tmpGirl = $wFeral>>
<<set _takeName = 'Take ' + ($wFeralGender != 1 ? 'her' : 'him')>>
<<link `_takeName`>>
<<set $tmpGirlViewBack = 'Explore event wolves after claim'>>
<<unset $slaveId, $guestId, $charId, $childId>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
<<elseif ($wFeralGender != 1 || settings.gaysEnabled)>>
<div class="link-internal disabled" style="background: #ccc">
Claim <<if $wFeralGender != 1>>her<<else>>him<</if>> (requires STR > 50 and guesthouse space)
</div>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Claim <<if $wFeralGender != 1>>her<<else>>him<</if>> (requires STR > 50, gay content, and guesthouse space)
</div>
<</if>>
<<linkdesc 'wf_claim_desc'>>
Corruption +10 • Relationship +40 • Submission +10
<</linkdesc>>
</div>
<div id="wf_walk">
<<link 'Walk away'>>
<<unset $wFeral, $wFeralGender>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
When it's over <<if $tmpGirl.gender != 1>>she<<else>>he<</if>> pulls back and crouches, watching you with that same uncertain calculation — but quieter now, the edge gone out of it. The pack has drawn back to a distance. One by one they turn and disappear into the ruins, until only <<=setup.displayName($tmpGirl)>> remains.
<br /><br />
<<set $tmpGirl.relationship = Math.min(($tmpGirl.relationship ?? 0) + 20, 100)>>
<<set $tmpGirl.happy = Math.min(($tmpGirl.happy ?? 0) + 10, 100)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<run $guests.push($tmpGirl)>>
<<unset $wFeral, $wFeralGender>>
<strong><<=setup.displayName($tmpGirl)>> comes with you.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<div class="link-desc">Relationship +20 • Happiness +10</div><center>
You take food from your bag and throw it inside the cage as you look around again in case there's any other living soul around.
<br /><br />
<<video '/explore/farm/found_farm2'>>
<br /><br />
[[Open cage|Explore farm first time 1.3]]
[[Leave her|Explore farm first time 2]]
</center><center>
<<video '/explore/farm/found_farm3'>>
<br /><br />
You slowly take a step into the cage. You're worried she might be alerted to your presence, but the girl ignores you; she's more focused on the food you just threw in. Carefully, you inspect her. The thing that instantly shocks you is the horrific smell coming from her, like she hasn't showered in ages.
<br /><br />
<<video '/explore/farm/found_farm4'>>
<br /><br />
You see her exposed pussy. Damn, you can't even remember the last time you saw one. It's been so many years. You decide to crouch down and inspect it a little closer.
<br /><br />
[[Put the rope around her neck|Explore farm first time 1.4]]
[[Leave her|Explore farm first time 2]]
</center><<set $characters.rose.intro_fucked to true>>
<<horny 20>>
<br /><br />
<center>
You turn around and notice a rope hanging on the hook. You wrap it around her neck, and as soon as you do she starts to resist, as if someone has already done that to her before. She tries to bite you, but you manage to grab her by the hair and hold her off.
<<video '/explore/farm/found_farm5'>>
<br /><br />
Somehow your pants manage to slip down as she tries to bite you. But instead of continuing to attack, her mood changes and she starts licking your dirty cock. After a few good licks she takes it fully into her mouth.
<br /><br />
<<video '/explore/farm/found_farm6'>>
<br /><br />
You gasp as she sucks you off. That feeling... Even if it's likely that her mouth hasn't been washed in a long time, it still feels pretty good. You still hold her hair just to be sure you can tame her if she decides to attack you again - or so you tell yourself. It isn't good for much if she wants to bites. What it is good for, is forcing your cock even deeper inside her mouth. You remember how her pussy looked. You could try it...
<br /><br />
<<video '/explore/farm/found_farm7'>>
<br /><br />
[[Turn her around|Explore farm first time 1.5]]
[[Leave her|Explore farm first time 2]]
</center>An old man comes out of the farmhouse with a shotgun in hand, and he's aimed it right at you.
<br /><br />
<<vincent>><strong>GET THE FUCK OFF OF HER! EITHER STEP BACK OR GET DROPPED TO THE GROUND DEAD!</strong><</vincent>>
<br /><br />
You look at him, then back at the girl's pussy you're ready to fuck.
<br /><br />
<center>
<<link 'Fuck her'>>
<<set $game.death_reason to 'a hole in your skull'>>
<<goto [[Dead]]>>
<</link>>
[[Leave|Wood cabin]]
</center>An old man walks out of his farmhouse and points a rifle at you.
<br /><br />
<<vincent>>What the fuck are you doing on my property?<</vincent>>
<br /><br />
<<you>>Don't shoot! I was just looking around! I'm no threat to you.<</you>>
<br /><br />
[[Go inside|Farm]]<<pickup $backpack 'food' 2>>
<<set $game.location.farm to true>>
You decide to take a shortcut from your cabin toward the east to save some time. As you walk through the bushes you start to hate yourself for taking this path, with only the minor upside of the berries you've stumbled across alleviating your sheer annoyance with the terrain.
But soon enough you notice a rusty cage next to some house that looks like a small farm. You hear some noise and decide to quietly get closer and investigate where it's coming from.
<br />
You slowly walk around the cage when suddenly...
<br /><br />
<<video '/explore/farm/found_farm1'>>
<br /><br />
<<you>><b>WHAT THE FUCK?!</b><</you>>
<br /><br />
You try to speak with her, but she doesn't respond to your words and just groans and screams at you.
<br />
You look around but don't see anyone.
<br /><br />
<<if $backpack.count('food') >= 2>>
<<link 'Give her some food (-2)'>>
<<drop $backpack 'food' 2>>
<<goto 'Explore farm first time 1.2'>>
<</link>>
<</if>>
<<link 'Leave her alone'>>
<<goto 'Explore farm first time 2'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br /><br />
<<set $game.location.forest to true>>
<center>[img[setup.ImagePath+'places/forest/walk_pov.webp']]</center>
<br /><br />
You notice a few good trails you'll need to check out later. As you walk around you manage to collect <strong class="iitem">2 pieces of wood</strong>. Maybe you'll get lucky and find some berries or more wood next time.
<<pickup $backpack 'wood' 2>>
<br /><br />
<center>
[[Back|Outside]]
</center><center>
[img[setup.ImagePath+'places/explore/abondend_warehouse.jpg']]
</center>
<br /><br />
Quietly, you walk inside and take a look around. Everything has been stripped away and taken apart. By the looks of it someone came here to gather resources before you. There's almost nothing left... Except..
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/workbench.jpg']]
</center>
<br /><br />
<strong>A workbench!</strong><br />
You could use this in your cabin to build something or craft some things.
<br /><br />
<<set $game.location.workbench = true>>
<<achievement 'workbench_find'>>
[[Bring the workbench back to your cabin|Wood cabin]]<center>
[img[setup.ImagePath+'places/explore/abondend_warehouse_outside.jpg']]
</center>
<br /><br />
While you walk around you notice a big warehouse in the distance. It could be empty or it could be an ambush...
<br /><br />
[[Investigate|Explore workbench - investigate]]
[[Continue exploring|Explore]]<<set _randomNumber to Math.floor(Math.random() * 100) + 1>>
<<set _hasCompanions = Object.keys($player.companions ?? {}).length > 0>>
<<set _compEvent = (_hasCompanions ? setup.companionEvents.pick('foot') : null)>>
<<energy -30>>
<<if (!$game.location.forest)>>
<<goto "Explore forest first time">>
<<elseif (!$game.location.farm)>>
<<goto "Explore farm first time">>
<<elseif ($game.day > 5 && !$game.location.workbench && _randomNumber <= 50)>>
<<goto "Explore workbench">>
<<elseif ($game.day > 150 && !$game.location.quarry && _randomNumber <= 20)>>
<<goto "Explore quarry">>
<<elseif $game.day >= 200 && !isMetChar('laura')>>
<<goto 'Laura - toxic rain'>>
<<elseif _compEvent && setup.percentageChance(5)>>
<<set $companionEvent = _compEvent>>
<<set $companionEventBack = 'Outside'>>
<<set _compPassage = _compEvent.passage>>
<<goto _compPassage>>
<<elseif ($game.day > 6 && _randomNumber <= 25)>>
<<goto "Random event - meet girl #3">>
<<elseif ($game.day > 4 && _randomNumber <= 35)>>
<<goto "Random event - ambush #2">>
<<elseif ($game.day > 10 && !_randomNumber <= 40 && !$backpack.has('blueprint_hot_shower'))>>
<<goto "Random event - find hot shower blueprint #7">>
<<elseif _randomNumber <= 38>>
<<goto 'Random event #15 ammo box'>>
<<elseif _randomNumber <= 40>>
<<goto 'Explore event: The Lost Child'>>
<<elseif _randomNumber <= 41>>
<<goto 'Explore event: The Elderly Refugee'>>
<<elseif (_randomNumber <= 42)>>
<<goto "Random event - quicksand #4">>
<<elseif (_randomNumber <= 45)>>
<<goto 'Random event - bikes #14'>>
<<elseif (_randomNumber < 49) && timeBetween('19:00', '23:00')>>
<<goto 'Random event - The Strangers by the Fire'>>
<<elseif (_randomNumber < 52)>>
<<goto 'Explore event: wolves'>>
<<elseif (_randomNumber <= 55)>>
<<goto "Random event - dead guy #1">>
<<elseif _randomNumber <= 59 && _hasCompanions>>
<<goto 'Explore event - Snake pit'>>
<<elseif (_randomNumber <= 60 && !$player?.quests?.teacher_killed)>>
<<goto "Random event - teacher #6">>
<<elseif (_randomNumber <= 63)>>
<<goto "Explore event - mysterious scream">>
<<elseif _randomNumber <= 64 && !$player.quests.library_blueprint>>
<<goto 'Explore event - library blueprint'>>
<<elseif _randomNumber <= 64 && $player.quests.library_blueprint>>
<<goto 'Explore event: Waterfall again'>>
<<elseif _randomNumber <= 65>>
<<goto "Random event - dig grave #12">>
<<elseif _randomNumber <= 66>>
<<goto 'Explore event - Wicked family'>>
<<elseif _randomNumber <= 67>>
<<goto 'Explore event - toxic cave'>>
<<elseif _randomNumber <= 68>>
<<goto 'Explore event: The Dying Elderly Survivor'>>
<<elseif _randomNumber <= 69 && _hasCompanions>>
<<goto 'Explore event: toxic waste'>>
<<elseif _randomNumber <= 70>>
<<goto 'Explore event: The Enslaved Settlement'>>
<<elseif _randomNumber <= 71>>
<<goto 'Explore event: mysterious illness settlement'>>
<<elseif _randomNumber <= 72>>
<<goto 'Explore event: Waterfall'>>
<<elseif _randomNumber <= 73>>
<<goto 'Explore event: Old couple'>>
<<elseif _randomNumber <= 74>>
<<goto "Random event - food #8">>
<<elseif _randomNumber <= 75>>
<<goto 'Explore event: Tits bar'>>
<<elseif _randomNumber <= 76>>
<<goto "Random event - solar panel #5">>
<<elseif _randomNumber <= 77>>
<<goto 'Explore event: Abandoned mall'>>
<<elseif _randomNumber <= 78>>
<<goto 'Explore event: Bite in neck'>>
<<elseif _randomNumber <= 79 && isMetChar('octavia') && $characters.octavia.quests>>
<<goto 'Explore event: Tribe'>>
<<elseif _randomNumber <= 80>>
<<goto 'Explore event - snare line'>>
<<elseif _randomNumber <= 81>>
<<goto 'Explore event - ambush bait'>>
<<elseif _randomNumber <= 82>>
<<goto 'Explore event - wounded merchant'>>
<<elseif _randomNumber <= 89>>
<<goto "Random event - no face #10">>
<<elseif _randomNumber <= 93>>
<<goto "Random event - hospital #13">>
<<elseif _randomNumber <= 98>>
<<goto "Random event - beak humans #11">>
<<elseif _randomNumber <= 99>>
<<goto 'Explore event: Wicked family daughter'>>
<<elseif _randomNumber <= 100>>
<<goto "Random event - wood #9">>
<<else>>
<center>
[img[setup.ImagePath+'places/explore/forest_walk.jpg']]
</center>
<br /><br />
You found nothing wondering around
<</if>>
<br /><br />
<center>
[[Back|Outside]]
</center><<energy -30>>
<<set _nightRoll = random(1, 100)>>
<<set _nightGo = null>>
<<if setup.night.trip()?.mode === 'light'>>
/* With a light you find more, but you can be seen */
<<if _nightRoll <= 22>>
<<set _nightGo = 'Night event - dark building'>>
<<elseif _nightRoll <= 40>>
<<set _nightGo = 'Night event - lights seen'>>
<<elseif _nightRoll <= 50>>
<<set _nightGo = 'Night event - feral den'>>
<<elseif _nightRoll <= 60>>
<<set _nightGo = 'Random event - dead guy #1'>>
<<elseif _nightRoll <= 68>>
<<set _nightGo = 'Random event - no face #10'>>
<<elseif _nightRoll <= 78>>
<<set _nightGo = 'Random event - The Strangers by the Fire'>>
<</if>>
<<else>>
/* In the dark you are harder to spot, and so is everything else */
<<if _nightRoll <= 20>>
<<set _nightGo = 'Night event - sleeping camp'>>
<<elseif _nightRoll <= 32>>
<<set _nightGo = 'Night event - feral den'>>
<<elseif _nightRoll <= 40>>
<<set _nightGo = 'Night event - moonlit cache'>>
<<elseif _nightRoll <= 50>>
<<set _nightGo = 'Random event - dead guy #1'>>
<<elseif _nightRoll <= 58>>
<<set _nightGo = 'Random event - no face #10'>>
<<elseif _nightRoll <= 66>>
<<set _nightGo = 'Random event - The Strangers by the Fire'>>
<</if>>
<</if>>
<<if _nightGo>>
<<goto _nightGo>>
<<else>>
<h1 class="ptitle">NIGHT</h1>
<br /><br />
<center>
<<image 'places/explore/night_nothing.jpg'>>
</center>
<br />
<<if setup.night.trip()?.mode === 'light'>>
You searched until the light guttered. Every house you tried had been stripped long before you got there, and all your light showed you was how empty they were.
<<else>>
You spent hours moving between shadows, freezing at every sound. Most of it turned out to be the wind. You came back with nothing but sore feet.
<</if>>
<br /><br />
<<link 'Back'>>
<<goto 'Outside'>>
<</link>>
<</if>><h1 class="ptitle">NIGHT</h1>
<br /><br />
<center>
<<image 'places/explore/night_explore.jpg'>>
</center>
<br />
<<set _nightLight = setup.night.lightSource()>>
You slipped out past the edge of the settlement after dark. The ruins looked different at night. Every doorway was a hole, every shape could have been a person, and somewhere far off something howled and was answered.
<br /><br />
<<if _nightLight === 'lantern'>>
The lantern hung at your belt, unlit. Light would let you search properly, and it would also tell everyone for a mile exactly where you were.
<<elseif _nightLight === 'torch'>>
You carried a torch, unlit. Light would let you search properly, and it would also tell everyone for a mile exactly where you were.
<<else>>
You had no light with you. Whatever you found tonight, you would find by feel and moonlight.
<</if>>
<br /><br />
<<if _nightLight>>
<<set _searchLabel = (_nightLight === 'lantern' ? 'Light the lantern and search' : 'Light a torch and search')>>
<<link _searchLabel>>
<<run setup.night.useLight(_nightLight)>>
<<run setup.night.startTrip('foot', 'light', _nightLight)>>
<<goto 'Explore - night roll'>>
<</link>><<link 'Keep to the dark'>>
<<run setup.night.startTrip('foot', 'dark')>>
<<goto 'Explore - night roll'>>
<</link>>
<<else>>
<<link 'Keep to the dark'>>
<<run setup.night.startTrip('foot', 'dark')>>
<<goto 'Explore - night roll'>>
<</link>>
<</if>><h1 class="ptitle">NIGHT</h1>
<br /><br />
<center>
<<image 'places/explore/night_building.jpg'>>
</center>
<br />
<<set _nightBack = setup.night.backPassage()>>
Your light found a building nobody had bothered with in daylight: the front was a collapsed mess, but round the back a door hung open on one hinge. Inside, the dust on the floor was unbroken. Nobody had been in here for a long time.
<br /><br />
Shelves, cupboards, a stairwell going up into the dark. Searching it all would take a while, and a light moving from window to window could be seen from a long way off.
<br /><br />
<div id="nb_thorough">
<<linkreplace 'Search the whole building'>>
<<run $('#nb_quick').hide()>>
<<addhours 1>>
<<if setup.percentageChance(20)>>
<<set _nbFound = setup.night.loot('building', 2)>>
You went room by room. You had already filled your bag with <strong><<= _nbFound>></strong> when a floorboard creaked somewhere above you, and it was not your foot on it.
<br /><br />
<<say 'Squatter' setup.ImagePath+'/people/anonguy.png'>>
That's my stuff you're carrying. Put it down and get out of my house.
<</say>>
<br />
A man came down the stairs with a knife held low, squinting into your light.
<br /><br />
<<link 'Fight him'>>
<<generateEnemies 1 0 1>>
<<fight $enemies _nightBack _nightBack>>
<</link>><<link 'Run with what you have'>>
<<goto _nightBack>>
<</link>>
<<else>>
<<set _nbFound = setup.night.loot('building', 3)>>
You went room by room, into every cupboard and under every bed. It took the best part of an hour, but the building had never been picked over.
<br /><br />
You found <strong><<= _nbFound>></strong>.
<br /><br />
<<link 'Head back'>>
<<goto _nightBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<div id="nb_quick">
<<linkreplace 'Grab what is in reach and go'>>
<<run $('#nb_thorough').hide()>>
<<set _nbFound = setup.night.loot('building', 1)>>
You swept the ground floor with your light, took what was in easy reach and left before anyone could wonder about the glow in the windows.
<br /><br />
You found <strong><<= _nbFound>></strong>.
<br /><br />
<<link 'Head back'>>
<<goto _nightBack>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">NIGHT</h1>
<br /><br />
<<set _nightBack = setup.night.backPassage()>>
<<if settings.transEnabled>>
<<set _fdRoll = random(1, 100)>>
<<if _fdRoll <= 70>>
<<newgirl>>
<<set $tmpGirl.strength = random(35, 65)>>
<<elseif _fdRoll <= 90>>
<<newguy>>
<<set $tmpGirl = $tmpGuy>>
<<set $tmpGirl.strength = random(40, 70)>>
<<else>>
<<newtransgirl>>
<<set $tmpGirl.strength = random(35, 65)>>
<</if>>
<<else>>
<<if random(1, 100) <= 75>>
<<newgirl>>
<<set $tmpGirl.strength = random(35, 65)>>
<<else>>
<<newguy>>
<<set $tmpGirl = $tmpGuy>>
<<set $tmpGirl.strength = random(40, 70)>>
<</if>>
<</if>>
<<set $tmpGirl.traits = [...new Set(($tmpGirl.traits ?? []).concat(['feral']))]>>
<<set $tmpGirl.skills = ($tmpGirl.skills ?? []).filter(s => ['woodcraft', 'scavenger', 'fighter'].includes(s))>>
<<set $tmpGirl.washDays = 0>>
<<set $tmpGirl.washBeauty = 0>>
<<set $tmpGirl.location = 'forest'>>
<<set $nightFeral = clone($tmpGirl)>>
<<set _fdHe = setup.pronounceWhat($nightFeral, true)>>
<<set _fdHim = setup.pronounceWho($nightFeral)>>
<<set _fdHis = setup.pronounceWhos($nightFeral)>>
<center>
<<image 'places/explore/night_feral_den.jpg'>>
</center>
<br />
Ferals did their hunting at night. You smelled the den before you saw it: a collapsed underpass with a nest of rags in the back and bones scattered across the concrete, some of them far too big to be rabbit.
<br /><br />
One of them was awake. <<= _fdHe>> was crouched at the mouth of the underpass, perfectly still, head cocked toward the sound you had just made. <<= _fdHe>> had not seen you yet. <<= _fdHe>> would in a moment.
<br /><br />
<div id="fd_leave">
<<linkreplace 'Back away slowly'>>
<<run $('#fd_fight').hide()>>
<<if setup.night.trip()?.mode === 'dark' || setup.percentageChance(50)>>
You went back the way you came one careful step at a time. The shape at the underpass sniffed the air, made a low sound in <<= _fdHis>> throat and settled again.
<br /><br />
<<unset $nightFeral>>
<<link 'Head back'>>
<<goto _nightBack>>
<</link>>
<<else>>
Your light caught <<= _fdHim>> full in the eyes. <<= _fdHe>> flinched, then came out of the underpass low and fast, straight at the light.
<br /><br />
<<link 'Fight'>>
<<set $enemies = [clone($nightFeral)]>>
<<fight $enemies 'Night event - feral den won' _nightBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<div id="fd_fight">
<<linkreplace 'Rush the den'>>
<<run $('#fd_leave').hide()>>
You closed the distance before <<= _fdHim>> could turn. <<= _fdHe>> met you halfway, all teeth and nails and noise.
<br /><br />
<<link 'Fight'>>
<<set $enemies = [clone($nightFeral)]>>
<<fight $enemies 'Night event - feral den won' _nightBack>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">NIGHT</h1>
<br /><br />
<<set _nightBack = setup.night.backPassage()>>
/* already captured or killed on the generic Fight - won screen */
<<set _fdFought = $prevFight?.defeatedEnemies?.[0]>>
<<if !$nightFeral || (_fdFought && (_fdFought.killed || $slaves.some(s => s.id === _fdFought.id)))>>
<<unset $nightFeral>>
<<goto _nightBack>>
<</if>>
<<set $tmpGirl = $nightFeral>>
<<set $tmpGirl.happy = Math.max(($tmpGirl.happy ?? 0) - 20, -100)>>
<<set $tmpGirl.relationship = Math.max(($tmpGirl.relationship ?? 0) - 30, -100)>>
<<set $tmpGirl.sub = Math.min(($tmpGirl.sub ?? 0) + 20, 100)>>
<<set _fdHe = setup.pronounceWhat($tmpGirl, true)>>
<<set _fdHim = setup.pronounceWho($tmpGirl)>>
<center>
<<image 'places/explore/night_feral_down.jpg'>>
</center>
<br />
It was over. <<= _fdHe>> lay on the concrete breathing hard, not getting up, watching you from under a curtain of matted hair with the flat patience of an animal that had lost a fight and was waiting to see what came next.
<br /><br />
<<include 'NPC info'>>
<br /><br />
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit>>
<div id="fdw_capture">
<<set _fdCaptureLabel = 'Tie ' + _fdHim + ' up and take ' + _fdHim + ' home'>>
<<linkreplace _fdCaptureLabel>>
<<run $('#fdw_leave').hide()>>
<<statsAdd 'people_captured'>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<run $slaves.push($tmpGirl)>>
<<unset $nightFeral>>
You bound <<= _fdHim>> with what was left of your rope and walked <<= _fdHim>> home through the dark.
<br /><br />
<strong>Taken as a slave.</strong>
<br /><br />
<<link 'Head to the basement'>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<div id="fdw_leave">
<<linkreplace 'Leave'>>
<<run $('#fdw_capture').hide()>>
<<unset $nightFeral>>
You left <<= _fdHim>> in the den and walked away. <<= _fdHe>> did not follow.
<br /><br />
<<link 'Head back'>>
<<goto _nightBack>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">NIGHT</h1>
<br /><br />
<center>
<<image 'places/explore/night_lights_seen.jpg'>>
</center>
<br />
<<set _nightBack = setup.night.backPassage()>>
<<set _lsGuys = 2>>
<<set _lsGirls = 0>>
<<if setup.percentageChance(30)>>
<<set _lsGirls++>>
<<set _lsGuys-->>
<</if>>
Your light had been seen. You heard them before you saw them: boots on broken glass, spreading out to either side of you. Then three figures stepped into the edge of the light, weapons already out.
<br /><br />
<<say 'Raider' setup.ImagePath+'/people/anonguy.png'>>
Look at that. Somebody brought us a light. Put the bag down, friend, and walk away while you still can.
<</say>>
<br />
<div id="ls_douse">
<<linkreplace 'Douse the light and slip away'>>
<<run $('#ls_fight, #ls_pay').hide()>>
<<set $player.nightTrip.mode = 'dark'>>
<<if setup.percentageChance($player.int >= 20 ? 70 : 50)>>
You killed the light and moved in the same breath. Behind you they cursed and stumbled into each other in the sudden dark. By the time anyone thought to follow, you were two streets away.
<br /><br />
<<link 'Head back'>>
<<goto _nightBack>>
<</link>>
<<else>>
You killed the light and ran, straight into a fence you had not seen. Before you could get over it, hands were on your jacket and there was no running any more. You would have to fight, and now you could not see either.
<br /><br />
<<link 'Fight them in the dark'>>
<<generateEnemies _lsGuys _lsGirls 1>>
<<fight $enemies _nightBack _nightBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<div id="ls_fight">
<<linkreplace 'Fight them'>>
<<run $('#ls_douse, #ls_pay').hide()>>
You set the light down where it lit them better than it lit you, and went for the nearest one.
<br /><br />
<<link 'Fight'>>
<<generateEnemies _lsGuys _lsGirls 1>>
<<fight $enemies _nightBack _nightBack>>
<</link>>
<</linkreplace>>
</div>
<<if $player.money >= 10>>
<div id="ls_pay">
<<linkreplace 'Pay them off (10 caps)'>>
<<run $('#ls_douse, #ls_fight').hide()>>
<<set $player.money -= 10>>
You tossed a handful of caps into the light. One of them scooped it up, counted it with a thumb and jerked his head at the dark behind you.
<br /><br />
<<link 'Head back'>>
<<goto _nightBack>>
<</link>>
<</linkreplace>>
</div>
<</if>><h1 class="ptitle">NIGHT</h1>
<br /><br />
<<set _nightBack = setup.night.backPassage()>>
<center>
<<image 'places/explore/night_moonlit_cache.jpg'>>
</center>
<br />
You would never have seen it with a light. It was only because your eyes had adjusted to the dark that you caught the glint: moonlight on a straight metal edge, poking out of the dirt at the corner of a ruined field.
<br /><br />
You dug it out with your hands. It was an old supply crate, sealed and heavy, buried by someone who had meant to come back for it and never had.
<br /><br />
<<set _mcFound = setup.night.loot('cache', 3)>>
Inside, wrapped in oilcloth, you found <strong><<= _mcFound>></strong>.
<br /><br />
<<link 'Head back'>>
<<goto _nightBack>>
<</link>><h1 class="ptitle">NIGHT</h1>
<br /><br />
<<set _nightBack = setup.night.backPassage()>>
<<if random(1, 100) <= 60>>
<<newguy>>
<<set $tmpGirl = $tmpGuy>>
<<else>>
<<newgirl>>
<</if>>
<<set $tmpGirl.strength = random(30, 60)>>
<<set $tmpGirl.location = 'forest'>>
<<set $nightSentry = clone($tmpGirl)>>
<<set _scHe = setup.pronounceWhat($nightSentry, true)>>
<<set _scShe = setup.pronounceWhat($nightSentry)>>
<<set _scHim = setup.pronounceWho($nightSentry)>>
<<set _scHis = setup.pronounceWhos($nightSentry)>>
<center>
<<image 'places/explore/night_sleeping_camp.jpg'>>
</center>
<br />
You saw the glow of their fire long before they could have seen you. By the time you crept close it had burned down to embers, and the camp around it was asleep: four bedrolls, a pile of packs against a broken wall, and one sentry slumped at the edge of the light with <<= _scHis>> chin on <<= _scHis>> chest.
<br /><br />
Nobody stirred. In the dark, you were just another shadow.
<br /><br />
<div id="sc_steal">
<<linkreplace 'Steal from their packs'>>
<<run $('#sc_take, #sc_leave').hide()>>
<<if setup.percentageChance($player.strength >= 50 ? 80 : 70)>>
<<set _scFound = setup.night.loot('camp', 2)>>
You went through the packs by feel, one buckle at a time, and backed out of the camp the same way you came in. Nobody so much as rolled over.
<br /><br />
You got away with <strong><<= _scFound>></strong>.
<br /><br />
<<link 'Head back'>>
<<goto _nightBack>>
<</link>>
<<else>>
A buckle clinked against a tin cup. It was not loud, but it was enough. The sentry's head came up.
<br /><br />
<<sayNpc $nightSentry>>
Hey! Up, all of you! Someone's in the camp!
<</sayNpc>>
<br />
<<link 'Fight'>>
<<unset $nightSentry>>
<<generateEnemies 2 1 1>>
<<fight $enemies _nightBack _nightBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit>>
<div id="sc_take">
<<set _scTakeLabel = 'Take the sentry'>>
<<linkreplace _scTakeLabel>>
<<run $('#sc_steal, #sc_leave').hide()>>
/* Asleep, the sentry only has half a chance against you */
<<if $player.strength > Math.round($nightSentry.strength / 2)>>
<<set $tmpGirl = $nightSentry>>
<<set $tmpGirl.happy = Math.max(($tmpGirl.happy ?? 0) - 20, -100)>>
<<set $tmpGirl.relationship = Math.max(($tmpGirl.relationship ?? 0) - 30, -100)>>
<<set $tmpGirl.sub = Math.min(($tmpGirl.sub ?? 0) + 10, 100)>>
<<statsAdd 'people_captured'>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<run $slaves.push($tmpGirl)>>
<<unset $nightSentry>>
You had a hand over <<= _scHis>> mouth before <<= _scShe>> was properly awake. <<= _scHe>> kicked once, then went still when <<= _scShe>> felt the knife. You walked <<= _scHim>> out of the firelight and nobody else woke up.
<br /><br />
<strong>Taken as a slave.</strong>
<br /><br />
<<link 'Head to the basement'>>
<<goto 'Basement'>>
<</link>>
<<else>>
You got a hand over <<= _scHis>> mouth, but <<= _scShe>> was stronger than <<= _scShe>> looked. <<= _scHe>> twisted free and got a breath.
<br /><br />
<<sayNpc $nightSentry>>
Up! Get up, we've got company!
<</sayNpc>>
<br />
<<link 'Fight'>>
<<unset $nightSentry>>
<<generateEnemies 2 1 1>>
<<fight $enemies _nightBack _nightBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<</if>>
<div id="sc_leave">
<<linkreplace 'Leave them sleeping'>>
<<run $('#sc_steal, #sc_take').hide()>>
<<unset $nightSentry>>
You left them to their dreams and slipped back into the dark.
<br /><br />
<<link 'Head back'>>
<<goto _nightBack>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
You decide to investigate what's happening in one of the corners of the destroyed city. After walking around desolated city for a couple of hours, you don't spot a single living soul. Eventually you find and decide to approach a burnt-out car that from a distance reminded you of a police car. And so it is.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/police_car.jpg']]
</center>
<br /><br />
<<set _mechanics = setup.companions.getBySkill(variables().player.companions, 'mechanic')>>
<<if (_mechanics.length > 0)>>
<<set _mechanic = either(_mechanics)>>
Your companion <<=setup.displayName(_mechanic)>>, the group's mechanic, steps forward, eyes already scanning the vehicle.
<br /><br />
<<sayNpc _mechanic>>
Give me a sec... Might be able to salvage a part or two.
<</sayNpc>>
<br />
While <<=setup.displayName(_mechanic)>> ducks under the hood with a quiet hum of approval, you begin checking the interior.
<<addmins 15>>
<br /><br />
<<if setup.percentageChance(50)>>
A few minutes later, <<=setup.displayName(_mechanic)>> straightens up, holding a grimy but intact <strong class="iitem">one car part</strong>.
<<pickup $backpack 'car_part' 1>>
<br /><br />
<<elseif setup.percentageChance(50)>>
A few minutes later, <<=setup.displayName(_mechanic)>> straightens up, holding a grimy but intact <strong class="iitem">one car battery</strong>.
<<pickup $backpack 'car_battery' 1>>
<<set _batteryFound = true>>
<br /><br />
<<else>>
After a few minutes, <<=setup.displayName(_mechanic)>> stands and wipes grease from his hands, frowning.
<br /><br />
<<sayNpc _mechanic>>
No luck. Everything’s either stripped or corroded beyond use. Damn shame.
<</sayNpc>>
<br />
<</if>>
<</if>>
<<if setup.percentageChance(30) && $player.int > 30 && !_batteryFound>>
The car is partially destroyed. You try to open the trunk of the vehicle and notice grimy but intact <strong class="iitem">one car battery</strong>.
<<pickup $backpack 'car_battery' 1>>
<<elseif setup.percentageChance(30)>>
The car is partially destroyed. You try to open the trunk of the vehicle but are met with no initial success.
<br />
You try a few more times, and actually manage to successfully open the back of the trunk, seeing a <strong>gas can</strong> within.
<br /><br />
<strong>You picked up a gas can.</strong>
<<pickup $backpack 'fuel' 1>>
<<elseif setup.percentageChance(30)>>
The car is partially destroyed. You try to open the trunk of the vehicle but are met with no initial success.
<br />
You try a few more times, and actually manage to successfully open the back of the trunk, seeing a <strong>gas mask</strong> within.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/police_car_gas_mask.jpg']]
</center>
<br />
<strong>You picked up a gas mask.</strong>
<<pickup $backpack 'gas_mask' 1>>
<<elseif setup.percentageChance(30) && !$backpack.has('blueprint_crossbow')>>
The car is partially destroyed. You try to open the trunk of the vehicle but are met with no initial success.
<br />
You try a few more times, and actually manage to successfully open the back of the trunk, seeing a <strong>some blueprint</strong> within.
<br /><br />
<strong>You picked up a crossbow blueprint.</strong>
<<pickup $backpack 'blueprint_crossbow' 1>>
<<else>>
The car is completely destroyed, most likely from the shockwave of a bomb explosion.
<br />
However, your attention is drawn to a cardboard box with glinting pieces of metal tucked away in a nearby sewer hole.
<br /><br />
You reach out your hand and grab the cardboard box, pulling out the strange objects. But they're not so strange upon further examination.
They are 0.38 caliber bullets.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/ammo_box.jpg']]
</center>
<br /><br />
<strong>You picked up 6 .38 bullets.</strong>
<<pickup $backpack 'bullet_revolver' 6>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
When you reached the edge of a town, you saw it: a faint flicker of light cutting through the darkness. A fire.
You moved closer, careful, your boots crunching over broken glass.
<br /><br />
<center>
<<image 'places/explore/strangers1.jpg' sfw>>
</center>
<br />
Inside an old diner — half-collapsed, windows shattered — two figures sat beside a barrel fire.
The glow danced across the walls, painting them in shades of gold and shadow. The man looked up first, his hand moving instantly to a knife.
<br /><br />
<<newguy>>
<<newgirl>>
<<set $tmpGirl.birthDate = setup.getBirthDate(randomInteger(19, 20))>>
<<set $tmpGirl.race = 'white'>>
<<set $tmpGuy.birthDate = setup.getBirthDate(randomInteger(25, 32))>>
<<set $tmpGuy.race = 'white'>>
<<set $tmpGirl.family = {
siblings: [$tmpGuy.id],
}>>
<<set $tmpGuy.family = {
siblings: [$tmpGirl.id],
}>>
<<set $tmpGuy.inventory = {
knife: 1
}>>
<<set $tmpGirl.inventory = {
knife: 1
}>>
<<sayNpc $tmpGuy>>
That’s close enough
<</sayNpc>>
<br />
<center>
<<image 'places/explore/strangers2.jpg' sfw>>
</center>
<br />
He looked about thirty — strong, unshaven, his face lined from too many sleepless nights. His coat was patched and his stance tense, like someone who had spent too long in the crosshairs of danger.
<br /><br />
<center>
<<image 'places/explore/strangers3.jpg' sfw>>
</center>
<br /><br />
Beside him sat a girl, maybe nineteen. Her hair was tied in a loose braid, her knife gripped tightly though her hands shook slightly.
They looked alike — brother and sister — both carrying the same gray eyes that had seen too much loss.
<br /><br />
<<sayNpc $tmpGuy>>
You alone?
<</sayNpc>>
<br />
Before you could answer, the girl spoke quietly.
<br /><br />
<<sayNpc $tmpGirl>>
<<=$tmpGuy.name>>, he doesn’t look like a raider
<</sayNpc>>
<br />
You noticed small details that told their story...
<br /><br />
- Photo lay near their packs — two adults and these same siblings smiling, long ago. Someone had drawn an X through the parents’ faces.
<br />
- A folded map rested beside the fire, marked with circles and lines. They had been traveling for a long time.
<br /><br />
The night wind sighed through the diner’s broken walls. You had a choice to make.
<br /><br />
<div id="option_peace">
<<linkreplace 'Approached peacefully'>>
<<run $('#option_leave, #option_attack').hide()>>
<<you>>
Easy. I wasn’t looking for trouble
<</you>>
<br />
<<=$tmpGuy.name>>'s eyes studied you for a long moment before he finally lowered his knife.
<br /><br />
She told you about the road they had taken — the flooded valleys in the south, the rumors of a safe zone to the north called <<= $game.cabinName ?? 'Heaven'>>.
<br />
<<=$tmpGuy.name>> said little, but his silence spoke of pain and weariness.
<br /><br />
<<if $game.cabinName>>
<<you>>
I know <<= $game.cabinName>>
<</you>>
<br />
<<=$tmpGuy.name>>'s eyes snapped up. His hand tightened on his knife, though not in threat — more in disbelief.
<br /><br />
<<sayNpc $tmpGuy>>
You’re from <<= $game.cabinName>>?
<</sayNpc>>
<br />
You nodded.
<br /><br />
<</if>>
<<if (($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit)>>
<div id="option_guests">
<<linkreplace 'Invite them as guests'>>
<<run $('#option_settlers').hide()>>
<<sayNpc $tmpGirl>>
You’re serious? There’s… food? People?
<</sayNpc>>
<br />
<<sayNpc $tmpGuy>>
We’ve been running too long. If what you’re saying is true… maybe it’s time we stopped.
<</sayNpc>>
<br />
<strong><<=$tmpGirl.name>> moved in your guesthouse</strong>
<br />
<strong><<=$tmpGuy.name>> moved in your guesthouse</strong>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 30, 100)>>
<<set $tmpGuy.relationship = Math.min($tmpGuy.relationship + 30, 100)>>
<<run $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<run $guests.push($tmpGuy)>>
<<run setup.npc.addHistory($tmpGuy, 'invited')>>
<br /><br />
<</linkreplace>>
</div>
<</if>>
<<if setup.baseManagement.population.hasFreeHouse()>>
<div id="option_settlers">
<<linkreplace 'Invite as settlers'>>
<<run $('#option_guests').hide()>>
You told them about your settlement — a place where they would be safe and could live their own lives.
<br /><br />
They exchanged uncertain looks. Finally, the brother nodded.
<br /><br />
<<set $player.goodwill += 6>>
<<set $player.baseManagement ??= {}>>
<<set $player.baseManagement.settlers = ($player.baseManagement.settlers ?? 0) + 2>>
<<set $player.baseManagement.settlersFemales ??= 0>>
<<set $player.baseManagement.settlersFemales += 1>>
<</linkreplace>>
</div>
<</if>>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_attack">
<<link 'Attack them'>>
<<set _enemies = [$tmpGuy, $tmpGirl]>>
<<fight _enemies 'Outside' 'Outside'>>
<</link>>
</div>
<div id="option_leave">
<<link 'Go away'>>
<<addmins 10>>
<<goto 'Outside'>>
<</link>>
</div><<set _ambushWeapon = either('knife')>>
<center>[img[setup.ImagePath+'places/explore/ambush.webp']]</center>
<br /><br />
<<set _enemiesGuys = 2>>
<<set _enemiesGirls = 0>>
<<if setup.percentageChance(30)>>
<<set _enemiesGirls++>>
<<set _enemiesGuys-->>
<</if>>
While walking close to the city border <strong>three</strong> attackers jump out of the corner while holding <strong><<print _ambushWeapon>></strong> in their hand.
They yell at you and asks where you're going before demanding do give something to them so they do not kill you.
<br /><br />
<<if $backpack.has('food')>>
<<link 'Give them food (1)'>>
<<drop $backpack 'food' 1>>
<<goto 'Outside'>>
<</link>>
<</if>>
<<if $player.money >= 2>>
<<link 'Give them bottle caps (2)'>>
<<set $player.money -= 2>>
<<goto 'Outside'>>
<</link>>
<</if>>
<<link 'Fight them'>>
<<generateEnemies _enemiesGuys _enemiesGirls 1>>
<<fight $enemies 'Outside' 'Outside'>>
<</link>>
<<link 'Try to run away'>>
<<if $player.strength < 30>>
<<set $game.death_reason = 'bullets piercing your back.'>>
<<goto 'Dead'>>
<<else>>
<<goto 'Outside'>>
<</if>>
<</link>><h1 class="ptitle">FOREST</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/event_beak_won.jpg']]
</center>
<br /><br />
After a hard-fought struggle, the attackers are on the ground, leaving the factory once again cloaked in silence.
The women, their faces streaked with dirt and sweat, turn to you with eyes filled with gratitude.
<br /><br />
<<newgirl>>
<<set _npc1 = $tmpGirl>>
<<newgirl>>
<<set _npc2 = $tmpGirl>>
<<sayNpc _npc1>>
Thank you! We thought... we thought it was over for us.
<</sayNpc>>
<br />
The other woman nods fervently, her voice steady.
<br /><br />
<<sayNpc _npc2>>
You've given us a chance, a second lease on life. Could you please untie us?
<</sayNpc>>
<br />
They look to you for guidance, their trust in you evident.
<br /><br />
<div id="option_fuck">
<<if !recall($suppCode)>>
<div class="link-internal disabled" style="background: #ccc">
Fuck them
<<notPatreonIcon>>
</div>
<<else>>
<<linkreplace 'Fuck them'>>
<<set $player.goodwill -= 5>>
<<set _fucked = true>>
<<=setup.displayName(_npc1)>> is more quieter and looks more obedient while <<=setup.displayName(_npc2)>> tries to resist and curses you. You decide that it would be safer with <<=setup.displayName(_npc1)>>.
<br /><br />
<<video 'explore/beak_human_fuck1'>>
<br /><br />
You unzip your pants and slowly slide your hard dick inside <<=setup.displayName(_npc1)>>'s mouth. She looks at you with tears in her eyes but doesn't resist as you predicted.
Few more gentle slides before she accidentally touches your dick with her teeth and you decide to punish her with a slap.
<br /><br />
<<video 'explore/beak_human_fuck2'>>
<br /><br />
You grab whip you took away from one of the man and decide to punish them a bit. <<=setup.displayName(_npc2)>> stil curses at you while other girl takes your punishment in silence.
<br />
<<=setup.displayName(_npc2)>> gets louder and more aggressive.
<br /><br />
<<sayNpc _npc2>>
Don't you dare to touch me!
<</sayNpc>>
<br />
<<set _linkName = 'Fuck ' + _npc2.name + '\'s ass'>>
<div id="option_ass">
<<linkreplace `_linkName`>>
<<set _fuckAss = true>>
<<video 'explore/beak_human_fuck3'>>
<br /><br />
<</linkreplace>>
</div>
<<set _linkName = 'Cum in ' + _npc1.name + '\'s mouth'>>
<<linkreplace `_linkName`>>
<<if !_fuckAss>>
<<run $('#option_ass').hide()>>
<</if>>
<<video 'explore/beak_human_fuck4'>>
<br /><br />
<<=setup.displayName(_npc1)>> submissively gets on her knees, grabs your dick and puts it in her mouth. She's calm and knows what she needs to do. As soon as you start to cum she puts out her tonque
and lets you cum on it...
<br /><br />
<<horny_reset>>
<</linkreplace>>
<</linkreplace>>
<</if>>
</div>
<div id="option_release">
<<linkreplace 'Free them'>>
<<set $player.goodwill++>>
<<run $('#option_enslave').hide()>>
<<if !_fucked>>
<<run $('#option_fuck').hide()>>
<</if>>
<<sayNpc _npc1>>
<<if _fucked>>
Thank... you...
<<else>>
Thank you so much!
<</if>>
<</sayNpc>>
<br />
<<if _fucked>>
As you untie them, they start to run away from you without looking back. They are scared that you might enslave them. A moment later, they disappear into the woods.
<<else>>
As they step into the world outside, you watch them go, knowing that you've made a difference in their lives.
The post-apocalyptic world is harsh, but moments like these remind you that compassion and courage still hold sway.
<</if>>
<br />
With a renewed sense of purpose, you continue your journey, knowing that you have the power to make a positive impact, even in the bleakest of times
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<<if (($game.location.basement ?? false) && ($slaves.length + 2) <= $basementLimit)>>
<div id="option_enslave">
<<linkreplace 'Enslave them'>>
<<set $player.goodwill -= 5>>
<<run $('#option_release').hide()>>
<<if !_fucked>>
<<run $('#option_fuck').hide()>>
<</if>>
You free them from the metal pipes they were tied to, but instead of untying their hands, you bind them both together with a longer rope and lead them outside.
They realize that you won't let them go and start shouting and cursing at you.
<br /><br />
<<sayNpc _npc2>>
What are you doing? Please don't !
<</sayNpc>>
<br />
<<sayNpc _npc1>>
You fucking bastard!
<</sayNpc>>
<br />
<<link 'Leave'>>
<<set _npc1.relationship = -50>>
<<set _npc2.relationship = -50>>
<<run $slaves.push(_npc1)>>
<<run setup.npc.addHistory(_npc1, 'captured')>>
<<run $slaves.push(_npc2)>>
<<run setup.npc.addHistory(_npc2, 'captured')>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>>
</div>
<</if>><h1 class="ptitle">FOREST</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/beak_humans.webp']]
</center>
<br /><br />
You hear a noise in the distance so you decide to crouch down waiting to see who's coming.
<br />
Two naked girls are coming so you decide to jump out. You freeze as soon as you notice strange looking guys wearing some weird ass costumes behind them.
<br /><br />
<<if $player.int >= 20>>
<<set _canHelp = true>>
<<linkreplace 'Follow them'>>
A tense silence envelops you as you weigh your options. The forest seems to hold its breath, waiting for your decision. Your instincts urge you to follow, to uncover the purpose behind this macabre procession.
<br /><br />
As you trail them, the forest gradually gives way to the outskirts of a dilapidated, foreboding structure.
The air grows heavy with the stench of decay, and the ominous ruins of the factory loom ahead.
One of the guys gives his woman to other and disappears in the nearest forest.
<br /><br />
<<video 'explore/beak_human1'>>
<br /><br />
Within its crumbling walls, you bear witness to a chilling spectacle. The women are unceremoniously tied up, their captors showing no mercy. Their cries fill the air, echoing off the decrepit walls.
<br /><br />
<<video 'explore/beak_human2'>>
<br /><br />
The weight of the decision hangs heavily on your shoulders. You could choose to intervene, to fight for their freedom and face the wrath of their captors.
Or you could choose to retreat, leaving them to their grim fate.
<br /><br />
<<linkreplace 'Help them'>>
<<run $('#option_leave').hide()>>
<<set _help = true>>
Just as you emerge from the hiding place and want to pounce on the man, he notices you and shouts something incomprehensible.
After a moment, another man who had entered the forest with him rushes out, and both of them charge at you.
<br /><br />
<<link 'Fight'>>
<<set $enemies = []>>
<<newguy>>
<<set $tmpGuy.strength = randomInteger(50, 100)>>
<<run $enemies.push($tmpGuy)>>
<<newguy>>
<<set $tmpGuy.strength = randomInteger(50, 100)>>
<<run $enemies.push($tmpGuy)>>
<<fight $enemies 'Random event - beak humans #11 won' 'Outside'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</if>>
<div id="option_leave">
<<link 'Leave'>>
<<if !_help && _canHelp>>
<<set $player.goodwill -= 5>>
<</if>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<<newgirl>>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/random_event_motorcycle.webp']]
</center>
<br /><br />
As you finish off the guys surrounding the girl, you're prepared to also fight the other 4, but they instead drive off without looking back.
<br /><br />
<<set $player.reputation++>>
<strong>Your reputation increased by 1</strong>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/random_event_motorcycle_hug.webp']]
</center>
<br /><br />
Girl instantly jumps on you and hugs you with "Thank you! Thank you!"
<br />
She tells you that she's going to a place called <strong class="iitem">The Sanctuary</strong> before they jump us. She tells you that she really doesn't have a plan what to do...
<br /><br />
<<set
$tmpGirl.rape = false,
$tmpGirlCapture = false,
$tmpGirlInvite = false,
$slaveId = null,
$charId = null
>>
<<set $tmpGirl.beauty = Math.min($tmpGirl.beauty + 30, 100)>>
<<run delete $slaveId>>
<<run delete $charId>>
<<run delete $guestId>>
<<include 'NPC info'>>
<<if (($game.location.basement ?? false) && $slaves.length < $basementLimit)>>
<<link 'Capture her'>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship - 30, 100)>>
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<goto 'Basement'>>
<</link>>
<</if>>
<<if (($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit)>>
<<link 'Tell her that she can live at your place'>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 30, 100)>>
<<run $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<goto 'Guest house'>>
<</link>>
<</if>>
<<link 'Leave her'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">CITY</h1>
<br /><br />
You decided to take a different path through the city to check if maybe there was a new place you had missed.
<br /><br />
<<video 'explore/bikes'>>
<br /><br />
While walking through the ruins of the city you notice an old guy and some girl pushing a trolley with some junk in it.
<br />
They look harmless enough, but you decide to wait a bit.
<br />
After some time you hear some noise in the distance...
<br /><br />
<<video 'explore/bikes2'>>
<br /><br />
<strong>8</strong> people are driving on motorcycles. One of them tackles the old guy and a few seconds later they just shoot his head off.
<br /><br />
<<video 'explore/bikes3'>>
<br /><br />
The girl screams for help as they pull her off the road, and they prepare to rape and kill her afterwards.
<br /><br />
<<link 'Help her'>>
<<set _inventoryKnife = {
'knife': 1
}>>
<<set _isGirl = false>>
<<if setup.percentageChance(30)>>
<<set _isGirl = true>>
<</if>>
<<set $player.reputation++>>
<<set $enemies = []>>
<<newguy>>
<<set $tmpGuy.strength = 6>>
<<if randomInteger(0, 10) === 0>>
<<set $tmpGuy.inventory = _inventoryKnife>>
<</if>>
<<run $enemies.push($tmpGuy)>>
<<newguy>>
<<set $tmpGuy.strength = 6>>
<<if randomInteger(0, 10) === 0>>
<<set $tmpGuy.inventory = _inventoryKnife>>
<</if>>
<<run $enemies.push($tmpGuy)>>
<<newguy>>
<<set $tmpGuy.strength = 6>>
<<if randomInteger(0, 10) === 0>>
<<set $tmpGuy.inventory = _inventoryKnife>>
<</if>>
<<run $enemies.push($tmpGuy)>>
<<if _isGirl>>
<<newgirl>>
<<run $enemies.push($tmpGirl)>>
<<else>>
<<newguy>>
<<set $tmpGuy.strength = 6>>
<<if randomInteger(0, 10) === 0>>
<<set $tmpGuy.inventory = _inventoryKnife>>
<</if>>
<<run $enemies.push($tmpGuy)>>
<</if>>
<<fight $enemies 'Random event - bikes #14 won' 'Outside'>>
<</link>>
<<link 'Leave'>>
<<set $player.goodwill-->>
<<goto 'Outside'>>
<</link>>While walking down the road you hear a loud scream and decide to investigate.
<br />
You approach the source of the sound carefully but when you reach it the only thing left is some <strong><<print either('middle', 'old')>></strong> age guy who was killed right before you got here.
<br />
You get the feeling that someone is close as you look down at him.
<br /><br />
<<if $backpack.has('axe')>>
[[Use axe to chop off leg|Random event - dead guy #1 chop leg]]
<</if>>
[[Search him|Random event - dead guy #1 search]]
[[Leave|Outside]]<center>
[img[setup.ImagePath+'places/explore/search_dead.webp']]
</center>
<br /><br />
You search the dead guy's pockets with hope that the attackers missed something.
<br /><br />
<<set $dg1Chopped = false>>
<<if setup.percentageChance(50)>>
<<set $dg1Found = either('rope', 'bullet_revolver', 'necklace_cheap', 'champagne', 'cloth')>>
<<pickup $backpack $dg1Found 1>>
You found <strong><<print Item.get($dg1Found).name>></strong>.
<<else>>
<<set $dg1Found = undefined>>
<strong>You found nothing.</strong>
<</if>>
<br /><br />
You stand up and the sense of being watched sharpens — something at the edge of the tree line shifts, just beyond where you can see clearly.
<br /><br />
<<if setup.percentageChance(50)>>
[[Look up|Random event - dead guy #1 feral]]
<<else>>
A moment later the noise stops. You don't wait around to find out why.
<br /><br />
[[Leave|Outside]]
<</if>><center>
<<image 'places/explore/chop_leg.webp' 'sfw'>>
</center>
<br /><br />
You don't have enough strength to chop off his leg with one try so you take a few additional swings. It's messy. Blood is everywhere covering your face and clothing.
<br /><br />
<<pickup $backpack 'raw_human_meat' 1>>
<<set $dg1Chopped = true>>
<<set $dg1Found = undefined>>
<<if setup.percentageChance(50)>>
As you finish the cut, something breaks cover at the edge of the trees. It was watching you work.
<br /><br />
[[Look up|Random event - dead guy #1 feral]]
<<else>>
As you finish the cut you hear some noise and decide to leave.
<br /><br />
[[Leave|Outside]]
<</if>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<<if settings.transEnabled>>
<<set _gRoll = random(1, 100)>>
<<if _gRoll <= 70>>
<<newgirl>>
<<set $dg1FeralGender = 0>>
<<set $tmpGirl.strength = random(35, 65)>>
<<elseif _gRoll <= 90>>
<<newguy>>
<<set $tmpGirl = $tmpGuy>>
<<set $dg1FeralGender = 1>>
<<set $tmpGirl.strength = random(40, 70)>>
<<else>>
<<newtransgirl>>
<<set $dg1FeralGender = 2>>
<<set $tmpGirl.strength = random(35, 65)>>
<</if>>
<<else>>
<<if random(1, 100) <= 75>>
<<newgirl>>
<<set $dg1FeralGender = 0>>
<<set $tmpGirl.strength = random(35, 65)>>
<<else>>
<<newguy>>
<<set $tmpGirl = $tmpGuy>>
<<set $dg1FeralGender = 1>>
<<set $tmpGirl.strength = random(40, 70)>>
<</if>>
<</if>>
<<set $tmpGirl.traits = [...new Set(($tmpGirl.traits ?? []).concat(['feral']))]>>
<<set $tmpGirl.skills = ($tmpGirl.skills ?? []).filter(s => ['woodcraft', 'scavenger', 'fighter'].includes(s))>>
<<set $tmpGirl.washDays = 0>>
<<set $tmpGirl.washBeauty = 0>>
<<set $tmpGirl.location = 'forest'>>
<<set $dg1Feral = clone($tmpGirl)>>
<<set _identItem = either('a worn name tag from some old job', 'a dirty charm bracelet with a name scratched into one of the links', 'a tarnished pendant with a name etched on the back')>>
<center>
<<if $dg1FeralGender != 1>>
<<image 'places/explore/dead_guy_feral_female.jpg'>>
<<else>>
<<image 'places/explore/dead_guy_feral_male.jpg'>>
<</if>>
</center>
<br /><br />
<<if $dg1FeralGender != 1>>
She was in the brush before you turned around — close enough that you're not sure how long she'd been there. Compact and low to the ground, clothes reduced to rags, hair matted and tangled. Her eyes track you the way an animal's do: wide, flat, and calculating.
<<else>>
He's at the treeline, maybe ten feet out. You don't know when he got there. Built lean and rough, clothes reduced to strips, body carrying the kind of wear that comes from months of hard ground and missed meals. His eyes don't blink.
<</if>>
<br /><br />
You catch a glimpse of <<=_identItem>>. The name reads: <strong><<=setup.displayName($dg1Feral)>></strong>.
<br /><br />
<<if $dg1Chopped>>
<<set _hostile = random(1,100) <= 80>>
<<elseif $dg1FeralGender != 1>>
<<set _hostile = random(1,100) <= 25>>
<<else>>
<<set _hostile = random(1,100) <= 75>>
<</if>>
<<if _hostile>>
<<if $dg1FeralGender != 1>>
Something — maybe the smell of blood, maybe the fact that you're still standing over the body — shifts her. She drops lower, lips pulling back, weight forward. She takes two quick steps toward you before stopping. Not retreating. Just reassessing.
<<else>>
He drops into a fighting crouch and starts closing the distance. Not running — measured and deliberate, like something that's done this before and knows not to waste the approach.
<</if>>
<br /><br />
<div id="dg1_fight">
<<set _fightLabel = 'Fight'>>
<<linkreplace `_fightLabel`>>
<<run $('#dg1_flee, #dg1_subdue').hide()>>
<<if $dg1FeralGender != 1>>
She hits you low and fast — more animal than technique, all momentum and contact. You take the impact and drive back, getting your arms into it.
<<else>>
He closes the last few feet in a burst, crashing into you with everything he has. You brace and push back hard, turning the rush.
<</if>>
<<if Object.keys($player.companions ?? {}).length>>
Your companion moves in immediately, taking the other side.
<</if>>
<br /><br />
<<link 'Fight'>>
<<set $enemies = [clone($dg1Feral)]>>
<<fight $enemies 'Random event - dead guy #1 feral won' 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<div id="dg1_flee">
<<set _fleeLabel = 'Flee'>>
<<linkreplace `_fleeLabel`>>
<<run $('#dg1_fight, #dg1_subdue').hide()>>
<<if $dg1Chopped && $backpack.has('raw_human_meat')>><<drop $backpack 'raw_human_meat' 1>><</if>>
<<if $dg1Found>><<drop $backpack $dg1Found 1>><</if>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
You turn and move — not running, not looking back, just putting ground between yourself and whatever that was. You leave the body behind, and everything in your pockets that came from it.
<br /><br />
<<link 'Leave'>><<goto 'Outside'>><</link>>
<</linkreplace>>
</div>
<div id="dg1_subdue">
<<if $player.int >= 50 && $player.strength >= 70 && $backpack.has('rope')>>
<<set _subdueName = 'Attempt to subdue (−1 rope)'>>
<<linkreplace `_subdueName`>>
<<run $('#dg1_fight, #dg1_flee').hide()>>
<<set $dg1Path = 'subdue'>>
<<drop $backpack 'rope' 1>>
<<set $dg1Feral.sub = Math.min(($dg1Feral.sub ?? 0) + 25, 100)>>
<<set $dg1Feral.happy = Math.max(($dg1Feral.happy ?? 0) - 10, -100)>>
<<set $dg1Feral.relationship = Math.max(($dg1Feral.relationship ?? 0) - 20, -100)>>
<<set $dg1Feral.corruption = Math.min(($dg1Feral.corruption ?? 0) + 5, 100)>>
You don't give <<if $dg1FeralGender != 1>>her<<else>>him<</if>> room. You step inside the aggression, take the contact, and bring <<if $dg1FeralGender != 1>>her<<else>>him<</if>> down hard. The rope goes on before <<if $dg1FeralGender != 1>>she<<else>>he<</if>> can recover the breath to fight it. <<if $dg1FeralGender != 1>>She<<else>>He<</if>> thrashes for a moment — muscle memory more than intent — and then goes still, chest heaving, watching you with something that isn't quite fear and isn't quite understanding.
<br /><br />
<<set $tmpGirl = $dg1Feral>>
<<include 'NPC info'>>
<br /><br />
<div id="dg1s_opts">
<<if $dg1FeralGender != 1 || settings.gaysEnabled>>
<div id="dg1s_sex">
<<set _sexName = 'Have sex with ' + ($dg1FeralGender != 1 ? 'her' : 'him')>>
<<link `_sexName`>>
<<run $('#dg1s_opts').hide()>>
<<set $tmpGirl = $dg1Feral>>
<<set $tmpGirlViewBack = 'Random event - dead guy #1 feral after sex'>>
<<unset $slaveId, $guestId, $charId, $childId>>
<<fuck $tmpGirl>>
<</link>>
</div>
<</if>>
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit && !$slaves.some(function(s) { return s.id === $dg1Feral.id; })>>
<div id="dg1s_capture">
<<set _captureName = 'Capture as slave'>>
<<linkreplace `_captureName`>>
<<run $('#dg1s_sex, #dg1s_leave').hide()>>
<<set $tmpGirl = $dg1Feral>>
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 20, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 20, -100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 20, 100)>>
<<statsAdd 'people_captured'>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<run $slaves.push($tmpGirl)>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
You haul <<if $tmpGirl.gender == 0>>her<<else>>him<</if>> to <<if $tmpGirl.gender == 0>>her<<else>>his<</if>> feet and use what's left of the rope as a lead. <<if $tmpGirl.gender == 0>>She<<else>>He<</if>> doesn't fight it — not anymore.
<br /><br />
<strong>Taken as a slave.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="dg1s_leave">
<<link 'Leave'>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<<goto 'Outside'>>
<</link>>
</div>
</div>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Attempt to subdue (requires 50 INT, 70 STR, rope)
</div>
<</if>>
</div>
<<else>>
<<if $dg1FeralGender != 1>>
She's watching you from the brush without moving. Her weight is forward but her eyes keep cutting back toward the tree line — caught between wanting to stay and every instinct telling her to run. Something about you is holding her there, and it isn't entirely fear.
<<else>>
He's crouched at the treeline, patient and still. Not approaching. Not leaving either. He watches you with the wary economy of something that's learned to conserve itself, waiting to see what you do next before deciding what he does.
<</if>>
<br /><br />
<div id="dg1_attack">
<<set _attackLabel = 'Attack'>>
<<linkreplace `_attackLabel`>>
<<run $('#dg1_leave, #dg1_tame').hide()>>
You don't give <<if $dg1FeralGender != 1>>her<<else>>him<</if>> the chance to decide. You move first — fast and direct.
<<if $dg1FeralGender != 1>>She<<else>>He<</if>> hisses and twists to meet you, defensive and reactive, the timidity burning off in an instant.
<<if Object.keys($player.companions ?? {}).length>>
Your companion is already moving to cut off any escape.
<</if>>
<br /><br />
<<link 'Fight'>>
<<set $enemies = [clone($dg1Feral)]>>
<<fight $enemies 'Random event - dead guy #1 feral won' 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<div id="dg1_leave">
<<set _leaveLabel = 'Leave'>>
<<linkreplace `_leaveLabel`>>
<<run $('#dg1_attack, #dg1_tame').hide()>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
You back away slowly, keeping your eyes on the brush until you're clear of the area. Whatever it was, it doesn't follow. You keep the road.
<br /><br />
<<link 'Leave'>><<goto 'Outside'>><</link>>
<</linkreplace>>
</div>
<div id="dg1_tame">
<<if $player.int >= 35 && $backpack.has('food')>>
<<set _tameName = 'Attempt to tame (−1 food)'>>
<<linkreplace `_tameName`>>
<<run $('#dg1_attack, #dg1_leave').hide()>>
<<set $dg1Path = 'tame'>>
<<drop $backpack 'food' 1>>
<<set $dg1Feral.relationship = Math.min(($dg1Feral.relationship ?? 0) + 20, 100)>>
<<set $dg1Feral.happy = Math.min(($dg1Feral.happy ?? 0) + 10, 100)>>
<<set $dg1Feral.sub = Math.min(($dg1Feral.sub ?? 0) + 5, 100)>>
You go slow. No sudden movements, no direct eye contact, nothing that reads as threat. You crouch, pull out the food, hold it out at arm's length. <<if $dg1FeralGender != 1>>She<<else>>He<</if>> watches you for a long moment from the brush, weight shifting — then takes one step forward. Then two. The food disappears from your hand. <<if $dg1FeralGender != 1>>She<<else>>He<</if>> retreats a half-step to eat, watching you the whole time. When <<if $dg1FeralGender != 1>>she<<else>>he<</if>>'s done, <<if $dg1FeralGender != 1>>she<<else>>he<</if>> doesn't run.
<br /><br />
<<set $tmpGirl = $dg1Feral>>
<<include 'NPC info'>>
<br /><br />
<div id="dg1t_opts">
<<if $dg1FeralGender != 1 || settings.gaysEnabled>>
<div id="dg1t_sex">
<<set _sexName = 'Have sex with ' + ($dg1FeralGender != 1 ? 'her' : 'him')>>
<<link `_sexName`>>
<<run $('#dg1t_opts').hide()>>
<<set $tmpGirl = $dg1Feral>>
<<set $tmpGirlViewBack = 'Random event - dead guy #1 feral after sex'>>
<<unset $slaveId, $guestId, $charId, $childId>>
<<fuck $tmpGirl>>
<</link>>
</div>
<</if>>
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit && $backpack.has('food') && $player.int >= 20>>
<div id="dg1t_lead">
<<set _leadName = 'Lead ' + ($dg1FeralGender != 1 ? 'her' : 'him') + ' home (−1 food)'>>
<<linkreplace `_leadName`>>
<<run $('#dg1t_sex, #dg1t_leave').hide()>>
<<drop $backpack 'food' 1>>
<<set $tmpGirl = $dg1Feral>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 20, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 10, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 10, 100)>>
You pull out another piece of food and the message is clear, there's more of this where that came from. As you turn and start walking, there is a pause behind you, then the sound of footsteps falling in to follow.
<br /><br />
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<run $guests.push($tmpGirl)>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<strong><<if $tmpGirl.gender == 0>>She<<else>>He<</if>> follows you home.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="dg1t_leave">
<<link 'Leave'>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<<goto 'Outside'>>
<</link>>
</div>
</div>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Attempt to tame (requires 35 INT, food)
</div>
<</if>>
</div>
<</if>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<<set _feralKilled = ($prevFight.defeatedEnemies ?? []).some(e => e.killed)>>
<<set _feralCaptured = ($prevFight.defeatedEnemies ?? []).some(e => e.captured)>>
<<if _feralKilled>>
<<if $dg1FeralGender != 1>>She<<else>>He<</if>> didn't get back up. Whatever <<if $dg1FeralGender != 1>>she<<else>>he<</if>> was before, <<if $dg1FeralGender != 1>>she<<else>>he<</if>> isn't anything now.
<br /><br />
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<<link 'Leave'>><<goto 'Outside'>><</link>>
<<elseif _feralCaptured>>
<<if $dg1FeralGender != 1>>She<<else>>He<</if>> doesn't have much left to resist with. You already bound <<if $dg1FeralGender != 1>>her<<else>>him<</if>> up back at the fight; there's nothing left to do here but get moving before that changes.
<br /><br />
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<<else>>
<<set $tmpGirl = $dg1Feral>>
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 20, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 30, -100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 20, 100)>>
<<if $tmpGirl.gender == 0>>
She's on the ground, breathing hard, the fight gone out of her. Not unconscious — watching you from under her hair with a wary stillness that wasn't there before. The aggression has collapsed into something quieter and less certain.
<<else>>
He's down, chest heaving, not moving to get up. The attack is finished. He watches you from the ground with flat eyes, waiting to see what comes next.
<</if>>
<br /><br />
<<include 'NPC info'>>
<br /><br />
<div id="dg1w_opts">
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit && !$slaves.some(function(s) { return s.id === $tmpGirl.id; })>>
<div id="dg1w_capture">
<<set _captureName = 'Capture as slave'>>
<<linkreplace `_captureName`>>
<<run $('#dg1w_leave').hide()>>
<<statsAdd 'people_captured'>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<run $slaves.push($tmpGirl)>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<<if $tmpGirl.gender == 0>>She<<else>>He<</if>> doesn't have much left to resist with. You bind <<if $tmpGirl.gender == 0>>her<<else>>him<</if>> and get moving before that changes.
<br /><br />
<strong>Taken as a slave.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="dg1w_leave">
<<link 'Leave'>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<<goto 'Outside'>>
<</link>>
</div>
</div>
<</if>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<<if $dg1Path == 'subdue'>>
<<if $tmpGirl.gender == 0>>She<<else>>He<</if>> comes down slowly, chest still moving fast, body loose in a way it wasn't before. The bound wrists haven't changed. Neither has whatever calculation is running behind those eyes — but it looks different now, less sharp-edged.
<<else>>
When it's over <<if $tmpGirl.gender == 0>>she<<else>>he<</if>> pulls back and watches you with that same patient stillness — but quieter, settled. Not running. The same thought you had before still applies: if you start walking, <<if $tmpGirl.gender == 0>>she<<else>>he<</if>> might just follow.
<</if>>
<br /><br />
<div id="dg1as_opts">
<<if $dg1Path == 'subdue' && ($game.location.basement ?? false) && $slaves.length < $basementLimit && !$slaves.some(function(s) { return s.id === $tmpGirl.id; })>>
<div id="dg1as_capture">
<<set _captureName = 'Capture as slave'>>
<<linkreplace `_captureName`>>
<<run $('#dg1as_leave').hide()>>
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 10, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 10, -100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 15, 100)>>
<<statsAdd 'people_captured'>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<run $slaves.push($tmpGirl)>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<<if $tmpGirl.gender == 0>>She<<else>>He<</if>> doesn't fight the lead. You get moving before either of you has time to reconsider.
<br /><br />
<strong>Taken as a slave.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<<if $dg1Path == 'tame' && ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit && $backpack.has('food') && $player.int >= 20>>
<div id="dg1as_lead">
<<set _leadName = 'Lead ' + ($tmpGirl.gender == 0 ? 'her' : 'him') + ' home (−1 food)'>>
<<linkreplace `_leadName`>>
<<run $('#dg1as_leave').hide()>>
<<drop $backpack 'food' 1>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 20, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 10, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 10, 100)>>
You pull out the food and start walking. The footsteps follow.
<br /><br />
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<run $guests.push($tmpGirl)>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<strong><<if $tmpGirl.gender == 0>>She<<else>>He<</if>> follows you home.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="dg1as_leave">
<<link 'Leave'>>
<<unset $dg1Feral, $dg1FeralGender, $dg1Found, $dg1Chopped, $dg1Path>>
<<goto 'Outside'>>
<</link>>
</div>
</div><h1 class="ptitle">FOREST</h1>
<br /><br />
As you walk down the path near the forest it gets dark and starts to rain.
<br />
Just off the trail you notice two guys. It looks like one is trying to comfort the other.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/dig_grave1.webp']]
</center>
<br /><br />
One of them seems to be crying as he looks behind the tree.<br /><br />
<div id="random-event-dig-grave-button">
<<link 'Get closer'>>
<<run $('#random-event-dig-grave-button').slideToggle()>>
<<run $('#random-event-dig-grave1').slideToggle()>>
<</link>>
</div>
<div id="random-event-dig-grave1" style="display:none">
<center>
[img[setup.ImagePath+'places/explore/dig_grave2.webp']]
</center>
<br /><br />
You slowly walk toward them. They notice you but look away almost immediately. You get closer and behind the tree you see a guy with a shovel in his hand screaming furiously, "<strong>WHY! WHY!</strong>"
<br /><br />
<div id="random-event-dig-grave-button1">
<<link 'Approach them'>>
<<run $('#random-event-dig-grave-button1').slideToggle()>>
<<run $('#random-event-dig-grave2').slideToggle()>>
<</link>>
</div>
<div id="random-event-dig-grave2" style="display: none;">
<center>
[img[setup.ImagePath+'places/explore/dig_grave3.webp']]
</center>
<br /><br />
You notice another guy sitting by the grave who completely ignores you. He just stares into the shallow grave as it's getting deeper.
<br /><br />
<div id="random-event-dig-grave-button2">
<<linkreplace 'Offer to help'>>
<center>
[img[setup.ImagePath+'places/explore/dig_grave4.webp']]
</center>
<br /><br />
The guy digging the grave thanks you as he gives you a shovel so you can take turns.<br />
A few times you look at the guy sitting next to you, but he still doesn't talk.<br />
The other guy tells that it's his <<=either('father', 'brother', 'sister')>>.<br />
They all came from <strong>The Sanctuary</strong>.<br />
They were working different jobs but mainly building armor, knives, and other weapons.
<br /><br />
<strong>
Your intelligence increased by 1
</strong>
<<set $player.int++>>
<br /><br />
<</linkreplace>>
</div>
</div>
</div>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><center>
[img[setup.ImagePath+'places/explore/blueprint_hot_shower.jpg']]
</center>
<br /><br />
You managed to get inside the looted plumbing supply shop. You look around and most everything is gone. As you're ready to get back on the streets, you step on something.
<br /><br />
<strong>You managed to find a blueprint for a hot shower!</strong>
<<pickup $backpack 'blueprint_hot_shower' 1>>
<br /><br />
[[Leave|Outside]]<center>
[img[setup.ImagePath+'places/explore/forest_berries.webp']]
</center>
<br /><br />
You found <strong>4</strong> food
<<pickup $backpack 'food' 4>>
[[Leave|Outside]]<h1 class="ptitle">CITY</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/hospital_outside.jpg']]
</center>
<br /><br />
You explore around the city borders and stumble upon a hospital.<br />
From outside it look like it has been robbed numerous times.<br />
All windows are broken and by the look nothing should be left inside to grab.
<br /><br />
<<linkreplace 'Go inside hospital'>>
<center>
[img[setup.ImagePath+'places/explore/hospital_inside.jpg']]
</center>
<br /><br />
<<set _foundNothing = true>>
<<if !$player?.quests?.found_hospital_blueprint>>
<<set _foundNothing = false>>
<<set $player.quests.found_hospital_blueprint = true>>
<<pickup $backpack 'blueprint_hospital' 1>>
You found <strong class="iitem">small hospital blueprint</strong>!
<br /><br />
<<elseif !$player?.quests?.found_massage_table_blueprint>>
<<set _foundNothing = false>>
<<set $player.quests.found_massage_table_blueprint = true>>
<<pickup $backpack 'blueprint_massage_table' 1>>
You found <strong class="iitem">massage table blueprint</strong>!
<br /><br />
<</if>>
<<if setup.percentageChance(60)>>
<<pickup $backpack 'antibiotics' 2>>
You found <strong class="iitem">2</strong> bottles of <strong class="iitem">antibiotics</strong>
<<elseif setup.percentageChance(40)>>
<<pickup $backpack 'towel' 2>>
You found <strong class="iitem">2</strong> <strong class="iitem">towels</strong>
<<elseif setup.percentageChance(20)>>
<<pickup $backpack 'gas_mask' 1>>
You found <strong class="iitem">1</strong> <strong class="iitem">gas mask</strong>
<<else>>
<<if _foundNothing>>
You found nothing and decided to leave
<</if>>
<</if>>
<br /><br />
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>><h1 class="ptitle">FOREST</h1>
<br /><br />
<<set _npcGenderOptions = [0, 1]>>
<<if settings.transEnabled>>
<<set _npcGenderOptions.push(2)>>
<</if>>
<<set _npcGender = setup.getRandomElement(_npcGenderOptions)>>
<<if _npcGender === 0>>
<<newgirl>>
<<elseif _npcGender === 1>>
<<newguy>>
<<set $tmpGirl = $tmpGuy>>
<<elseif _npcGender === 2>>
<<newtransgirl>>
<</if>>
<<set $tmpGirl.location = 'forest'>>
<<set _npcDataMapped = [
{
default: {
text: "You notice a girl walking through the forest and decide to check out what she's doing",
img: 'found_female',
},
masturbate: {
text: "As you peer through the foliage, you spot a figure—a woman sitting on a fallen tree in a small clearing. Her legs are spread wide as she pleasures herself.",
textTop: "As you move quietly, you suddenly hear a faint rustling noise not far ahead. Instinctively, you freeze, crouching low, your senses heightened. You inch closer, careful to avoid stepping on any dry twigs that might give away your position"
}
},
{
default: {
text: "You notice a guy walking through the forest and decide to check out what he's doing.",
img: "found_male",
}
},
{
default: {
text: "You notice a slightly masculine girl walking through the forest and decide to check out what she's doing.",
img: "found_transfemale",
}
}
]>>
<<set _type = (!_npcGender && setup.percentageChance(15) ? 'masturbate' : 'default')>>
<<if _type === 'masturbate'>>
<<set $tmpGirl.horny = 100>>
<</if>>
<<set _npcData = _npcDataMapped[$tmpGirl.gender][_type]>>
<<if _npcData.textTop>>
<<=_npcData.textTop>>
<br /><br />
<</if>>
<center>
<<if _type === 'masturbate'>>
<<actionImage $tmpGirl 'masturbate'>>
<<else>>
[img[setup.ImagePath+'places/explore/' + _npcData.img + '.jpg']]
<</if>>
</center>
<br /><br />
<<=_npcData.text>>
<br /><br />
<<if _type === 'masturbate'>>
<div id="fml_ask">
<<linkreplace 'Step into the clearing'>>
<<run $('#fml_hide').hide()>>
A twig snapped under your foot. She spun around, hands flying to cover herself — then froze when she saw you standing at the treeline.
<br /><br />
<<sayNpc $tmpGirl>>
How long have you been standing there?
<</sayNpc>>
<br />
<<you>>
Long enough. You want company?
<</you>>
<br />
She held your gaze for a long moment. Then her hands dropped.
<br /><br />
<<sayNpc $tmpGirl>>
<<=either(['...come here.', "Lock you out of my head for two minutes and look what happens.", "You'd better be worth the interruption."])>>
<</sayNpc>>
<br />
<<link 'Go to her'>>
<<set $tmpGirlInvite = true>>
<<unset $tmpGirlViewBack>>
<<unset $slaveId, $guestId, $charId, $childId>>
<<set $tmpGirlBack = 'Outside'>>
<<goto [[NPC view]]>>
<</link>>
<</linkreplace>>
</div>
<div id="fml_hide">
<<link 'Watch from the treeline'>>
<<set $tmpGirl.rape to true>>
<<set $tmpGirlCapture = true>>
<<set $tmpGirlInvite = true>>
<<unset $tmpGirlViewBack>>
<<unset $slaveId, $guestId, $charId, $childId>>
<<set $tmpGirlBack = 'Outside'>>
<<goto [[NPC view]]>>
<</link>>
</div>
<<else>>
<<link 'Go closer'>>
<<set $tmpGirl.rape to true>>
<<set $tmpGirlCapture = true>>
<<set $tmpGirlInvite = true>>
<<unset $tmpGirlViewBack>>
<<unset $slaveId, $guestId, $charId, $childId>>
<<set $tmpGirlBack = 'Outside'>>
<<goto [[NPC view]]>>
<</link>>
<</if>>
[[Leave|Outside]]You walk through a rather bushy location and hear some noises that sound like munching. You decide to approach its source, and notice a firm ass bent over.
<br />
By the looks of it, the filthy girl is either eating something or searching for something. Maybe both...
<br /><br />
<<linkreplace 'Get closer'>>
<center>
<<image 'places/explore/no_face_1.webp'>>
</center>
<br /><br />
You get closer and she suddenly turns her head towards you...
<br />
<strong>WHAT THE FUCK?!</strong><br />
Then you see her face. She looks human, but only in her lower body. Her face has been deformed, lacking any eyes and with half of her nose missing. She reminds you of the feral woman on Vincent's farm, only in a far, far worse state.
<br /><br />
<div id="nf10_look_wrap">
<<linkreplace 'Take a closer look at her face'>>
<<run $('#nf10_mercy_wrap').hide()>>
<center>
<<image 'places/explore/no_face_2.webp'>>
</center>
<br /><br />
Against your better judgement you decide to take a closer look. As you do she pounces on you, like she can smell where your dick is. She successfully opens your pants and sucks your dick inside her mouth.
<br /><br />
<div id="nf10_fuck_wrap">
<<linkreplace 'Fuck her'>>
<center>
<<image 'places/explore/no_face_3.webp'>>
</center>
<br /><br />
You throw her down on her back and something primal takes over. You grip her hips and drive into her hard, and she responds with everything she has — writhing beneath you, back arching off the ground, her cries raw and animal and unmistakable. She can't form words, but her body says everything. She claws at the ground, wraps her legs around you, and cries out again and again as you fuck her, pleasure wracking her without language or pretense.
<br /><br />
<<newgirl>>
<<set
$tmpGirl.traits = [...new Set(($tmpGirl.traits ?? []).concat(['feral', 'crippled']))],
$tmpGirl.beauty = random(10, 41),
$tmpGirl.baseBeauty = $tmpGirl.beauty,
$tmpGirl.washDays = 0,
$tmpGirl.washBeauty = 0,
$tmpGirl.skills = ($tmpGirl.skills ?? []).filter(s => ['woodcraft', 'scavenger', 'fighter'].includes(s)),
$tmpGirl.corruption = Math.min(Math.max($tmpGirl.corruption + 10, 41), 100),
$tmpGirl.horny = Math.min(Math.max($tmpGirl.horny + 10, 41), 100),
$tmpGirl.likesGuys = true,
$tmpGirl.virgin = false,
$tmpGirl.location = 'forest'
>>
<<if setup.pregnancyChance($tmpGirl)>>
<<set $tmpGirl.pregnancy_father = 'mc'>>
<<set $tmpGirl.pregnancy = 0>>
<<set $tmpGirl.pregnancy_encounter_day = $game.day>>
<<set $tmpGirl.pregnancy_encounter_place = 'forest'>>
<<run ($pregnantStrangers ??= []).push(clone($tmpGirl))>>
<</if>>
<br />
<<include 'NPC info'>>
When it's over, you pull back. She doesn't run. She sits up slowly, tilting what's left of her face in your direction, and something in her posture has changed — quieter, less wound-up. Her breathing settles. She watches you with a stillness that wasn't there before. You notice an old faded label on the tattered remnants of her clothes, with the name "<strong><<=setup.displayName($tmpGirl)>></strong>", and she seems to respond to the sound of it. You get the sense that if you start walking, she might just follow.
<br /><br />
<div id="nf10_opts">
<div id="nf10_opt_sex">
<<link 'Fuck her outside again'>>
<<run $('#nf10_opts').hide()>>
<<set $tmpGirlViewBack = 'Random event - no face #10 afterSex'>>
<<set $noFacePreSub = $tmpGirl.sub>>'
<<unset $guestId, $slaveId, $charId, $childId>>
<<fuck $tmpGirl>>
<</link>>
</div>
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit && $backpack.has('food') && $player.int > 20>>
<div id="nf10_opt_lead">
<<linkreplace 'Lead her back home (-1 food)'>>
<<run $('#nf10_opt_sex, #nf10_opt_cap, #nf10_opt_leave').hide()>>
<<drop $backpack 'food' 1>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 20, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 10, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 10, 100)>>
You pull out the food and hold it toward her, moving slow and deliberate. She sniffs at it, then takes it from your hand and eats. When she's done, you turn and walk. She hesitates — then falls in behind you.
<br /><br />
<<run $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<strong>She moves in as a guest.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit && $backpack.has('rope') && $player.strength > 20>>
<div id="nf10_opt_cap">
<<linkreplace 'Capture her as a pet (-1 rope)'>>
<<run $('#nf10_opt_sex, #nf10_opt_lead, #nf10_opt_leave').hide()>>
<<drop $backpack 'rope' 1>>
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 20, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 10, -100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 20, 100)>>
<<statsAdd 'people_captured'>>
She doesn't understand what's happening until the rope loops around her wrists. Then she fights — clawing, twisting — but you muscle her down, cinch the binding tight, and haul her to her feet. The remaining length serves as a lead. She pulls against it twice before settling into a dull trudge behind you.
<br /><br />
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<strong>She's been captured as a slave.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
</div>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<<if $backpack.has('revolver') && $backpack.has('bullet_revolver')>>
<div id="nf10_mercy_wrap">
<<linkreplace 'Put her out of her misery'>>
<<run $('#nf10_look_wrap').hide()>>
<<drop $backpack 'bullet_revolver' 1>>
<<statsAdd 'people_killed'>>
<br />
You stand over the deformed creature for a moment with a look bordering on pity. The wasteland doesn't ask how you feel about this — it just asks what you're going to do next. You draw your revolver, aim between the eyes, and pull the trigger. One shot. Clean. She doesn't suffer.
<br /><br />
You holster the weapon and keep walking.
<br /><br />
<</linkreplace>>
</div>
<</if>>
<</linkreplace>>
<div id="nf10_opt_leave">
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
</div><h1 class="ptitle">FOREST</h1>
<br /><br />
<<if $tmpGirl.sub > ($noFacePreSub ?? $tmpGirl.sub)>>
She's pulled away from you, crouching low, her body coiled tight. A low hiss escapes her — not quite a warning, not quite fear, somewhere between the two. She's watching you from a distance now, weight forward, like she's deciding whether to bolt.
<<else>>
She comes down slowly, breathing ragged. You give her a moment. When you look back at her, the same strange calm has returned — head tilted toward you, body loose, waiting. It looks like she's still thinking about following you.
<</if>>
<br /><br />
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit && $backpack.has('food') && $player.int > 20 && !($tmpGirl.sub > ($noFacePreSub ?? $tmpGirl.sub))>>
<div id="nf10as_opt_lead">
<<linkreplace 'Lead her back home (-1 food)'>>
<<run $('#nf10as_opt_cap, #nf10as_opt_leave').hide()>>
<<drop $backpack 'food' 1>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 20, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 10, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 10, 100)>>
You pull out the food and hold it toward her, moving slow and deliberate. She sniffs at it, then takes it from your hand and eats. When she's done, you turn and walk. She hesitates — then falls in behind you.
<br /><br />
<<run $guests.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<strong>She moves in as a guest.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<<if ($game.location.basement ?? false) && $slaves.length < $basementLimit && $backpack.has('rope') && $player.strength > 20>>
<div id="nf10as_opt_cap">
<<linkreplace 'Capture her as a pet (-1 rope)'>>
<<run $('#nf10as_opt_lead, #nf10as_opt_leave').hide()>>
<<drop $backpack 'rope' 1>>
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 20, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 10, -100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 20, 100)>>
<<statsAdd 'people_captured'>>
She doesn't understand what's happening until the rope loops around her wrists. Then she fights — clawing, twisting — but you muscle her down, cinch the binding tight, and haul her to her feet. The remaining length serves as a lead. She pulls against it twice before settling into a dull trudge behind you.
<br /><br />
<<run $slaves.push($tmpGirl)>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<strong>She's been captured as a slave.</strong>
<br /><br />
<<link 'Head home'>><<goto 'Wood cabin'>><</link>>
<</linkreplace>>
</div>
<</if>>
<div id="nf10as_opt_leave">
<<link 'Leave'>><<goto 'Outside'>><</link>>
</div><center>
[img[setup.ImagePath+'places/explore/quicksand_helped.webp']]
</center>
<br /><br />
You manage to pull him out as you both drop on the ground exhausted.
<br />
<<set $player.strength = Math.min($player.strength + 1, 300)>>
<<if random(0, 5) == 0>>
He quickly gets up, kicks you in the head with leg searches you while you're laying on the ground.
<<set _capsMissing = ($player.money - 3 > 0 ? 3 : $player.money)>>
<<if _capsMissing>>
<<set $player.money -= _capsMissing>>
<strong>He managed to find <<=_capsMissing>> caps on you</strong>
<</if>>
<<else>>
In gratitude he thanks you and offers his rope as a gift to you.
<<pickup $backpack 'rope' 1>>
<</if>>
<br /><br />
[[Leave|Outside]]<center>
[img[setup.ImagePath+'places/explore/quicksand.webp']]
</center>
<br /><br />
In the distance you see a guy who's drowning in quicksand. He begs for help as he reaches out his hand.
<br /><br />
<<link 'Help him'>>
<<if $player.strength < 10>>
<<set $game.death_reason = 'suffocating beneath quicksand.'>>
<<goto 'Dead'>>
<<else>>
<<goto 'Random event - quicksand #4 helped'>>
<</if>>
<</link>>
<<link 'Watch him drown and leave'>>
<<set $player.goodwill-->>
<<goto 'Outside'>>
<</link>><center>
[img[setup.ImagePath+'places/explore/solar_panel.jpeg']]
</center>
<br /><br />
You managed to find <strong>1</strong> solar panel in good condition.
<<pickup $backpack 'solar_panel' 1>>
<br /><br />
[[Back|Outside]]<h1 class="ptitle">OUTSIDE</h1>
<br />
<center>
[img[setup.ImagePath+'places/explore/teacher_escape.png']]
</center>
<br /><br />
You approach a man. He's a confident, well experienced, traveler who explored the country as soon as war happened. He tells you to be calm and offers a talk if you can share a meal with him in return (1 food).
<br /><br />
<<link 'Give him food'>>
<<drop $backpack 'food' 1>>
<<goto 'Random event - teacher #6 talk'>>
<</link>>
[[Leave|Outside]]<h1 class="ptitle">OUTSIDE</h1>
<br />
<center>
[img[setup.ImagePath+'places/explore/teacher_escape.png']]
</center>
<br /><br />
You manage to put up a decent fight before the man hits you as hard as he can and you pass out for a few seconds. When you open your eyes he is already gone.
<br /><br />
[[Continue|Outside]]<h1 class="ptitle">OUTSIDE</h1>
<br />
<center>
[img[setup.ImagePath+'places/explore/teacher_chop_hand.webp']]
</center>
<br /><br />
As you approach him in an aggressive manner he instantly slices off your hand with one swing without even hesitating. He looks you straight in the eyes but says nothing as you drop to your knees and bleed out.
<br /><br />
<<link 'Continue'>>
<<set $game.death_reason = 'bleeding out from a missing limb.'>>
<<goto 'Dead'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
<center>
[img[setup.ImagePath+'places/explore/teacher_fire.webp']]
</center>
<br /><br />
You sit down at the fire as he prepares the food and talks about his experiences in this post-apocalyptic world. He manages to give you a few good tips before he gets up and leaves.
<br /><br />
<<if $player.int < 60>>
<<set $player.int++>>
<strong>Your intelligence increased by 1</strong>
<<else>>
<strong>You can't increase intelligence with this action anymore</strong>
<</if>>
<br /><br />
[[Leave|Outside]]<h1 class="ptitle">OUTSIDE</h1>
<br />
<center>
[img[setup.ImagePath+'places/explore/teacher_walking.webp']]
</center>
<br /><br />
You notice some lone traveler walking in front of you. By his movements he hears you too. You see a machete strapped to his back as he slowly walks away from you.
<br /><br />
<<link 'Attack him'>>
<<set $player.goodwill -= 50>>
<<if $player.strength >= 100>>
<<goto 'Random event - teacher #6 kill him'>>
<<elseif $player.strength > 75>>
<<goto 'Random event - teacher #6 escaped'>>
<<else>>
<<goto 'Random event - teacher #6 killed'>>
<</if>>
<</link>>
<<link 'Approach him'>>
<<goto 'Random event - teacher #6 approach'>>
<</link>>
[[Leave|Outside]]<center>
[img[setup.ImagePath+'places/explore/forest_walk.jpg']]
</center>
<br /><br />
<<pickup $backpack 'wood' 10>>
You found <strong>10</strong> wood
<br /><br />
[[Back|Outside]]<h1 class="ptitle">OUTSIDE</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/workout_takeoff_top.webp']]
</center>
<br /><br />
She slowly walks toward you with cute grin on her face. She stops right in front of you, slides her finger across your chest and takes of her top<br />
<strong>"I got an idea"</strong> as she pushes you down on the nearest bench.
<br /><br />
<<linkreplace 'Kiss her breasts'>>
<center>
[img[setup.ImagePath+'places/cabin/workout_fuck1.webp']]
</center>
<br /><br />
You passionately kiss her breasts as she gets on you, grabs your hard cock and guides it toward her pussy. A moment later she gently slides onto you and rides your hard dick.
<<addmins 10>>
You fuck for good 10 minutes as she through moans tells you "<strong>cum inside me</strong>"
<br /><br />
<div id="option1">
<<linkreplace 'Cum inside her'>>
<<run $('#option2').hide()>>
<<run $('#option3').show()>>
<center>
[img[setup.ImagePath+'places/cabin/workout_cum.webp']]
</center>
<<horny_reset>>
<<if setup.pregnancyChance($guests[$randomPerson])>>
<<set $guests[$randomPerson].pregnancy_father = 'mc'>>
<<set $guests[$randomPerson].pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<br /><br />
She wraps her hands around your neck as you cum inside her.
<br /><br />
<strong>Your relationship with <<=$guests[$randomPerson].name>> increased by 5</strong>
<<set $guests[$randomPerson].relationship = Math.min(($guests[$randomPerson].relationship ?? 0) + 5, 100)>>
<br /><br />
<</linkreplace>>
</div>
<div id="option2">
<<linkreplace 'Cum outside'>>
<<run $('#option1').hide()>>
<<run $('#option3').show()>>
<center>
[img[setup.ImagePath+'places/cabin/workout_cum_outside.webp']]
</center>
<<horny_reset>>
<br /><br />
In the last moment you pull out and cum outside. She looks disappointed.
<br /><br />
<strong><<=$guests[$randomPerson].name>> submission increased by 5</strong>
<<set $guests[$randomPerson].sub = Math.min(($guests[$randomPerson].sub ?? 0) + 5, 100)>>
<br /><br />
<</linkreplace>>
</div>
<</linkreplace>>
<div id="option3" style="display:none">
<<link 'Leave'>>
<<unset $randomPerson>>
<<goto 'Fire place'>>
<</link>>
</div><h1 class="ptitle">CITY</h1>
<br /><br />
As the sun dipped below the decaying skyscrapers, casting an eerie orange glow across the desolate landscape, you cautiously made your way through the ruins of what was once a bustling city. The air was thick with the scent of rust and dampness, a stark reminder of the world that had crumbled into chaos. Broken glass and twisted metal crunched underfoot as you navigated the debris-filled streets, your steps echoing in the silence.
<br /><br />
<center>
[img[setup.ImagePath+'places/travel/city_ambush.jpg']]
</center>
<br /><br />
Suddenly, three figures emerged from the darkness of the alley, their silhouettes sharp against the fading light. Adorned in makeshift armor and wielding a mix of scavenged weapons, they exuded an air of predatory confidence. You swallowed hard, your heart pounding in your chest as you assessed the situation.
<br /><br />
<<anonguy>>
Looks like we've got ourselves a wanderer.
<</anonguy>>
<br /><br />
<<anonguy>>
What's in your backpack? How about you give it to us.
<</anonguy>>
<br /><br />
<div id="option1">
<<link 'Fight them'>>
<<generateEnemies 3>>
<<fight $enemies 'Underground city' 'Underground city'>>
<</link>>
</div>
<<linkreplace 'Run away'>>
<<run $('#option1').hide()>>
<<if $player.strength > 50 && setup.percentageChance(50)>>
<<goto 'Underground city'>>
<<else>>
<br />
<strong>You failed!</strong>
<br /><br />
<<link 'Fight them'>>
<<generateEnemies 3>>
<<fight $enemies 'Underground city' 'Underground city'>>
<</link>>
<</if>>
<</linkreplace>><h1 class="ptitle">OUTSIDE</h1>
<br /><br />
As the sun cast its feeble rays across the barren land, you trudged onward, your senses sharp and alert for any sign of danger. You had learned to be cautious, for in this new world, survival was a constant battle.
<br /><br />
<center>
[img[setup.ImagePath+'places/travel/tree_ambush.jpg']]
</center>
<br /><br />
With each step you took, the unease grew stronger. Suddenly, a rustle in the tree to your right jolted you to a halt. You heart raced as I instinctively dropped into a defensive crouch, your eyes scanning the surroundings. That's when You saw them – three men, clad in makeshift armor, emerging from behind the colossal tree.
<br /><br />
Their faces were etched with determination, and their eyes bore a hardness that spoke of survival at any cost. They carried crude weapons, each one a stark reminder of the brutality that defined this new world.
<br /><br />
<div id="option1">
<<link 'Fight them'>>
<<set $enemies = []>>
<<newguy>>
<<run $enemies.push($tmpGuy)>>
<<newguy>>
<<run $enemies.push($tmpGuy)>>
<<newguy>>
<<run $enemies.push($tmpGuy)>>
<<fight $enemies 'Settlement' 'Settlement'>>
<</link>>
</div>
<<linkreplace 'Run away'>>
<<run $('#option1').hide()>>
<<if $player.strength > 50 && setup.percentageChance(50)>>
<<goto 'Settlement'>>
<<else>>
<br />
<strong>You failed!</strong>
<br /><br />
<<link 'Fight them'>>
<<generateEnemies 3>>
<<fight $enemies 'Settlement' 'Settlement'>>
<</link>>
<</if>>
<</linkreplace>><h1 class="ptitle">FARM</h1>
<br />
<br />
You carefully open barn door so Vincent doesn't hear you and you walk inside and there she is..
<br /><br />
<<video '/farm/meet_blair1'>>
<br /><br />
She's cleaning the barn but stops as soon as you walk in.
<br /><br />
<<blair>>
Hey <<=$player.name>>! You shouldn't be her. My dad could see us.
<</blair>>
<br /><br />
<<linkreplace 'Tell that you are thinking about her'>>
<<blair>>
Oh you do? I thought I wasn't important to you as you spend almost all the time with other girls.
<</blair>>
<br /><br />
She smiles and turns her ass and lifts her dress up "<strong>You miss this?</strong>"
<br /><br />
<<video '/farm/blair_barn1'>>
<br /><br />
<<blair>>
I really hoped you would turn your attention back to me as I've missed you inside me this whole time. Just please, be fast!
<</blair>>
<br /><br />
<<video '/farm/blair_barn2'>>
<br /><br />
<div id="option1">
<<linkreplace 'Push her down on her knees'>>
<<run $('#option3').show()>>
<<addmins 60>>
<<video '/farm/blair_barn3'>>
<br /><br />
She goes for a kiss but instead you push her down on her knees and tell her to suck your hard dick.
<br /><br />
<</linkreplace>>
</div>
<div id="option2">
<<linkreplace 'Fuck her pussy'>>
<<run $('#option3').show()>>
<<addmins 60>>
<<video '/farm/blair_barn4'>>
<br /><br />
<</linkreplace>>
</div>
<div id="option3" style="display:none">
<<linkreplace 'Cum on her'>>
<<video '/farm/blair_barn5'>>
<br /><br />
She gets on her knees and opens her mouth wide open ready for your warm cum. Instead of cumming inside her mouth, you cum all over her breasts.
<br /><br />
<<if $characters.blair.relationship > 60>>
<strong>You can't increase your relationship with Blair with this action anymore.</strong>
<br /><br />
<<else>>
<<set $characters.blair.relationship +=5>>
<strong>Relationship with Blair increased by 5</strong>
<br /><br />
<</if>>
<<horny_reset>>
<</linkreplace>>
</div>
<</linkreplace>>
<<link 'Leave'>>
<<goto 'Farm'>>
<</link>><h1 class="ptitle">FARM</h1>
<br />
<<you>>
I'm not going to hurt her, I swear! Trust me, Vincent!
<</you>>
<br /><br />
<<vincent>>
Forget you ever saw her. I am not joking!<br />
The last thing we need here is someone snooping around.
<</vincent>>
<br /><br />
You can see that Vincent is really nervous, but decide to ask further questions.
<br /><br />
<<you>>
Someone might be snooping about? You know I live near here Vincent, if there's something going on I think I should know. Who is she? Why are you hiding her in there?
<</you>>
<br /><br />
<<vincent>>My daughter, and that's all you need to know!<</vincent>>
<br /><br />
He closes the barn door with lock and goes back to his shop.
<br /><br />
<<link 'Continue'>>
<<addmins 15>>
<<goto 'Farm'>>
<</link>><<addmins 15>>
<<newgirl>>
<<set
$tmpGirl.beauty = 90,
$tmpGirl.location = 'farm',
$tmpGirl.name = 'Blair',
$tmpGirl.breasts = 'medium',
$tmpGirl.virgin = true,
$tmpGirl.likesGuys = true,
$tmpGirl.likesGirls = true,
$tmpGirl.likesTGirls = false,
$tmpGirl.likesTGuys = false,
$tmpGirl.birthDate = setup.getBirthDate(18),
$tmpGirl.anal = 0,
$tmpGirl.pussy = 0,
$tmpGirl.dp = 0,
$tmpGirl.food = 100,
$tmpGirl.bj = 0,
$tmpGirl.hair = 'blonde',
$tmpGirl.race = 'white',
$tmpGirl.quests = {
metOnDay: $game.day
},
$tmpGirl.traits = ['breeder', 'cumslut', 'deepthroat'],
$tmpGirl.id = 'blair',
$tmpGirl.family = {
father: 'vincent'
},
$characters.vincent.name = 'Vincent',
$characters.vincent.id = 'vincent',
$characters.vincent.family = {
kids: ['blair']
}
>>
<<if setup.getAge($tmpGirl) < 18>>
<<run $tmpGirl.birthDate.setFullYear($tmpGirl.birthDate.getFullYear() - 1)>>
<</if>>
<<set $characters.blair = $tmpGirl>>
<h1 class="ptitle">FARM</h1>
<br />
<center>
[img[setup.ImagePath+'places/farm/old_barn.jpg']]
</center>
<br /><br />
As you walk near Vincent's farm, you quickly notice an old barn next to his house. You've build a cordial relationship with him at this point, he probably won't mind if you poke around a bit...
Deciding to check it out, you slowly open the barn door. You immediately notice an Amish girl quietly sweeping the floor.
<br /><br />
<<video '/farm/meet_blair1'>>
<br /><br />
The girl jumps as she notices you intruding, and begins to scream for help.
<br /><br />
<<blair>>
Don't hurt me, please!<br />
Daaaad! HELP!!!!!!<br />
<</blair>>
<br />
Barely any time passes before Vincent runs inside the barn. He has a gun in hand that's aimed right at you. Again.
<br /><br />
<<vincent>>Out! NOW!<</vincent>>
<br /><br />
<<link 'Get out of the barn'>>
<<goto 'Farm - meet Blair #2'>>
<</link>><h1 class="ptitle">FARM</h1>
<br />
<<set $characters.vincent.delivery_done = true>>
<<you>>
It's done; the package is delivered. Can I ask what in there so special that Boris needed it from all the way out here?
<</you>>
<br /><br />
<<vincent>>
Milk! I pump that girl in the cage out back every once in a while and deliver it directly to Boris. I guess he really likes it. Said something about it giving him extra strength.
<</vincent>>
<br /><br />
<<you>>
This place is really fucked up. Seriously, breast milk?!
<</you>>
<br /><br />
<<vincent>>You would be surprised! I could sell you my old pump but don't dare to sell your milk to Boris. He's my number one client!
<</vincent>>
<br /><br />
[[Thanks|Farm]]
<<addmins 5>><h1 class="ptitle">FARM</h1>
<br />
<<vincent>>
Hey! You busy? I have a favor to ask. I've got some goods I need to deliver somewhere, but I don't have time. Could you?
<br />
It won't be for free of course. I'll pay you in advance out of my client's prepayment. Just be careful, you'll need to go to the nearby underground city. That place doesn't have the best reputation - for good reason.
<</vincent>>
<br /><br />
<<link 'Yes'>>
<<set $characters.vincent.delivery = true>>
<<set $game.location.underground = true>>
<<set $player.money += 30>>
<<goto 'Underground city - first time'>>
<</link>>
<<addmins 5>><h1 class="ptitle">FARM - SHOP</h1>
<br /><br />
/*
<<set _shopItems = [
{name:'food',price:1, sell: false},
{name:'wood',price:1},
{name:'axe', price:20},
{name:'rope',price:10},
{name:'alcohol',price:6,sell:false},
{name:'tobacco',price:6,sell:false},
{name:'glue',price:8,sell:false},
{name:'soda',price:8,sell:false},
]>>
*/
<<set _shopItems = clone(setup.items.shop.farm)>>
<<if $characters.vincent.quests.pregnancy_talked>>
<<run _shopItems.push({
name: 'milk',
price: 10,
sell: false
})>>
<</if>>
<<shop 'farm' _shopItems 'Farm - shop' '<<if $characters.vincent.relationship < 20>><<set $characters.vincent.relationship += Math.min(5, _shopItems[_i].qty)>><</if>>'>>
<br /><br />
[[Leave|Farm]]<h1 class="ptitle">FARM</h1>
<<vincent>>
Look, I'm sorry about the whole 'holding you at gunpoint twice' thing. You're alright, son. I just want to keep my sweet Blair safe.<br />
Tell you what, as an apology - and to keep your mouth shut, or else - I'll give you some information. I see the way you look at my slave in the cage back there. Just renting a girl out probably wouldn't cut it for a guy like you, huh?<br/>
If you want one for yourself, there's a location where you can buy one. The <strong>Underground city - Slave market</strong>. Here, I'll note down how to get there for you...
<</vincent>>
<br /><br />
[[Continue|Farm]]<h1 class="ptitle">FARM</h1>
<br />
<<you>>
What's up with the girl in the cage?
<</you>>
<<vincent>>
What about her?
<</vincent>>
<<you>>
Who is she? Why is she in the cage? And where did you even find her?
<</you>>
<<vincent>>
Son, are you alright? How come you don't know anything that happened around here?
<</vincent>>
<br /><br />
You explain that you spent years together with your grandfather in a bunker and just came outside a few days ago.
<br /><br />
<strong>Vincent</strong> looks shocked and sighs loudly before starting to tell his side of the story.
<br /><br/>
<<vincent>>
Well, <<=$player.name>>, things started to take a dark turn a moment after the bombs were dropped. A lot of people didn't even care that they'd die. They just started looting every shop they could find. Police were nowhere to be found but you can't blame them.
<br /><br />
Why should they protect something if the world is ending soon, right? Every large city had one big bomb dropped on it so an above ground city is pretty much unlivable. Underground is a different story. I wouldn't recommend you go underground by the way.
<br /><br />
If you ask me, you should avoid any living soul you see. You can't trust anyone. Everyone is playing an angle.
<br /><br />
Oh, and the girl... I just found her in the forest like that. She doesn't speak and is very aggressive if released from the cage.
<br /><br />
Although...You know what? For a few caps I could let you use her. The only rule is to not let her outside the cage.<br /><br />
<</vincent>>
<br /><br />
<<link 'Thanks, I guess.' 'Farm'>><</link>>
<<addmins 10>><h1 class="ptitle">FARM</h1>
<br />
<<energy -30>>
<<set $player.money -=3>>
<br /><br />
You open the cage and, without hesitation, unbutton your pants and walk straight over to the girl.
<br />
For a brief moment you think that she's smiling while watching your cock. She leans closer and tries to take it in her mouth, but you just grab her by her dirty hair and turn her around.
<br />
<br />
<<video '/farm/use_girl'>>
<br /><br />
<br />
You pull her up pinning her against the cage wall as you shove your hard dick inside her dirty, wet pussy and start pounding her.
<br /><br />
<<video '/farm/use_girl2'>>
<br /><br /><br />
With all your strength you hold her face against the cage as you pick up the pace and fuck her like there's no tomorrow.
<br /><br /><br />
<<video '/farm/use_girl3'>>
<br /><br /><br />
Forcefully you turn her around as you spread her legs and ram your dick back inside her dirty cunt. A moment later you cum inside her...
<br /><br /><br />
<<video '/farm/use_girl4'>>
<<horny_reset>>
<<set $player.sexp++>>
<br /><br />
[[Back|Farm]]
<<addmins 30>><h1 class="ptitle">FARM</h1>
You notice a dozen guys going from building to building on the farm, kicking each door open and checking what's within. As the other armed men work, the apparent leader of them takes out his gun and points it at Vincent.
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/wanted_poster_gun.webp']]
</center>
<br /><br />
<strong>WHERE IS SHE OLD MAN?!</strong>
<br />
<br />
Vincent drops on his knees and begs to them
<br /><br />
<<vincent>>I don't know, I don't! I keep telling you all, she ran away!<</vincent>>
<br />
The guys continue their search of the farm, but fail to find Blair. Soon enough they're all gone. <br />
Vincent turns toward you as Blair comes out of a hidden room.
<br /><br />
<<vincent>>
We can't take it anymore. This was way too close. You've proven yourself more than trustworthy coming to me with this...I have a favor to ask. Could she sleep at your place? Only sleep. She won't intrude on your life too much, she will be gone in the mornings as I need her help here.<br />
Please!<br />
Your place would be perfect. It's clearly well hidden - even though you certainly are local to here even I don't know whereabouts it's at.<br />
I beg you, <<=$player.name>>! Nights are the most unsecure time. I've not got the years left in me to be guarding at night, and it's so pitch black out here we'd never see them coming anyway.
<</vincent>>
<br /><br />
<<link 'Agree and take Blair with you'>>
<<goto 'Farm - wanted poster #3'>>
<</link>><center>
[img[setup.ImagePath+'places/farm/pack_clothes.webp']]
</center>
<br /><br />
You help Blair pack some of her clothes, which you take note to be...not Amish, to put it lightly. As soon as Vincent comes in, she tries to hide what she's packing and throws another slightly aged and plainer long dress over what's already packed.
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/walk.webp']]
</center>
<br /><br />
Soon you hit the road and after few hours you're at your place.
<br />
You explain to Blair that your home is small, and there isn't additional room for her but she simply nods with an understanding expression on her face.
<br /><br />
You suggest that she can sleep in your bed whilst you'll sleep on the floor in the kitchen.
<br /><br />
<<blair>>
Oh god, no. We can share the bed, I won't allow you to sleep on the cold, hard ground. Especially after you have taken me into your own home out of nothing but a desire to protect me from those inhuman criminals.
<</blair>>
<br /><br />
You unpack her things, and in the meanwhile Blair cooks food for you both downstairs.
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/cook_food.webp']]
</center>
<br /><br />
<strong>You gained 2 food</strong>
<br /><br />
You both talk for a bit and decide to hit the hay, as it almost a night time already.
<br /><br />
<<video '/bedroom/blair_talk'>>
<br /><br />
You're shocked when you see Blair entering your bedroom. It's one thing to spot that she had some distinctly un-Amish clothes in her wardrobe, and another to actually see her casually in an outfit like that in front of you. You talk a bit more and decide to sleep.
<br /><br />
<<link 'Sleep'>>
<<sleep>>
<</link>>
<<set $gameDate.setHours(23) >>
<<pickup $backpack 'food' 2>>
<<if (typeof $characters.blair !== 'undefined' && typeof $characters.blair.quests !== 'undefined')>>
<<set $characters.blair.quests.cabinType = 1>>
<</if>>
<<set $player.hunger to 100>>
<<updatemeter '$hungerBar' `$player.hunger / $player.maxHunger`>><h1 class="ptitle">FARM</h1>
You check around to see if Blair isn't close and in low voice tell Vincent that you saw her on the wanted poster in the underground city.
<br/><br />
<center>
[img[setup.ImagePath+'places/farm/wanted_poster_talk.webp']]
</center>
<br /><br />
Vincent looks disappointed and angry at the same time as he yells at you that you shouldn't talk about it.
<br /><br />
<<you>>That bounty is fucking huge. Why someone is looking for her, let alone that badly?<</you>>
<br /><br />
Vincent deeply exhales as he understands that you just won't back down so easily and starts to explain.
<br /><br />
<<vincent>>Mr. Soprano...<br />
He kinda runs the underground city, the self-proclaimed mayor of the local one. In actuality, he's a fucked up criminal who decides what - or who- he owns at the drop of a hat.
<br /><br />
A few years back I made a huge mistake and took Blair with me while visiting an underground city. We casually walked the streets when he noticed her. He wanted to take her away from me right then and there, but I somehow convinced him that he could take her when she'd be a fully grown adult.
<br /><br />
I am watching her. They come to check if she's here regularly, but as for now, that's the only thing they do.
<</vincent>>
<br />
As you listen to Vincent talk, you both hear gunshots coming from outside.
<br /><br />
<<link 'Run outside'>>
<<goto 'Farm - wanted poster #2'>>
<</link>><<if (typeof $characters.vincent.relationship === 'undefined')>>
<<set $characters.vincent.relationship = 15>>
<</if>>
<h1 class="ptitle">FARM</h1>
<<if $characters.vincent.relationship >= 15 && !isMetChar('blair')>>
<<goto 'Farm - meet Blair'>>
<<elseif isMetChar('blair') && $characters.blair.quests.bj && ($characters.blair.quests.bj_day + 3) < $game.day && !$characters.vincent.quests.new_settlement && !$player?.quests?.settlement_burned>>
<<set $characters.vincent.quests.new_settlement = true>>
<<goto 'Vincent quest - settlement start'>>
<</if>>
<<if (!$game.location.slave_market && isMetChar('blair'))>>
<<set $game.location.slave_market = true>>
<<goto 'Farm - slave market'>>
<</if>>
<<if !$characters.vincent.first_time>>
<<vincent>>So, let me make something perfectly clear, son. The name's Vincent, and I don't take kindly to someone else trying to touch what's mine. If I catch you trying to put your hands on my girl back there again, I'll shoot you. Now, with that nice and clear...if you want something honestly, I run a little shop from my farm. I'm open to buying, as well as selling. Keep yourself in my good graces, and this could be a mutually beneficial relationship. Now what will it be, son?<</vincent>>
<<set $characters.vincent.first_time to true>>
<<else>>
<<vincent>>Hey! How can I help you?<</vincent>>
<</if>>
<br /><br />
<<if $game.day > 5 && !$characters.vincent.talked_about_girl>>
<<set $characters.vincent.relationship++>>
<<link 'Talk about girl' 'Farm - talk about girl'>>
<<set $characters.vincent.talked_about_girl = true>>
<<set $characters.vincent.can_use_girl = true>>
<</link>>
<</if>>
<<if $player.money >= 30 && $characters.vincent.delivery_done && !$backpack.has('breast_pump')>>
<<link 'Buy breast pump'>>
<<set $characters.vincent.relationship+=5>>
<<set $player.money -=30>>
<<pickup $backpack 'breast_pump' 1>>
<<goto 'Farm'>>
<</link>>
<<linkdesc>>
30 caps
<</linkdesc>>
<</if>>
<<if $game.day >= 10 && !$characters.vincent.delivery>>
<<set $characters.vincent.relationship++>>
<<link 'Talk' 'Farm - quest delivery'>>
<</link>>
<<elseif $characters.vincent.delivery && !$characters.vincent.delivery_done>>
<<set $characters.vincent.relationship++>>
<<link 'Talk' 'Farm - quest delivery done'>>
<</link>>
<<elseif $characters.vincent.quests.new_settlement && !($game.location.settlement ?? false) && !$player?.quests?.settlement_burned && $characters.vincent.quests.new_settlement_day < $game.day && $backpack.count('wood') >= 100 && $backpack.count('solar_panel') >= 5>>
<<link 'Talk' 'Settlement - intro'>><</link>>
<<elseif ($game.location.streets ?? false) && !$characters.vincent.wanted_poster>>
<<link 'Talk about wanted poster' 'Farm - wanted poster'>>
<<set $characters.vincent.wanted_poster = true>>
<</link>>
<<elseif $characters.vincent.quests.pregnancy && !$characters.vincent.quests.pregnancy_talked>>
<<link 'Talk about pregnant slave'>>
<<set $characters.vincent.quests.pregnancy_talked = true>>
<<goto 'Vincent quest - pregnancy'>>
<</link>>
<<elseif !$characters.vincent.quests.car_talk && $game.cabinName>>
<<link 'Talk'>>
<<set $characters.vincent.quests.car_talk = true>>
<<goto 'Vincent - car talk'>>
<</link>>
<<elseif $game.day >= 150 && $characters.blair.relationship >= 90 && !$characters.vincent.quests.wedding_talk>>
<<set $characters.vincent.quests.wedding_talk = true>>
<<goto 'Vincent - wedding ring'>>
<<elseif $game.day >= 160 && $characters.vincent.quests.wedding_talk && !$characters.vincent.quests.sanctuary_talk && ($characters.vincent.quests.wedding_talk_day + 10) <= $game.day>>
<<set $characters.vincent.quests.sanctuary_talk = true>>
<<goto 'Vincent - sanctuary talk'>>
<<elseif $characters.vincent.quests.sanctuary_talk && !$characters.vincent.quests.sanctuary_done>>
<<link 'Tell Vincent you are ready'>>
<<goto 'Vincent - sanctuary check companions'>>
<</link>>
<<elseif !($game.location.shop ?? false) && $characters.vincent.quests.sanctuary_done && !$characters.vincent.quests.shop_talk>>
<<link 'Talk with Vincent'>>
<<set $characters.vincent.quests.shop_talk = true>>
<<goto 'Vincent - shop talk'>>
<</link>>
<<elseif $characters.vincent.quests.shop_talk && !$characters.vincent.quests.sanctuary_car_talk>>
<<link 'Talk with Vincent'>>
<<set $characters.vincent.quests.sanctuary_car_talk = true>>
<<goto 'Vincent - sanctuary car'>>
<</link>>
<<elseif $characters.vincent.quests.sanctuary_car_talk && !$characters.vincent.quests.sanctuary_infiltration && setup.companions.sanctuary_infiltration()>>
<<link 'Talk with Vincent'>>
<<set $characters.vincent.quests.sanctuary_infiltration = true>>
<<goto 'Vincent - Infiltration of The Sanctuary'>>
<</link>>
<</if>>
<<if $characters?.rodger?.quests?.dead && !$characters.vincent.quests.wood_house && $player?.car?.explore>>
<<link 'Talk with Vincent'>>
<<goto 'Vincent - The House in the Woods'>>
<</link>>
<</if>>
<<if $characters.vincent.quests.car_fixed && !$characters.vincent.quests.old_debt_day && $player?.car?.explore && $game.day >= ($characters.vincent.quests.car_fixed_day + 20)>>
<<link 'Talk with Vincent'>>
<<goto 'Vincent - An Old Debt'>>
<</link>>
<<elseif $characters.vincent.quests.old_debt_day && !$characters.vincent.quests.old_debt_followup_day>>
<<link 'Talk with Vincent'>>
<<goto 'Vincent - An Old Debt - Followup'>>
<</link>>
<</if>>
[[Shop|Farm - shop]]
<<if $characters.vincent.can_use_girl && $player.energy > 30 && $player.money >=3>>
<<link 'Use girl' 'Farm - use girl'>>
<<set $characters.vincent.girl_fucked_times++>>
<</link>>
<<linkdesc>>
3 caps
<</linkdesc>>
<</if>>
<<if isMetChar('blair') && $characters.blair.quests.cabinType === 1 && $characters.blair.quests.sex>>
<<if timeBetween('12:00', '14:00')>>
<<link 'Go to barn'>>
<<goto 'Farm - blair barn'>>
<</link>>
<</if>>
<</if>>
[[Leave|Outside]]<h1 class="ptitle">TRADING POST</h1>
<br />
<<set $characters.vincent.quests.old_debt_day = $game.day>>
<<set _silasResult = $prevFight.defeatedEnemies.find(function (e) { return e.name === 'Silas'; })>>
<center>
<<image 'places/explore_car/old_debt4.jpg' sfw>>
</center>
<br />
<<if $prevFight.won>>
<<if _silasResult && _silasResult.killed>>
It didn't take long. Silas never was much of a fighter, and a decade of easy trading hadn't changed that. When it was over, Vincent stood over him for a long moment, breathing hard, saying nothing.
<br /><br />
<<vincent>>
Didn't think it would feel like anything. Guess I was wrong.
<</vincent>>
<br />
<<set $characters.vincent.relationship = Math.min(($characters.vincent.relationship ?? 0) + 6, 100)>>
<<set $player.reputation -= 2>>
<<else>>
Silas hit the ground and stayed there, more winded than hurt. Vincent crouched down next to him, close enough that only the two of them could hear what he said next.
<br /><br />
<<vincent>>
You're going to remember every one of their names for the rest of your life. That's the debt. That's all I want from you now.
<</vincent>>
<br />
Silas nodded fast, too scared to do anything else. Vincent stood, took what supplies were worth taking, and walked away without looking back.
<br /><br />
<<set _reward = randomInteger(40, 80)>>
<<set $player.money += _reward>>
You collected <strong><<=_reward>> caps</strong> from what he'd been trading.
<br />
<<set $characters.vincent.relationship = Math.min(($characters.vincent.relationship ?? 0) + 8, 100)>>
<</if>>
<<else>>
Silas fought harder than either of you expected, and it cost you — a split lip, a ringing skull, and a bruise that would take a week to fade. By the time you came to, he was long gone.
<br /><br />
Vincent helped you up without a word, jaw tight, eyes scanning the treeline where Silas had disappeared.
<br /><br />
<<vincent>>
Should've seen that coming. Rats fight hardest when they're already cornered.
<</vincent>>
<br />
<<vincent>>
He's out there somewhere, still. Maybe that's worse than if we'd finished it.
<</vincent>>
<br />
<<set $characters.vincent.relationship = Math.min(($characters.vincent.relationship ?? 0) + 2, 100)>>
<</if>>
<br />
<<link 'Head back to the farm'>>
<<goto 'Farm'>>
<</link>><h1 class="ptitle">FARM</h1>
<br /><br />
<<set $characters.vincent.quests.old_debt_followup_day = $game.day>>
<center>
<<image 'people/vincent/sitting.jpg' sfw>>
</center>
<br />
You found Vincent sitting out front, turning something over in his head long before he said any of it out loud.
<br /><br />
<<if $characters.vincent.quests.old_debt_method === 'fight'>>
<<vincent>>
Been thinking about Silas. Not proud of how far I let that go, but I can't say I lose sleep over it either. Some debts you just collect. Thanks for not talking me out of it.
<</vincent>>
<<elseif $characters.vincent.quests.old_debt_method === 'paid'>>
<<vincent>>
Still thinking about that trading post. Wasn't the ending I pictured for ten years, but it's an ending. Appreciate you keeping a level head out there when I couldn't.
<</vincent>>
<<else>>
<<vincent>>
Been thinking about that trading post. About Silas, walking around alive like none of it happened. Still turns my stomach some. But you were right to talk me down. Wouldn't have been able to live with the alternative.
<</vincent>>
<</if>>
<br />
<<link 'Leave'>>
<<goto 'Farm'>>
<</link>><h1 class="ptitle">FARM</h1>
<br /><br />
<<vincent>>
Got a supply run I could use a hand with. Nothing glamorous — parts, meds, whatever the trading post's got this week. Car up for it?
<</vincent>>
<br />
<<if $player?.car?.explore && $player?.car?.fuel === 100 && $player?.car?.health === 100>>
<div id="opt_go">
<<linkreplace 'Yes. Lets go'>>
<<run $('#opt_notnow').hide()>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<carFuel 60>>
You loaded up the car with empty crates and whatever you had left to trade, and Vincent climbed in without another word. The farm shrank behind you as the road took over.
<br /><br />
<center>
<<image 'places/explore_car/old_debt1.jpg' sfw>>
</center>
<br />
The trading post came up out of the heat haze an hour later — a scatter of stalls built from shipping containers and scavenged tarps, the kind of place that existed because enough people needed it to exist. Vincent had been here before. He knew which stalls were worth the walk.
<br /><br />
You were halfway across the lot when he stopped walking.
<br /><br />
<center>
<<image 'places/explore_car/old_debt2.jpg' sfw>>
</center>
<br />
<<vincent>>
Son of a bitch.
<</vincent>>
<br />
He said it quiet, almost to himself, eyes fixed on a stall near the far end — a man haggling over a crate of batteries like he owned the place. Vincent's jaw was set in a way you'd only seen once or twice before, and never over caps.
<br /><br />
<<newguy>>
<<set _silas = $tmpGuy>>
<<set _silas.name = 'Silas'>>
<<set _silas.relationship = -100>>
<<vincent>>
Name's Silas. Or it was, last I bothered to remember it.
<</vincent>>
<br />
You asked him who that was to him.
<br /><br />
Vincent didn't answer right away. He kept his eyes on the stall, arms crossed, like he was deciding how much of it he actually wanted to say out loud.
<br /><br />
<<vincent>>
Before the farm. Before Blair's mother, even. I ran with a crew — three of us, scraping by same as everyone. We needed a fourth for a job, someone who knew a bunker nobody else had found yet. That was him.
<</vincent>>
<br />
<<vincent>>
Turned out he'd already sold the location to a raider gang before we ever set foot near it. Traded it for his own hide. We walked into that bunker and walked into an ambush instead.
<</vincent>>
<br />
<<vincent>>
I got out. Two of the people I'd trusted with my life didn't. And him — he was just gone. I told myself for years he probably ended up dead in a ditch somewhere. Guess that was wishful thinking.
<</vincent>>
<br />
<<vincent>>
He's stood right there, trading like none of that ever happened. Like he didn't leave two people in the ground to buy himself another day.
<</vincent>>
<br />
He finally looked at you.
<br /><br />
<<vincent>>
So. Your call as much as mine, given you're the one driving. We settle this, or we don't.
<</vincent>>
<br />
<div id="opt_settle">
<<linkreplace 'Help him settle it'>>
<<run $('#opt_walk').hide()>>
<<you>>
He doesn't get to just walk away from that.
<</you>>
<br />
Something in Vincent's shoulders loosened, just slightly, like he'd needed someone else to say it first.
<br /><br />
<center>
<<image 'places/explore_car/old_debt3.jpg' sfw>>
</center>
<br />
Silas saw you both coming before you'd covered half the distance. Whatever color he had left his face.
<br /><br />
<<sayNpc _silas>>
Vincent. Hey — hey, that was a long time ago, man. I don't even carry a gun anymore, I'm not—
<</sayNpc>>
<br />
<<vincent>>
You sold us out for a case of canned peaches and a promise they wouldn't shoot you too. Don't tell me how long ago it was.
<</vincent>>
<br />
<<sayNpc _silas>>
I was scared! We were all scared, that doesn't mean—
<</sayNpc>>
<br />
<<vincent>>
Doesn't mean you don't owe a debt. And I intend to collect.
<</vincent>>
<br />
<div id="opt_pay">
<<linkreplace 'Make him pay it off'>>
<<run $('#opt_fight').hide()>>
<<set $characters.vincent.quests.old_debt_method = 'paid'>>
<<you>>
Nobody has to die here. But you're not leaving with what's in that crate.
<</you>>
<br />
Silas looked between the two of you, doing the math on his odds, and didn't like the answer. His shoulders dropped.
<br /><br />
<<sayNpc _silas>>
Fine. Fine! Take it, take all of it, just — we're square after this. We're square.
<</sayNpc>>
<br />
<<set _reward = randomInteger(60, 100)>>
<<set $player.money += _reward>>
<<pickup $backpack 'bandage' 3>>
He shoved the crate of batteries and a handful of caps into your arms and backed away fast, not waiting for a reply. You picked through what was left — <strong><<=_reward>> caps</strong> and a few supplies he'd rather lose than argue over.
<br /><br />
Vincent watched him go without a word. He didn't look satisfied, exactly. Just quieter.
<br /><br />
<<vincent>>
Won't bring them back. Didn't expect it to. But it's more than he ever gave us.
<</vincent>>
<br />
<<set $characters.vincent.relationship = Math.min(($characters.vincent.relationship ?? 0) + 5, 100)>>
<<set $characters.vincent.quests.old_debt_day = $game.day>>
<br />
<<link 'Head back to the farm'>>
<<goto 'Farm'>>
<</link>>
<</linkreplace>>
</div>
<div id="opt_fight">
<<linkreplace 'Let Vincent finish this'>>
<<run $('#opt_pay').hide()>>
<<set $characters.vincent.quests.old_debt_method = 'fight'>>
Silas saw it in your faces before either of you moved, and bolted for the treeline behind the stalls. He didn't get far.
<br /><br />
<<set _silas.strength = 45>>
<<set _silas.noFlee = true>>
<<set _silas.inventory = { knife: 1 }>>
<<generateEnemies 1 0 0>>
<<run $enemies.push(_silas)>>
<<link 'Fight'>>
<<fight $enemies 'Vincent - An Old Debt - Aftermath' 'Vincent - An Old Debt - Aftermath'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="opt_walk">
<<linkreplace 'Talk him out of it'>>
<<run $('#opt_settle').hide()>>
<<set $characters.vincent.quests.old_debt_method = 'walked_away'>>
<<you>>
Look at him. He's not worth what it'll cost you to do this here, in front of everyone.
<</you>>
<br />
Vincent didn't move for a long moment. His hands were shaking, just slightly, the kind of shake that comes from holding something back rather than letting it go.
<br /><br />
<<vincent>>
Ten years I've wondered what I'd do if I ever saw that face again. Turns out the answer's nothing. Just... nothing.
<</vincent>>
<br />
<<vincent>>
Doesn't feel like the right answer. Feels like the only one I can live with, though.
<</vincent>>
<br />
He turned back toward the car without another glance at Silas, who was still watching you both, too afraid to move first.
<br /><br />
<<vincent>>
Let's just get what we came for and go.
<</vincent>>
<br />
<<set $characters.vincent.relationship = Math.min(($characters.vincent.relationship ?? 0) + 3, 100)>>
<<set $characters.vincent.quests.old_debt_day = $game.day>>
<br />
<<link 'Head back to the farm'>>
<<goto 'Farm'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="opt_notnow">
<<link 'Not right now'>>
<<goto 'Farm'>>
<</link>>
</div>
<<else>>
<<link 'No, need to prepare'>>
<<goto 'Farm'>>
<</link>>
<</if>><h1 class="ptitle">FARM</h1>
<br /><br />
<<vincent>>
<<=$player.name>>! Good, you're all here. We need to wait till sun goes down and then we will go in
<</vincent>>
<br />
<<for _companionKey, _companion range $player.companions>>
<<set _npc = setup.companionGet(_companionKey)>>
<<if !_npc.gender>>
<<set _girlCompanion = _npc>>
<</if>>
<</for>>
<<linkreplace 'Wait until the sun sets'>>
As the crimson hues of the setting sun cast long shadows across the desolate cityscape, you and your crew gather on the outskirts of the street where The Sanctuary looms,
a massive ship marooned in the heart of the urban wasteland. Its towering presence speaks volumes of its potential riches, now guarded by some crew.
<br /><br />
Vincent, with a determined glint in his eye, briefs the team on the plan.
The night air is charged with anticipation as you await the cover of darkness. Your hearts beat in synchrony with the quiet rhythm of the post-apocalyptic world.
<br /><br />
<center>
[img[setup.ImagePath+'places/sanctuary/night.jpg']]
</center>
<br />
<<vincent>>
Slowly! One by one!
<</vincent>>
<br />
Vincent motions for everyone to follow him, creeping through the debris-strewn streets like shadows.
The scent of decay mingles with the metallic tang of old battles. You reach the aft of The Sanctuary, the tube, like a beckoning portal to potential victory.
<br /><br />
With bated breath, you slide through the narrow tube, the echo of your heartbeat resonating in the metallic chamber.
Your team follows, one by one, their silent movements a testament to their expertise.
<br /><br />
<<if _girlCompanion>>
<<=setup.displayName(_girlCompanion)>> grabs you by hand and tells you that she will go first as she would be more discreet.
<br /><br />
<center>
[img[setup.ImagePath+'places/sanctuary/night_girl.jpg']]
</center>
<br /><br />
<</if>>
The sight that greets you on the other side of the tube is both shocking and disheartening. A makeshift factory has taken root within the bowels of The Sanctuary.
The air is thick with the acrid scent of metal and the rhythmic clang of hammers against steel reverberates through the chamber.
<br /><br />
<<video 'sanctuary/night1'>>
<br /><br />
In the harsh glow of the overhead lights, you see a grim tableau. Women, without any clothes and sweaty, toil tirelessly amidst the machinery.
Their hands, calloused and scarred, deftly manipulate the raw materials, crafting them into weapons, ammo, armor and other metal stuff.
<br /><br />
<<video 'sanctuary/night2'>>
<br /><br />
Some are welding, sparks flying like angry fireflies, while others operate heavy presses, shaping metal with a relentless determination.
Their eyes bear the weariness of endless labor, yet there is a glimmer of resilience, a fierce determination to survive.
<br /><br />
You exchange a somber glance with your crew, a silent acknowledgment of the harsh realities that this new world has wrought.
The Sanctuary, once a symbol of hope, has become a crucible of desperation and exploitation.
<br /><br />
<<vincent>>
We can't help them so don't even bother. Others stay here. <<=$player.name>> come with me!
<</vincent>>
<br /><br />
<<linkreplace 'Follow Vincent'>>
<<video 'sanctuary/night3'>>
<br /><br />
The air grows heavy with tension as Vincent motions for you to follow, leaving the others behind in the shadows.
Together, you move stealthily through the compartment, inching closer to the room adjacent to the looming exit doors. The car, a glimmer of hope in the dim light, awaits your inspection.
<br /><br />
<center>
[img[setup.ImagePath+'places/sanctuary/night_car.jpg']]
</center>
<br />
With cautious precision, you check the car for fuel and examine its wiring, ensuring it's ready for escape. Every moment counts, each movement deliberate and focused.
The adrenaline courses through your veins, the weight of the mission pressing on your shoulders.
<br /><br />
Satisfied that the car is prepared, you turn to head back for the rest of the crew. But as you retrace your steps, dread settles in the pit of your stomach.
The sight that awaits you is a nightmare come to life.
<br /><br />
<center>
[img[setup.ImagePath+'places/sanctuary/night_caught.jpg']]
</center>
<br />
They're all there, your companions, kneeling in front of a menacing figure wielding a bat.
His presence exudes authority, a malevolent force in this bleak world. Their faces bear the marks of fear and defiance, a testament to the strength that courses through their veins.
<br /><br />
<<negan>>
Who are you? How did you get in?
<</negan>>
<br />
Vincent's eyes meet yours, a silent understanding passing between you. This is a moment that will define the outcome of your mission, the lives of your comrades hanging in the balance. The weight of the decision is palpable.
<br /><br />
<center>
[img[setup.ImagePath+'people/negan/bat_kill.webp']]
</center>
<br />
Suddenly, in a surge of brutal violence, he raises his bat high and brings it down with a sickening thud. The impact echoes through the chamber, a grotesque punctuation mark to the silence.
<<set _companionKeys = Object.keys($player.companions)>>
<<set _firstCompanion = setup.companionGet(_companionKeys[0])>>
<br />
<strong><<=setup.displayName(_firstCompanion)>> crumples to the ground, a life extinguished in an instant.</strong>
<br /><br />
A wave of horror washes over you, the brutality of the act searing into your memory.
The loss is palpable, a stark reminder of the unforgiving nature of this world. The remaining companions remain resolute, their faces a mix of grief, anger, and determination.
<br /><br />
<<negan>>
Why are you here? Where do you live?
<</negan>>
<br /><br />
The sickening thud reverberates through the chamber, another life extinguished in a brutal act of violence. Another companion falls, their fate sealed in a horrifying instant.
<br />
<<set _companionKeys = Object.keys($player.companions)>>
<<set _lastCompanion = setup.companionGet(_companionKeys[_companionKeys.length - 1])>>
<strong><<=setup.displayName(_lastCompanion)>> drops on the ground with <<=setup.pronounceWhos(_lastCompanion)>> skull crushed open.</strong>
<br /><br />
<center>
[img[setup.ImagePath+'people/negan/bat_kill_blood.webp']]
</center>
<br /><br />
<div id="option_kill_help">
<<linkreplace 'Help them'>>
<<set _tryHelp = true>>
<<set $player.goodwill++>>
As you try to stand up Vincent grabs you by hand and holds you.
<br /><br />
<<vincent>>
Don't! It's suicide! They are gone. Nothing we can do about that. We should just go get that car
<</vincent>>
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Leave them and get car'>>
<<if !_tryHelp>>
<<set $player.goodwill -= 10>>
<<run $('#option_kill_help').hide()>>
<</if>>
As you make the harrowing decision to leave your remaining companions behind, your heart heavy with grief and desperation, you push forward towards the car.
Every step feels like an eternity, the weight of your choice bearing down on you.
<br /><br />
The journey back is a blur, your mind racing, the road a mere ribbon of asphalt beneath your tires. The shadows of the forest loom around you, a silent witness to your escape.
Just as you near your settlement, a sinking feeling takes hold.
<br /><br />
<center>
[img[setup.ImagePath+'places/sanctuary/night_car_inside.jpg']]
</center>
<br />
The engine sputters and groans, and a cacophony of metallic noises fills the air. Panic surges through you as the car grinds to a halt, its final protest against the relentless strain.
The reality of the situation crashes down on you like a tidal wave.
<br /><br />
<<vincent>>
That doesn't sound right! Hopefully we make to your settlement.
<</vincent>>
<br />
You reach your settlement.
<br />
Exhaustion courses through your veins as you pull yourself out of the now immobile car.
<br />
Every step feels like a monumental effort, your muscles protesting with every movement.
<br />
Vincent, his face etched with weariness, turns to you with a grim determination.
<br /><br />
<<vincent>>
I'm going home. You should get some sleep too.
<</vincent>>
<br />
You nod, understanding the weight of his words. The events of the day have taken their toll on both of you, and the need for respite is undeniable.
With a grateful glance, Vincent turns and begins to trudge towards his own abode, leaving you standing amidst the eerie silence of the settlement.
<<set $game.location.garage = true>>
<<set $characters.vincent.car_get_day = $game.day>>
<<for Object.keys($player.companions).length > 0>>
<<set _companionKeys = Object.keys($player.companions)>>
<<set _lastCompanionKey = _companionKeys[_companionKeys.length -1]>>
<<companionRemove _lastCompanionKey>>
<</for>>
<br /><br />
<<link 'Go to bed'>>
<<goto 'Sleep eval'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><br /><br />
<center>
[img[setup.ImagePath+'people/vincent/base1.jpg']]
</center>
<br />
In the early morning light, you wake to find Vincent, waiting for you at the settlement gate.
<br />
His eyes reflect urgency, and without a word, he gestures for you to get ready for an expedition. Curiosity piqued, you prepare for the journey ahead.
<br /><br />
<<vincent>>
<<=$player.name>> get ready. We should go. I might know a place where we can find a vital part for the car.
<</vincent>>
<br />
You and Vincent set out on a journey through the desolate forest, armed with makeshift weapons and a determination to find car parts for the vehicle you're building.
The sky above is a canvas of muted colors, a stark contrast to the vibrant world that once existed.
<br /><br />
Vincent leads the way, his gaze fixed on a peculiar mountain in the distance.
<br /><br />
<<vincent>>
I've heard rumors about an old military base around here. Figured it's worth checking out. Might have the parts we need.
<</vincent>>
<br />
<center>
[img[setup.ImagePath+'people/vincent/base5.jpg']]
</center>
<br />
As you tread carefully through the dense foliage, the ground beneath your feet gives an ominous creak. Without warning, the earth gives way, and you find yourselves tumbling into darkness.
After what seems like an eternity, you land with a thud in an underground garage, the air thick with the scent of rust and decay.
<br /><br />
Vincent groans in pain as he is shaking off the dust.
<br /><br />
<<vincent>>
Well, that wasn't on the map
<</vincent>>
<br />
You glance around, your eyes adjusting to the dim light. The underground space reveals a trove of old military vehicles, forgotten relics of a bygone era.
<br /><br />
<<you>>
Looks like we stumbled upon something, alright
<</you>>
<br />
As you explore the underground garage, you discover a cache of car parts neatly organized in dusty crates. Vincent grins, a glint of excitement in his eyes.
<br /><br />
<<vincent>>
This is exactly what we needed. Let's load up and get out of here before anything else collapses.
<</vincent>>
<br />
<center>
[img[setup.ImagePath+'people/vincent/base2.jpg']]
</center>
<br />
Amidst the car parts, you notice a door leading to somewhere..
<br /><br />
<div id="option_door">
<<linkreplace 'Push them'>>
<<set _door = true>>
<center>
[img[setup.ImagePath+'people/vincent/base3.jpg']]
</center>
<br />
As you push the door open, an uneasy tension fills the air. The dim light reveals a frozen chamber, and your eyes widen as you notice a human figure suspended within.
A frozen body, encased in what appears to be a cryo freezer, catches your attention. The eerie sight sends a shiver down your spine, and a sense of foreboding lingers in the confined space.
<br />
<br />
<center>
[img[setup.ImagePath+'people/vincent/base4.jpg']]
</center>
<br />
In the end of the room you see a single desk with a worn-out chair and a dim light flickering overhead. On the desk lies a yellowed paper with the handwritten code and gas mask.
<br /><br />
Vincent raises an eyebrow and he asks, picking up the note.
<br /><br />
<<vincent>>
What's this?
<</vincent>>
<br />
<<you>>
Could be a code for something. Let's keep it, might come in handy.
<</you>>
<<pickup $backpack 'note3844' 1>>
<<pickup $backpack 'gas_mask' 1>>
<br />
<strong>You picked up <strong class="iitem">1 gas mask</strong> and <strong class="iitem">one note</strong> with text "3844" on it.</strong>
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Leave'>>
<<if !_door>>
<<run $('#option_door').hide()>>
<</if>>
You and Vincent gather the car parts and make your way back to the surface.
<br />
The unstable ground beneath trembles, and before you can react, the collapsed tunnel begins to shift and close. Rocks and debris cascade down, sealing the entrance entirely.
The entrance you had just emerged from now stands as a cryptic monument to the unexpected discovery in the post-apocalyptic world.
<br /><br />
With no chance to re-enter the collapsed hole, you and Vincent exchange a solemn glance, realizing that the secrets buried within are now beyond reach.
<br /><br />
<<if _door>>
The mysterious code in your pocket becomes a lingering reminder of the unpredictability of the wasteland, leaving you to ponder the significance of the note and the lost possibilities hidden beneath the rubble.
<br /><br />
<</if>>
<<link 'Leave'>>
<<set $characters.vincent.quests.military_base_day = $game.day>>
<<set $characters.vincent.quests.military_base = true>>
<<addhours 6>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>><br /><br />
<h1 class="ptitle">FOREST</h1>
<br />
The fight was over.
The only sounds were the sharp crackle of the fire and the frantic breathing of the woman clutching the broken chair leg in her hands.
<br /><br />
You lowered your weapon, scanning the room — and that’s when you noticed movement. A glimpse, just for a second, of wide, terrified eyes peeking out from behind the corner of a closet door.
<br /><br />
The daughter.
<br /><br />
<center>
<<image 'people/elsa/introduction2.jpg'>>
</center>
<br />
<<newgirl>>
<<set _mother = $tmpGirl>>
<<set _mother.race = 'white'>>
<<set _mother.hair = 'blonde'>>
Before you could speak, the mother gasped and whirled around.
In a flash, she shoved the girl inside and pulled the door shut, pressing her body against it as though to shield her child from the entire world.
Her chest heaved, her hands shaking. Tears welled in her eyes as she looked at you and Vincent with raw panic.
<br /><br />
<<sayNpc _mother>>
Please—please don’t take her! You’ve done enough! If you’re going to kill me, just do it, but let her go!
<</sayNpc>>
<br />
You froze, unsure of how to respond, but Vincent stepped forward slowly, both hands raised, his voice low and steady.
<br /><br />
<<vincent>>
Hey… hey. It’s alright. No one’s taking her. You hear me? She’s safe. We’re not here to hurt you — or her. The danger’s gone.
<</vincent>>
<br />
The woman shook her head at first, sobbing harder, her back still pressed against the closet door. But Vincent kept talking, inching closer, his tone calm and grounding.
<br /><br />
<<vincent>>
We’ve seen what men out here do. We’re not like them. You have my word — neither of you will come to harm while we’re under this roof. Not from us.
<</vincent>>
<br />
Her eyes darted between you and Vincent, searching for any trace of deception.
Finally, her breathing slowed. She slumped slightly against the closet door, then pulled it open.
The girl was crouched inside.
<br /><br />
<center>
<<image 'people/elsa/introduction.jpg' sfw>>
</center>
<br />
The mother quickly pulled her into her arms, holding her close.
<br /><br />
<<sayNpc _mother>>
It’s alright, darling… it’s alright. I’m sorry. I didn’t know… I didn’t know if I could trust you
<</sayNpc>>
<br />
<<vincent>>
Caution like that’s the only reason you’re both alive. Don’t apologize.
<</vincent>>
<br />
The woman’s grip tightened on her daughter as she steadied herself.
<br /><br />
<<sayNpc _mother>>
You saved us. I don’t even know how to thank you. If… if you want, you can stay here tonight.
Just in case more of them come back. This place isn’t much, but it’s safer with you in it.
<</sayNpc>>
<br />
The offer hung in the air, heavy but genuine. Outside, the forest was dark, and the thought of driving back through it now seemed reckless.
<br /><br />
You glanced at Vincent. He exhaled, rubbing his temples, then muttered.
<br /><br />
<<vincent>>
Best we stay. Just for the night.
<</vincent>>
<br />
And so, as the fire burned low and shadows stretched long across the walls, you found yourselves no longer strangers — but unexpected allies bound together by survival, fear, and the fragile hope of safety, if only for a single night.
<br /><br />
Vincent finished checking the door and windows, then sighed deeply. He rubbed his temples, his voice carrying the weariness of an old man who’d seen too much.
<br /><br />
Vincent stepped outside, closing doors behind him.
<br />
<<vincent>>
I will sleep in the car
<</vincent>>
<br />
<<sayNpc _mother>>
We… don’t have much. Just these.
<</sayNpc>>
<br />
She looked at her daughter, then back at you. Her voice was soft, almost apologetic.
<br /><br />
<<sayNpc _mother>>
You can take her bed tonight. She’ll sleep with me.
<</sayNpc>>
<br />
The girl clutched her mother’s arm, wide-eyed, but didn’t say a word. The mother knelt beside her, whispering gently until the girl finally nodded.
Together, they climbed into the larger bed.
<br /><br />
The room settled into silence. The girl’s breathing grew softer as sleep claimed her. The mother’s eyes met yours briefly across the dim firelight.
Tired, grateful, she gave you a small nod before closing her eyes, holding her daughter close.
<br /><br />
<center>
<<image 'people/elsa/introduction3.jpg' sfw>>
</center>
<br />
<<newgirl>>
<<set
$tmpGirl.beauty = 90,
$tmpGirl.location = 'bedroom',
$tmpGirl.name = 'Elsa',
$tmpGirl.breasts = 'medium',
$tmpGirl.virgin = true,
$tmpGirl.likesGuys = true,
$tmpGirl.likesGirls = false,
$tmpGirl.likesTGirls = false,
$tmpGirl.likesTGuys = false,
$tmpGirl.birthDate = setup.getBirthDate(18),
$tmpGirl.anal = 0,
$tmpGirl.pussy = 0,
$tmpGirl.dp = 0,
$tmpGirl.food = 100,
$tmpGirl.bj = 0,
$tmpGirl.hair = 'blonde',
$tmpGirl.race = 'white',
$tmpGirl.quests = {
metOnDay: $game.day
},
$tmpGirl.traits = ['breeder'],
$tmpGirl.id = 'elsa',
$tmpGirl.mother = _mother
>>
<<set $characters.elsa = $tmpGirl>>
And so, all three of you slept in the same room that night — a family bound by blood, and you, a stranger, welcomed into their fragile circle. Outside, the forest waited, but inside, for one fleeting night, you were safe.
<br /><br />
<<link 'Sleep'>>
<<sleep 'Elsa - Morning request'>>
<</link>><br /><br />
<h1 class="ptitle">FARM</h1>
<<vincent>>
You’re early. Good. Means we’ll have more daylight.
<</vincent>>
<br />
Then, after a pause, he gave you a nod.
<br /><br />
<<vincent>>
Is your car ready for a drive?
<</vincent>>
<br />
<<if $player?.car?.explore && $player?.car?.fuel === 100 && $player?.car?.health === 100>>
<<linkreplace 'Yes. Lets go'>>
<<set $characters.vincent.quests.wood_house = true>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<carFuel 60>>
You both loaded up the old car, tossing in supplies and checking the weapons twice.
The engine coughed to life, echoing through the still morning air, and soon the farm was shrinking in the rearview mirror as you drove out into the wastes.
<br /><br />
<center>
<<image 'places/farm/wood_house.jpg' sfw>>
</center>
<br /><br />
The drive stretched on. Broken roads, skeletons of towns long abandoned, and the silent reminder of a world that had collapsed.
Vincent was quiet for most of it, staring out the window with that haunted look he always carried. Finally, after hours of monotony, he leaned forward.
<br /><br />
For a while, Vincent said nothing, eyes fixed ahead. Then, his voice broke the quiet — low, almost thoughtful.
<br /><br />
<<vincent>>
Hard to believe Rodger’s gone.
<</vincent>>
<br />
You nodded slowly. The memory of that day still weighed on you both.
<br />
Vincent kept one hand on the wheel, the other resting against his leg. His face was hard, but his voice carried a quiet grief.
<br /><br />
<<vincent>>
He was younger than me. Stronger too. Always figured if anyone could make it through all this, it’d be him. Guess that’s just how it is, though.
<</vincent>>
<br />
<<vincent>>
No one’s safe anymore. Doesn’t matter how fast, or how tough.
<</vincent>>
<br />
Neither of you answered that thought. The silence that followed wasn’t empty — it was full of Rodger’s absence, full of the reality that in this world, survival was never guaranteed.
<br /><br />
After a long while, Vincent cleared his throat and pointed ahead, changing the subject.
<br /><br />
<<vincent>>
Take that side road. Off the main path. Let’s see where it goes.
<</vincent>>
<br />
The car turned, leaving the cracked asphalt behind as trees swallowed the light.
<br /><br />
<center>
<<image 'places/farm/wood_house2.jpg' sfw>>
</center>
<br />
The dirt track clawed its way into the forest, branches scraping the car as though trying to hold you back.
Eventually, a fallen tree blocked the road, its roots twisted like broken fingers. You killed the engine, the sudden silence unnerving.
<br /><br />
<center>
<<image 'places/farm/wood_house3.jpg' sfw>>
</center>
<br />
That’s when Vincent crouched low, motioning for you to do the same.
<br /><br />
<<vincent>>
Look there!
<</vincent>>
<br />
Tire tracks. Thin, shallow. A bike, maybe two. Fresh.
<br /><br />
<center>
<<image 'places/farm/wood_house4.jpg' sfw>>
</center>
<br />
Cautiously, you followed the trail deeper into the woods, the trees swallowing the last rays of daylight.
After a while, a shape emerged between the branches — a small house, nearly invisible under ivy and moss.
It looked forgotten, like it belonged to another century.
<br /><br />
<center>
<<image 'places/farm/wood_house5.jpg' sfw>>
</center>
<br /><br />
And then you heard it.
<br /><br />
Screams. Muffled, panicked, raw.
<br /><br />
Vincent’s eyes met yours for only a second before you both rushed forward, weapons ready.
<br /><br />
Inside, the scene was chaos. Two men, rough and sneering, had cornered a woman and her young daughter.
The mother fought wildly with a broken chair leg, trying to shield the girl.
The child screamed, her small hands pushing against one of the men as he grabbed at her mother.
<br /><br />
<center>
<<image 'places/farm/wood_house6.jpg' sfw>>
</center>
<br /><br />
<<link 'Fight them'>>
<<generateEnemies 2 0 2>>
<<fight $enemies 'Vincent - The House in the Woods #2' 'Dead'>>
<</link>>
<</linkreplace>>
<<else>>
<<link 'No, need to prepare'>>
<<goto 'Farm'>>
<</link>>
<</if>><h1 class="ptitle">FARM</h1>
<br /><br />
<<vincent>>
<<=$player.name>>!! Good! I wanted to talk with you. Grab the things from the table and lets take a walk.
<</vincent>>
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/fishing_rod.jpg']]
</center>
<br /><br />
Looking at the table, you see two old fishing rods with a couple of floats and bait. You take everything and pack it in a bag, while Vincent is already waiting for you at the door.
<br /><br />
<<linkreplace 'Follow Vincent'>>
As you step outside, Vincent mentions that he wants to talk to you about something, but he doesn't want Blair to know anything about this conversation. You slowly distance yourselves from the farm and head towards the river.
<br /><br />
<<vincent>>
I heard that you have built gates for your camp and even created a flag. I don't know who suggested this idea to you, but it's the dumbest idea you could have had. You realize that now you've put your location on the map, and that doesn't mean people will only seek help from you, but also all sorts of murderers and kidnappers, right?
<</vincent>>
<br /><br />
While Vincent continues to reiterate a few times in different ways that building gates was the dumbest thing you could have done, you have already reached the river. Vincent takes out his fishing rod and casts his line into the water.
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/fishing.webp']]
</center>
<br /><br />
<<vincent>>
Alright. You definitely know better what to do. I'm just worried about both you and Blair. I've seen how she looks at you. I'm not a fool. Just don't hurt her feelings...
<</vincent>>
<br /><br />
<<vincent>>
Did she tell you how her mother died? No? We also tried something similar. We wanted our farm to help people in need, so we spread the news in the nearby town that our doors were open to anyone who needed assistance. Yes, there were people who genuinely needed it, but then some really bad individuals showed up. At that time, I had started my little project. My wife tried to stop them from taking our car. I prayed for her to stay calm, but she was very insistent on not letting anyone harm us...
<</vincent>>
<br /><br />
Vincent's tears began to flow. He paused for a moment and, while trying to control his tears, put a partially burned piece of paper into your hands.
<br /><br />
<center>
<div class="img-no-w">
[img[setup.ImagePath+'places/farm/car_blueprint.png']]
</div>
</center>
<br /><br />
<<vincent>>
Those bastards were from <strong class="iitem">The Sanctuary</strong>... And everything because of that stupid car...
<br />
Sorry. I can't... You can keep it...
<</vincent>>
<br /><br />
<<link 'Leave'>>
<<addhours 6>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>><h1 class="ptitle">FARM</h1>
<br /><br />
<<vincent>>
<<=$player.name>>! The last attempt to retrieve the car was very unsuccessful, but it seems that I have come up with how we might succeed.
<</vincent>>
<br />
He sits down at the table and pulls out some kind of sketch from underneath.
Then he starts pointing with his finger at the back of the ship, where there is a large tube through which a person could calmly squeeze through. That's how you will be able to get inside.
<br /><br />
<<vincent>>
This time we really need to be more careful, and you'll need at least 4 companions.
They all need to be sufficiently athletic and strong, because if we get caught, that will be the only way for us to escape.
<</vincent>>
<br />
<<vincent>>
Come back when you're ready and don't forget companions. Remember! Only 4
<</vincent>>
<br /><br />
<<link 'Leave'>>
<<goto 'Farm'>>
<</link>><h1 class="ptitle">FARM</h1>
<br /><br />
<<set _questSuccess = false>>
<<if Object.keys($player.companions).length > 2>>
<<vincent>>
<<=$player.name>>, you can only take two companions with you.
<</vincent>>
<<elseif Object.keys($player.companions).length < 2>>
<<vincent>>
<<=$player.name>>, you need to take two companions with you.
<</vincent>>
<<else>>
<<set _isStrengthMet = true>>
<<for _companionQuestI, _companionQuest range ($player.companions ?? {})>>
<<if $guests[_companionQuestI].strength < 40>>
<<set _isStrengthMet = false>>
<</if>>
<</for>>
<<if _isStrengthMet>>
<<set _questSuccess = true>>
<</if>>
<</if>>
<<if _questSuccess>>
<<goto 'Vincent - sanctuary go'>>
<<else>>
<br /><br />
<<link 'Leave'>>
<<goto 'Farm'>>
<</link>>
<</if>><h1 class="ptitle">CITY</h1>
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/sanctuary_intro_run.jpg']]
</center>
<br /><br />
From around the corner, Vincent suddenly appears, running as fast as possible while shouting something from a distance. You realize that the situation is not good and start running as fast as your legs can carry you, as there are at least 10 people chasing after him.
<br /><br />
<<vincent>>
RUN, RUN! RUUUUUUN
<</vincent>>
<br /><br />
<<linkreplace 'Run'>>
<<if $game.vincentSanctuaryGirlFun>>
<<set _companionKeys = Object.keys($player.companions)>>
<<set _firstCompanion = setup.companionGet(_companionKeys[0])>>
<<=setup.displayName(_firstCompanion)>> is still on the ground, on her knees, and she believe that you are chasing after the girl so that she doesn't escape. However, suddenly, the girl who was peering at you through the hole in the wall comes running from the corner with a knife in her hand and stabs <<=setup.displayName(_firstCompanion)>> in the neck.
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/sanctuary_intro_stab.gif']]
</center>
<br /><br />
She instantly drops on the ground and there isn't anything you can do to help her.
<br /><br />
<<companionRemove _companionKeys[0]>>
<</if>>
At some point, you manage to break away and hide in one of the collapsed buildings nearby. You are tired and frightened, realizing that things probably won't go as planned.
<br /><br />
<<vincent>>
Fuck, fuck, fuck! I'm sorry! I don't know what got into me... This is a suicide mission... It's impossible. There were so many more of them than I had thought, and the guards are practically on every corner. Unfortunately, I'll have to abandon this idea. It's better to go back home. I am sorry...
<</vincent>>
<br /><br />
<<link 'Go home'>>
<<run delete $game.vincentSanctuaryGirlFun>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<<set $characters.vincent.quests.sanctuary_done = true>><h1 class="ptitle">CITY</h1>
<br /><br />
You four started your journey to The Sanctuary. You had heard about this place x times before, but you didn't really know what it was because no one had ever really told you about it. The only thing you knew was that the most ruthless and dangerous criminals from this area were staying there.
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/sanctuary_intro.jpg']]
</center>
<br /><br />
Your journey took you through a city whose underground you already knew very well. It seemed to you that no one lived on the surface at all, but it turns out that wasn't true. When you asked Vincent where they all actually stayed, the only thing he replied was, "You'll see for yourself."
<br /><br />
<<vincent>>
They stay near the port, almost at the other end of the city, so we still have a bit more to walk. Remember, once we're there, don't show yourself to anyone and stay hidden. They must not see us, not even the locals who are not directly associated with them, as they could betray us.
<</vincent>>
<br /><br />
<<addhours 5>>
After a few hours of walking, you start to hear the sound of engines in the distance. Vincent signals for you to always stay hidden and avoid showing yourself to anyone.
<br /><br />
<<set _companionKeys = Object.keys($player.companions)>>
<<set _firstCompanion = setup.companionGet(_companionKeys[0])>>
<<set _secondCompanion = setup.companionGet(_companionKeys[1])>>
<<linkreplace 'Continue'>>
<center>
[img[setup.ImagePath+'places/farm/sanctuary_intro2.jpg']]
</center>
<br /><br />
You walk another hundred meters, and ahead you see something unprecedented. A massive tanker ship has been washed ashore and is blocking the street. It has a huge ramp, and at that very moment, a gang of bandits on motorcycles is riding up it.
<br /><br />
<<linkreplace 'Hide'>>
All four of you hide in a small alcove next to a partially collapsed building.
<br /><br />
<<vincent>>
Alright. You all wait here. I'll go explore the surroundings. This place is more familiar to me, so it will be safer for me to go alone.
<</vincent>>
<br /><br />
Vincent disappears around the corner of a nearby house, leaving the three of you behind.
<br /><br />
<<linkreplace 'Wait for Vincent'>>
<<addmins 30>>
More than 30 minutes pass, and still no sign of him. You start to feel bored, but Vincent made it clear that you shouldn't show yourselves to anyone.
<br /><br />
<div id="option1">
<<if !_firstCompanion.gender && !_secondCompanion.gender>>
<<linkreplace 'Have fun with your girls'>>
<<run $('#option2').hide()>>
<center>
[img[setup.ImagePath+'places/farm/sanctuary_intro_bj.webp']]
</center>
<br /><br />
You drop <<=setup.displayName(_firstCompanion)>> on her knees and pull out your already hard dick. She smiles and instantly puts it all inside her mouth and sucks you off with joy on her face.
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/sanctuary_intro_bj2.webp']]
</center>
<br /><br />
As she spits on your cock and gets louder <<=setup.displayName(_secondCompanion)>> just looks nervously around to see if Vincent is not coming.
<br /><br />
Suddenly, you hear a sound from around the corner. It seems that a tin can or something else has fallen over.
<br /><br />
<<linkreplace 'Look'>>
<center>
[img[setup.ImagePath+'places/farm/sanctuary_intro_wall.jpg']]
</center>
<br /><br />
You are taken aback in shock. You see a new woman who has been peering through a hole in the wall at you for some time. She notices that you have spotted her, but your penis is still in <<=setup.displayName(_firstCompanion)>> mouth.
<br /><br />
<<link 'Go after her'>>
<<set $game.vincentSanctuaryGirlFun = true>>
<<goto 'Vincent - sanctuary go #2'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</if>>
</div>
<div id="option2">
<<link 'Wait for Vincent'>>
<<goto 'Vincent - sanctuary go #2'>>
<</link>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle">FARM</h1>
<br /><br />
<<vincent>>
<<=$player.name>>, good. Recently, I've been thinking quite a lot about my wife, daughter, and my car that those scoundrels took away from me. I've realized that I want it back. We can't have too many people, so you can only bring two companions with you, and they need to be strong enough to defend themselves if necessary (40 strength).
<</vincent>>
<br /><br />
Vincent started packing a knife, rope, and other items that might be useful on the journey to <strong>The Sanctuary</strong>
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/knife.webp']]
</center>
<br /><br />
<<vincent>>
When you're ready. Come back to the farm
<</vincent>>
<br /><br />
<<link 'Tell him you will be back soon'>>
<<goto 'Farm'>>
<</link>><h1 class="ptitle">FARM</h1>
<br /><br />
<<vincent>>
Listen. One evening, I was sitting and thinking. It seems to me that you could develop your small town more, right? I can't even imagine how you manage to handle all the product and necessary item shopping.
<</vincent>>
<br /><br />
He takes a rolled-up paper roll from under the table and rolls it out on his own table.
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/vincent_shop_talk.jpg']]
</center>
<br /><br />
<<vincent>>
Have you ever thought about having your own store that could also serve as a warehouse? The idea is that people passing by your settlement would definitely want to buy or sell something. That store would serve precisely that purpose.
<br />
However, you would definitely need to delegate someone to keep everything in order. There are certainly many shopkeepers wandering around the world who would gladly live in your settlement.
<</vincent>>
<br /><br />
<<link 'Grab blueprint and leave'>>
<<notify 6s>>
Shop available in workbench
<</notify>>
<<goto 'Farm'>>
<</link>><h1 class="ptitle">FARM</h1>
<br /><br />
<<vincent>>
<<=$player.name>>, please sit down. I wanted to show you something
<</vincent>>
<br /><br />
While Vincent goes to the next room, you sit down in a chair by the entrance, not really understanding what he went after for.
<br /><br />
After a short while, he returns holding something in his hand. It can be seen that he is visibly worried, and the old man's hands are trembling a bit even.
<br />
He opens his hand... <strong>wedding ring...</strong>
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/wedding_ring.gif']]
</center>
<br /><br />
<<vincent>>
I am very grateful to her because I know that because of me, she has sacrificed something in her own life... Blair... Just don't think that I'm forcing you. You can decide for yourself what you want, but know this - my story would be fulfilled if you both got married. She doesn't stop talking about you...
<</vincent>>
<br /><br />
<div id="option1">
<<linkreplace 'Take the ring and say you would be honored'>>
<<run $('#option3, #option2').hide()>>
<<run $('#option-leave').show()>>
<<pickup $backpack 'wedding_ring' 1>>
<<vincent>>
Really?! Oh my God, I'm so happy. Being together, at least I know that she will be safe and I won't have to worry about her.
<</vincent>>
<</linkreplace>>
</div>
<div id="option2">
<<linkreplace 'Take the ring and tell you will think about it'>>
<<run $('#option1, #option3').hide()>>
<<run $('#option-leave').show()>>
<<pickup $backpack 'wedding_ring' 1>>
<<vincent>>
I understand... It's a difficult decision. But if you still decide to do it, know this - I will be very happy.
<</vincent>>
<</linkreplace>>
</div>
<div id="option3">
<<linkreplace 'Tell no'>>
<<run $('#option1, #option2').hide()>>
<<run $('#option-leave').show()>>
<<vincent>>
I understand... It's a difficult decision. But if you still decide to do it, know this - I will be very happy.
<</vincent>>
<</linkreplace>>
</div>
<div id="option-leave" style="display:none">
<br /><br />
<<link 'Leave'>>
<<goto 'Farm'>>
<</link>>
</div>
<<set $game.canMarry = true>>
<<set $characters.vincent.quests.wedding_talk_day = $game.day>><h1 class="ptitle">FARM</h1>
<br />
<<you>>
Listen, Vincent. I need help...<br />
How to put it right. Maybe you know or have heard about a method how to terminate pregnancy in these times? The safest way.
<</you>>
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/pregnancy.webp']]
</center>
<br /><br />
Vincent takes a deep breath and exhales as you see in his eyes you've let him down
<br /><br />
<<vincent>>
I guess. I've prepared one by myself but haven't tested it out so no idea if it will work. Only from words I've heard around.
<</vincent>>
<br /><br />
<center>
[img[setup.ImagePath+'places/farm/pregnancy_potition.webp']]
</center>
<br /><br />
Vincent gives you his own potion
<br /><br />
<<vincent>>
Just think what you're doing..<br />
If by any chance you need more of them, you can try to prepare them yourself. There are few ingredients you need to get first.
The first and main ingredient is <strong>glowing mushroom</strong>. You can search for it in the forest.<br />
The second item is <strong>milk</strong>. But not any, but woman milk. I could you sell you some but that won't be cheap.<br /><br />
<strong>And remember! There is always a chance a girl won't make it. It's small but it's always there!</strong>
<</vincent>>
<br /><br />
<<addmins 10>>
<<pickup $backpack 'pregnancy_potion' 1>>
[[Continue|Outside]]<h1 class="ptitle">FARM</h1>
<br /><br />
<<vincent>>
<strong><<=$player.name>></strong>! Right when I wanted to talk to you. Listen up kid; I need your help with something. It must be discreet and you can tell noone about it.
<</vincent>>
<br />
You nod as approve and listen to him carefully.<br />
He starts to tell you what he needs you for while putting a lot of his building stuff in his wheelbarrow.
<br /><br />
<<vincent>>
I'll need you to get some items for me.<br />
You'll need to get <strong class="iitem">5 solar panels</strong> and <strong class="iitem">100 wood</strong>.
<br />
Don't ask why, just get it, please. I hope your building skills are good too.
<</vincent>>
<br /><br />
<<if $backpack.count('wood') >= 100 && $backpack.count('solar_panel') >=5>>
<<linkreplace 'Tell him you already got them'>>
You told him that you already got those items and you're ready go go even now.
<br /><br />
<<vincent>>
Really? Didn't expect that. Meet me here tomorrow in the morning. We need to get going as early as we can
<</vincent>>
<br /><br />
<<set $characters.vincent.relationship += 5>>
<strong class="stats-changed-inc">Relationship with Vincent increased by 5</strong>
<br /><br />
<</linkreplace>>
<</if>>
<<link "Continue">>
<<goto 'Farm'>>
<</link>>
<<set $characters.vincent.quests.new_settlement_day = $game.day>><<for _allyKey, _defeatedAlly range $fight.defeatedAllies>>
<<if _defeatedAlly.extra>>
<<continue>>
<</if>>
<<set _attacksCount = {}>>
<<for _attackI, _attack range _defeatedAlly.attacks ?? []>>
<<set _attacksCount[_attack] ??= 0>>
<<set _attacksCount[_attack]++>>
<</for>>
<<if _attacksCount.knife>>
<<set _chanceToDie = _attacksCount.knife * 10>>
<<if setup.percentageChance(_chanceToDie)>>
<<set _someoneDied = true>>
<div>
<strong>
<<=setup.displayName(_defeatedAlly)>> was stabbed <<=_attacksCount.knife>> times. <<=setup.pronounceWhat(_defeatedAlly, true)>> bled out on the ground and died.
</strong>
</div>
<br />
/* save the npc inventory here, shall we save only if we win or all the time? */
<<set _defeatedAlly.died = true>>
<<companionRemove _defeatedAlly.key>>
<</if>>
<</if>>
<</for>><h1 class="ptitle">FIGHT</h1>
<center>
[img[setup.ImagePath+'places/nightclub/attack_outside_lost.webp']]
</center>
<br />
You wake up after some time.<br />
You feel dizzy and blood is all over your face and clothes. You were knocked out pretty hard.
<br /><br />
<<set _maxLost = 20>>
<<if $player.money > 500>>
<<set _maxLost = 100>>
<</if>>
<<set _capsMissing = ($player.money - _maxLost > 0 ? _maxLost : $player.money)>>
<<if _capsMissing>>
<<set $player.money -= _capsMissing>>
You check pockets and some caps are also missing.
<br />
<strong>You lost <<=_capsMissing>> caps</strong>
<br /><br />
<</if>>
<<include 'Fight - after companions'>>
<<set _raped = false>>
<<if $fight.defeatedAllies.length > 0>>
<<for _fightAllyI, _fightAlly range $fight.defeatedAllies>>
<<if setup.percentageChance(90) && !_fightAlly.gender && !_raped && !_fightAlly.died>>
<<set _npcKey = _fightAlly.key.split(':')>>
<<setNpcStats `_npcKey[0]` `_npcKey[1]` 'happy' -15>>
<<setNpcStats `_npcKey[0]` `_npcKey[1]` 'sub' -5>>
<<setNpcStats `_npcKey[0]` `_npcKey[1]` 'relationship' -10>>
<<set _raped = true>>
<<video 'misc/fight_lost1'>>
<br /><br />
Your heart dropped when you saw her — <<=setup.displayName(_fightAlly)>> pinned to the ground by one of them, a man snarling as he tried to force himself on her. He has already pulled down her panties as she screams.
Moment later he manages to pull down her panties while you still can't get up from lost fight.
<br />
You notice him getting his dick out as you try to get up but without success.
<br /><br />
<<video 'misc/fight_lost2'>>
<br /><br />
His butt tensed up before she with big thrust shoved his dick in <<=setup.displayName(_fightAlly)>>. She let out load scream and begged him to stop but with no use.
As her head was pinned down to the ground the only thing she did was cry. Nothing else she could do at that moment anymore.
<br />
Few more minutes and he released her as he stood up while she still was on the ground crying her eyes out.
<br />
<</if>>
<</for>>
<<for _fightAllyI, _fightAlly range $fight.defeatedAllies>>
<<if setup.percentageChance(10) && !_fightAlly.died>>
<strong><<=setup.displayName(_fightAlly)>> was taken by enemies</strong>
<<companionRemove _fightAlly.key>>
<br />
<</if>>
<</for>>
<br /><br />
<</if>>
<<link 'Leave'>>
<<fightEnd false>>
<</link>><h1 class="ptitle">FIGHT</h1>
<center>
[img[setup.ImagePath+'places/fight/run_away.webp']]
</center>
<br /><br />
You managed to run away<br /><br />
As you run away you dropped few things.
<br /><br />
<<set _foodMissing = ($backpack.count('food') - 5 > 0 ? 5 : $backpack.count('food'))>>
<<set _capsMissing = ($player.money - 20 > 0 ? 20 : $player.money)>>
<<if _capsMissing > 0>>
<strong>You dropped <<=_capsMissing>> caps</strong><br />
<<set $player.money -= _capsMissing>>
<</if>>
<<if _foodMissing > 0>>
<strong>You dropped <<=_foodMissing>> food</strong><br />
<<drop $backpack 'food' _foodMissing>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<fightEnd false>>
<</link>><<if typeof $fight === 'undefined'>><<goto 'Wood cabin'>><</if>>
<h1 class="ptitle">FIGHT</h1>
<center>
[img[setup.ImagePath+'places/fight/won.webp']]
</center>
<br /><br />
You <strong><<=($fight.hp < 20 ? 'barely' : 'easily')>></strong> won the fight and manage to drop them all on the ground.
<br /><br />
<<if $fight.hp > 20>>
<<if $fight.allies.length > 0>>
<<set _plural = $fight.allies.length > 1>>
Your victorious <<=_plural ? 'team' : 'partner'>> cheers as the last enemy falls. <<=_plural ? 'They tend to their wounds and help their teammates to their feet as they regroup at your side, ready for the next battle.':'You check your companion for wounds as you assess the results of the fight.'>>
<br /><br />
<<set _Fighter = either($fight.allies)>>
<<if (_Fighter.traits ?? []).includes('feral')>>
<<set _girlVisual = _Fighter>>
<<set _feralVictoryReaction = either([
'gives an enthusiastic victory howl, head thrown back',
'locks jaws on an unconscious enemy\'s pant leg and tries to drag them off the field',
'licks a minor wound on their leg, satisfied',
'sniffs cautiously at one of the fallen enemies, then snorts and backs away',
'circles the fallen enemies warily, making sure none of them move',
'paws at the ground and lets out a short, triumphant bark',
'crouches over a defeated enemy, sniffing at their pockets',
'trots over to you and shoves their head against your arm with a low, pleased sound',
'bares teeth at the last fallen enemy, just to be sure',
'drops to a crouch and lets out a long, satisfied whine',
])>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="_Fighter.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait">
<<include 'NPC visual'>>
</div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name">
<strong><<=setup.displayName(_Fighter)>></strong>
</div>
<div class="npc-say-text">
<em>*<<= _feralVictoryReaction >>*</em>
</div>
</div>
</div>
<<else>>
<<sayNpc _Fighter>>
<<=either([
'It feels so good to give a good beat down!',
"They didn't know who they were messing with!",
"What are you going to do with them?",
"Did you get hurt? I can take care of that for you.",
"The wasteland is always dangerous. Today we were the danger.",
"I think one of them is crawling away..",
"Are we getting ice cream after this?",
"I think I lost a shoe up that last bandit's ass..",
"War. War never changes...",
"We came, we saw, we kicked some ass!",
])>>
<</sayNpc>>
<</if>>
<br />
<strong>You step away from your <<=_plural ? 'team' : 'partner'>> to direct your attention to the fools who tried to fight you.</strong><br />
<</if>>
<</if>>
<<set $fight.enemiesAlive = false>>
<<set $fight.enemiesCaptured = 0>>
<<set _enemiesWithAction = 0>>
<<for _i to 0; _i lt $fight.defeatedEnemies.length; _i++>>
<<capture _i>>
<<if !setup.fightIsKilled($fight.defeatedEnemies[_i])>>
<<set $fight.enemiesAlive = true>>
<<else>>
<<set $fight.defeatedEnemies[_i].killed = true>>
<</if>>
<<if $fight.defeatedEnemies[_i].captured>>
<<set $fight.enemiesCaptured++>>
<</if>>
<<if $fight.killAll && !$fight.defeatedEnemies[_i].captured>>
<<set $fight.defeatedEnemies[_i].killed = true>>
<</if>>
<<if $fight.captureAll && !$fight.defeatedEnemies[_i].killed>>
<<set $fight.defeatedEnemies[_i].captured = true>>
<</if>>
<<if !$fight.defeatedEnemies[_i].killed && !$fight.defeatedEnemies[_i].captured>>
<<set _enemiesWithAction++>>
<</if>>
<</capture>>
<</for>>
<<run delete $fight.killAll>>
<<if !$fight.reward>>
<<if $player.strength < 300>>
<<set $player.strength++>>
<strong>Your strength increased by 1</strong>
<br /><br />
<<if $player.strength >= 25>><<achievement 'strength_25'>><</if>>
<</if>>
<<if $backpack.has('knife')>><<achievement 'knife_fight_win'>><</if>>
<<if $fight.allies.length > 0>>
<<achievement 'companion_fight_win'>>
<<for _fightAllyI, _fightAlly range $fight.allies>>
<<set _guestKey = _fightAlly.key.split(':')[1]>>
<<if $guests[_guestKey].strength < 100>>
<<set $guests[_guestKey].strength++>>
<strong><<=$guests[_guestKey].name>> strength increased by 1</strong><br />
<</if>>
<</for>>
<br />
<</if>>
<<set $fight.gotCaps = randomInteger(5, 10)>>
<<set $player.money += $fight.gotCaps>>
You got <strong><<=$fight.gotCaps>></strong> caps.
<br /><br />
<<set $fight.reward = true>>
<<for _i, _enemy range $fight.defeatedEnemies>>
<<capture _i>>
<<if Object.keys(_enemy.inventory ?? {}).length>>
<<for _enemyInventory, _enemyInventoryCount range _enemy.inventory>>
<<pickup $backpack _enemyInventory _enemyInventoryCount>>
<div>
You picked up <strong><<=Item.get(_enemyInventory).name>></strong> from <strong><<=_enemy.name>></strong>
<<if _enemyInventory === 'crossbow' && setup.percentageChance(80)>>
<<set _arrowCount = randomInteger(1, 5)>>
<<pickup $backpack 'arrow' _arrowCount>>
and <strong><<=_arrowCount>></strong> arrow<<= (_arrowCount === 1) ? "" : "s">>
<</if>>
</div>
<</for>>
<<run delete _enemy.inventory>>
<br /><br />
<</if>>
<</capture>>
<</for>>
<<if $fight.public>>
<<set $player.reputation++>>
<strong>Someone saw your fight. Your reputation increased by 1</strong>
<br /><br />
<</if>>
<<if $fight.arrowsOnGround>>
<strong>You picked up <<=$fight.arrowsOnGround>> arrow<<=($fight.arrowsOnGround > 1 ? 's' : '')>> from the ground</strong>
<br /><br />
<</if>>
<</if>>
<<if !$fight.enemiesAlive>>
<strong>You look at them and noone of them is breathing. All of them are dead.</strong>
<<else>>
<strong>You look down at <<=($fight.defeatedEnemies.length > 1 ? 'their' : ($fight.defeatedEnemies[0].gender ? 'his' : 'her'))>> <<=($fight.defeatedEnemies.length > 1 ? 'bodies' : 'body')>>,
lying on the floor and you're deciding...</strong>
<<if _enemiesWithAction > 1>>
<br />
<span class="no-style">
<<link 'Kill them all'>>
<<set $fight.killAll = true>>
<<set $player.goodwill -= (_enemiesWithAction * 2)>>
<<goto 'Fight - won'>>
<</link>>
</span>
<<if (($game.location.basement ?? false) && ($slaves.length + _enemiesWithAction) <= $basementLimit)>>
|
<span class="no-style">
<<link 'Capture them all'>>
<<set $fight.captureAll = true>>
<<set $player.goodwill -= _enemiesWithAction>>
<<goto 'Fight - won'>>
<</link>>
</span>
<</if>>
<</if>>
<table id="fight-table">
<<for _i to 0; _i lt $fight.defeatedEnemies.length; _i++>>
<<capture _i>>
<tr>
<td @style="'color:' + (!$fight.defeatedEnemies[_i].gender ? 'pink' : 'blue') + ''">
<<=$fight.defeatedEnemies[_i].name>>
</td>
<td>
<<if $fight.defeatedEnemies[_i].killed>>
<span style="color: red">dead</span>
<<else>>
<<if !$fight.defeatedEnemies[_i].captured && !$fight.defeatedEnemies[_i].cantKill>>
<<link 'kill'>>
<<set $fight.defeatedEnemies[_i].killed = true>>
<<set $player.goodwill-->>
<<goto 'Fight - won'>>
<</link>>
<</if>>
<</if>>
</td>
<td>
<<if !$fight.defeatedEnemies[_i].killed>>
<<if $fight.defeatedEnemies[_i].captured>>
<span style="color: green">captured</span>
<<else>>
<<if ($game.location.basement?? false) && ($slaves.length + $fight.enemiesCaptured) < $basementLimit && ($fight.canCapture ?? true)>>
<<link 'capture'>>
<<set $fight.defeatedEnemies[_i].captured = true>>
<<goto 'Fight - won'>>
<</link>>
<</if>>
<</if>>
<<if setup.getAge($fight.defeatedEnemies[_i]) >= 18>>
<<link 'Fuck'>>
<<set $tmpGirl = $fight.defeatedEnemies[_i]>>
<<if $fight.defeatedEnemies[_i].virgin>><<run setup.npc.addHistory($fight.defeatedEnemies[_i], 'virgin_lost', { with: 'mc' })>><</if>>
<<set $fight.defeatedEnemies[_i].virgin = false>>
<<unset $charId, $guestId, $slaveId, $childId>>
<<set $tmpGirl.location = 'forest'>>
<<set $tmpGirl.rape to true>>
<<set $tmpGirlCapture to false>>
<<set $tmpGirlInvite to false>>
<<set $tmpGirlViewBack = 'Fight - won'>>
<<set $tmpGirlBack = 'Fight - won'>>
<<fuck $tmpGirl>>
<<set $sexForced = true>>
<</link>>
<</if>>
<</if>>
</td>
<td>
<<set _ageReal = setup.getAge($fight.defeatedEnemies[_i])>>
<<set _age = setup.agePeriod(_ageReal)>>
Age: <<= _age>>
<<if [0, 2].includes($fight.defeatedEnemies[_i].gender)>>
Beauty: <<=$fight.defeatedEnemies[_i].beauty>>
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<</if>>
<<include 'Fight - after companions'>>
<br /><br />
<<link 'Leave'>>
<<fightEnd true>>
<</link>><h1 class="ptitle">FIGHT</h1>
<h2>Enemies</h2>
<<if $fight.beforeMsgs.length>>
<<for _i to 0; _i lt $fight.beforeMsgs.length; _i++>>
<div class="morning-message">
<<print $fight.beforeMsgs[_i]>>
</div>
<</for>>
<<set $fight.beforeMsgs = []>>
<</if>>
<div id="fight-enemies">
<<for _i to 0; _i lt $fight.enemies.length; _i++>>
<<capture _i>>
<<set _enemyAvatar = [0, 2].includes($fight.enemies[_i].gender) ? 0 : 1>>
<div class="enemy-div">
<div class="fight-npc-div">
<div class="girl_info_picture">
<<set _girlVisual = $fight.enemies[_i]>>
<<include 'NPC visual'>>
</div>
</div>
<<=$fight.enemies[_i].name>>
<div class="enemy-hp">
<div class="enemy-hp-border">
<div class="enemy-hp-bar" @style="'width:' + $fight.enemies[_i].hp + '%'"></div>
<div class="enemy-hp-count"><<=$fight.enemies[_i].hp>></div>
</div>
</div>
<div class="enemy-weapons">
<<for _enemyWeapon, _enemyWeaponCount range ($fight.enemies[_i].inventory ?? {})>>
<div class="fight-weapon-icon">
[img[setup.ImagePath+'/game/inventory/' + _enemyWeapon + '.png']]
</div>
<</for>>
</div>
<div class="enemy-actions">
<<link 'Hit'>>
<<fightAction _i>>
<</link>>
<<if $backpack.has('sword')>>
<<link 'Sword'>>
<<fightAction _i 'sword'>>
<</link>>
<</if>>
<<if $backpack.has('knife')>>
<<link 'Knife'>>
<<fightAction _i 'knife'>>
<</link>>
<</if>>
<<if $backpack.has('revolver') && $backpack.has('bullet_revolver')>>
<<link 'Revolver'>>
<<fightAction _i 'revolver'>>
<</link>>
<</if>>
<<if $backpack.has('crossbow') && $backpack.has('arrow')>>
<<link 'Crossbow'>>
<<fightAction _i 'crossbow'>>
<</link>>
<</if>>
<<if $backpack.has('shotgun') && $backpack.has('shotgun_shell')>>
<<link 'Shotgun'>>
<<fightAction _i 'shotgun'>>
<</link>>
<</if>>
</div>
</div>
<</capture>>
<</for>>
</div>
<<if $fight.allies.length > 0>>
<h2 style="margin-top: 30px;">Allies</h2>
<div id="fight-allies">
<<for _i to 0; _i lt $fight.allies.length; _i++>>
<<capture _i>>
<<set _portraitClass = $fight.allies[_i].portrait ? 'portrait' : ''>>
<div @class="'enemy-div ' + _portraitClass + ''">
<div @class="'fight-npc-div ' + _portraitClass + ''">
<div class="girl_info_picture">
<div>
<<set _girlVisual = $fight.allies[_i]>>
<<include 'NPC visual'>>
</div>
</div>
</div>
<<=$fight.allies[_i].name>>
<div class="enemy-hp">
<div class="enemy-hp-border">
<div class="enemy-hp-bar" @style="'width:' + $fight.allies[_i].hp + '%'"></div>
<div class="enemy-hp-count"><<=$fight.allies[_i].hp>></div>
</div>
</div>
<div class="enemy-weapons">
<<if setup.npcInventoryHas($fight.allies[_i], 'knife')>>
<div class="fight-weapon-icon">
[img[setup.ImagePath+'/game/inventory/knife.png']]
</div>
<</if>>
<<if setup.npcInventoryHas($fight.allies[_i], 'sword')>>
<div class="fight-weapon-icon">
[img[setup.ImagePath+'/game/inventory/sword.png']]
</div>
<</if>>
<<if setup.npcInventoryHas($fight.allies[_i], 'crossbow') && setup.npcInventoryHas($fight.allies[_i], 'arrow')>>
<div class="fight-weapon-icon">
[img[setup.ImagePath+'/game/inventory/crossbow.png']]
</div>
<</if>>
</div>
<div class="enemy-actions">
<<if $backpack.has('bandage') && $fight.allies[_i].hp < 100>>
<<link 'Bandage'>>
<<fightAction _i 'bandage'>>
<</link>>
<</if>>
<<link 'Retreat'>>
<<fightAction _i 'retreat'>>
<</link>>
</div>
</div>
<</capture>>
<</for>>
</div>
<</if>>
<<if $fight.messages.length > 0>>
<br /><br />
<<for _i to 0; _i lt $fight.messages.length; _i++>>
<<print $fight.messages[_i]>>
<br />
<</for>>
<hr />
<<set $fight.messages = []>>
<</if>>
<br /><br />
<div id="fight-your-hp">
<div id="fight-your-hp-label">
Your HP:
</div>
<div id="fight-your-hp-border">
<div id="fight-your-hp-bar" @style="'width:' + $fight.hp + '%'"></div>
<div id="fight-your-hp-count"><<=$fight.hp>></div>
</div>
<div style="clear:both;"></div>
</div>
<br /><br />
<<if ($fight.canRunAway ?? true)>>
<<link 'Run away'>>
<<goto 'Fight - run away'>>
<</link>>
<</if>>
<style>
#fight-your-hp-label {
float: left;
width: 18%;
}
#fight-your-hp-count {
position: absolute;
top: -5px;
left: 45%;
}
#fight-your-hp-border {
float:left;
border: 1px solid #4CAF50!important;
width: 81%;
position: relative;
}
#fight-your-hp-bar {
color: #000!important;
background-color: #4CAF50!important;
height: 17px;
}
.enemy-actions {
margin-top: 30px;
}
.enemy-hp-border {
border: 1px solid #4CAF50!important;
width: 100%;
position: relative;
}
.enemy-hp-bar {
color: #000!important;
background-color: #4CAF50!important;
height: 17px;
}
.enemy-img {
text-align:center;
}
.enemy-img img {
max-width: 100%;
height: auto;
width: auto;
max-height: 121px;
}
.enemy-hp-count {
position: absolute;
top: -5px;
left: 44%;
}
.fight-weapon-icon {
border: 1px solid orange;
border-radius: 6px;
width: 20px;
height: 20px;
padding: 2px;
}
.enemy-weapons {
height: 11px;
margin-top: 3px;
display: flex;
justify-content: space-evenly;
}
#fight-allies {
display: flex;
justify-content: space-evenly;
}
.girl_info_picture.enemy-img {
zoom: 100%;
margin: 0 auto;
}
.fight-npc-div {
background: darkslategray;
justify-content: space-evenly;
margin-top: 1px;
border-color: brown;
border-style: ridge;
position: relative;
margin-top: 5px;
padding-top: 10px;
overflow: hidden;
}
.fight-npc-div.portrait img {
width: 100%;
height: 100%;
object-fit: contain;
margin-left: -30px;
}
#fight-allies div.girl_info_picture, #fight-enemies div.girl_info_picture {
height: 126px;
}
#fight-your-hp {
margin-top: 20px;
}
.enemy-div.portrait {
margin-bottom: 19px;
}
</style><<if !$player.achievements>><<set $player.achievements = {}>><</if>>
<<set _achKeys = Object.keys(setup.achievements ?? {})>>
<<set _achTotal = _achKeys.length>>
<<set _achUnlocked = _achKeys.filter(k => $player.achievements[k] ?? false).length>>
<div class="ach-header">
🏆 Achievements <span class="ach-count"><<=_achUnlocked>>/<<=_achTotal>></span>
</div>
<div class="ach-grid">
<<for _achId range _achKeys>><<capture _achId>>
<<set _ach = setup.achievements[_achId]>>
<<set _done = ($player.achievements[_achId] ?? false)>>
<div @class="'ach-card' + (_done ? ' ach-done' : ' ach-locked')">
<div class="ach-icon"><<=_ach.icon>></div>
<div class="ach-name"><<=_ach.name>></div>
<div class="ach-desc"><<if _done>><<=_ach.desc>><<else>>???<</if>></div>
</div>
<</capture>><</for>>
</div>
<style>
.ach-header {
font-size: 1.1em;
font-weight: bold;
margin-bottom: 12px;
}
.ach-count {
font-size: 0.85em;
opacity: 0.6;
}
.ach-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.ach-card {
border: 1px solid #444;
border-radius: 6px;
padding: 10px 8px;
text-align: center;
}
.ach-done {
border-color: #888;
background: #1e2a1e;
}
.ach-locked {
opacity: 0.45;
background: #1a1a1a;
}
.ach-icon {
font-size: 1.8em;
margin-bottom: 4px;
}
.ach-name {
font-size: 0.78em;
font-weight: bold;
margin-bottom: 4px;
line-height: 1.2;
}
.ach-desc {
font-size: 0.72em;
opacity: 0.75;
line-height: 1.3;
}
</style><div id="vc-wrapper" class="tabs">
<!--// add > checked="checked" < to top tab for open by default//-->
<!--// Template
<div class="tab"><input type="radio" id="v000" name="rd">
<label class="tab-label" for="v000">0.00</label>
<div class="tab-content">
<h3></h3><ul>
##content goes here##
</ul></div></div>
at css some explanation for icons //-->
<div class="tab"><input type="radio" id="v089" name="rd" checked="checked">
<label class="tab-label" for="v089"><span class="glyph vc-icon-top"></span> 0.89 <span class="glyph vc-icon-top"></span> 12 <span class="glyph vc-icon-top"></span> 37 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Sleep errors without built settlement.</li>
<li>Event - "Young woman" at the gate aged 44.</li>
<li>Some portrait picker showing broken tiles (not png).</li>
<li>Feral NPCs speaking.</li>
<li>Male shopkeeper not unlocking shop construction.</li>
<li>World settlements - Slave trader names had no gender colors.</li>
<li>Grope in the garden: error when no other girl could join.</li>
<li>More than 18 events where npc horny meter didn't reset.</li>
<li>Guests no longer lose happiness when someone they dislike leaves.</li>
<li>Happiness could drop far below -100 when a guest left, making it almost impossible to recover.</li>
<li>A captured guest counted as leaving for good, so her friends often walked out the next night.</li>
<li>Market not showing who is virgin.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Bar] Invite to wc - option to capture</li>
<li>World settlements - added donation daily cap</li>
<li>World settlements - Internal conflict can now go in your favour instead of always costing relationship</li>
<li>Sex experience - the more experienced you are, the faster partners get aroused</li>
<li>Explore - Night exploring from 20:00 to 23:00, with a light or in the dark</li>
<li>Car explore - Night exploring (needs headlights)</li>
<li>Fight - Fighting in the dark deals less damage</li>
<li>Sleeping - Staying out past midnight on a night trip costs energy the next morning</li>
<li>New item: Torch (Light for one night trip)</li>
<li>New item: Lantern (Reusable light for night trips, burns one fuel can per night)</li>
<li>New item: Headlight kit (Lets the car explore at night)</li>
<li>Workbench: Option to craft torch and lantern</li>
<li>Shop - Race stadium sells headlight kit</li>
<li>Garage - Install and repair headlights</li>
<li>Event [Explore] - Dark building</li>
<li>Event [Explore] - Lights seen</li>
<li>Event [Explore] - Feral den</li>
<li>Event [Explore] - Sleeping camp</li>
<li>Event [Explore] - Moonlit cache</li>
<li>Event [Car explore] - Roadblock</li>
<li>Event [Car explore] - Dark crash</li>
<li>Personality - NPC personality traits now matter: they affect work output, skill learning, happiness, loyalty, fights and scavenging (hover a trait in NPC info to see what it does)</li>
<li>Afterglow - NPCs who came with you are happier and work 10% better the next day</li>
<li>Endurance - NPCs can now build endurance, and it reduces damage in fights</li>
<li>New item: Playing cards</li>
<li>Strip poker - Mini game. Play with guests in the evenings, the loser takes off a piece of clothing</li>
<li>Every NPC who joins your settlement now gets a history entry saying how they arrived</li>
<li>Guest house - Move guests to the settlement as settlers</li>
<li>Captured guests - friends are upset less, get their happiness back if you rescue her or pay the ransom, and take the full hit only if you leave her</li>
<li>Step-parents added to family tree displays (contr. Illusion-XIII)</li>
<li>Feral NPCs - alternate responses and encounter filtering (contr. Illusion-XIII)</li>
<li>New sorting options - keep spouses together; keep offspring with parent (contr. Illusion-XIII)</li>
<li>Event [Basement] - NPC offer food (contr. Illusion-XIII and Survivor)</li>
<li>School - parents receive happiness when a child learns a skill (contr. Illusion-XIII)</li>
<li>New pack - Brittney Kade (contr. Harbarbas)</li>
<li>New pack - Domino Presley (contr. Harbarbas)</li>
<li>Event [Laura] - New date option (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v088" name="rd">
<label class="tab-label" for="v088"><span class="glyph vc-icon-top"></span> 0.88 <span class="glyph vc-icon-top"></span> 7 <span class="glyph vc-icon-top"></span> 23 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Grope scene in greenhouse didn't save npc stats for basement.</li>
<li>Automatization removed some items from forest workers.</li>
<li>If NPC moved from basement to guesthouse, couldn't marry.</li>
<li>World npc trade corrupted companions.</li>
<li>A lot of fun events were without pregnancy option.</li>
<li>Group workout strength wasn't capped.</li>
<li>Fixed grid NPC icon size and display on mobile devices.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Vincent] - An old debt</li>
<li>Event [Settlement] - Medicine mob</li>
<li>Event [Settlement] - Desperate parent</li>
<li>Dom's alternative route</li>
<li>Event [Isabel] - Secret contact</li>
<li>Event [Isabel] - Secret meeting #1</li>
<li>Event [Isabel] - Secret meeting #2</li>
<li>Event [Isabel] - Secret meeting #3</li>
<li>Event [Isabel] - Secret meeting #4</li>
<li>Event [Dom] - Alternative confrontation</li>
<li>Event [Date] - New date location for NPCs</li>
<li>Event [Cabin] - Feral or npc can come and tell they she has your kid</li>
<li>Event [NPC] - Offer NPC soda/drink (contr. Illusion-XIII)</li>
<li>No fun outside of wedlock policy (contr. Illusion-XIII)</li>
<li>Event [Explore] - Dead guy. Added feral (contr. Illusion-XIII)</li>
<li>Add multi-item building to Workbench (contr. Illusion-XIII)</li>
<li>Option to move Blair to the guest house</li>
<li>Event [Explore] - Watch shift (companion)</li>
<li>Event [Explore] - Last ration (companion)</li>
<li>Event [Car explore] - take the wheel (companion)</li>
<li>Event [Car explore] - siphon (companion)</li>
<li>Mistress domination style policy (contr. Illusion-XIII)</li>
<li>Event [Elsa] - Date on the couch (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v087" name="rd">
<label class="tab-label" for="v087"><span class="glyph vc-icon-top"></span> 0.87 <span class="glyph vc-icon-top"></span> 8 <span class="glyph vc-icon-top"></span> 16 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Quarry workers not in home when sandstorm happens.</li>
<li>Event [Forest] - Retaliate event image missing.</li>
<li>Incorrect church blueprint info in Rodger story.</li>
<li>Basement people went to bathhouse on their own.</li>
<li>Old saves Eve approach broken.</li>
<li>Building - wall multiplier after first try didn't reset.</li>
<li>World settlements - On fully destroy didn't get resources if demanded.</li>
<li>Explore car events might give Blair bug warning after fun.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Customize - new face mask (bandana).</li>
<li>Cheatmenu - Edit player stats.</li>
<li>In fights NPC endurance will be taken into account.</li>
<li>Male enemies will be generated stronger.</li>
<li>Cheatmenu: Option to set beauty to max and disable decrease.</li>
<li>Cheatmenu: Option to set relationships between NPCs (For supporters).</li>
<li>World settlement - Trade/Donate - added option to choose how much.</li>
<li>Milk barn - option to toggle cheese production.</li>
<li>Characters now will have horny symbol around them too. (contr. Illusion-XIII)</li>
<li>Event [Fun] - Threesome. Will take into account spouse. (contr. Illusion-XIII)</li>
<li>Inventory - added option to filter by groups.</li>
<li>Event [Guesthouse] - Caught having fun.</li>
<li>Location views will show NPC count who are working there. (contr. Illusion-XIII)</li>
<li>Achievements system (v.01 - more to come).</li>
<li>Strength for NPCs and Player capped at 100.</li>
<li>Event [Basement] - Duck tape (For supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v086" name="rd">
<label class="tab-label" for="v086"><span class="glyph vc-icon-top"></span> 0.86 <span class="glyph vc-icon-top"></span> 10 <span class="glyph vc-icon-top"></span> 22 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Not all world settlement resources were showing.</li>
<li>Bedroom sleepover sometimes with error.</li>
<li>On older versions Laura was generated without race.</li>
<li>In information passage it showed old companions limit.</li>
<li>AttendantStimulate crash when base management is not built.</li>
<li>Male npcs generated without clothes.</li>
<li>Event [Car explore] - Stranded driver. Incorrect image.</li>
<li>Event [Greenhouse] - Double bj. After event was redirected to outside.</li>
<li>Children sometimes born without race.</li>
<li>Foursome loop when last npc wasn't registered.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Location thumbnail customization (contr. Illusion-XIII).</li>
<li>Event [Streets] - Street workers goes missing.</li>
<li>Event [Underground city] - Escaped girl.</li>
<li>Event [Guests] - Option to invite guest to basement.</li>
<li>Event [Guests] - Option to ask NPC to divorce her husband.</li>
<li>Event [Fight cage] - Offer from crowd.</li>
<li>Children who had given growth potion will use different talk dialogs.</li>
<li>Overcrowded penalty will be applied only if more than 25 guests (or if more than 15 but it's full).</li>
<li>Guest house and basement bed limit increased to 45.</li>
<li>Event [Explore] - Meet girl while having fun. Option to join her.</li>
<li>Event [Forest] - Toll demand.</li>
<li>Event [Forest] - Kidnapper.</li>
<li>Nursery/Guesthouse/Basement - sort update (performance for bigger communities).</li>
<li>Event [Shop] - Slow day.</li>
<li>Event [Shop] - Stuck hand.</li>
<li>Event [Date] - Option to go on date (x3 different locations) with your spouse.</li>
<li>Adjusted ESU/Walls building times.</li>
<li>Base building multiplier (contr. Illusion-XIII).</li>
<li>Event [Octavia] - Invite to visit settlement (contr. Illusion-XIII).</li>
<li>Event [Basement] - Public punishment.</li>
<li>Event [Cage] - New fight.</li>
<li>Event [Elsa] - Road trip date (For supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v085" name="rd">
<label class="tab-label" for="v085"><span class="glyph vc-icon-top"></span> 0.85 <span class="glyph vc-icon-top"></span> 11 <span class="glyph vc-icon-top"></span> 18 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Mistress not showing if was first in guest list.</li>
<li>Typos.</li>
<li>Error on childbirth while sleeping.</li>
<li>World settlement - blackmail links didn't do anything.</li>
<li>Sword icon not showing in fights for enemies.</li>
<li>Blair threesome leading forced to instantly end event.</li>
<li>Event [Car explore] - Stranded driver didn't trigger.</li>
<li>Time advanced without choosing someone to have fun with.</li>
<li>World settlements - Prisoner image didn't match npc gender.</li>
<li>First settlers reseted existing settler count.</li>
<li>World settlements - Delivered items save before mission reset.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Companion count increased from 6 to 8.</li>
<li>Back button enabled for world settlement events.</li>
<li>Increased performance for large saves on sleep.</li>
<li>New sex option - grind.</li>
<li>Settlement npcs will be generated with names from the same pool as npcs.</li>
<li>Destroyed settlements will be removed from map.</li>
<li>New job: Attendant — assign npcs to tend npcs in the bathhouse; they groom (restoring beauty) and optionally raise arousal (contr. Illusion-XIII).</li>
<li>World settlement - Release option after interrogation.</li>
<li>Physically demanding jobs slowly increase strength like woodcutting or mining.</li>
<li>Ragdoll implemented for males (v1 so almost no clothes yet).</li>
<li>World settlement - option to talk to leader.</li>
<li>Option to change MC portrait (contr. Illusion-XIII).</li>
<li>Base building - wind turbine. Alternative source of energy.</li>
<li>On gifting always will give + 1 happiness if not disliked gift.</li>
<li>Goodwill will impact settlement starting relationship.</li>
<li>World settlement - Cult settlement NPC's will be generated with unique names.</li>
<li>Threesome/Foursome will choose only from current locations.</li>
<li>Event [Hottube] - Post party (For supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v084" name="rd">
<label class="tab-label" for="v084"><span class="glyph vc-icon-top"></span> 0.84 <span class="glyph vc-icon-top"></span> 5 <span class="glyph vc-icon-top"></span> 25 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Infertile men could impregnate women.</li>
<li>Couldn't sometimes release NPC from basement as settler.</li>
<li>Milk barn fun was set to forced.</li>
<li>Not able to equip NPC with sword.</li>
<li>Event [Fight cage] - Introduction error.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>World settlements logic/mechanic release (v.01 so updates will be coming).</li>
<li>World settlement - Negotiation event.</li>
<li>World settlement - Attack event.</li>
<li>World settlement - Trade (buy/sell goods at settlements).</li>
<li>World settlement - Donate (give items to improve relations).</li>
<li>World settlement - Mission (item delivery quests for allied settlements).</li>
<li>World settlement - Recruit (bring NPCs from friendly settlements).</li>
<li>World settlement - Intel (gather information on other settlements).</li>
<li>World settlement - Alliance (request formal alliance).</li>
<li>World settlement - Slave Trade (buy/sell slaves at compatible settlements).</li>
<li>World settlement - Investment (pay caps to grow a settlement).</li>
<li>World settlement - Help (settlements ask player for armed assistance).</li>
<li>Event [Car explore] - First settlement discovery (scripted intro on first find).</li>
<li>Event [Car explore] - Settlement rediscovery (random chance to find more).</li>
<li>Event [Cabin] - Settlement raid (settlements attack your cabin).</li>
<li>Event [Cabin] - Targeted abduction (settlement kidnaps one of your guests).</li>
<li>Event [Cabin] - Woman demand (settlement demands you hand someone over).</li>
<li>Event [Cabin] - Blackmail (settlement pressures you with leverage).</li>
<li>Event [Cabin] - Refugee influx (displaced people arrive from a settlement).</li>
<li>Event [Cabin] - Settlement trader (merchant visits from a known settlement).</li>
<li>Event [Cabin] - Guest rescue (rescue a companion captured during scavenging).</li>
<li>World settlement - Attack now supports companions joining raids, with casualties, captures, ransom, and a rescue mission.</li>
<li>Event [Cabin] - House party (existing) - Pregnant women, and women who don't like alcohol, won't drink during the party (contr. Illusion-XIII).</li>
<li>Policy - New MCName policies, to control how NPCs refer to you (contr. Illusion-XIII).</li>
<li>Event [Bedroom] - Drunk visitor (After house party) (For supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v083" name="rd">
<label class="tab-label" for="v083"><span class="glyph vc-icon-top"></span> 0.83 <span class="glyph vc-icon-top"></span> 11 <span class="glyph vc-icon-top"></span> 20 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Breeders now have 40% twin chance instead of 100% guaranteed. Non-breeders stay at 10%.</li>
<li>Typos.</li>
<li>Event [Guesthouse] - Food forager. Always added male when invited.</li>
<li>Random NPC leaking into characters variables.</li>
<li>Random Blair bug in few scenes that might happen.</li>
<li>Companions restored after Laura's/Eve's/Elsa's dates.</li>
<li>Threesome trans overlapping (Hopefully. Couldn't reproduce on exact moment).</li>
<li>On old saves Eve's church event might not trigger.</li>
<li>Event [Explore] - Tribe. Didn't trigger.</li>
<li>Event [Car explore] - Gypsy family. Wasn't triggering.</li>
<li>Bath schedules for forest and nightclub workers.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Added in journal about Vincent and car fix.</li>
<li>Added info about wedding anniversary (contr. Illusion-XIII).</li>
<li>House party will use same NPC list as in other places.</li>
<li>More NPC history milestones (invited, bought, captured, released, etc).</li>
<li>Drunk companions/guards now get a combat penalty.</li>
<li>Added favicon.</li>
<li>Marriage not locked behind Blair's story.</li>
<li>Octavia warrior give event - added additional info (female + 70+ strength).</li>
<li>School blueprint event now triggers in all weather conditions. (Images + texts changes).</li>
<li>Scavenger survival improvements.</li>
<li>New item: Sword (Stronger than knife and less chance to break).</li>
<li>Event [Car explore] - Hidden cache. Added few more options.</li>
<li>Event [Explore] - Snake line. NPC will be with woodcraft skill.</li>
<li>New clothes: BDSM + New group: neck.</li>
<li>Event [Explore] - Wicked family (existing). Additional options/scenes (contr. Illusion-XIII).</li>
<li>MC can now end marriage with NPC's (contr. Illusion-XIII).</li>
<li>Fun time - new reactions for exes (contr. Illusion-XIII).</li>
<li>Added save button and restricted warning closing on Blair bug.</li>
<li>Foursome (FFFM). Early stages.</li>
<li>Event [Basement] - Horny girl - Bring upstairs (For supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v082" name="rd">
<label class="tab-label" for="v082"><span class="glyph vc-icon-top"></span> 0.82 <span class="glyph vc-icon-top"></span> 7 <span class="glyph vc-icon-top"></span> 17 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event [Sleeping beauty] - Didn't remove virgin status.</li>
<li>Sometimes milkwarden error while sleeping.</li>
<li>Tied down creampie counter didn't increase.</li>
<li>Males on female errors.</li>
<li>Shopkeeper min/max sometimes bought/sold outside the range.</li>
<li>Could assign npcs to greenhouse before building it.</li>
<li>In a lot of events where virginity was removed, didn't set it in npc history.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Negan] - The Story.</li>
<li>Event [Negan] - The new one.</li>
<li>Event [Negan] - Drunk guest.</li>
<li>Event [Negan] - The Informant.</li>
<li>Creampie will continue to give corruption even if limit reached.</li>
<li>Event [Negan] - The barter.</li>
<li>Event [Car explore] - abandoned outpost.</li>
<li>Event [Car explore] - hidden cache.</li>
<li>Event [Car explore] - stranded driver.</li>
<li>Event [Explore] - ambush bait.</li>
<li>Event [Explore] - snare line.</li>
<li>Event [Explore] - wounded merchant.</li>
<li>Bathhouse - schedule available (contr. Illusion-XIII).</li>
<li>Event [NPC] - Option to play with feral npc's (contr. Illusion-XIII).</li>
<li>Event [Fun] - Added more images.</li>
<li>New pack: Gina Valentina.</li>
<li>Event [Laura] - New date option (school) (For supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v081" name="rd">
<label class="tab-label" for="v081"><span class="glyph vc-icon-top"></span> 0.81 <span class="glyph vc-icon-top"></span> 9 <span class="glyph vc-icon-top"></span> 21 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Fire place event - falling satellite, happiness to random guests.</li>
<li>Base management femaleSettlers error.</li>
<li>NPC ask to marry other. Might trigger that woman asks it.</li>
<li>If shop was built before Vincent car quest, MC was stuck without car.</li>
<li>Corrupt Octavia's warriors removing on save load.</li>
<li>If settler was woman, sometimes wasn't added to female settler count.</li>
<li>On explore if have fun with ghoul npc, could create Blair error.</li>
<li>On threesome with character, after fun ends, might move to incorrect npc view.</li>
<li>Basement didn't hide npcs assigned to milk barn in work hours.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Funtime reactions expansion (contr. Illusion-XIII).</li>
<li>Packs sorted by name.</li>
<li>Tight V trait will give additional bonus on streets.</li>
<li>Tight V trait can be lost if exceeds 100ish uses.</li>
<li>New trait: Hoarder. Keeps half of the supplies for himself. Doesn't starve.</li>
<li>Nun count increased from 2 to 6.</li>
<li>Guesthouse limit increased from 30 to 35 and Basement from 35 to 40.</li>
<li>Settlers buy and sell random things to your shopkeeper based on settlement rep.</li>
<li>Basement - mass shower.</li>
<li>Rewrote NPC washing/bath logic so both places now use the same logic.</li>
<li>Option to give pregnancy termination potions to characters + show pregnancy progress.</li>
<li>Nightclub workers now have chance to get pregnant.</li>
<li>Relationship decay for NPCs.</li>
<li>Job earnings weather penalty (for nightclub and strip club).</li>
<li>Close call messages in morning if NPC almost died on streets.</li>
<li>Cold snap causes illness for outdoor workers.</li>
<li>In morning, message if guesthouse is almost or completely full.</li>
<li>Cheatmenu: Edit NPC — option to edit siblings (contr. Illusion-XIII).</li>
<li>Explore event - Bite in neck. Females now have option to accept invitation.</li>
<li>In shower, if feral girl joins, added reactions as she doesn't have dialogs.</li>
<li>Event [Greenhouse] - Groping surprise (for supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v080" name="rd">
<label class="tab-label" for="v080"><span class="glyph vc-icon-top"></span> 0.80 <span class="glyph vc-icon-top"></span> 13 <span class="glyph vc-icon-top"></span> 17 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>MC threesome could break characters (Blair).</li>
<li>Sometimes player money could break (NaN) because of missing NPC var.</li>
<li>Feral trait generated for NPCs in events where they talk.</li>
<li>NPC relationshipBetween script for match sometimes skipped a match.</li>
<li>Horny guest approached MC in bedroom.</li>
<li>Bounty hunter fight back — could capture and bring in the same NPC.</li>
<li>For a lot of threesome actions gay settings check was missing.</li>
<li>Typos.</li>
<li>In fun scenes, error about settlement if not built yet.</li>
<li>Blair suggests nursery even though it is already built by guest's request.</li>
<li>Virgin sometimes pregnant (Couldn't reproduce but hopefully fixed).</li>
<li>Birth traits survive saves — no data loss is happening.</li>
<li>Event [Male on female forced] - Sometimes with errors.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Character dialog system (contr. Illusion-XIII).</li>
<li>Event [Octavia] - Rebuild the Emberclaw.</li>
<li>Quest [Octavia] - Give her 5 warriors.</li>
<li>Event [Octavia] - Warrior reward.</li>
<li>Event [Octavia] - Leaving for new home.</li>
<li>NPC with feral trait can be assigned to some job.</li>
<li>NPCs drink recreationally when working at Streets, Strip Club, Nightclub (contr. Illusion-XIII).</li>
<li>Event [Basement] - Release as settler (contr. Illusion-XIII).</li>
<li>Event [Bedroom] - Breakfast in the bed.</li>
<li>Event [Cabin] - Food forager (existing). Option that thief can be female.</li>
<li>Event [Basement] - Guest asks to have fun (existing). Will increase relationship.</li>
<li>Event [Fight] - Now MC can use bandage or ask to retreat for an ally.</li>
<li>Started to work on world randomly generated settlements (WIP).</li>
<li>Event [Sex] - Breeder trait now available for all genders and NPCs might ask to fill them up/fill without asking.</li>
<li>New job: Nun. Works in church and increases people happiness.</li>
<li>Event [Fun] - Church scene images.</li>
<li>Event [Nightclub] - Behind the nightclub (For supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v079" name="rd">
<label class="tab-label" for="v079"><span class="glyph vc-icon-top"></span> 0.79 <span class="glyph vc-icon-top"></span> 13 <span class="glyph vc-icon-top"></span> 15 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Trans threesome NPC could be lost if MC joined.</li>
<li>Threesome with chastity belt didn't block some actions.</li>
<li>Childbirth incorrectly calculated chances of birth with working hospital.</li>
<li>Typos.</li>
<li>In parties chastity belt was ignored.</li>
<li>IT teacher wasn't female error on sleep.</li>
<li>With noSex policy some events couldn't be triggered.</li>
<li>Settler can't play event couldn't be triggered because of incorrect variable.</li>
<li>Event [Milk barn - dry clothes] - Didn't remove locked trait.</li>
<li>Hospital didn't check if doctor exists correctly.</li>
<li>Eve date had duplicate leave buttons.</li>
<li>Dumbestbell image missing.</li>
<li>Event [Nightclub] - drink spike - auto redirect to fight.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Greenhouse and Forest will also show NPC name colors.</li>
<li>Event [Garage] - Visit (existing). Gives MC option to choose.</li>
<li>Gate building is not locked behind Blair's story anymore.</li>
<li>New trait - crippled. Will do less damage in fights.</li>
<li>More settlement flag customization.</li>
<li>Nursery building not locked behind Blair's story anymore.</li>
<li>People market will give 4 options, instead of 1.</li>
<li>New pack: Abella Danger.</li>
<li>The father now contributes one of his own traits that the child doesn't already have.</li>
<li>Updated intro texts.</li>
<li>Implemented mechanics for foursome (MFFF) (WIP for images).</li>
<li>New trait: feral (Can't talk or be assigned to any task).</li>
<li>Quarry - NPCs will get additional bonuses if they have more strength or endurance.</li>
<li>In public punishment NPCs with sadistic trait will get aroused.</li>
<li>Event [Bar] - Surprise under table (For supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v078" name="rd">
<label class="tab-label" for="v078"><span class="glyph vc-icon-top"></span> 0.78 <span class="glyph vc-icon-top"></span> 4 <span class="glyph vc-icon-top"></span> 14 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Basement people sometimes called MC sir.</li>
<li>Shop - sell max didn't work properly.</li>
<li>Couldn't assign anyone as milk warden.</li>
<li>If Dom destroys settlement, Vincent will reset Rodger's story</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Increased pregnancy chances</li>
<li>Base management. Added info about materials (contr. Illusion-XIII)</li>
<li>Cheatmenu - NPC edit. Option to edit horny level (For supporters)</li>
<li>Event [Isabel] - Option to ask her to visit MC's settlement (contr. Illusion-XIII)</li>
<li>Event [Explore] - Lost child (existing) - option to invite as settlers</li>
<li>Event [Guest house] - Married couple having fun</li>
<li>Event [Bounty hunter] - New event with option to bring in dead</li>
<li>Event [Guesthouse] - Guests having fun (existing). Option that man will release without asking</li>
<li>Event [Settlement] - Settler not enough money</li>
<li>Event [Forest] - Animal attack</li>
<li>Event [Nightclub] - Spiked drink</li>
<li>New pack - Jewelz Blu</li>
<li>Event [Guest fun] - (existing) Will increase relationship between them in fun times.</li>
<li>Cheatmenu - Option to add shotgun shells (For supporters)</li>
<li>Event [Elsa] - Date. Throwing ball (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v077" name="rd">
<label class="tab-label" for="v077"><span class="glyph vc-icon-top"></span> 0.77 <span class="glyph vc-icon-top"></span> 8 <span class="glyph vc-icon-top"></span> 18 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Males on female error (Couldn't reproduce myself but hopefully fixed)</li>
<li>Typos</li>
<li>Wolf coat removed by automatization</li>
<li>Strip club dance - incorrect cap decrease</li>
<li>Fun scene - buttons on top and bottom sometimes different</li>
<li>Blair will use hottub from 22:00-23:30</li>
<li>When I run into the sibling event, sometimes NPC was generated 17yo.</li>
<li>Threesome after punish error sometimes</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Freezer - option to build freezer. Decreases change of spoiled food.</li>
<li>New items: Shotgun + shells (shells can crafted in workbench)</li>
<li>Event [Bounty hunter] - Event to get a shotgun</li>
<li>Stone & Coal are now fully usable resources</li>
<li>New building: coal furnace. Generate electricity with coals</li>
<li>Added NPC history. Few events (first fun with NPC, married date</li>
<li>Added settlement reputation (Will take into account taxes, buildings, etc)</li>
<li>Shop - added sell max button</li>
<li>Car will take damage if used in sandstorm</li>
<li>Performance improvements for sleep and bathhouse schedule</li>
<li>Cheatmenu: Edit NPC. Added option to change pregnancy</li>
<li>Settlement Info: Added virgin count and pregnant name list with additional info (contr. Illusion-XIII)</li>
<li>Fun event - more orgasm scenes</li>
<li>Some characters can be invited to threesome (contr. Illusion-XIII)</li>
<li>Release NPC's as settlers</li>
<li>Added nickname option for NPCs, and moved all name customization into a shared dialog box. (contr. Illusion-XIII)</li>
<li>Color indicator to identify skills the student has finished learning (contr. Illusion-XIII)</li>
<li>Event [Elsa] - Date massage (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v076" name="rd">
<label class="tab-label" for="v076"><span class="glyph vc-icon-top"></span> 0.76 <span class="glyph vc-icon-top"></span> 5 <span class="glyph vc-icon-top"></span> 13 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event [Fun] - Transfemale on female error</li>
<li>Blackjack image not showing</li>
<li>Fun reactions - visible if NPC was stranger/unknown</li>
<li>NPC reactions were given even without successful fun event.</li>
<li>Strip club - sitting at table could overwrite unique characters (Blair bug)</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>NPC's with booze in inventory will sometimes drink them by themselves. Added icon next to person name (contr. Illusion-XIII)</li>
<li>Event [Elsa] - Homestead</li>
<li>Event [Elsa] - Crossbow day</li>
<li>Event [Elsa] - Attack</li>
<li>Event [Elsa] - The Road Out</li>
<li>New fast travel location - garage</li>
<li>School - Advanced Study active (Use books to learn faster) (contr. Illusion-XIII)</li>
<li>Event [Elsa] - New home</li>
<li>Event [Elsa] - Introduction</li>
<li>Elsa - now you can approach her, talk, have fun, customize.</li>
<li>Show the crime for the bounty when collecting the reward. (contr. Illusion-XIII)</li>
<li>Identify the capacity when viewing the Population, with a warning icon if it's getting too close. (contr. Illusion-XIII)</li>
<li>Event [Cabin] - Group workout - the view after (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v075" name="rd">
<label class="tab-label" for="v075"><span class="glyph vc-icon-top"></span> 0.75 <span class="glyph vc-icon-top"></span> 8 <span class="glyph vc-icon-top"></span> 15 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event Lira Voss - undefined relationship (Will take into account what you choose)</li>
<li>Couldn't talk to Octavia when she moved into settlement</li>
<li>Couldn't talk to Isabel when approaching her</li>
<li>Nursery built error if companion was from basement</li>
<li>Octavia: If joined, sometimes couldn't have fun with her, increase relationship</li>
<li>NPC customize - piercing: Missing image (online)</li>
<li>Wolf coat removed by automatization</li>
<li>Threesome not taking into account sensitive tits trait</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event Tribe camp - Increased trigger chance from 45 > 60 & 8 > 20</li>
<li>NPC fight cage - Added a boxing glove icon to indicate which NPCs have fighter skills (contr. Illusion-XIII)</li>
<li>Portraits - new file js/portraits.js. Can set your custom max portraits and add your own without modifying game code.</li>
<li>Customize - option to pierce bottom</li>
<li>Customize - option to remove all piercings (top/bottom)</li>
<li>Customize - option to add blindfold</li>
<li>Newborn - will get traits also from father</li>
<li>Event Sex - Intimate rear play option</li>
<li>New pack - Blake Blossom (+ packs will show portraits, if added)</li>
<li>Taxes - Set how much settlers need to pay to live in your settlement</li>
<li>Strip Club - option to skip time</li>
<li>Basement - option to release as settler</li>
<li>Mirror - option to change MC name</li>
<li>Event Sex - new position involving toy</li>
<li>Event Strip Club - Casting (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v074" name="rd">
<label class="tab-label" for="v074"><span class="glyph vc-icon-top"></span> 0.74 <span class="glyph vc-icon-top"></span> 4 <span class="glyph vc-icon-top"></span> 14 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Error after sleeping, for basement NPCs if working in nightclub</li>
<li>After fight now, arrows were added as crossbows not arrows</li>
<li>Forest event family tree error</li>
<li>In nightclub and strip club NPC had too many options (invite to shower, workout, etc)</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Cheatmenu - Added event trigger for Car explore - The Chain Road (For supporters)</li>
<li>Cheatmenu - Added event trigger for Teaching outside (Opens school building) (For supporters)</li>
<li>Shop - added current item count for player stash (contr. Illusion-XIII)</li>
<li>Allow custom defaults for what slaves, submissive guests, and offspring call the MC (contr. Illusion-XIII)</li>
<li>Event [Garage] - Cold start (Can't explore while cold snap)</li>
<li>Event [Night club] - Closing hours</li>
<li>Event [Isabel] - Car date available for everyone</li>
<li>Event [Bounty hunter] - Unique request</li>
<li>Event [Bar] - Drunk passed out</li>
<li>Event [Bounty hunter] - Missing wife</li>
<li>Journal - Octavia. Will mention that MC needs to bring medallions.</li>
<li>If Laura is living in settlement, she can substitute doctors for childbirth.</li>
<li>Event [Guest house] - Male with female having fun - public punishment</li>
<li>Event [Kitchen] - Morning coffee (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v073" name="rd">
<label class="tab-label" for="v073"><span class="glyph vc-icon-top"></span> 0.73 <span class="glyph vc-icon-top"></span> 8 <span class="glyph vc-icon-top"></span> 20 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Assign newline missing before milk farm</li>
<li>Strip club working stats not increasing</li>
<li>Coat couldn't be given to NPC's</li>
<li>After fun in strip club, MC teleported to guest house</li>
<li>Strip club didn't earn money if NPCs were assigned</li>
<li>In threesomes positive tits didn't increase arousal</li>
<li>In threesomes male npc was set incorrectly and showed female</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>In settings can enable/disable sex reactions texts (contr. Illusion-XIII)</li>
<li>Added sex reaction texts for threesomes (contr. Illusion-XIII)</li>
<li>Added strip club stats under base management (contr. Illusion-XIII)</li>
<li>Childbirth - Chance that mother can get milker trait</li>
<li>Event [Basement] - Begging event. Will use actions folder - customizable</li>
<li>NPC Customize - all images moved to actions - customizable.</li>
<li>For females added butt fun orgasm scene - customizable.</li>
<li>Fun time - Also added negative reactions (contr. Illusion-XIII)</li>
<li>NPC info - Added info how NPC calls MC (contr. Illusion-XIII)</li>
<li>Strip Club - option to rename it</li>
<li>Milk barn - option to drink a fresh milk</li>
<li>After fight won if enemy had crossbow, chance to pick up arrows</li>
<li>Basement people can be assigned to nightclub</li>
<li>Greenhouse - changed npc view list (Will be same as in other places)</li>
<li>Basement people can be assigned to forest</li>
<li>Beauty will increase caps earned in strip club</li>
<li>Fun time - analslut won't give hurt scenes</li>
<li>Event [Blair] - Skyscrapper date. Available for everyone</li>
<li>Adds grandkids to the Settlement Management Family Tree. (contr. Illusion-XIII)</li>
<li>Event [Library] - Reading book, additional option (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v072" name="rd">
<label class="tab-label" for="v072"><span class="glyph vc-icon-top"></span> 0.72 <span class="glyph vc-icon-top"></span> 8 <span class="glyph vc-icon-top"></span> 14 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Random error while having fun</li>
<li>Octavia's fun in shower - Eve's instead of Octavia's pregnancy was set</li>
<li>While fun reactions sometimes without replaced name</li>
<li>Siblings couldn't recognize each other in family tree</li>
<li>Plush not available in manage store goods</li>
<li>Eve, after Rodger's death, didn't trigger event to come live with MC</li>
<li>searchActionPack.js extended pack incorrectly created (with extension flag, not extended)</li>
<li>Event [Snake pit] - Even if helped companion, companion was removed</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Isabel] - New business idea</li>
<li>Option to gather resources for strip club</li>
<li>Event [Isabel] - Strip club renovated</li>
<li>Event [Isabel] - Opening night</li>
<li>Strip club - mechanics and general sex scenes</li>
<li>Event [Strip Club] - lap dance</li>
<li>Event [Car explore] - Option to find a person walking beside the highway</li>
<li>Added more reactions in fun times (contr. Illusion-XIII)</li>
<li>In NPC list added pink glow to show horny people (contr. Illusion-XIII)</li>
<li>Event [World] - Cold snap</li>
<li>New item - wolf coat (Protects from cold)</li>
<li>Event [Sex] - New option - hothogging</li>
<li>Event [Fight cage] - Proposal</li>
<li>Event [Strip Club] - one plus one (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v071" name="rd">
<label class="tab-label" for="v071"><span class="glyph vc-icon-top"></span> 0.71 <span class="glyph vc-icon-top"></span> 5 <span class="glyph vc-icon-top"></span> 15 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Cage fight. Basement people fightsWon variable not updating.</li>
<li>Sleeping. Sometimes error about guest street workers</li>
<li>Cheatmenu - edit npc hair. Missing "white" option</li>
<li>Event [Explore] - Snake pit. Companion wasn't removed when got sick</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>On age hover - showing exact birth date (contr. Illusion-XIII)</li>
<li>Inventory - option to hide blueprints</li>
<li>Chastity belt will block anal action</li>
<li>Two new tattoos on right leg</li>
<li>NPC info - added info about lost/won cage fights (contr. Illusion-XIII)</li>
<li>Added few more products under MC goods management (flower/plush/candy)</li>
<li>Additional images folder available for modding + images (under .forced tag)</li>
<li>NPC list - will show in npc needs to take a shower (beauty back to base) (contr. Illusion-XIII)</li>
<li>Added simple mechanics for NPC addressing MC based on stats/family (Almost nowhere implemented but slowly will add more places)</li>
<li>Guests random sex - Will take into account if they are married or not. 1% chance of cheating,</li>
<li>Fun time - Now will display NPC reactions during it. (contr. Illusion-XIII)</li>
<li>Customize - Option to tell NPC how to call MC (contr. Illusion-XIII)</li>
<li>Extend siblings logic in Family Tree display so that it includes siblings through shared mother, and through direct "siblings" entry</li>
<li>Reworked Kendra Lust's pack (Had reports that it could crash browser, so converted all in mp4 format)</li>
<li>Event [Blair] - Date. Couch talk (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v070" name="rd">
<label class="tab-label" for="v070"><span class="glyph vc-icon-top"></span> 0.70 <span class="glyph vc-icon-top"></span> 13 <span class="glyph vc-icon-top"></span> 11 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Could assign any npc, not only basement npc's</li>
<li>After doing cosmetics (and some other stuff), it didn't reset after sleep.</li>
<li>Event [Lost child] - Didn't check if MC has guest house</li>
<li>Maid - fixed nap bonus and event while doing that</li>
<li>Asking to have sex with someone - errors</li>
<li>Could not assign basement npc to milk barn</li>
<li>Sexchange operation - breasts as undefined variable in some cases</li>
<li>In fight it showed that someone run away, but didn't</li>
<li>Typos</li>
<li>Event - Weather - Sand storm. Error if settlement had no guests</li>
<li>Extended custom packs. Worked only for default folder (contr. Bip)</li>
<li>clobber existing widget "domQuest2Invite"</li>
<li>Characters - after basement punish, used default images not specific ones</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Added sort by age in nursery. (contr. Illusion-XIII)</li>
<li>Licking nipples - removed horny max limit.</li>
<li>Event [Elsa] - The Stranger at the Door</li>
<li>Event [Forest] - Worker didn't returned home</li>
<li>Sex [Streets] - (Existing) (Swapped one and added additional videos)</li>
<li>Event [Elsa] - Shadows at the Well</li>
<li>Event [Elsa] - Village well</li>
<li>Event [Eve] - Church talk</li>
<li>Base building - Option to build church</li>
<li>Event [Eve] - New church</li>
<li>Event [Isabel] - New option in dating (Office)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v069" name="rd">
<label class="tab-label" for="v069"><span class="glyph vc-icon-top"></span> 0.69 <span class="glyph vc-icon-top"></span> 9 <span class="glyph vc-icon-top"></span> 16 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Custom pack script sometimes didn't work on enter.</li>
<li>In some events MC was recognized always (skipped RNG part)</li>
<li>Broken radio event didn't trigger correctly</li>
<li>Quick Fingers in the Dark event didn't trigger</li>
<li>Could workout in garden (wasn't supposed to)</li>
<li>School shopkeer learning was bugged</li>
<li>In fight if run away, food/caps didn't decrease.</li>
<li>Event [Sextoy alone time] - didn't correctly go back after approaching</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Fight - Chance that enemies will spawn with crossbow and fight with it</li>
<li>Blackjack - with higher reputation, max bet increases</li>
<li>New trait: Pacifist. Does not engage in fights</li>
<li>Shop - high priority. Shopkeer will have bigger chance to get item but with higher cost</li>
<li>Maid/Kitchen - option to assign people from basement</li>
<li>Cheatmenu - option to change MC name</li>
<li>More custom portraits for females (contr. Illusion-XIII)</li>
<li>Settlement more info about nursery (contr. Illusion-XIII)</li>
<li>Laura - option to approach her (customization, talk, etc)</li>
<li>Laura - Sex scenes added</li>
<li>Event - House party. Will increase/decrease relationship between npcs</li>
<li>Decreased sensitive breasts trait bonus.</li>
<li>For some sex scenes set max horny NPC can gain.</li>
<li>Additional sex options for trans (contr. decker-666)</li>
<li>Policies - added No kin relations</li>
<li>Event [Eve] - Date to the champagne place (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v068" name="rd">
<label class="tab-label" for="v068"><span class="glyph vc-icon-top"></span> 0.68 <span class="glyph vc-icon-top"></span> 3 <span class="glyph vc-icon-top"></span> 18 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Cheatmenu. Edit NPC. Error if dialog opened more than once.</li>
<li>Typos</li>
<li>Custom pack names in the end added gue</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Underground city] - nightclub ambush won - Female always declined. Not anymore.</li>
<li>Event [Car explore] - The Graveyard of Steel</li>
<li>Event [Car explore] - The Last Light</li>
<li>Event [Medalion] (existing) - Will also trigger if Rodger's dead and MC travels to Octavia's camp</li>
<li>Event [Settlement] - Church build. Added info about energy</li>
<li>Event [Car explore] - The Chain Road</li>
<li>Event [Bar] - The Drunk in the Underground Bar</li>
<li>New item - broken radio</li>
<li>Increased workers limit for hunters and gardeners (9 -> 10)</li>
<li>Cheatmenu: [Edit NPC] - Added option to set virgin status</li>
<li>Event [Fight cage] - Shower ambush (Existing) - Option to capture</li>
<li>Event [Underground city] - Quick Fingers in the Dark</li>
<li>New pack - Kendra Lust (contr. unknown)</li>
<li>Event [Explore] - The Strangers by the Fire</li>
<li>Event - Offer drink (existing) - Now will also increase happiness</li>
<li>Event - Workout together (existing) - Now will also increase happiness</li>
<li>Event - Talk (existing) - Now will sometimes increase happiness</li>
<li>Event [Bar] - WC surprise visit (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v067" name="rd">
<label class="tab-label" for="v067"><span class="glyph vc-icon-top"></span> 0.67 <span class="glyph vc-icon-top"></span> 9 <span class="glyph vc-icon-top"></span> 13 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Packs. Lucie Wilde duplicate (If you had other custom packs, you can just remove her from custom_packs.js)</li>
<li>Event [male on female and transfemale] - error if male with 100 submission</li>
<li>Event [Bedroom] - Sleepover. Morning event showed incorrect npc</li>
<li>With Rodger's settlement burned down, still showing Rodger alive/journal.</li>
<li>School added to schedule (Teacher won’t take bath in her work hours)</li>
<li>Event [Elsa] - champagne event could be triggered before medicine delivery</li>
<li>With disabled gay content but sadistic trait had reverse sex actions</li>
<li>Threesome - in some cases sex stats didn’t update (While performing double actions)</li>
<li>Batthouse - added base beauty so girl with high beauty, shouldn’t drop lower than her original beauty</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Cheatmenu. Changed 100 caps to 1000 caps.</li>
<li>Event [Sex] - Added asian maid images</li>
<li>Settings - option to enable sex scene buttons to show on top also</li>
<li>Selling in market - Will remove buttplug.</li>
<li>Cheatmenu - Changed age to birthdate. (So you can choose specific date)</li>
<li>Help - added school schedule and rewrote learnable skills (Will show an actual data + some errors)</li>
<li>Assigned to - added description about milkwarden.</li>
<li>New pack - Kira Noir</li>
<li>New pack - Hitomi Tanaka (contr. unknown)</li>
<li>Street job will increase npc sex stats</li>
<li>New trait: Tight vagina</li>
<li>Deepthroat trait will give additional cap while working in nightclub</li>
<li>Back button added in streets and market</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v066" name="rd">
<label class="tab-label" for="v066"><span class="glyph vc-icon-top"></span> 0.66 <span class="glyph vc-icon-top"></span> 11 <span class="glyph vc-icon-top"></span> 15 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Childbirth - children traits could duplicate</li>
<li>Event [Cabin] - Late dance. Could trigger with npc with chastity belt</li>
<li>Event [Eve] - Shower visit didn't increase corruption</li>
<li>Submission decay reseted after save load</li>
<li>Octavia - wasn't able to access her if Rodger died too early. (Can continue her story)</li>
<li>Nursery - throw out didn't work after sorting.</li>
<li>Garden limit didn't increase to 9</li>
<li>Extended packs didn't overwrite all images (if default were missing they weren't added)</li>
<li>Basement party. Npcs relationship/happiness could go over 100</li>
<li>Management info. Showed basement/guesthouse fully built, when in fact wasn't</li>
<li>Paddle punish stats changed (Higher than whip)</li>
<li>Guesthouse dildo fun had RNG 100%. Changed to 2%</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Elsa] (New character) - The House in the Woods</li>
<li>Event [Elsa] - The Hidden House – Aftermath</li>
<li>Event [Elsa] - Morning request</li>
<li>Event [Elsa] - Delivery</li>
<li>Event [Elsa] - Morning Calm</li>
<li>Event [Elsa] - Medicine delivery</li>
<li>Event [Elsa] - Morning Light</li>
<li>Event [Elsa] - Champagne delivery</li>
<li>Event [Elsa] - Morning Promises</li>
<li>Event [Guesthouse] - Alone time with toy. Option to take away the toy.</li>
<li>Option to sleep in underground city</li>
<li>Event [Isabel] - Goodnight in the office</li>
<li>Event [Laura] - Sexchange operation talk</li>
<li>Lab [Sexchange] - Option to change sex (once per npc)</li>
<li>Event [School] - Students break (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v065" name="rd">
<label class="tab-label" for="v065"><span class="glyph vc-icon-top"></span> 0.65 <span class="glyph vc-icon-top"></span> 8 <span class="glyph vc-icon-top"></span> 17 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>House party. Lesbian error/trigger without an actual lesbian</li>
<li>Typos</li>
<li>Male and trans mechanics wasn't showing in garage</li>
<li>Guests NPC sex - won't be happening if any of them have chastity belt.</li>
<li>Octavia when generated without knife inventory</li>
<li>Mistress with chastity belt had too much options</li>
<li>Option to be pregnant and virgin</li>
<li>[Event] - Basement party introduction. Error if all npcs were males</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Sex [Basement] - Added some pregnancy scenes</li>
<li>Event [Youth district] - School talk (existing) Changed from 10% to 40%</li>
<li>Cheatmenu - Option to disable submission decay (For supporters)</li>
<li>Nightclub - added NPC list info (Same as in guest house and basement)</li>
<li>Hospital - Added images for other female races.</li>
<li>Customize - Added custom portraits for indian females & trans.</li>
<li>New pack - Lucie Wilde</li>
<li>House party - guests. Will increase happiness</li>
<li>Event [Guesthouse] - Male on female. If not interrupted, chance that girl might get pregnant.</li>
<li>Sensitive tits trait will work also on boob job</li>
<li>Added more scene images for default and basement locations</li>
<li>Event [Blair] - Option to punish her (First talk in kitchen)</li>
<li>New job - Milk warden. Will collect milk in the barn and also create cheese from it.</li>
<li>Added that women above 60yo will have 2% chance to get pregant.</li>
<li>Event [Explore] - beak humans. Won't decrease goodwill if decides not to help and not enough int.</li>
<li>Increased max workers for garden and hunters by +1.</li>
<li>Event [Basement] - First visit. (Extended) - New option. (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v064" name="rd">
<label class="tab-label" for="v064"><span class="glyph vc-icon-top"></span> 0.64 <span class="glyph vc-icon-top"></span> 10 <span class="glyph vc-icon-top"></span> 13 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Wicked family; Skill error</li>
<li>Sometimes fightCage error</li>
<li>Settlement info - Teacher stats not working</li>
<li>Could find multiple car batteries per one car</li>
<li>error + pickup</li>
<li>Could talk with characters with gag ball on.</li>
<li>Cage fight. MaleVsFemale texts were reversed.</li>
<li>Eve talk - sayDialog error</li>
<li>With disabled trans/gay content reverse bj/anal was available</li>
<li>School. Teacher incorrect name</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Guesthouse] - sextoy alone time</li>
<li>Event [Guesthouse] - drunk lesbian conversion</li>
<li>Cheatmenu: Added option to add car battery (For supporters)</li>
<li>Event [Car race] - Sometimes instead of caps you will get car battery</li>
<li>Event [Eve] - Morning shower</li>
<li>Event [Octavia] - Morning shower</li>
<li>Event [Youth district] - (existing) teaching outside. Increased RNG for school talk from 30% to 60%</li>
<li>Event [Guesthouse] - If guests have 100 submission, they won't have random sex with others.</li>
<li>Guests slower will loose submission if MC doesn't interact with them</li>
<li>MC now can marry any NPC that's not married to him (so different npc)</li>
<li>Event [Basement] (existing) - guest asks about npc. Will increase/decrease relationship regarding your answer.</li>
<li>Event [Laura] - Shower (For supporters additional option)</li>
<li>Event [Nightclub] - Private dance (invite while drinking) (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v063" name="rd">
<label class="tab-label" for="v063"><span class="glyph vc-icon-top"></span> 0.63 <span class="glyph vc-icon-top"></span> 6 <span class="glyph vc-icon-top"></span> 17 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event [Eve] - Shower visit triggered after settlement was burned down</li>
<li>Event [Vincent] - Infiltration. Removed option to remove companions</li>
<li>Eve not liking men in some cases.</li>
<li>If NPC was already married and MC married, didn't show as husband.</li>
<li>Blair & Ashley threesome triggered before MC had sex with Blair.</li>
<li>Negan order, specified that he wants females.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>New pack: Gabbie Carter</li>
<li>New trait: Sensitive nipples</li>
<li>Basement - Added sort by pregnancy</li>
<li>New item - Car battery (To build ESU)</li>
<li>New building - Energy Storage Unit + mechanics (In the future some weathers might be more than few days long)</li>
<li>Intro item choose. Now gives either knife, 10 to maxEnergy or 10 intelligence</li>
<li>If mother has breeder trait, also 10% chance to have twins</li>
<li>If scavenger goes missing and has scavenger trait, 50% less chance to find npc dead</li>
<li>With high player reputation, enemies might flee fights before they start</li>
<li>School mechanics implemented. (Choose what children need to learn + assigned teacher)</li>
<li>Sex [School] - New sex location</li>
<li>New item: gag ball (+ few scenes according to it)</li>
<li>NPC with teacher skill, additional chance to faster gain xp while doing other jobs</li>
<li>New punish method - whip</li>
<li>Base attacks after wall has been built will happen only 60ish days AFTER it's built.</li>
<li>Metal available in underground city shop</li>
<li>Nightclub. Invite to restroom (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v062" name="rd">
<label class="tab-label" for="v062"><span class="glyph vc-icon-top"></span> 0.62 <span class="glyph vc-icon-top"></span> 7 <span class="glyph vc-icon-top"></span> 12 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Sleeping error if MC didn't have a car</li>
<li>Typos</li>
<li>NPC wedding – in cases when some of the NPCs are not found, event aborted (edge cases)</li>
<li>Sometimes corrupted save file if storage not unlocked</li>
<li>Blair bug related to nightclub</li>
<li>Isabel journal pregnancy text changed from 10 to 7 days</li>
<li>Vincent journal bug if shop wasn't built (not story-locked anymore after talking about it)</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event - threesome (F + M + T). Changes (contr. decker-666)</li>
<li>New pack - Autumn Falls</li>
<li>Event - Virgin merchant (existing). Option to kill him</li>
<li>Event - Police car (existing). If one of companions is mechanic, chance to find car part</li>
<li>Event [Eve] - New home</li>
<li>Event [School] - First impressions</li>
<li>Event [Car explore] - Dead convoy</li>
<li>Event [Cabin] - Sand storm aftermath</li>
<li>Event [Bedroom] - Invite to sleep. Additional option (For supporters)</li>
<li>Eve - Approachable in her room (Same as Blair/Octavia/Isabel)</li>
<li>Event [Sex] - Eve</li>
<li>Solar panels on rainy days will produce not 0 but 50% of power.</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v061" name="rd">
<label class="tab-label" for="v061"><span class="glyph vc-icon-top"></span> 0.61 <span class="glyph vc-icon-top"></span> 5 <span class="glyph vc-icon-top"></span> 18 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Bathhouse washing cause beauty to decrease over time.</li>
<li>Traits overlapped with lockedTraits (Couldn't reproduce myself but adjusted code)</li>
<li>On inventory use didn't refresh page</li>
<li>Fight cage didn't count npc win/lost.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Forest. Added back button on the top</li>
<li>Entering underground city will stop background weather sound and leaving start</li>
<li>If MC settlement walls are above 80, enemies attacking your base will slightly decrease.</li>
<li>Basement - Hovering on NPCs name will show their portraits and traits/skills. (contr. Illusion-XIII)</li>
<li>In sidebar now visible weather icon (rain, sun, storm, heat wave)</li>
<li>Guests group workout. Personalized additional event after workout (will show npc names)</li>
<li>Nursery - when sorted by mother, adjusted mobile view</li>
<li>Added chance that randomly generated NPCs can have piercings already.</li>
<li>Family tree - added grandchild detection (contr. Illusion-XIII)</li>
<li>If MC is drunk, 50% chance to miss in fights</li>
<li>If weather is sand storm or raining, solar panels will produce no electricity.</li>
<li>Guest house sort by - added option to sort by pregnancy (contr. Illusion-XIII)</li>
<li>After fights additional dialogs (contr. Illusion-XIII)</li>
<li>If MC decides to kill Dom, street workers won't pay any taxes anymore (contr. Illusion-XIII)</li>
<li>Custom packs - now you can add custom portrait for pack (searchActionsPack will ask file name)</li>
<li>Custom portraits. More responsive for dimensions out of default ones (contr. Illusion-XIII)</li>
<li>Fight cage - NPCs now can get fighter skill</li>
<li>Bounty hunter - brick wall (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v060" name="rd">
<label class="tab-label" for="v060"><span class="glyph vc-icon-top"></span> 0.60 <span class="glyph vc-icon-top"></span> 7 <span class="glyph vc-icon-top"></span> 12 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>NPC customize. Choose overlapped for custom portrait so couldn’t choose it.</li>
<li>Nightclub NPCs on day-of didn’t show in guest house.</li>
<li>Blair kissing video missing on official website.</li>
<li>Laura – breast surgery talk took away 2 hours even without choosing NPC.</li>
<li>Threesome: if MC ejaculated in pussy, NPC arousal went over 100 points.</li>
<li>Event [Safe Heaven] – error if child was a boy.</li>
<li>Event [Guesthouse] - If guest masturbating approached, didn't save corruption increase.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Underground city] - Child's drawing</li>
<li>Event [Dom] - The Cracks in the Throne</li>
<li>Event [Dom] - Dinner</li>
<li>Event [Dom] - Death angel</li>
<li>Event [Isabel] - The New King Below</li>
<li>Event [Nightclub] - Free of charge</li>
<li>Event [Milk barn] - Interact with NPCs. Sex open (new images)</li>
<li>Nursery and basement added sorting (contr. Illusion-XIII)</li>
<li>Guesthouse - Hovering on NPCs' names will show their portraits and traits/skills. (contr. Illusion-XIII)</li>
<li>Event [Youth district] - Outside teaching</li>
<li>Base buildings: Option to build school (WIP)</li>
<li>Event [Isabel] - Nightclub date (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v059" name="rd">
<label class="tab-label" for="v059"><span class="glyph vc-icon-top"></span> 0.59 <span class="glyph vc-icon-top"></span> 4 <span class="glyph vc-icon-top"></span> 15 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Garage - Didn't take into account time of the day and could explore indefinitely</li>
<li>Newborn found in forest if given growth potion sometimes showed as pregnant already</li>
<li>Child generated already with some adult stats</li>
<li>Fights. If enemy had fighter trait, could end with NaN hp.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Lab give trait npc list will show the same stats as guest house.</li>
<li>Wanted persons. New wanted persons will show crime they have committed</li>
<li>More images for pregnant sex scenes</li>
<li>If guesthouse will be overcrowded (close to the limit), guests will take happiness penalty.</li>
<li>Event [Offer drink] - Now available for all genders</li>
<li>Separate file for custom packs. Now with each new update where packs are changed you won't need to manually put back your already added packs. For custom packs use packs_custom.js</li>
<li>Increased milk price for selling in fight cage</li>
<li>Slightly decreased pregnancy chances</li>
<li>When fighting chance that enemies will drop random items</li>
<li>In journal added Eve corruption</li>
<li>Updated game base engine version. (Hopefully nothing breaks). Could be easier for someone new to contribute to the code as won't need to download older version</li>
<li>NPC talking. Made it more complex and will take into account different stats, personality, etc.</li>
<li>Underground city - Added option to buy plastic</li>
<li>Garage. Will show how much fuel and car parts are in storage.</li>
<li>Event [Nightclub] - Rave night (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v058" name="rd">
<label class="tab-label" for="v058"><span class="glyph vc-icon-top"></span> 0.58 <span class="glyph vc-icon-top"></span> 6 <span class="glyph vc-icon-top"></span> 13 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event [Nightclub] - recognized before fight. NPC didn't lose virginity if had sex.</li>
<li>Event [Guest house] - Female on female threesome error</li>
<li>Automatization also gave items to children.</li>
<li>Blair pregnancy speed potion increased pregnancy by 100 days not 30</li>
<li>getRandomTraits in very rare cases gave breeder and infertile traits together (Couldn't reproduce but changed logic a bit so hopefully fixed)</li>
<li>Typos</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Blair] - Policy talk</li>
<li>BaseManagement - Policies. Option to not allow sex between guests</li>
<li>Event [Explore] - Wicket family - New options (contr. Illusion-XIII)</li>
<li>Event [Car] - Engine Failure (contr. Illusion-XIII)</li>
<li>Event [Laura] - Morning sample (existing). Option to disable it</li>
<li>Event [Guesthouse] - If NPC has Masochist trait, option to punish her without relationship penalty</li>
<li>Event [Sex] - Added new images for indian female race</li>
<li>New pack - Cassidy Banks</li>
<li>Event [Laura] - Hard problem (For supporters)</li>
<li>Event [Dom] - Dice game</li>
<li>Event [Dom] - The Breaking Point</li>
<li>Event [Greenhouse] - Grope extended with new option if girl has piercing</li>
<li>Event [Greenhouse] - Grope. Option to continue</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v057" name="rd">
<label class="tab-label" for="v057"><span class="glyph vc-icon-top"></span> 0.57 <span class="glyph vc-icon-top"></span> 7 <span class="glyph vc-icon-top"></span> 17 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Vincent journal IF settlement was burned down</li>
<li>After basement NPC release had issue that might lead to NPC duplicates</li>
<li>When NPC moved to basement assigned job didn't get removed (Only available for basement)</li>
<li>Typos</li>
<li>If threesomes triggered and old variable was not removed, could lead to Blair or other character overwrite.</li>
<li>Bedroom prevented Maid NPC stats from being updated by maid surprise sex scene</li>
<li>Some Rodger story events didn't increase relationship with him.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Mistress will have chance to increase people's corruption (max to 50)</li>
<li>If MC camp will have low food, other people happiness will drop</li>
<li>Traits generation will take into account gender. So no male with breeder trait</li>
<li>Lab - Added background image</li>
<li>When NPC turns 18 it sexuality will be generated (So no 100% straight always)</li>
<li>Car race mini game. (v1. Bare minimum for now but later planning that modifications will give more time, etc)</li>
<li>Events [Late dance, Shower - taken, Greenhouse - big pumpkin] - NPC's option to get pregnant.</li>
<li>Instead of working in forest with axe getting +1, amount will multiply by 2</li>
<li>New pack: Aidra Fox (contr. Smokrader)</li>
<li>NPC info list - will show if childrens are yours (contr. Illusion-XIII)</li>
<li>Nursery. Option to change name color and add notes</li>
<li>Child NPC. Option to edit limited data in cheat menu.</li>
<li>If MC cums in inside and NPC with cumslut trait - additional arousal</li>
<li>Event [Guesthouse] - Guest threesome for "mc + girl + tgirl" (contr. decker-666)</li>
<li>Customize - portrait. Now you can use local images to add portraits. Just put them inside images/custom_portraits</li>
<li>Guesthouse - Option to sort guests. (contr. Illusion-XIII)</li>
<li>Event [Bathhouse] - Warm evening (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v056" name="rd">
<label class="tab-label" for="v056"><span class="glyph vc-icon-top"></span> 0.56 <span class="glyph vc-icon-top"></span> 2 <span class="glyph vc-icon-top"></span> 14 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Octavia date choose. No option to go back.</li>
<li>Katrina Jade pack error</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Octavia date choose. No option to go back.</li>
<li>Katrina Jade pack error</li>
<li>Event - Fight won (existing) - Option to have sex</li>
<li>Event [Gipsy family] (existing) - Options to capture or invite (contr. Illusion-XIII)</li>
<li>Event [Laura] - Examination scene</li>
<li>Event [Dom] - Dom's question</li>
<li>Event [Dom] - Champagne bloodbath</li>
<li>Girl pack - Rikki Six</li>
<li>Event [Underground city streets] - Another option when hiring hooker</li>
<li>Event [Blair] - Midnight hottub</li>
<li>Event [Sex] - If cum on face, sometimes cleanup scene</li>
<li>Event [Bounty hunter] - Bribe</li>
<li>Event [Laura] - Breast implants</li>
<li>Lab - NPC breasts surgery</li>
<li>Decreased save slots from 8 to 4 (Performance reasons)</li>
<li>Event [Shower] - Threesome (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v055" name="rd">
<label class="tab-label" for="v055"><span class="glyph vc-icon-top"></span> 0.55 <span class="glyph vc-icon-top"></span> 2 <span class="glyph vc-icon-top"></span> 18 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Random actionImage errors and not showing pictures sometimes</li>
<li>All guest on guest interactions if packs enabled didn't show proper images with extended packs</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Blackjack. Will remember last bet (Won't need to change it after each hand)</li>
<li>Cheatmenu: Added option to add revolver bullets (x10) (For supporters)</li>
<li>Sex [Moddable] - Added new option for mod, for gender+race+hair+color.</li>
<li>MC stats. Added goodwill stats. (No use for it yet)</li>
<li>Cheatmenu: Added option to add food (x10)</li>
<li>Group workouts and milking will update lastInteractionDay</li>
<li>Underground people market. Added visible strength</li>
<li>Cheatmenu [NPC edit] - Option to change gender (For supporters)</li>
<li>New race: Indian</li>
<li>Sex - Pussy and anal will have additional insert scenes.</li>
<li>Sex - MC horny increase will take into account NPC beauty.</li>
<li>Random food drop while gardening or scavenging (contr. Illusion-XIII)</li>
<li>Morning messages will show birthdays (contr. Illusion-XIII)</li>
<li>New pack: Katrina Jade (contr. smokrader)</li>
<li>Guest move to basement images now moddable (basement/move) + added male images</li>
<li>New item: Energy drink (Restores energy)</li>
<li>Variables cleanup. Theoretically increases performance but not visibly</li>
<li>Event [Laura] - Morning sample (existing). Pretend to sleep option (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v054" name="rd">
<label class="tab-label" for="v054"><span class="glyph vc-icon-top"></span> 0.54 <span class="glyph vc-icon-top"></span> 5 <span class="glyph vc-icon-top"></span> 11 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event [NPC] - pregnancy potion (tmpGirl undefined error and giving trait)</li>
<li>Event [NPC] - nightclub dressing up image missing</li>
<li>Morning dream images not showing decker extended pack images</li>
<li>Fighter club didn't take into account time. Could use 24/7</li>
<li>Blackjack table didn't take into account time. Could use 24/7</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Race stadium] - First race</li>
<li>Event [Bounty hunter] (existing) - Allow to invite mother and daughter to live in settlement</li>
<li>Event [Sex] - Transfemales will use different images in massage. (contr decker-666)</li>
<li>Event [Garage] - Modification talk</li>
<li>Event [Basement] - Mistress party introduction (existing) Changed amount of people needed from 10 to 6.</li>
<li>Event [Guest house] - Males forcing himself on women</li>
<li>Event [Dom] - Return to underground city plan</li>
<li>Event [Dom] - Return to underground city</li>
<li>Event [Isabel] - Storage talk</li>
<li>New location: Underground office (WIP)</li>
<li>Event [Car explore] - Fun ride (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v053" name="rd">
<label class="tab-label" for="v053"><span class="glyph vc-icon-top"></span> 0.53 <span class="glyph vc-icon-top"></span> 6 <span class="glyph vc-icon-top"></span> 20 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Assign to quarry error</li>
<li>Event [Travel] - Underground city - girl ambush error if lost the fight</li>
<li>Event [Explore] - Lost child stats fix</li>
<li>Changelog </div> didn't allow to open previous changelogs</li>
<li>Milking images missing</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Nightclub - Dressing up images now moddable (Also added for trans)</li>
<li>Pregnancy speed potion reduced from 100 days to 30 days.</li>
<li>Fast travel - Added cabin location</li>
<li>Hospital - Trans working image</li>
<li>Sex - Pussy fisting option (contr. decker-666)</li>
<li>Sex - Trans orgasm images (contr. decker-666)</li>
<li>Dreams - Available to turn on for specific genders (contr. decker-666)</li>
<li>Cheatmenu - Increase max energy (For supporters)</li>
<li>Vincent breast milk and use girl links have caps added.</li>
<li>Fighting - NPCs with fighter trait will be stronger in random fights (not only cage fight)</li>
<li>Basement people market - Now in buy available males and transfemales</li>
<li>Underground shop - Added option to buy glass.</li>
<li>Journal - Help - Added work schedules</li>
<li>Sex - Female Latina separate default images</li>
<li>NPC Customize - Option to add notes to each NPC (Will show in lists)</li>
<li>Packs - Added decker pack as extended and in base game (With new updates won't need to update actions.js)</li>
<li>Fight - Added option for companions to use crossbow</li>
<li>NPC fight cage - Added images for transfemales too</li>
<li>Event [Car explore] - Gypsy family (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v052" name="rd">
<label class="tab-label" for="v052"><span class="glyph vc-icon-top"></span> 0.52 <span class="glyph vc-icon-top"></span> 6 <span class="glyph vc-icon-top"></span> 13 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>One of Octavia's events triggered only with 60 rel but journal tells 50</li>
<li>Married NPC asking for sex error sometimes (looked like for old NPCs)</li>
<li>Trans model: Penis visible with chastity belt on</li>
<li>Building Rodger's church didn't increase relationship</li>
<li>Dream trans nightclub image error</li>
<li>Cum in pussy with breeder trait didn't trigger orgam</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Octavia] - New plan</li>
<li>Event [Octavia] - Nightclub visit</li>
<li>Event [Octavia] - Date to the nightclub (For supporters)</li>
<li>Event [Octavia] - Investigation</li>
<li>Event [Car] - Fuel dilemma (existing) - Option to capture NPC</li>
<li>Event [Sex] - Threesome more actions (contr. decker-666)</li>
<li>Event [Wanted] - Catched (existing) - If using "Use" option will impact relationship and submission.</li>
<li>Event [Fight cage] - Fighter club introduction</li>
<li>Event [Fight club] - Initial NPC fighting system introduced. Fight for caps or fighters (Waiting suggestions)</li>
<li>New skill: fighter (Has additional strength in NPC cage fights)</li>
<li>Event [Cabin] - Guest threesome MMF event (contr. decker-666)</li>
<li>Event [Sex] - Ask to fuck someone. Option to MMF (contr. decker-666)</li>
<li>Event [Cabin] - Safe haven</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v051" name="rd">
<label class="tab-label" for="v051"><span class="glyph vc-icon-top"></span> 0.51 <span class="glyph vc-icon-top"></span> 4 <span class="glyph vc-icon-top"></span> 19 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Hospital: If bleeding didn't trigger healing event.</li>
<li>On job: Remove sometimes removed random NPC inventory items.</li>
<li>Explore event: The Lost Child (Fixed mother/father birth dates).</li>
<li>Vincent view: Talk about girl button rearranged.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Sex: Additional images if girl has orgasm from pussy penetration/licking (and is not a squirter).</li>
<li>New item: Lube.</li>
<li>Sex [Anal]: Option to use lube if too inexperienced.</li>
<li>Fight: Option to capture all enemies with one button.</li>
<li>Sex: Women with the "Breeder" trait get additional arousal when creampied.</li>
<li>Event [Explore]: Wolves attack. Will also get food from them, not only pelts.</li>
<li>SFW mode: A lot of images (70+ passages) changed to support settings.</li>
<li>New pack: Vina Sky (contr. smokrader).</li>
<li>Set hunters max limit to 8.</li>
<li>Journal: Negan quest added info about (80+ beauty and blonds).</li>
<li>Workbench: Option to craft axe and pickaxe.</li>
<li>New item: Coal (no use yet).</li>
<li>New item: Stone (no use yet).</li>
<li>Job [Quarry]: Work in quarry to get coal and stone.</li>
<li>NPC market: Checkboxes with option to sell all.</li>
<li>New skill: Mechanic - Good with mechanics. Sometimes able to fix cars without needing parts.</li>
<li>Event: Garage. Fuck in the car mechanic.</li>
<li>Increased max beds in bedroom from 25 to 30 and basement from 30 to 35.</li>
<li>Event: Help mechanic (for supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v050" name="rd">
<label class="tab-label" for="v050"><span class="glyph vc-icon-top"></span> 0.50 <span class="glyph vc-icon-top"></span> 9 <span class="glyph vc-icon-top"></span> 15 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Blair disappear bug in nightclub (Not 100% sure if fixed but found problem)</li>
<li>Shop - event triggered with non-female genders too.</li>
<li>Fast travel was available during sandstorm</li>
<li>NPC throw out of guest house happy error</li>
<li>NPC list. Sometimes husband error</li>
<li>Hospital. Only one doctor was showing</li>
<li>Event: Late dance - NPC didn't lose virginity</li>
<li>Nightclub - after guest accepts to move in, capture option visible.</li>
<li>Male footjob cum - missing images</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Negan] - The Puppet Master</li>
<li>Event [Negan] - The Poisoned Gift</li>
<li>Cheatmenu - Background will be taken from sidebar settings.</li>
<li>Fight - if MC has body armor, bleeding chance gets reduced from 100% to 30%</li>
<li>Event [NPC market] - Option to use VIP room girl if you have sold 40+</li>
<li>Event [Bar] - Girl in danger (repeatable)</li>
<li>Event [Explore] - The Quarry Discovery</li>
<li>New location: Quarry (WIP. Will add mechanics in next update)</li>
<li>Event [Cabin] - Trespassing (For supporters)</li>
<li>Sex [Threesome] - Option in some cases to have threesomes. (contr. decker-666)</li>
<li>Event [Guest house] - Catch NPCs having sex (existing). Option to ask to join or replace male.</li>
<li>Event [Eve] - Rodger's surprise</li>
<li>Event [Guesthouse] - NPC pleasuring himself (existing). If you have given dildo, chance that she will use it</li>
<li>Event [Negan] - Lower deck purge</li>
<li>New pack - Dani Jensen (contr. smokrader)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v049" name="rd">
<label class="tab-label" for="v049"><span class="glyph vc-icon-top"></span> 0.49 <span class="glyph vc-icon-top"></span> 3 <span class="glyph vc-icon-top"></span> 16 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Say bubble - If custom portrait wasn't showing correctly.</li>
<li>Nightclub - After sex, if the NPC agrees to live with you, sometimes a clone appeared.</li>
<li>Sex - Sometimes with females, there was an option to give a BJ.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Fight won - Option to kill them all.</li>
<li>Sex [Nightclub] - Added handjob & cum images.</li>
<li>Cheatmenu [Edit NPC] - Option to edit hair color (For supporters).</li>
<li>Sex - Added 69' position (Contributor: decker-666).</li>
<li>Forest will use the same NPC list as the guest house.</li>
<li>New item - Pickaxe (No use yet).</li>
<li>NPC Customize [Color] - More colors and also shown in the list, so guessing is no longer needed.</li>
<li>Packs [WIKI] - Added a WIKI on how to create new custom packs and also updated <code>searchActionsPack.js</code> so it's more automatic (Will add records in <code>packs.js</code> too).</li>
<li>Fight - Enemies will now use avatars instead of static images.</li>
<li>Increased the option to assign up to three people to the hospital, with each assignment decreasing the miscarriage rate by 2%.</li>
<li>Fast travel - Added the option to go outside.</li>
<li>[Mobile] - Shop view optimized for a better experience.</li>
<li>[Settings] - Added another background color (black).</li>
<li>Event [Bathhouse] - Massage reverse proposal (For supporters).</li>
<li>NPC market - Changed the list to be the same as the guest house (Additional info).</li>
<li>Continued work on NPC fight cage system - Still in progress, about 70% done.</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v048" name="rd">
<label class="tab-label" for="v048"><span class="glyph vc-icon-top"></span> 0.48 <span class="glyph vc-icon-top"></span> 4 <span class="glyph vc-icon-top"></span> 16 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event [Explore] - Twisted family does not exist</li>
<li>Event [Bedroom] - Laura - morning sample (When skipped didn't set delay for next trigger)</li>
<li>Guest on guest. Asking for creampie text adjusted, so everyone knows it's specified for pussy.</li>
<li>If more than one companion was removed sometimes there was error.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Isabel] - The talk</li>
<li>Event [Dom] - Return</li>
<li>Event [Cage fight] - ambush (existing) Now only can be triggered after fights</li>
<li>Event [Vincent] - Talk about girl in cage (existing) Moved outside story so it's not forced</li>
<li>Event [Sex] - Reverse bj. (MC giving blowjob) (contr. decker-666)</li>
<li>New item: Church blueprint (No use yet)</li>
<li>Event [Rodger] - Rodger's secret</li>
<li>Continued work on NPC fight cage system - Still in progress. About 50% done</li>
<li>Event [Base] - NPC marry NPC (Deny or approve)</li>
<li>Event [NPC wedding] - Wife tax</li>
<li>Event [Sex] - Person now might decline sex IF she/he is married to someone else</li>
<li>Event [Barn] - Dry clothes. (Chance to unlock locked analslut trait) (For supporters)</li>
<li>Event [Sex] - Threesome (MFF option. Male SUB). (contr. decker-666)</li>
<li>Event [Base] - First settlers</li>
<li>Cheatmenu - added option to add crossbow blueprint</li>
<li>Event [Car explore] - Car explore event - fuel dilemma (existing). Now will also check if you have fuel in inventory.</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v047" name="rd">
<label class="tab-label" for="v047"><span class="glyph vc-icon-top"></span> 0.47 <span class="glyph vc-icon-top"></span> 2 <span class="glyph vc-icon-top"></span> 15 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Failed childbirth sometimes not showing image</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Streets NPC list - will show stats same as guest house.</li>
<li>Customize [Portrait] - Added more female Asian portraits.</li>
<li>Bounty hunter - Option to bring transfemales and males to basement.</li>
<li>Started work on NPC fight cage system - Still in progress. About 25% done.</li>
<li>Modding - Now option to customize also images specified by breast size (female.breasts-big/small folder name).</li>
<li>Sex [Lick nipples] - New action to lick nipples (Different images for different breast sizes).</li>
<li>Customize [Tattoos] - Two more tattoos added.</li>
<li>Bathroom head image removed and replaced with background image.</li>
<li>With bounty hunter reputation increase, increases speed of finding persons quicker.</li>
<li>Sex [Fingering] - NPCs with squirter trait additional scene.</li>
<li>Relationship - If guest leaves or dies, other NPC friends will take happiness penalty.</li>
<li>New item: Crossbow blueprint (Exploring).</li>
<li>New item: Crossbow + arrows.</li>
<li>Fight - Now you can use crossbow. 60% to pick up arrows after won fight (If using on NPC with low HP, might kill him).</li>
<li>Event [Explore] - Wicked family daughter. For supporters additional scene.</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v046" name="rd">
<label class="tab-label" for="v046"><span class="glyph vc-icon-top"></span> 0.46 <span class="glyph vc-icon-top"></span> 10 <span class="glyph vc-icon-top"></span> 15 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Custom packs not showing images</li>
<li>When flaccid dick, horny increasing.</li>
<li>Giving Isabel termination potion, showed she died sometimes.</li>
<li>Garage. Could use car without fuel</li>
<li>Fuck scene showed incorrect arousal increase for fingering and few other scenes.</li>
<li>Pussy lick option showed even with chastity belt</li>
<li>Nightclub gloryhole. NPCs will have higher sub, not forced.</li>
<li>Moving guest to basement decreased 50 relationship instead of 30</li>
<li>Storage didn't show dumbbell additional icons</li>
<li>Sex. When starting sex, arousal will drop to 79 if above it so on first action there is no instant climax.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Fight] - After lost fight, if you have a companion, she might get forced to have sex.</li>
<li>Nursery - added sleeping mechanics</li>
<li>Event [Sleep] - If gay content enabled, will show male sex images instead</li>
<li>Event [Sex] - Reverse anal. (If gay content enabled. (Fuck MC)) (contr. decker-666)</li>
<li>Event [Guesthouse] - Surprise relieve</li>
<li>Event [Bedroom] - Invite NPC to your bedroom to sleep.</li>
<li>Event [Bar] - A strange offer</li>
<li>Event [Underground city] - Ambush</li>
<li>Event [Explore] - Bite in neck</li>
<li>Inventory - dumbbell renamed to kettlebell and added unique icon.</li>
<li>Event [Isabel] - Date (For supporters)</li>
<li>Event [Basement] - Party additional option - orgy.</li>
<li>Event [Tribe camp] (existing) - If Octavia's kidnapped quest is in progress, increased chance to trigger from 15% to 45%.</li>
<li>Fuck - NPCs with the analslut trait will increase arousal, just 80% less.</li>
<li>Fuck - Licking. MC horny level capped at 60</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v045" name="rd">
<label class="tab-label" for="v045"><span class="glyph vc-icon-top"></span> 0.45 <span class="glyph vc-icon-top"></span> 10 <span class="glyph vc-icon-top"></span> 18 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Garage - fuel was consumed without exploring</li>
<li>Garage - death race stadium event triggered all the time</li>
<li>Basement offer people to other people relationships/happy drops below -100</li>
<li>Typos</li>
<li>Breeder & Infertile together (worked if breeder was first trait but not if Infertile was)</li>
<li>Event [Lone survivor] - Stole only food from your backpack not cabin</li>
<li>Event [Snake pit] - error (Didn't set sick days)</li>
<li>Event [Lost child] - after fight and capture, mother was virgin</li>
<li>Males showing virgin icon</li>
<li>Bathhouse title error when pressing on guest sometimes</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Customize - name colors will now be shown in guesthouse and basement list</li>
<li>Removed Octavia's SUB/DOM route choosing. (Only DOM (MC) will stay)</li>
<li>New trait: milker. Can produce milk even not being pregnant</li>
<li>Sex - New action: Pussy fingering</li>
<li>Sex - Males kissing</li>
<li>Reworked SFW mod. Still work in progress but with time only NSFW images/videos will be hidden and not all. (contrib. alexiusp)</li>
<li>Customize - Allow to change names for kids</li>
<li>Sex [Gloryhole] - Added pussy option</li>
<li>Customize [NPC edit] - can change eyes color</li>
<li>Event [Wife] - Option to fuck her in wedding dress (contrib. decker-666)</li>
<li>Event [Guest] - Option to fuck in basement (contrib. decker-666)</li>
<li>New items: dumbbell upgraded versions (Higher strength training but with chance to get injury) (contrib. NilsPeterAndersson)</li>
<li>Milk barn takes electricity into account. If settlement produces less than consumes, milk machines won’t work</li>
<li>If MC goes to bed horny, his energy will be impacted</li>
<li>Sex [Fingering] - Will also increase MC horny stats a bit</li>
<li>Base management - build walls [decreases chance of stealing events]</li>
<li>Event [Kitchen] - Breakfast (For supporters)</li>
<li>Multiple child births on the same day if hospital is built. (contrib. NilsPeterAndersson)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v044" name="rd">
<label class="tab-label" for="v044"><span class="glyph vc-icon-top"></span> 0.44 <span class="glyph vc-icon-top"></span> 0 <span class="glyph vc-icon-top"></span> 21 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Cage fight] - Introduction</li>
<li>Event [Cage fight] - Milk orders</li>
<li>New location: [Cage fight shop] - Option to sell milk</li>
<li>Event [Cage fight] - Rival fight #1</li>
<li>Event [Cage fight] - Ambush (repeatable)</li>
<li>Event [Cage fight] - Rival fight #2</li>
<li>Event [Vincent] - Milk barn introduction (+ Option in base building to build it)</li>
<li>Event [Base building] (existing) - Decreased trigger from 140 days to 100.</li>
<li>New location [Milk barn]</li>
<li>New basement people assign option - milk barn (produces 1 mil per 3 days)</li>
<li>Event [Explore] - (existing) If woman found, instead of walking she might be pleasuring herself.</li>
<li>Guesthouse - NPC's will go to sleep (each at different time at late night)</li>
<li>Event [Guest house] - Sleeping guest. (Right now for women only)</li>
<li>Event [Car Explore] - race stadium introduction</li>
<li>New location: Race stadium shop (chance to buy car parts)</li>
<li>Event [Bathhouse] - Relaxing (For supporters)</li>
<li>In npc list view added virgin icon (contr. decker-666)</li>
<li>Event [Mistress punish] (existing) - Option to take over (contr. decker-666)</li>
<li>Event [NPC marry] (existing) - Option for more fun (moves to default sex) (contr. decker-666)</li>
<li>Event [Explore] - Finding woman (existing). Chance that she will be pleasuring herself</li>
<li>Added mechanics for extended packs (Will be able to add additional images to default images without updating actions.js each update)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v043" name="rd">
<label class="tab-label" for="v043"><span class="glyph vc-icon-top"></span> 0.43 <span class="glyph vc-icon-top"></span> 5 <span class="glyph vc-icon-top"></span> 20 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Custom pack. If NPC was named as pack, images didn't work</li>
<li>Typos</li>
<li>Blair and Laura morning events triggered with flaccid penis.</li>
<li>Gloryhole removed kissing action</li>
<li>Pack - Asa Akira. Fixed cum in pussy image (Need to re-download pack)</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Transfemale mistress (contr. decker-666)</li>
<li>Eve shower visit. If joined, will end in cabin, not outside</li>
<li>Npc market - when selling, all inventory will be moved to MC backpack.</li>
<li>Settlement shop open time changed from 08:00-16:00 to 08:00-18:00</li>
<li>Coloring for name in basement and guest house lists. (contr. alexiusp)</li>
<li>Guesthouse npc list. Added submission stats</li>
<li>If the hospital is built, there is a 10% chance of giving birth to twins.</li>
<li>Basement. List will use same view as Guesthouse (stats icons)</li>
<li>Blair [Kitchen] - Will use same view as other characters (customizable)</li>
<li>Event [Explore] - Random npc. Chance to learn npc skills while you talk.</li>
<li>Cheatmenu: Added option to give revolver (For supporters)</li>
<li>Streetworkers with masochist or cumslut trait won't take happiness penalty.</li>
<li>Settings [SFW mode] - Hides all images and videos</li>
<li>Childbirth - Now customizable images</li>
<li>More sex images for ebony race</li>
<li>[Pack] - Lana Rhoades</li>
<li>Punish - choke option</li>
<li>Event [Kitchen] - Wet T-Shirt (Only can be trigger on rainy days) (For supporters)</li>
<li>Cheatmenu [NPC edit] - Edit race (For supporters)</li>
<li>Cheatmenu [NPC edit] - When Octavia/Isabel/Blair approached, option to edit their stats too.</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v042" name="rd">
<label class="tab-label" for="v042"><span class="glyph vc-icon-top"></span> 0.42 <span class="glyph vc-icon-top"></span> 4 <span class="glyph vc-icon-top"></span> 17 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Breeder and Infertile traits together</li>
<li>Punish typos</li>
<li>Laura won't be able to give breeder trait if NPC has infertile trait</li>
<li>Negan journal help</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Octavia] - Betrayal</li>
<li>Event [Octavia] - Blackthorn camp</li>
<li>Event [Octavia] - Blackthorn camp fun</li>
<li>New perk - Temporary impotence (+ Fuck limitations)</li>
<li>Event [Explore] - Snake pit (Triggers if with companions)</li>
<li>Receiving MC perk will show also notification about it</li>
<li>Event [Explore] - Hospital (existing). Chance to find massage table blueprint</li>
<li>Event [Bathhouse] - Massage + new fuck location (massage table)</li>
<li>Event [Octavia] - Blackthorn big plans</li>
<li>Event [Octavia] - Annihilation</li>
<li>Event [Laura] - Exploration</li>
<li>Event [Laura] - First entry</li>
<li>Event [Dom] - Dom's place</li>
<li>Companion list now will show custom portraits (Experimental)</li>
<li>Event [Guest house] - morning view (For supporters)</li>
<li>Event [Sex] - Option to cum on pussy</li>
<li>Added more images for default sex scene</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v041" name="rd">
<label class="tab-label" for="v041"><span class="glyph vc-icon-top"></span> 0.41 <span class="glyph vc-icon-top"></span> 14 <span class="glyph vc-icon-top"></span> 20 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event [Explore] - mysterious scream. Duplicate enemy</li>
<li>Childbirth. Name couldn't be changed.</li>
<li>lastInteractionDay npc error. Won't happen for new npcs anymore</li>
<li>Library. Reading book error if no female guest is living with MC.</li>
<li>Nightclub. Going outside. Enemy female wasn't the same you were dancing with.</li>
<li>Family tree in settlement management (contr. NilsPeterAndersson)</li>
<li>Isabel - pregnancy speed potion didn't work.</li>
<li>Sandstorm & heat wave events will trigger only if have guests.</li>
<li>Blair marry error if no guests.</li>
<li>Typos</li>
<li>Event [Blair & Ashley] - Triggered even if you failed to find her.</li>
<li>Male cum on feet images missing</li>
<li>Packs were working strange. Now packs should work as before. (if pack do not have image in that location, it will use default folder from packs folder, not global images)</li>
<li>Nightclub npcs visited bathhouse in their working time</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Marry trans females. Also wedding images are moddable now.</li>
<li>Males NPC info will show if nipples are pierced.</li>
<li>Males and trans now have custom portraits (Old female portraits need to be re-choosen again)</li>
<li>Buttplug rotation can be set by gender (contr. NilsPeterAndersson)</li>
<li>Event [Fire place] - House party (existing). Males will attend house party too.</li>
<li>Event [Nightclub] - Now while dancing (if settings enabled) you can meet trans too.</li>
<li>Basement person "Release" moved under NPC view.</li>
<li>Cheatmenu [NPC edit] - Option to edit female/trans breasts size. (For supporters)</li>
<li>Cheatmenu [NPC edit] - Option to edit sexualities (What genders likes) (For supporters)</li>
<li>Won't be able to give breeder trait (via Laura) if npc has already it locked.</li>
<li>Event [Childbirth] - Females with breeder chance is less chance to die and +10% for successful birth.</li>
<li>Rewrited guesthouse npc list. Now it uses icons + more info about npc (Experimental). + male beauty is visible too</li>
<li>Base building - Now you can build living homes (for settlers) (No use yet)</li>
<li>Event [Explore] - Meet girl. Now you will have chance to find also males and trans (if trans settings are enabled)</li>
<li>Milking will use 10 energy (previous was 30 energy)</li>
<li>Customize [Male] - added few customization images</li>
<li>Fight - Chance for enemies and allies to break their knives</li>
<li>Guest submission will slowly decrease if you do not interact with them more than 5 days.</li>
<li>New blueprint: Massage table blueprint (No use yet)</li>
<li>New blueprint: School (No use yet)</li>
<li>[Bedroom] - Sleepover. (+Chance to remove analslut from locked traits + in cheatmenu) (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v040" name="rd">
<label class="tab-label" for="v040"><span class="glyph vc-icon-top"></span> 0.40 <span class="glyph vc-icon-top"></span> 5 <span class="glyph vc-icon-top"></span> 18 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Morning messages hooker found dead object.</li>
<li>family.isBloodToMc error</li>
<li>Cheatmenu: set all guest relationship. Moved back to public access</li>
<li>Fixed fight ally attack power (They were too powerful)</li>
<li>Gloryhole random use could overwrite character variables (Creating Blair bug or any other unique character)</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Travel] - Tribe medallion (existing). Higher chance to trigger when Octavia is kidnapped</li>
<li>Event [NPC] - Offer drink (existing). If pregnant, woman might decline the offer.</li>
<li>Event [Explore] - Hospital (existing). Added chance to find blueprint of hospital.</li>
<li>New location: [Hospital] (Build in base building view). Sick people will be moved there.</li>
<li>New job - doctor</li>
<li>Event [Hospital] - New sex location with new images (later will add more)</li>
<li>Event [Base attack] - Bigger base attack with a car. Chance to lose more.</li>
<li>Event [Explore] - The Lost Child (existing). Added option to approach parents</li>
<li>Event [Nightclub] - Invite to wc. (existing). Added new option to capture her</li>
<li>Event [Weather] - Heat wave. If heat wave triggers it can last from 4-6 days. In those days greenhouse/garden doesn't produce anything AND people will consume twice as much food)</li>
<li>Event [Weather] - Sand storm. Can't go outside your camp that day. Also, people working in outside camp jobs won't work that day.</li>
<li>Event [Hospital] - Fix bleeding and fun. (Doctor (female) need to have 50+ horny) (For supporters)</li>
<li>Event [Cabin] - Fallen tree. One of your forest workers is crushed by a tree.</li>
<li>Event [Childbirth] (existing) - Will happen automatically if hospital is built AND doctor assigned</li>
<li>NPC relationship between. Made some changes and created match function that will calculate if they like each other. (In next event update will add event where guest asks your permission to marry another person)</li>
<li>Automatization - Sex worker auto rule now has levels not just on|off (contr. NilsPeterAndersson)</li>
<li>Event [Isabel/Blair] - Dates. If you cum inside, chance that they will get pregnant.</li>
<li>Event [Blair] - Ashley visit (Can trigger on Saturday evenings if you have saved Ashley)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v039" name="rd">
<label class="tab-label" for="v039"><span class="glyph vc-icon-top"></span> 0.39 <span class="glyph vc-icon-top"></span> 2 <span class="glyph vc-icon-top"></span> 20 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Auto item management took away body armor from scavengers.</li>
<li>Shower gave too much energy</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Street job will take into account beauty.</li>
<li>Customize [Portraits] - added custom portraits for black and latina females.</li>
<li>Customize [Portraits] - Reworked that they are not per hair color but only race. So all portraits will be available for that specific race.</li>
<li>Customize [Portraits] - Now you can add link to your own image and use any other portrait you want.</li>
<li>Added chance that giving pregnancy termination potion could give a chance to cause "Infertile" trait.</li>
<li>Cheatmenu: Added "Set all guest submission to max" (For supporters)</li>
<li>Only guests not related to MC will trigger "Take virginity" event.</li>
<li>Give day off for nightclub workers (Also in settlement management)</li>
<li>Started to work on base management (In future will be able to build defenses, living homes, energy production/consumption, etc).</li>
<li>Event [Vincent] - Base management introduction</li>
<li>Growth potion. Now you can choose how much years to speed up.</li>
<li>Rewrote enemy generation part. Now with MC higher reputation, there is a bigger chance enemies will be with knives.</li>
<li>Bigger chance to trigger nightclub gloryhole job event. Chance increases with MC reputation.</li>
<li>Multiple packs performance. For some people with a LOT of packs enabled game became slower. Made changes so actions are not loaded on each passage load. Hopefully that should impact that speed.</li>
<li>Finished implementing relationship between NPC's (Right now positive IF they work in the same job, except street workers). In next event update will try to add event where they ask to marry someone if they like each other.</li>
<li>New skill: Teacher (No use yet)</li>
<li>Event [Basement] - Punish (existing). Added golden shower option.</li>
<li>Rewrote morning messages. Now they will be grouped by jobs. Also very minimal should increase performance.</li>
<li>Event [Isabel] - Car date. (For supporters)</li>
<li>Cheatmenu: Add body armor (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v038" name="rd">
<label class="tab-label" for="v038"><span class="glyph vc-icon-top"></span> 0.38 <span class="glyph vc-icon-top"></span> 2 <span class="glyph vc-icon-top"></span> 16 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event [Shopkeeper stealing] (existing). Sometimes had error and not showing npc</li>
<li>Event [Shopkeeper stealing]. One of the videos wasn't working properly</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Nightclub] - Bathroom introduction</li>
<li>New location - Nightclub bathroom</li>
<li>Event [Nightclub] - Use gloryhole (new sex location) (repeatable)</li>
<li>Event [Nightclub] - New job opportunity</li>
<li>New job - Nightclub</li>
<li>Event [Guests] - Offer them a drink</li>
<li>NPC info. Added info about drunkenness.</li>
<li>Event [Dom] - Underground city chaos</li>
<li>Event [Car explore] - Robbers justice</li>
<li>Event [Car explore] - Fuel dilemma (For supporters additional event)</li>
<li>Event [Basement] - Basement all workout together</li>
<li>Event [Scavenging] - If npc has knife/body armor and high enough strength, you can find her while she still fights the enemies.</li>
<li>Changed sex actions logic. Instead of fallback to bedroom (if images are missing), it will prioritize location (so if black girls don't have images from x location, it will show white girl (otherwise it was strange that for example car sex scenes used bedroom images instead))</li>
<li>New trait: Infertile. Can't get pregnant (have children)</li>
<li>New sex action: Kissing (Only females for now)</li>
<li>Started to work on NPC relationship system (They will like/dislike each other). No visible content yet (Later will be used in events (They will ask your permission to marry, etc). Suggestions welcome for simple but effective system for that. Right now main idea is that people who work in the same job (For example gardeners) will have positive relationship increase)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v037" name="rd">
<label class="tab-label" for="v037"><span class="glyph vc-icon-top"></span> 0.37 <span class="glyph vc-icon-top"></span> 7 <span class="glyph vc-icon-top"></span> 20 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Cheatmenu: Fixed hottub blueprint.</li>
<li>Isabel's orientation and submission NaN.</li>
<li>Library reading book gave +20 energy instead of taking away.</li>
<li>Release NPC from basement companion error.</li>
<li>Octavia ultimatum event. Companions will be left behind.</li>
<li>Event: Common capital triggered for with males.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Mistress fuck scenes. Added NPC horny meter.</li>
<li>Scavenging. Added 10% chance that body armor could be one of the items.</li>
<li>Settings will be saved in save file. (Won't need to change them each time you load the game).</li>
<li>Workout with transfemale.</li>
<li>Customize - Change NPC name color.</li>
<li>Scavenging (NPC's). Books limited to 50. (Won't find more if will go over limit).</li>
<li>When in nursery giving growth potion and children reach 18. MC stays in nursery.</li>
<li>Customize [Clothes] - Removed texts and now you can press on images.</li>
<li>Doll - chastity belt visible.</li>
<li>Doll - piercings visible (rather small and not noticeable (If you have an idea how to make them more visible - contact me).</li>
<li>NPC sex stats. (Under more info).</li>
<li>NPC view (when talking). Showing if married or pregnant.</li>
<li>If NPC is naked, there is a 50% chance that her submission might increase (max: 20).</li>
<li>Forest. When collecting wood or food. Companions will help you sometimes.</li>
<li>Unique character "view" (Right now only option to customize). Added for Isabel for testing.</li>
<li>Force chastity belt if submission too low.</li>
<li>Working on the street with a chastity belt won't take away virginity and no chance to get pregnant BUT gained money will be 3x less.</li>
<li>Customize [Tattoos] - Allow to add tattoos. (For now only one).</li>
<li>Event [Falling satellite] (Existing) - Changed guest min from 8 to 6 AND increased chance from 5 to 10%.</li>
<li>Event [Shop] - Stealing shopkeeper (For supporters additional option) (Shopkeeper needs to have less than 50 submission).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v036" name="rd">
<label class="tab-label" for="v036"><span class="glyph vc-icon-top"></span> 0.35 <span class="glyph vc-icon-top"></span> 6 <span class="glyph vc-icon-top"></span> 16 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Milking error</li>
<li>Typos</li>
<li>Eve champagne event. Leaving still showed morning scene.</li>
<li>Youth district not available if only library was built.</li>
<li>Family tree husband newline.</li>
<li>Event [Laura] - Toxic rain. Horny didn't reset.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Dom] - Isabel beg</li>
<li>Event [Dom] - City chaoss</li>
<li>Event [Isabel] - Escape</li>
<li>Event [Isabel] - New home</li>
<li>Event [Isabel] - fuck in guesthouse (repeatable)</li>
<li>Event [Explore] - Teacher (existing). Added option to kill him if strength above 150. (Event won't trigger anymore)</li>
<li>Event [Cabin] - Invited lone survivor misbehave</li>
<li>Event [Basement] - Guest asks to fuck npc in basement.</li>
<li>Event [Basement] - Guest asks to fuck npc - threesome (For supporters)</li>
<li>Library read book - now need 20 energy.</li>
<li>Underground shop - added back button</li>
<li>Cheatmenu: Added options to add library & hottub blueprints</li>
<li>Event [Cabin] - Virgin merchant</li>
<li>Event [Fire place] - Falling satellite</li>
<li>Event [Guesthouse] - Milk guests if pregnant</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v035" name="rd">
<label class="tab-label" for="v035"><span class="glyph vc-icon-top"></span> 0.35 <span class="glyph vc-icon-top"></span> 11 <span class="glyph vc-icon-top"></span> 23 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Event [Interrupt guest sex] - sometimes threw error and didn't find NPCs.</li>
<li>Cheatmenu: edit sometimes was with error because NPC was missing strength stats.</li>
<li>Set NPC relationship limit to 100 (Should be fixed on next encounter).</li>
<li>NPC fuck. Girl horny when fast clicking was not resetted fast enough (decreased /2).</li>
<li>Slave/Guest wash was bugged and beauty slowly increased over the limit.</li>
<li>Won't be able to offer slave who wears chastity belt.</li>
<li>Event: Common capital sometimes NPCs were showing without relationship stats.</li>
<li>Typos.</li>
<li>Slave party. Was the same NPC for different people.</li>
<li>Missing mistress no anal (not enough stats) image.</li>
<li>While reading book time didn't increase.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>New item: Body armor (Decreases damage from knife).</li>
<li>Workbench: Added body armor.</li>
<li>Customize. Wardrobe. Button to remove all clothes.</li>
<li>Hunting. If intelligence high enough. Button to skip it.</li>
<li>Hunter job. Don't need to give bow manually. If you assign to job it will automatically also give bow.</li>
<li>Slave market VIP room times changed from 15:00-17:00 to 14:00-18:00.</li>
<li>In Octavia's rescue mission changed chance for enemy to have a knife from 100% to 80%.</li>
<li>Added that with anal you can reach NPC 100 corruption too (before that it was only with fisting).</li>
<li>Customize [Custom pack]. Now you don't need to rename NPC anymore. Just set what pack you want to use.</li>
<li>Scavengers can find books.</li>
<li>NPCs can use cosmetics once a day.</li>
<li>If you are married with NPC, it will show a ring icon in list view.</li>
<li>Added NPC last interaction day (For future use. For example, wives will get annoyed if you don't give them any attention, etc).</li>
<li>Give Blair pregnancy speed potion (kitchen -> talk).</li>
<li>Event: guard caught intruder (existing). Changed % from 5 to 3.</li>
<li>In lost fights, MC will lose more caps if we have more than 500.</li>
<li>Scavengers now will have 50% chance that a gas mask is one of the items they can find.</li>
<li>Nursery. Added back button top (Same as in guesthouse/basement).</li>
<li>MC Shop good management. Added option to manage metal and cheap necklace.</li>
<li>Event [Explore] - Waterfall (another) (contr. NilsPeterAndersson).</li>
<li>Guide updates (contr. NilsPeterAndersson).</li>
<li>New pack: Asa Akira (contr. smokrader).</li>
<li>Event: Hottub relaxation (For supporters).</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v034" name="rd">
<label class="tab-label" for="v034"><span class="glyph vc-icon-top"></span> 0.34 <span class="glyph vc-icon-top"></span> 9 <span class="glyph vc-icon-top"></span> 22 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Negan quest couldn't progress if Sanctuary was opened through slave market route.</li>
<li>Mistress sex wrong text.</li>
<li>NPC marry error fix.</li>
<li>Not 100% sure BUT false positive in patches shouldn't be there anymore. (Didn't have consistent result before so can't be 100% sure but if not - will continue to work on it).</li>
<li>Base attack. Was incorrect enemy count in text.</li>
<li>Eve champagne event. Captured woman slave didn't lose virginity if used.</li>
<li>Basement events didn't trigger.</li>
<li>Transfemale hooker caps transformed to NaN.</li>
<li>Without starting game, pressing on packs forwarded to game.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Slave market - Sanctuary] - Alternative route to open sanctuary via selling slaves. (contr. NilsPeterAndersson)</li>
<li>Events [Guest with guest] (existing) - Added option to ask for a creampie (contr. decker-666)</li>
<li>Custom portraits replaced with transparent background (contr. Thomas Muller 0.0)</li>
<li>Event [Car explore] - attack car</li>
<li>Event [Waterfall girl] (existing) - added option to capture enemies.</li>
<li>Added new zone/district under MC settlement and moved there nursery. (Plan is to put there all not often visited places BUT related to learning (school/library, etc))</li>
<li>Event [Workshop] - Build library</li>
<li>Event [Library] - Read book (if you have) + some horny guest might approach (Max int to 100) (Existing event in church max will work till 50 int, exploring teacher to 60)</li>
<li>Cheatmenu: Option to increase slave/guest corruption to max (For supporters)</li>
<li>Bathhouse image moved to background image</li>
<li>Event [Workshop] - Build hot tub (With a chance guest might approach)</li>
<li>Event [Hottub] - Relax in hottub (% chance to increase max energy to 140 or taking away beaten (body hurts) perk)</li>
<li>Added option to take a shower in bathhouse</li>
<li>Event [Shower] - While taking shower in bathouse, chance that npc will join.</li>
<li>Basement, Forest, Greenhouse replaced pregnancy same as guest house (better mobile view)</li>
<li>Event [Scavenging didn't come home] (existing). Now also males and trans will go missing.</li>
<li>Event [Basement] - slave party introduction</li>
<li>Event [Basement] - slave party (repeatable) + invite slave to bedroom</li>
<li>Event [Settlement] - Help plow field for Rodger (if have horse)</li>
<li>Wrote a script for "update only". From now on, if no major changes will be changed, always there also will be only update files.</li>
<li>Event [Library] - Read book (extended) (For supporters)</li>
<li>Added Anna Belle pack (contr. Klamar)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v033">
<label class="tab-label" for="v033"><span class="glyph vc-icon-top"></span> 0.33 <span class="glyph vc-icon-top"></span> 11 <span class="glyph vc-icon-top"></span> 35 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Hopefully fixed Octavia overwrite random NPC (Couldn't reproduce without save BUT made changes in code)</li>
<li>With VIP slave market sometimes npc's generated 17yo</li>
<li>Sometimes Blair could overwrite guest. (Couldn't reproduce changed in code few places)</li>
<li>Cheatmenu: Bathhouse event trigger only available if bathhouse has been built.</li>
<li>Typos (contr. dcosmic1)</li>
<li>Slave added as companion. If you kill slave, companion list error.</li>
<li>Octavia giving medallion. Sometimes showed wrong reputation amount given</li>
<li>When capturing bounty, in guest house were added two npcs. One bounty and one of your last npc/character visited (Might maybe even be the problem why someone had Octavia's/Blair in guesthouse too)</li>
<li>NPC info. Bald hair changed to bald head</li>
<li>MC horny meter not filling to 100%</li>
<li>On base attack, wrong guards/guests were helping.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Deflower, deflower with strapon, milking, no anal moved to actions (Can be modded now)</li>
<li>Increased slave market VIP room request chance from 20 to 30%</li>
<li>Shop location header moved as background image.</li>
<li>Guests and slaves who have miscarriage on street will take happiness and relationship penalty.</li>
<li>In girl tooltip (in events, etc). Added info if she's a virgin</li>
<li>In Laura's morning sample event added skip button.</li>
<li>Assign trans slaves to work as hookers</li>
<li>Street workers chance to die will take into account strength and not endurance</li>
<li>Woman wearing chastity belt do not have fuck options to fuck pussy and lick it.</li>
<li>Fuck scenes. Added NPC horny meter.</li>
<li>Male on male. Added cum in throat images</li>
<li>Blair will always generate with medium breasts size and same traits (Breeder, Cumslut and Deepthroat)</li>
<li>Explore wolves event. Bleeding will happen only if you kill less than 3 of them.</li>
<li>Renamed mods to packs (In future idea is that mods could be actual mods that customizes game without having to modify game files (js injection)) [Now players can create new packs and without modifying .html file add them under packs/packs.js]</li>
<li>Added Veronica Leal pack</li>
<li>Customize. Custom portaits for females (For portrait and say dialogs)</li>
<li>Bounty hunter. Added caught NPC info.</li>
<li>Event [Guesthouse] - Caught trans on trans. (contr. decker-666)</li>
<li>Workbench. Added current amount of items</li>
<li>Added cloth and towel to managable shop items (Now your shopkeeper can buy/sell them automatically)</li>
<li>Event [Explore] - Hospital (existing). Added chance to find towels.</li>
<li>Decreased forest hunting target from 10 to 9 to it be successful</li>
<li>Male on male. Cum on feet and cum on back images added</li>
<li>New sex action. Anal fisting. Need analslut trait and 90+ anal (contr. decker-666)</li>
<li>Cheatmenu [Edit NPC]: Added option to change name and age (For supporters)</li>
<li>Guesthouse for mobile view. (Still experimenting). Changed pregnancy to icon and smaller text and moved throw out inside npc view.</li>
<li>Increased Travel event - tribe camp from 5% to 8% (while traveling to settlement (medallions))</li>
<li>More code cleanup and removing unnecessary global variables. (Should impact game performance)</li>
<li>Added multiple sex action texts (contr. dcosmic1)</li>
<li>Event: [Guesthouse] - Ask a guest to fuck someone. (contr. decker-666)</li>
<li>Slave market. Now you will be able to buy last slave before market closes.</li>
<li>Event [Explore] - Mysterious scream. (For supporters additional scenes) (also added in cheatmenu to trigger)</li>
<li>Explore event The Dying Elderly Survivor (existing). Extended options (contr. NilsPeterAndersson)</li>
<li>In fights. If have companions. Less chance that they will hit you.</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v032" name="rd">
<label class="tab-label" for="v032"><span class="glyph vc-icon-top"></span> 0.32 <span class="glyph vc-icon-top"></span> 14 <span class="glyph vc-icon-top"></span> 20 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos and text fixes. (contr. KK-Walker/LizJ)</li>
<li>Negan 4 slaves vs fuel. Didn't take all companions away.</li>
<li>Negan car steal event. Npc error/didn't display names</li>
<li>Greenhouse. Added pregnancy info in list</li>
<li>Slave move to guesthouse button was visible without guesthouse available.</li>
<li>Male buttplug info wasn't visible.</li>
<li>Only virgin girls who like guys will ask to take their virginity.</li>
<li>Vincent shop. Max relationship per buy is 5 relationship.</li>
<li>Captured wanted person could use all the time (Now will use only till 2am)</li>
<li>Typo in cum_on_stomach actions folder. (Some locations didn't show correct cum images)</li>
<li>Nightclub dance. Dance together button even if you were alone</li>
<li>Event [Toxic waste] - error if had slave companion</li>
<li>Wanted event [Mother] - Sometimes she was a virgin</li>
<li>Offer guy slave to trans slave - missing videos.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>VIP room. Removed eye color requirement.</li>
<li>Automatization. Added rest/work button for all NPCs working on the street (contr. 3ANilsPeterAndersson)</li>
<li>Garage will use also storage inventory. (contr. 3ANilsPeterAndersson)</li>
<li>Event [Negan] - Slaves for fuel event. (Repeatable)</li>
<li>Event [Travel] - Trapper horse cart (Repeatable)</li>
<li>Event [Octavia] - Give tribe medallion. (Repeatable)</li>
<li>New item: Chastity belt (contr. decker-666)</li>
<li>Event [Travel] - Tribe campfire (Repeatable)</li>
<li>Cheatmenu: Option to give tribe medallion (For supporters)</li>
<li>Event [Octavia] - Captured</li>
<li>Event [Octavia] - Saved</li>
<li>Increased performance (decreased max prev button click to 3 and rewrote a lot of global variables to local (Will continue in the future and later add cleanup on save load for existing saves too)</li>
<li>Event [Nightclub] - Drink with trans (contr. decker-666)</li>
<li>Help page and start guide updates. (contr. 3ANilsPeterAndersson)</li>
<li>Event [Octavia] - Fuck her when you bring wolf pelts (after saving her) (Repeatable)</li>
<li>New item: Library blueprint (Location not implemented yet (Planned in 0.34)</li>
<li>Event [Explore] - Urban Echoes (find library blueprint)</li>
<li>New item: book (Will be used to increase intelligence in the library)</li>
<li>Event: [Eve] - Unexpected shower visit (Repeatable)</li>
<li>Event: [Explore] - Wicked family (For supporters additional scene)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v031" name="rd">
<label class="tab-label" for="v031"><span class="glyph vc-icon-top"></span> 0.31 <span class="glyph vc-icon-top"></span> 5 <span class="glyph vc-icon-top"></span> 26 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Pregnancy on street. Didn't check if is already pregnant and resetet pregnancy</li>
<li>[Event] Car explore - If nothing was found and companion didn't wanted to have fun - error.</li>
<li>Children stats. Removed "more info", submission, traits stats.</li>
<li>Morning messages from scavengers. Fixed item display name</li>
<li>Fights. Enemy inventory wasn't taken into account (knives)</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Baby merchant. Added kid gender color</li>
<li>In game new section (mods) (Works locally)</li>
<li>Standalone mod [Riley Reid]</li>
<li>New item: condom (Contraception for girls working on streets) (Can buy in underground city)</li>
<li>If offer slave to other slave has nymphomaniac trait, relationship won't decrease.</li>
<li>Slave market - allow to sell also males and trans + gender color.</li>
<li>Storage/NPC inventory transfer - increased font size.</li>
<li>Slaves as companions. (Won't help you in fight and in the future will try to escape while traveling if low submission)</li>
<li>Event [Event: The uninvited couple] - will trigger only after 30 days.</li>
<li>Fireplace - Group workout is not available from 18:00 to 20:30 (added one more hour)</li>
<li>Added +10 caps to slave base value in market</li>
<li>Event [Basement escape] (existing). Rewrote. Instead of checking ALL slaves, will check only slaves with low submission (Higher chance to trigger the event)</li>
<li>In slave npc view added button to move her/him to the guesthouse</li>
<li>Captured enemies after fights have 50% chance to have higher submission.</li>
<li>NPC hair reworked. Better quality and replaced as SVG. That means in the future opens option to also customize hair style (short/mid/long?). (For now all NPC's will have long hair)</li>
<li>Cheatmenu: Edit NPC (change traits/traitsLocked/skills/beauty/anal/strength/relationship/submission stats) (For supporters)</li>
<li>Morning messages. Removed NPC's types (slave/guest) and job types.</li>
<li>Changed Vincent relationship increase if buying from his shop. (Won't increase +1 but will take into account also quantity) (contr. KK-Walker)</li>
<li>Added some missing sex action texts (contr. decker-666)</li>
<li>Event [Guesthouse] - Guests (female with male) having sex. (contr. decker-666)</li>
<li>Event [Guesthouse] - Guests (male with male) having sex. (contr. decker-666)</li>
<li>Event [Guesthouse] - Guests (male with trans) having sex. (contr. decker-666)</li>
<li>Added default missing asian and black sex images (contr. decker-666)</li>
<li>Fights. If defeaded ally gets stabbed with knife twice or more he will get % of chance to die.</li>
<li>Settings. Separated lesbian and gay content. (contr. decker666)</li>
<li>Newly generated NPC's will use all available clothes from wardrobe.</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v030" name="rd">
<label class="tab-label" for="v030"><span class="glyph vc-icon-top"></span> 0.30 <span class="glyph vc-icon-top"></span> 7 <span class="glyph vc-icon-top"></span> 24 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Punish heOrShe error</li>
<li>Tits bar event. Could fuck her without money</li>
<li>Laura give breeder trait. Removes from locked traits if exist.</li>
<li>Typo corrections and grammar changes (contr. KK-Walker)</li>
<li>Dom event (mother and two daughters). Basement / guesthouse limit check</li>
<li>Event [Dig grave] - intelligence increased without choosing to help</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Dumbbell added to automatization (contr. NilsPeterAndersson)</li>
<li>Event [Fucking in car] - default sex actions in new location</li>
<li>Event [Vincent] - first car ride</li>
<li>Event [Car explore] - Nothing found. Suggest having fun (only female images for now)</li>
<li>Girls working on the street can get pregnant from their clients.</li>
<li>Event [Wood cabin] - Girl is pregnant from a client.</li>
<li>NPC customization. Added 4 shoes, 1 top, 2 accessories, 2 panties (contr. Zerorad)</li>
<li>Childbirth. Female child will get her mother's traits + one more</li>
<li>Event [Car explore] - Girl at the gas station</li>
<li>Event [Car explore] - Injured guy</li>
<li>Event [House party] (existing) - champagne and food will be checked also in storage.</li>
<li>Event [Bedroom] - Maid surprise.</li>
<li>Event [Slave market] - VIP requests introduction</li>
<li>Location: [Slave market VIP room] (Sell girls for VIP clients)</li>
<li>Event [Bathhouse] - Hot tub talk.</li>
<li>New item: Blueprint [Hot tub] (Not available yet) (Probably will add in 0.32 with that location)</li>
<li>Event [Fireplace] - Evening chat</li>
<li>Slave market - higher submission stats for slaves you're buying. (Even more if you have premium slaves)</li>
<li>If a girl asks to cum inside and you do that - additional relationship + happiness</li>
<li>Event [Guesthouse] - Take virginity (Also changes NPC orientation to like men) (For supporters)</li>
<li>Cheatmenu: Option to add fuel and car parts (For supporters)</li>
<li>[Sex] Male/Trans - added footjob (contr. decker666)</li>
<li>Males can now be assigned as a mistress too (contr. decker666)</li>
<li>New age based pregnancy chance formula: 18-24 = 24%, 25-39 = 16%, 40-59 = 8%; breeder x2 + fertility potion x2. (contr. decker666)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v029" name="rd">
<label class="tab-label" for="v029"><span class="glyph vc-icon-top"></span> 0.29 <span class="glyph vc-icon-top"></span> 4 <span class="glyph vc-icon-top"></span> 32 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>NPC say bubble. Fixed portrait</li>
<li>Fight won. Check if basement available to capture someone</li>
<li>Fight won. Removed inventory (showed bugged) from enemies.</li>
<li>Male avatar missing</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Groping in garden (added relationship increase limit 50 and text)</li>
<li>Added pregnancy days in NPC info view</li>
<li>Customize. Undress girls fully</li>
<li>Sex. Added throatpie cum action</li>
<li>Reduced groping energy spent from 20 to 5.</li>
<li>NPC info - locked traits. With intelligence 50+ will see (also changed locked count from 3 to 2)</li>
<li>Sex. When you're about to cum, girl might ask to cum inside her.</li>
<li>Companions limit set to 6</li>
<li>Cheat menu: Option to increase all slave submission (For supporters)</li>
<li>Event [Blair - morning surprise] - Will trigger only if maid as assigned</li>
<li>Mushroom moon text will show only after Vincent has told you about potion (contr. Magnus Castor)</li>
<li>Slave suicide change % calculation will take into account submission stats (Lower chance if submission gets higher) (contr. decker666)</li>
<li>Finished standalone mods (Information will follow how to create them) (tl;dr; - instead of downloading mod pack with 2-3gb files, people will be able to download specific things (for example specific girl model packs, gay content, even some scifi (if someone creates it) (Usually single mod (folder) size is 20-30mb max)</li>
<li>Reworked NPC visual breasts. Now all races should have the same color as body + in the future chance to show different sizes.</li>
<li>Childbirth. Daughter will get mother skills + one more AND all children will be straight.</li>
<li>You can go to the underground city until 2 am</li>
<li>Customize. Added option to wear panties.</li>
<li>Customize. 3 new clothes.</li>
<li>Customize. Added belly button (less awkward look)</li>
<li>Garage. Added a background image</li>
<li>Event [Male workout] - Workout together will males</li>
<li>NPC visual. Trans woman undressed will show dick</li>
<li>NPC visual. Woman pussy visible</li>
<li>Customize. Added accessories category (+1 item fishnet stockings)</li>
<li>Mechanics to fix and refill car. (In the next event update will add 1-2 events for car as a minimum)</li>
<li>Shop merchant economics. Each shop merchant will have a limited amount of money which increases/decreases each day.</li>
<li>Sanctuary shop - option to sell gas masks</li>
<li>New item: Dumbbell. Allow NPCs to workout on their own</li>
<li>Added party check for girls living in the guest house</li>
<li>Punish actions time consumed changed from 60 minutes to 15 minutes</li>
<li>Compressed some videos/action images. (Size smaller than 0.28 release)</li>
<li>Event [House party] - Additional foursome (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v028" name="rd">
<label class="tab-label" for="v028"><span class="glyph vc-icon-top"></span> 0.28 <span class="glyph vc-icon-top"></span> 7 <span class="glyph vc-icon-top"></span> 25 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Firefox doll size (increased to 150%)</li>
<li>Basement slave offer. If declined - leave button missing</li>
<li>Family tree. If npc father was released - error.</li>
<li>If girls assigned to streets. Will lose virginity</li>
<li>Fighting. If a lot companions - went outside screen and ally overlap.</li>
<li>Squirter when getting orgasm didn't show additional scene.</li>
<li>If childbirth was not successful girl still was pregnant.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Event [Cabin] - Common capital (existing). Added option to split money between girls (contr. decker666)</li>
<li>New fuck mechanics. Some fixes + if girl gets orgasm, her happiness increases (contr. decker666)</li>
<li>Events (Existing) - In some random events added option to invite girl (contr. NilsPeterAndersson)</li>
<li>Event [Negan] - Introduction</li>
<li>Event [Negan] - Done deal</li>
<li>Event [Explore] - Hospital (existing) added option to find gas mask</li>
<li>Event [Dom] - Fuel delivery to Isabel (forced sex choice)</li>
<li>Event [Explore] - Hospital (existing) Option to find gas mask there</li>
<li>Started to work in standalone mods (Would be able to enable only mods you want to (for example more pregnancy images, more gay images, etc)</li>
<li>Settlement management. Street worker happiness stats + option to give girls days off (contr. NilsPeterAndersson)</li>
<li>Event [Shower] - Taken.</li>
<li>Event [Workout] (existing) - will use new fuck view</li>
<li>Event [Laura] - Morning sample</li>
<li>Event [Vincent] - Note.</li>
<li>Exploring will use only 30 not 60 base energy.</li>
<li>Reworked drinking (drunk) mechanism (contr. decker666)</li>
<li>Automatization updates (Streetworker automatic rest, automatic buttplug) (contr. NilsPeterAndersson)</li>
<li>Event [Basement] - Female slave escape (alternative)</li>
<li>Cheat menu: Bathhouse threesome event trigger (For supporters)</li>
<li>Settlement info. Added info how much food is produced/consumed. (contr. NilsPeterAndersson)</li>
<li>Event [Mistress fuck] (existing) reworked (contr. decker666)</li>
<li>Event [Nightclub] - Buy a drinks (foursome) (For supporters)</li>
<li>Mistress fuck scenes use new fuck mechanism (contr. decker666)</li>
<li>Addition of missing generic sex action text (contr. decker666)</li>
<li>Nonfemale fucking will use new mechanics (contr. decker666)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v027" name="rd">
<label class="tab-label" for="v027"><span class="glyph vc-icon-top"></span> 0.27 <span class="glyph vc-icon-top"></span> 6 <span class="glyph vc-icon-top"></span> 33 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Only not virgin slaves who are horny will ask to fuck them (Basement)</li>
<li>Fixed auto bandages if you have a doctor or have bandages in inventory</li>
<li>Character/slave/guest random overwrites while using growth potion</li>
<li>Typos (contr. Seeedaum)</li>
<li>Vincent car steal event. Wrong guests were killed</li>
<li>Male fuck - titfuck was available</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Reworked NPC visual (body and breasts part). In the future opens all kinds of possibilities. Visual tits size, tattoos, scars, etc. Skin color can be custom in the future (Changes allow setting girls' skin tone to any)</li>
<li>5 new clothes (tops) for girls</li>
<li>Customize girl clothes</li>
<li>Can give axe to NPCs to increase bonuses if assigned to the forest</li>
<li>Increased how much your store can buy/sell for most used items (food/rope/plastic, etc)</li>
<li>Moved guesthouse, workbench, nursery head images to the background</li>
<li>Replaced male dolls with corresponding skin tone</li>
<li>Gardener skill gives a bigger bonus</li>
<li>Cheat menu: Option to increase all NPC happiness to max</li>
<li>Settlement stats (bedroom)</li>
<li>Settlement customize (change name/color/flag)</li>
<li>Back button in the top of the guesthouse/basement/greenhouse</li>
<li>Workout reworking to moddable folder (contr. decker666)</li>
<li>Sex chance will take into account horny, submission, etc. (Now guys who are not gay but have 100 submission will have a 50% chance to say yes, instead of 0 as before) (contr. decker666)</li>
<li>After won fight additional info about defeated enemies (approx age and beauty)</li>
<li>Added moon phases. When collecting mushrooms, chance to find also food (for you and companions) (contr. NilsPeterAndersson)</li>
<li>NPC info. Hide some fields under "More info" link. Not all stats/info about NPC is relevant</li>
<li>NPC girls added creampie count</li>
<li>Reworked happiness. Fewer penalties and more ways to gain it</li>
<li>Reduced travel time inside (x2) Underground city</li>
<li>Bathhouse schedule. Enabled male & trans NPCs. They will also use the shower automatically</li>
<li>While looking for berries, regarding moon phase, option to see wolf and hunt him (contr. NilsPeterAndersson)</li>
<li>Learnable "cook" skill (When 100 days work in the kitchen)</li>
<li>In NPC, you can see stats how many days they have worked in x job</li>
<li>Learnable cumslut trait (cum 100 times in her mouth)</li>
<li>Reworked default sex scenes with NPCs. (Right now only will be enabled for guests for testing and your reviews) (Thanks to decker666 for ideas)</li>
<li>More learnable traits: cumslut, deepthroat, nymphomaniac (contr. decker666)</li>
<li>Sad guests will leave (-50 happiness) (contr. NilsPeterAndersson)</li>
<li>Offer slave guy to slave trans girl (contr, saman853)</li>
<li>Event: [Explore] (existing. Added a chance to find gas mask in a police car)</li>
<li>Settlement automatization (Gives automatically items for specific jobs, etc). (contr. NilsPeterAndersson)</li>
<li>Event: Lesbian sex (contr. decker666)</li>
<li>Event [Cabin]: Late dance (For supporters)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v026" name="rd">
<label class="tab-label" for="v026"><span class="glyph vc-icon-top"></span> 0.26 <span class="glyph vc-icon-top"></span> 7 <span class="glyph vc-icon-top"></span> 25 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Growth potion.</li>
<li>Loop on sleep sometimes if rotten food event was active (decided not to throw food out).</li>
<li>Eye colors adjusted regarding hair/race.</li>
<li>Footjob not increasing horniness.</li>
<li>NPS's were washing even if you didn't had bathhouse.</li>
<li>Morning message hunter messages showing under slaves category.</li>
<li>Dom journal tip days fix (nightclub).</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Cheat menu [Random events trigger] (For supporters)</li>
<li>Event [Blair] - pregnant talk</li>
<li>Blair can now get pregnant repeatedly. (Works same as usual NPC's)</li>
<li>Event [Explore] - Toxic cave</li>
<li>Event [Dom] - (Existing) event with mother and two daughters. Option to also enslave them</li>
<li>Event [Base attack] - (Existing). Guards will also help you to fight intruders. (contr. NilsPeterAndersson)</li>
<li>Event [Offer slave to slave] - (Existing). Allow/Deny cumming inside. YES! Other NPC's can make your girls pregnant! (40% chance)</li>
<li>Event [Basement] - Hangman. (Keep your slaves happy)</li>
<li>Event [Shower] - Guest joining while you masturbate</li>
<li>Additional clock on mobile phones so you see it without toggling side menu.</li>
<li>More help hints inside journal (contr. NilsPeterAndersson)</li>
<li>Event [Vincent] - Infiltration of The Sanctuary.</li>
<li>Event [Garage] - Problems</li>
<li>Event [Garage] - Repairing guest (repeatable)</li>
<li>Event [Explore] - Beak humans (Existing). Added option to follow them (Additional scene for supporters)</li>
<li>Event [Cabin] - (Existing) Kid stealing food. Option to invite him to live in your nursery.</li>
<li>Event [Basement] - Offer male slave to male slave. (contr. saman85)</li>
<li>Event [Basement] - Offer trans slave to male slave (contr. saman85)</li>
<li>Event [Dom] - Help from The Sanctuary.</li>
<li>12 new gifts for NPCs (contr. decker666) (Available in random shops)</li>
<li>NPC's likes/dislikes for gifts (not all NPCS will like same gifts, some might give penalties) (contr. decker666)</li>
<li>Event [Laura] Breeding potion</li>
<li>Now you can give your guests/slaves breeding trait.</li>
<li>Guy punish. Checking gaysEnabled checkbox. If disabled, only option will be to beat him.</li>
<li>New location: The Sanctuary (Now only with shop)</li>
<li>Wedding ring to marry Npc's available in sanctuary shop</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v025" name="rd">
<label class="tab-label" for="v025"><span class="glyph vc-icon-top"></span> 0.25 <span class="glyph vc-icon-top"></span> 5 <span class="glyph vc-icon-top"></span> 29 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Some texts</li>
<li>Trans with breeder trait</li>
<li>Blair didn't had orientation</li>
<li>While doing workout she will refuse to fuck if not interested in men.</li>
<li>Octavia events triggered in the wrong order.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Morning messages. Added message if you're bleeding or used automatically bandage</li>
<li>Settings. Option to disable Trans and gay content</li>
<li>Cheat menu: Add energy</li>
<li>Cheat menu: Increase basement cell limit</li>
<li>Bedroom, kitchen, basement room image replaced with background images (If someone was assigned there, uneccesary scrolling)</li>
<li>Clickable childrens from guesthouse and basement</li>
<li>Women after giving birth won't be able to get pregnant for 6-9 months (random period for each npc)</li>
<li>Wake up above morning messages will show only if you have more than 7 messages.</li>
<li>Hunter job. Npcs with skill 'woodcraft' can be assigned. Will bring you food or wolf pelts. (Need to give bow to npc)</li>
<li>Happiness stats for NPC. (Later will use for events, mood, etc). Right now decreases if works on street and increases if using bathhouse.</li>
<li>NPC inventory system. Now you can give her your items (For now only knife nad bow (Knife to increase dmg in fights, bow for hunting)</li>
<li>Background ambient sound (Option to disable it)</li>
<li>New sex action: footjob</li>
<li>Option to disable fast travel via settings</li>
<li>New item: gas mask</li>
<li>Reduced size (some videos compressed and gifs changed to webp). Size smaller than previous version.</li>
<li>If you offer slave to other slave offered slave relationship will decrease. If slave orientation isn't straight that there will be additional penalty (+hapiness decrease)</li>
<li>New item: car part (For car fixing in the future updates)</li>
<li>New item: metal (For base upgrades in future updates)</li>
<li>Prepared things for Sanctuary location (Will be introduced in 0.26)</li>
<li>New item: towel (Craftable in workbench from cloth)</li>
<li>NPC eye color (% based on race and hair color, no game effect). (contr. decker666)</li>
<li>NPC personality trait based on big 5 classification (no game effect). (contr. decker666)</li>
<li>NPC age description adjustments (18-24: young, 40-59: mature, 60+: old). (contr. decker666)</li>
<li>NPC sex actions subfolders renamed to allow more modding (the code will understand folders named : female.asian.young.pregnant, female.pregnant, transfemale.black, male.old) (contr. decker666)</li>
<li>Reworked childbirth. Now birth won't be 100% success rate. Chance increases if you have towels and someone with doctor skill.</li>
<li>NPC marry. Right now only happiness is impacted. (For other girls you've already married, happiness will decrease)</li>
<li>Event: [Greenhouse]. Get additional food (Additional event for supporters)</li>
<li>Added relationship for all characters in journal</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v024" name="rd">
<label class="tab-label" for="v024"><span class="glyph vc-icon-top"></span> 0.24 <span class="glyph vc-icon-top"></span> 6 <span class="glyph vc-icon-top"></span> 20 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>In streets when clicking on your working guest it always opened last one.</li>
<li>Slave wash fuck. Virginity wasn't removed.</li>
<li>Workout fuck. Virginity wasn't removed.</li>
<li>House party threesome. Virginity wasn't removed.</li>
<li>Adjusted npc visual on mobile phones (small screens). Not npc doll should be in the same level as stats.</li>
<li>Vincent sanctuary event - only additional scene if both companions are female</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Automatically applying bandage if bleeding and you got doctor in your village (contr Magnus Castor)</li>
<li>Event [Dr.Finch]: Shattered Lab + new location "Lab"</li>
<li>New item: Gas can</li>
<li>Event [Dr.Finch]: New home</li>
<li>Event [Dr.Finch]: Another sample (repeatable) + Growth potion production</li>
<li>Events, multiple [NPC gay content] - Now you can meet males in the nightclub and also wash them. (contr. decker666)</li>
<li>New gender: trans woman (contr. decker666)</li>
<li>Moddable wash folder (cont. decker666)</li>
<li>Event [Octavia]: Wolf pelt (repeatable). Bring wolf pelts to her for small reward (For DOM and SUB route). Chance to increase her sub or relationship.</li>
<li>Event [Bathhouse]: Threesome (repeatable)</li>
<li>Event [Dom]: (Isabel) Gas shortage</li>
<li>Event [Rodger]: The testing of the faith.</li>
<li>Event [Octavia]: The rival tribe ultimatum</li>
<li>New item: Tribe medallion</li>
<li>Event [Explore]: Tribe group (Options to get tribe medallions for future Octavia quests)</li>
<li>Event [Guesthouse]: Sleeping beauty (For supporters additional scenes)</li>
<li>Event [Bar]: Closing time. (For supporters)</li>
<li>New item: Cloth</li>
<li>Workbench: Option to craft bandages</li>
<li>Option to grope guests working in garden</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v023" name="rd">
<label class="tab-label" for="v023"><span class="glyph vc-icon-top"></span> 0.23 <span class="glyph vc-icon-top"></span> 1 <span class="glyph vc-icon-top"></span> 35 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>When scavenger went missing and you decided to ignore - companion list error.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Changed F npc demographic % chance. (40% : white, 25% : latina, 20% : black, 15% : asian)</li>
<li>Changed npc random age generation. Now there will be bigger chance that npc are younger.</li>
<li>Changed F npc hair options (new colors + few dyed colors (contr. decker666)</li>
<li>Cheatmenu: Added MC increase endurance</li>
<li>Cheatmenu: Added MC increase reputation</li>
<li>Guest/slave workout. Reworked as action. (Now moddable and later can assign specific race images)</li>
<li>Slave wash. Reworked as action (Now moddable and later can assign specific race images)</li>
<li>In childbirth child name will be generated randomly and prefilled (You can still change it if you want)</li>
<li>Separated traits from skills (traits stay for sex stuff, skills for resources, managing, etc)</li>
<li>New skill: Cook. Decreases rotten food chance by 50%</li>
<li>New skill: Doctor. Decreases chance of miscarriage and sickness days goes x2 faster</li>
<li>Set maximum strength you can gain at your fireplace to 50.</li>
<li>Set maximum strength you can gain in cage exercise to 100 and endurance to 50.</li>
<li>Added "Apply cosmetics" mechanics. (Works till 80 beauty)</li>
<li>New item: Hair dye kit (Customize your girls) (Available in Underground city shop)</li>
<li>After sleep added additional wake up button before morning messages (If you don't want to read/scroll through them)</li>
<li>Guests/slaves additional day without food (Instead of leaving/dying instantly, there will be message that they're starving + colors)</li>
<li>Explore event: Toxic waste (existing) Now supports texts if companion is male</li>
<li>Maid job. New sex scenes with outfit + energy bonus when taking a nap.</li>
<li>Growth potion mechanics (v0.1. Will improve over time)</li>
<li>Reworked guest/companion removal (should get rid of the random companion list error) (contr. Magnus Castor)</li>
<li>Learnable skills. Guest/Slaves now have stats that counts how long they work. If they reach 100 days at specific job, they will learn that specific skill. (gardening, forest, scavenger)</li>
<li>New trait: Nymphomaniac. Never says no and earns double on streets</li>
<li>Bandits who you fight and capture has 5% higher chance to have sadistic trait</li>
<li>Guestroom will show if guest is added as companion (same as any job assigned)</li>
<li>Learnable trait: analslut. If you get 100 anal stats, there is a chance girl with get analslut trait. (Keep in mind that for some girls it will be locked and they will never get it)</li>
<li>Fast travel: bedroom</li>
<li>New sex action: Titjob (only default images for now)</li>
<li>New item: buttplug (customize). Automatically increase anal stats (max to 20)</li>
<li>Mistress fuck actions. (Watch how mistress fuck/treat your slaves). (contr. decker666)</li>
<li>Decreased chance of scavenger not coming home</li>
<li>Event: nightclub (repeatable). (For supporters additional scenes)</li>
<li>Gift cosmetics (+5 rel)</li>
<li>Blair: Date [Scavenging] (For supporters)</li>
<li>Added Sexual orientation for NPC's (Not used anywhere yet) (contr. decker666)</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v022" name="rd">
<label class="tab-label" for="v022"><span class="glyph vc-icon-top"></span> 0.22 <span class="glyph vc-icon-top"></span> 8 <span class="glyph vc-icon-top"></span> 22 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Firefox autoplay video now will work.</li>
<li>Bathhouse related beauty decreased too much</li>
<li>Fixed slave wash with only 10 energy. (It showed that you're out of cum and girl could get infinity beauty)</li>
<li>Fixed random washBeauty error.</li>
<li>If woman gave birth to another child it didn't show in the family tree</li>
<li>Guests not disappear from guesthouse while working on streets</li>
<li>Guests not disappear from guesthouse while working as scavengers</li>
<li>Scavenger didn't come home event not triggering</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Increased garden workers limit from 7 to 8.</li>
<li>Increased guestroom bed limit from 20 to 25.</li>
<li>Event: Dom [Ex worker daughters]</li>
<li>Event: Bar [With high reputation now you can **** bartender]</li>
<li>Event: Guest not in the mood to ****, she might suggest a quick ****</li>
<li>New item: Cosmetics (Will be able to increase girl beauty permanently in future release)</li>
<li>Event [Explore]: Abandoned mall</li>
<li>Event [Cabin]: Uninvited couple (existing). Added option to fight them.</li>
<li>Event [Slave market]: You've been noticed. (If you sell enough slaves, you get access to event + better slaves in market (younger, more beautiful, chance to get more traits)</li>
<li>In NPC info block now you'll see if girl is a virgin.</li>
<li>Event: [Bedroom] Horny guests might visit you in bedroom</li>
<li>Event: [Bedroom] Blair might join for threesome when guest visits (For supporters)</li>
<li>Event: Dom [A missing diplomat]</li>
<li>Event: Kitchen [Girl assigned to kitchen work might sometimes get stuck in the sink]</li>
<li>Event: Shower [Invite guest to your shower]</li>
<li>Event: New Character (Dr. Finch (Laura)) (scientist) [Toxic rain]</li>
<li>Event: Laura [Successful test]</li>
<li>New item: growth potion (in 0.22 release only few test vials. Mechanics will be in 0.23)</li>
<li>Nursery: Gender colors + option to click on children</li>
<li>Event: Laura [Growth vials]</li>
<li>Cheat menu: Set all slave relationship to max (For supporters)</li>
<li>Compressed all videos. (50% size decrease (Hopefully works on ios as videos were only compressed and not converted to other format (Still uses H.264))</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v021" name="rd">
<label class="tab-label" for="v021"><span class="glyph vc-icon-top"></span> 0.21 <span class="glyph vc-icon-top"></span> 8 <span class="glyph vc-icon-top"></span> 33 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Guys scavenging go missing event. Removed event for males (for now)</li>
<li>Scolding guests in party. Fixed submission increase</li>
<li>Guy anal stats too low. Fixed image</li>
<li>Fixed that first guest if was scavenger and went missing. Event didn't trigger</li>
<li>Fixed bug when sometimes after fucking female guest you were thrown back to slave options</li>
<li>After cum in guy face, redirect to girl view</li>
<li>Error after fucking girl in the nightclub</li>
<li>Family tree. Didn't show properly mother and father (only children worked)</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Cheat menu: Skip time (1 week) (For supporters)</li>
<li>Event: "Trespassing girl". If security assigned. (For supporters bonus event option)</li>
<li>Decreased sex scenes time consumption from 15 minutes to 5 minutes</li>
<li>Buy a round in the bar. Increased max reputation from 20 to 50</li>
<li>Decreased Dom's required reputation from 150 to 100 for "Invite" event.</li>
<li>Guest girls can be assigned to work on street</li>
<li>Now you can buy plastic in Underground city shop</li>
<li>Workbench - higher intelligence will decrease amount of energy spent</li>
<li>New job: guard. (Decreases the chance of someone breaking in and stealing, and sometimes might catch intruders. (Intruder event will be added in 0.22 event update)</li>
<li>Decreased chance of event "Food forager" and "Uninvited couple" if guard is assigned</li>
<li>"MC stats" now will show how much reputation you got + description of how well known you are in world.</li>
<li>Event: "Slave to slave". Offer slave girl to one of your slave guys (to increase relationship)</li>
<li>Waterfall event (existing). Now traits will be randomized + warning that int was too low if you get knocked out without fight.</li>
<li>"Group workout" - will consume energy</li>
<li>Morning messages. Now they're grouped. You'll also see "shop" group when you can see what your shopkeeper sold/bought.</li>
<li>New item: piercing (Can buy in Rodger's shop)</li>
<li>Customize girls. Added option to pierce their nipples</li>
<li>Drop items. Option to drop items from your inventory</li>
<li>Basement black girl images in sex scenes</li>
<li>Male punish. (Beat, slap or paddle)</li>
<li>Added NPC birthdate in info view</li>
<li>Shopkeeper can buy/sell hay</li>
<li>Slave girl workout</li>
<li>Changed chance of traits from 30 to 50% + additional 30% to get additional trait</li>
<li>Event (Bikers (existing)). Relationship will increase/decrease of the outcome (if you enslave or invite)</li>
<li>New trait: sadistic. Only girls with sadistic trait can be assigned as mistress</li>
<li>New trait: squirter. Additional image when girl gets orgasm (pussy or anal)</li>
<li>When kids in nursery reach 18. They will be automatically moved to guest house</li>
<li>Anal sex. Added more text, according to npc anal stats (females)</li>
<li>New sex option: Lick her (cunilingus). (Way to give her orgasms without taking her virginity)</li>
<li>New building: Bathhouse (slaves and guests automatically will wash) (Outside their work times)</li>
<li>Option to kill baby cannibal merchant (Will leave you alone for 60 days)</li>
<li>Underground streets - added gender colors</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v020" name="rd">
<label class="tab-label" for="v020"><span class="glyph vc-icon-top"></span> 0.20 <span class="glyph vc-icon-top"></span> 4 <span class="glyph vc-icon-top"></span> 16 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Sidebar Wednesday going outside.</li>
<li>MC stats dialog fixed "Leave" button.</li>
<li>Very rare case when save was corrupted with error "Cannot read properties of null (reading 'traits')."</li>
<li>Fixed explore event: toxic waste (Didn't trigger even with companions).</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Explore event: Waterfall (Chance to get girl with 3 traits + high beauty) (For supporters)</li>
<li>Blair event: date (repeatable) (For supporters)</li>
<li>Added credits screen (You're welcome to send in your small explore/city/settlement events)</li>
<li>Basement event: First visit (First visit after you've captured your slave) (All old slaves will trigger this error too)</li>
<li>Cabin event: Food forager</li>
<li>Octavia event: Burning church</li>
<li>Octavia event: Eve kidnapped</li>
<li>Explore event: Old couple</li>
<li>Explore event: The Dying Elderly Survivor (existing). Added option to shoot him</li>
<li>Greenhouse event: Gardening competition</li>
<li>Blare event: Morning surprise (repeatable)</li>
<li>Cabin event: Uninvited couple</li>
<li>Tech stuff: Update option to more simply add new events while traveling (will add events as you go from one location, to other)</li>
<li>Travel event: Tree ambush</li>
<li>Travel event: City ambush</li>
<li>Explore event: Tits bar</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v019" name="rd">
<label class="tab-label" for="v019"><span class="glyph vc-icon-top"></span> 0.19 <span class="glyph vc-icon-top"></span> 9 <span class="glyph vc-icon-top"></span> 21 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Remove companion. Fixed names duplicating in removal dialog</li>
<li>Typos</li>
<li>Male slave assign to garden. Fixed limit. (7 instead of 6)</li>
<li>Male while taking won't tell "She had X orgasms"</li>
<li>Releasing slave - will take into account free beds in the guest house.</li>
<li>When talking to slave male, you were redirected to the female view</li>
<li>Children in the nursery will consume food as in other places (-30pts per day)</li>
<li>Rotten food event. Right food amount. Before that, if you had 1600 food, 1300 were rotten. Now it will be only 20%, around 320ish.</li>
<li>Changelog scrollbar not visible</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3>
<ul>
<li>Cheat menu - Option to clear companion list</li>
<li>Workbench. When building basement cell, you'll stay in Workbench</li>
<li>Hunting. Now you have a 70% chance to get deer. If you get a wolf and kill him, you get a pelt (already in the game) + 5 food (new)</li>
<li>Increased male NPC base strength</li>
<li>Greenhouse. Females/males now have their own color (same as in the basement)</li>
<li>Changes in searchActions.js so it works for Linux</li>
<li>Added warning on the intro page if a newer version/patch is available</li>
<li>Added MC stats. People captured, people killed, slaves released, girls impregnated, etc.</li>
<li>Release male slaves. Either release them or add them to your guest house</li>
<li>Male guests</li>
<li>Implemented Patreon code (additional events for supporters <3 in the future)</li>
<li>Guest group workout (increase all guest strength at once)</li>
<li>Random event after group workout</li>
<li>Male slave NPC fuck (gay content)</li>
<li>Event: Horse merchant (random event where you can buy a horse if you gave yours away or he died)</li>
<li>While punishing a girl who's a masochist, her horny level will also increase</li>
<li>New trait: Shopkeeper (Only with this trait will it be available to assign an NPC to your village shop and manage your goods automatically)</li>
<li>Vincent event</li>
<li>New location: shop (In your settlement. For macro management. Set item limits and your shopkeeper will sell/buy them automatically)</li>
<li>Option to move your backpack items to storage</li>
<li>If you have your shop available, gathered items by your guests/slaves will be put automatically in storage and not in your backpack</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v018a" name="rd">
<label class="tab-label" for="v018a"><span class="glyph vc-icon-top"></span> 0.18a <span class="glyph vc-icon-top"></span> 4<span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Typos</li>
<li>Dom event. After cum, you couldn't leave the scene.</li>
<li>Made changes in journal. Instead of "Keep playing," it will show how many days you need to reach.</li>
<li>Didn't set as "finished." event [Prepare yourself and meet Vincent at the farm], so it was repeating all the time.</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v018" name="rd">
<label class="tab-label" for="v018"><span class="glyph vc-icon-top"></span> 0.18 <span class="glyph vc-icon-top"></span> 4 <span class="glyph vc-icon-top"></span> 17 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Changing male slave name made to appear fuck/punish buttons</li>
<li>Now you'll be able to travel to slave market at 13:30 (30minutes travel time) so you'll be able to be there as soon as it opens)</li>
<li>Slave/guest sickness fix (Had error when sleeping)</li>
<li>Male "visual" doll not showing for non-white race.</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3><ul>
<li>In settings you can change sidebar background color. Yellow (default or gray)</li>
<li>New item: Wedding ring</li>
<li>Rodger event</li>
<li>Blair event (wedding)</li>
<li>Dom event</li>
<li>Better street girl earnings and less taxes. Depending on Dom event.</li>
<li>Random event underground city: ball</li>
<li>Dom quest (champagne)</li>
<li>Dom event + fuck scene</li>
<li>Rotten food event. Added check that next time it might only happen is after 7 days.</li>
<li>Throw a party link will be always available (disabled if requirements not met) with what you need</li>
<li>Pregnant girls with 280+ days will have 100% chance to give birth</li>
<li>Vincent quest</li>
<li>Vincent event</li>
<li>Started to work on content for patreons/subscribers. (Probably two events in each event update starting from the 0.20 (or 0.22)).</li>
<li>Explore event: Lost child</li>
<li>Explore event: The Elderly Refugee</li>
</ul>
</div></div>
<div class="tab"><input type="radio" id="v017" name="rd">
<label class="tab-label" for="v017"><span class="glyph vc-icon-top"></span> 0.17 <span class="glyph vc-icon-top"></span> 3 <span class="glyph vc-icon-top"></span> 22 <span class="vc-top-fill"></span></label>
<div class="tab-content">
<h3><span class="glyph vc-icon-con"></span>FIXES:</h3>
<ul>
<li>Bounty hunter: Parent event. Fixed images</li>
<li>Explore event: The Enslaved Settlement (you can only enslave or invite girls if you have built basement or guesthouse)</li>
<li>Converted webm to mp4 for (H.256 support (IOS))</li>
</ul>
<h3><span class="glyph vc-icon-con"></span>FEATURES:</h3><ul>
<li>Food consumption moved to the end of the check. That means slaves/guest first will grow their food before eating something.</li>
<li>Kids will start to consume "food" only when they're 3yo+</li>
<li>Guests working in forest have 10% chance to also find some berries (food)</li>
<li>Travel time while in your cabin (settlement) will be 10 minutes instead of an hour</li>
<li>New race: latina</li>
<li>Horse now consumes hay (1 per day)</li>
<li>Explore event: Pack of wolves (Now there's a 40% chance they'll drag away one of your companions)</li>
<li>Added few more clothes for girls</li>
<li>Companions can't be assigned to jobs</li>
<li>Reworked sidebar UI (Thanks to e801207)</li>
<li>Implemented guy NPC slaves. (Bare minimum. Can assign to work in garden)</li>
<li>Existing explore event: mysterious illness settlement (added proper ending if you give them medicine)</li>
<li>Existing explore event: The Dying Elderly Survivor (added proper ending)</li>
<li>Decreased max fighter ranking from 1000 to 100.</li>
<li>Nightclub event: If you go into trap, depending on your reputation or fighter rank, they might recognize and leave you alone + fuck scene</li>
<li>Family tree. Now when a child is born, you can see the mother's children in her profile. (Later will add MC stats of how many children you have had in total, etc. for achievements, etc.) (For MC to be a father, it will work only for new pregnancies, no existing ones)</li>
<li>Added sickness functionality. For now, only food poisoning. Later will add more lethal stuff. If a guest/slave is sick, they won't work.</li>
<li>Event: Rotten Rations. Instead of static 20 food, it will calculate 20% of your food. Added consequence - if you choose to keep the rotten food, there's a 50% chance some of your girls will get sick.</li>
<li>Added horse icon in the sidebar if you get one.</li>
<li>Option to pet your horse or change his name at the fireplace</li>
<li>Fuck event while petting your horse</li>
<li>Added ingame changelog</li>
</ul>
</div></div>
</div><div id="ingame-ui-buttons-side" @class="'cheatmenu ' + settings.sidebarBackground + ''">
<<link 'Change name'>>
<<script>>Dialog.setup("Cheat menu - change MC name", "Cheat menu - change MC name"); Dialog.wiki(Story.get("Cheat menu - change MC name").processText()); Dialog.open();<</script>>
<</link>>
<<if recall($suppCode)>>
<<if $player?.quests?.subDecayDisabled>>
<<link 'Enable stat decay (Each day NPC submission and relationship lower)'>>
<<set $player.quests.subDecayDisabled = false>>
<<script>>Dialog.setup("Cheat menu", "Cheat menu"); Dialog.wiki(Story.get("Cheat menu").processText()); Dialog.open();<</script>>
<</link>>
<<else>>
<<link 'Disable stat decay (Each day NPC submission and relationship lower)'>>
<<set $player.quests.subDecayDisabled = true>>
<<script>>Dialog.setup("Cheat menu", "Cheat menu"); Dialog.wiki(Story.get("Cheat menu").processText()); Dialog.open();<</script>>
<</link>>
<</if>>
<</if>>
<<link 'Add 1000 caps'>>
<<set $player.money += 1000>>
<<goto `passage()`>>
<</link>>
<<link 'Add energy'>>
<<set $player.energy = $player.maxEnergy>>
<<goto `passage()`>>
<</link>>
<<if recall($suppCode)>>
<<link 'Increase max energy'>>
<<set $player.maxEnergy +=10>>
<<goto `passage()`>>
<</link>>
<</if>>
<<link 'Add slave'>>
<<newgirl>>
<<run $slaves.push($tmpGirl)>>
<<goto 'Wood cabin'>>
<</link>>
<<link 'Set all guest relationship to max'>>
<<for _cheatGuestI, _cheatGuest range $guests>>
<<set $guests[_cheatGuestI].relationship = 100>>
<</for>>
<<if typeof $guestId !== 'undefined' && $tmpGirl>>
<<set $tmpGirl.relationship = 100>>
<</if>>
<<goto `passage()`>>
<</link>>
<<if recall($suppCode)>>
<<link 'Set all guest submission to max'>>
<<for _cheatGuestI, _cheatGuest range $guests>>
<<set $guests[_cheatGuestI].sub = 100>>
<</for>>
<<if typeof $guestId !== 'undefined' && $tmpGirl>>
<<set $tmpGirl.sub = 100>>
<</if>>
<<goto `passage()`>>
<</link>>
<<link 'Set all guest corruption to max'>>
<<for _cheatGuestI, _cheatGuest range $guests>>
<<set $guests[_cheatGuestI].corruption = 100>>
<</for>>
<<if typeof $guestId !== 'undefined' && $tmpGirl>>
<<set $tmpGirl.corruption = 100>>
<</if>>
<<goto `passage()`>>
<</link>>
<<link 'Set all slave relationship to max'>>
<<for _cheatslaveI, _cheatSlave range $slaves>>
<<set $slaves[_cheatslaveI].relationship = 100>>
<</for>>
<<if typeof $slaveId !== 'undefined' && $tmpGirl>>
<<set $tmpGirl.relationship = 100>>
<</if>>
<<goto `passage()`>>
<</link>>
<<link 'Set all slave submission to max'>>
<<for _cheatslaveI, _cheatSlave range $slaves>>
<<set $slaves[_cheatslaveI].sub = 100>>
<</for>>
<<if typeof $slaveId !== 'undefined' && $tmpGirl>>
<<set $tmpGirl.sub = 100>>
<</if>>
<<goto `passage()`>>
<</link>>
<<link 'Set all slave corruption to max'>>
<<for _cheatslaveI, _cheatSlave range $slaves>>
<<set $slaves[_cheatslaveI].corruption = 100>>
<</for>>
<<if typeof $slaveId !== 'undefined' && $tmpGirl>>
<<set $tmpGirl.corruption = 100>>
<</if>>
<<goto `passage()`>>
<</link>>
<<link 'Add food (x10)'>>
<<pickup $backpack 'food' 10>>
<<goto `passage()`>>
<</link>>
<<link 'Add growth potion'>>
<<pickup $backpack 'growth_potion' 1>>
<<goto `passage()`>>
<</link>>
<<link 'Add fuel'>>
<<pickup $backpack 'fuel' 1>>
<<goto `passage()`>>
<</link>>
<<link 'Add car part'>>
<<pickup $backpack 'car_part' 1>>
<<goto `passage()`>>
<</link>>
<<link 'Add revolver'>>
<<pickup $backpack 'revolver' 1>>
<<goto `passage()`>>
<</link>>
<<link 'Add revolver bullets (x10)'>>
<<pickup $backpack 'bullet_revolver' 10>>
<<goto `passage()`>>
<</link>>
<<link 'Add shotgun shells (x10)'>>
<<pickup $backpack 'shotgun_shell' 10>>
<<goto `passage()`>>
<</link>>
<<link 'Add tribe medallion'>>
<<pickup $backpack 'tribe_medallion' 1>>
<<goto `passage()`>>
<</link>>
<<link 'Add body armor'>>
<<pickup $backpack 'body_armor' 1>>
<<goto `passage()`>>
<</link>>
<</if>>
<<link 'Add champagne bottle'>>
<<pickup $backpack 'champagne' 1>>
<<goto `passage()`>>
<</link>>
<<link 'Add car battery'>>
<<pickup $backpack 'car_battery' 1>>
<<goto `passage()`>>
<</link>>
<<link 'Add blueprint [Library]'>>
<<pickup $backpack 'blueprint_library' 1>>
<<goto `passage()`>>
<</link>>
<<link 'Unlock Bathhouse & Hot tub'>>
<<pickup $backpack 'blueprint_hot_tub' 1>>
<<set $game.location.bathhouse = true>>
<<set $game.location.hottub = true>>
<<goto `passage()`>>
<</link>>
<<link 'Add crossbow blueprint'>>
<<pickup $backpack 'blueprint_crossbow' 1>>
<</link>>
<<link 'Add antibiotics'>>
<<pickup $backpack 'antibiotics' 1>>
<<goto `passage()`>>
<</link>>
<<link 'Clear companion list'>>
<<set $player.companions = {}>>
<<goto `passage()`>>
<</link>>
<<link 'Increase guest house bed limit'>>
<<set $guesthouseLimit++>>
<<goto `passage()`>>
<</link>>
<<link 'Increase basement cell limit'>>
<<set $basementLimit++>>
<<goto `passage()`>>
<</link>>
<<link 'Edit player stats'>>
<<script>>
Dialog.setup("Cheatmenu - edit player", "Cheatmenu - edit player");
Dialog.wiki(Story.get("Cheatmenu - edit player").processText());
Dialog.open();
<</script>>
<</link>>
<<link `($player.cheatFreezeBeauty ? '✓' : '') + 'Freeze beauty decay'`>>
<<set $player.cheatFreezeBeauty = !($player.cheatFreezeBeauty ?? false)>>
<<goto `passage()`>>
<</link>>
<<link 'Set all guest beauty to 100'>>
<<for _cheatMenuNpcI, _cheatMenuNpc range ($guests ?? [])>>
<<set $guests[_cheatMenuNpcI].beauty = 100>>
<</for>>
<<goto `passage()`>>
<</link>>
<<link 'Set all slave beauty to 100'>>
<<for _cheatMenuNpcI, _cheatMenuNpc range ($slaves ?? [])>>
<<set $slaves[_cheatMenuNpcI].beauty = 100>>
<</for>>
<<goto `passage()`>>
<</link>>
<<link 'Increase happiness to max for all NPCs'>>
<<for _cheatMenuNpcI, _cheatMenuNpc range ($slaves ?? [])>>
<<set $slaves[_cheatMenuNpcI].happy = 100>>
<</for>>
<<for _cheatMenuNpcI, _cheatMenuNpc range ($guests ?? [])>>
<<set $guests[_cheatMenuNpcI].happy = 100>>
<</for>>
<<if $tmpGirl ?? null>>
<<set $tmpGirl.happy = 100>>
<</if>>
<<goto `passage()`>>
<</link>>
<<if recall($suppCode)>>
<<link 'Skip time (1 week)'>>
<<sleep>>
<<sleep>>
<<sleep>>
<<sleep>>
<<sleep>>
<<sleep>>
<<sleep>>
<<goto `passage()`>>
<</link>>
<<if typeof $tmpGirl !== 'undefined' && (typeof $slaveId !== 'undefined' || typeof $guestId !== 'undefined' || typeof $charId !== 'undefined' || typeof $childId !== 'undefined')>>
<<link 'Edit NPC'>>
<<script>>
Dialog.setup("Cheatmenu - edit NPC", "Cheatmenu - edit NPC");
Dialog.wiki(Story.get("Cheatmenu - edit NPC").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<link 'Set NPC relationship (between guests)'>>
<<script>>
Dialog.setup("Cheatmenu - npc relationship between", "Cheatmenu - npc relationship between");
Dialog.wiki(Story.get("Cheatmenu - npc relationship between").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<if recall($suppCode)>>
<<set _availableGuests = setup.getAvailablePersons18yo($guests ?? [])>>
<fieldset>
<legend>
Trigger event
</legend>
<<link 'Explore: Toxic cave'>>
<<goto 'Explore event - toxic cave'>>
<<script>>Dialog.close();<</script>>
<</link>>
<<link 'Explore: Waterfall'>>
<<goto 'Explore event: Waterfall'>>
<<script>>Dialog.close();<</script>>
<</link>>
<<link 'Explore: mysterious scream'>>
<<goto 'Explore event - mysterious scream'>>
<<script>>Dialog.close();<</script>>
<</link>>
<<if (_availableGuests[0] ?? []).length >= 2 && ($game.location.bathhouse ?? false)>>
<<link 'Bathhouse: Threesome'>>
<<set $tmpEvent = {
bathhouseThreesome: [
'guest:' + _availableGuests[0][0],
'guest:' + _availableGuests[0][1]
]
}>>
<<goto 'Bathhouse - threesome'>>
<<script>>Dialog.close();<</script>>
<</link>>
<</if>>
<<if (_availableGuests[0] ?? []).length >= 0>>
<<link 'Bedroom: Sleepover'>>
<<set $tmpEvent = {
id: _availableGuests[0][0]
}>>
<<goto 'Bedroom - sleepover'>>
<<script>>Dialog.close();<</script>>
<</link>>
<</if>>
<<link 'Event: Base attack - fight'>>
<<goto 'Event: Base attack'>>
<<script>>Dialog.close();<</script>>
<</link>>
<<link 'Event: Heat wave'>>
<<set $weather = {
weather: 'sun',
heatWave: true,
daysLeft: randomInteger(4,6)
}>>
<<goto 'Weather - Heat wave'>>
<<script>>Dialog.close();<</script>>
<</link>>
<<link 'Event: Cold snap'>>
<<set $weather = {
weather: 'storm',
coldSnap: true,
daysLeft: randomInteger(6,10)
}>>
<<goto 'Weather - Cold snap'>>
<<script>>Dialog.close();<</script>>
<</link>>
<<link 'Event: Sand storm'>>
<<set $weather = {
weather: 'storm',
sandStorm: true,
daysLeft: 1
}>>
<<goto 'Weather - Sand storm'>>
<<script>>Dialog.close();<</script>>
<</link>>
<<link 'Event: Blair and Ashley visit'>>
<<goto 'Blair - Ashley threesome'>>
<<script>>Dialog.close();<</script>>
<</link>>
<<link 'Event: The Chain Road'>>
<<goto 'Car explore event - The Chain Road'>>
<<script>>Dialog.close();<</script>>
<</link>>
<<set _teachers = setup.filterNPCs($guests, {'skills_inc': ['teacher'], 'gender':0})[0]>>
<<set _linkName = 'Event: Teaching outside'>>
<<if !(_teachers ?? []).length>>
<<set _linkName += ' (Will add guest with teacher skill)'>>
<</if>>
<<link _linkName>>
<<if !(_teachers ?? []).length>>
<<newgirl>>
<<run $tmpGirl.skills.push('teacher')>>
<<run $guests.push($tmpGirl)>>
<</if>>
<<goto 'Event - Youth district - teaching outside'>>
<<script>>Dialog.close();<</script>>
<</link>>
</fieldset>
<</if>>
</div>
<style>
.cheatmenu .link-internal.macro-link {
display:block;
padding-left: 20px;
}
</style><div id="credits">
<h1>Writing contributions by:</h1>
<h2>NoMaybe</h2>
<ul>
<li>Explore event: Waterfall</li>
<li>First slave visit in basement</li>
</ul>
<h2>Arkan Ascantii</h2>
<ul>
<li>Explore event: Abandoned mall</li>
</ul>
</div><center>
[img[setup.ImagePath+'game/misc/death.png']]
<br /><br />
You died because of <strong><<print $game.death_reason>></strong>
</center><<set
window.GameDays to [
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
];
window.GameMonths to [
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
];
$gameDate to new Date(2022, 11, 4, 8, 0);
$startDate to new Date(2022, 11, 4, 8, 0);
>>
<<widget "addmins">>
<<run $gameDate.setMinutes($gameDate.getMinutes() + $args[0])>>
<</widget>>
<<widget "addhours">>
<<run $gameDate.setHours($gameDate.getHours() + $args[0])>>
<</widget>>
<<widget "adddays">>
<<run $gameDate.setHours($gameDate.getHours() + $args[0] * 24)>>
<</widget>>
<<widget "date">>
<<print String.format("{0} {1} {2}, {3}",
GameDays[$gameDate.getDay()],
GameMonths[$gameDate.getMonth()],
$gameDate.getDate(),
$gameDate.getFullYear()
)>>
<</widget>>
<<widget "timeDay">>
<<print String.format("{0}",
GameDays[$gameDate.getDay()]
)>><</widget>>
<<widget "time12hr">>
<<if $gameDate.getHours() eq 0>>
12
<<elseif $gameDate.getHours() gt 12>>
<<print $gameDate.getHours() - 12>>
<<else>>
<<print $gameDate.getHours()>>
<</if>>:
<<if $gameDate.getMinutes() lt 10>>0<</if>><<print $gameDate.getMinutes()>>
<<if $gameDate.getHours() gte 12>>PM<<else>>AM<</if>>
<</widget>>
<<widget "time24hr">>
<<if $gameDate.getHours() lt 10>>0<</if>><<print $gameDate.getHours()>>:<<if $gameDate.getMinutes() lt 10>>0<</if>><<print $gameDate.getMinutes()>>
<</widget>>
<<widget "datetime">><<date>> <<time12hr>> (<<time24hr>>)<</widget>>This game is a combination of a little storytelling and the rest is sandbox.<br/>
Follow the story and do the quests to unlock places in game and important characters etc.<br/>
<br/>
Most importantly, it's a sexual game. (-; So gather your harem and shag everyone... ;-) Have fun!<br/>
<br/>
<<linkdesc>>(By the way, story and gameplay is intertwined so mistakes will be made. Also this guide needs reformating, rewording and other re- but most of the information is there.)<</linkdesc>>
<<set _chanceFCpercent = Math.round(($player.strength - 125 + ($player.fighter_rank ?? 100))*100/26)>>
<<set _chanceFCtext = _chanceFCpercent <= 0 ? 'none!' : _chanceFCpercent >=100 ? 'auto!' : _chanceFCpercent + '%'>>
<<set _closed = {
dom: ($characters.dom.quests?.invite && !$characters.dom.quests?.accepted_deal),
}>>
<<set _done = {
vincent: $player?.car?.explore,
blair: $characters?.blair?.quests?.basement,
rodger: $characters.rodger?.quests?.eve_pregnant,
eve: $characters.rodger?.quests?.eve_pregnant,
octavia: $characters.octavia?.quests.new_plan3,
dom: ($characters.isabel?.quests?.dom_return || _closed.dom),
isabel: ($characters.isabel?.quests?.dom_return || _closed.dom),
negan: ($characters?.negan?.quests?.quest5 ?? false),
laura: ($characters?.laura?.quests?.breeder_trait ?? false),
boris: $characters.boris?.quests?.fight2,
}>>
<<run console.log(_done)>>
<<set _doneSome = _done.vincent || _done.blair || _done.rodger || _done.eve || _done.octavia || _done.dom || _closed.dom || _done.isabel || _done.negan || _done.laura || _done.boris>>
<<set _doneAll = _done.vincent && _done.blair && _done.rodger && _done.eve && _done.octavia && (_done.dom || _closed.dom) && _done.isabel && _done.negan && _done.laura && _done.boris>>
<<set _helpguide = {
max_energy: {
show: $player.maxEnergy < 140 && ($game.location?.underground || $game.location?.hottub),
done: $player.maxEnergy >= 140,
category: 'Hint',
title: 'Energy',
description: ($player.maxEnergy < 140
? 'Raise max energy and do more things in a day<ul>' +
'<li>' + (!($game.location.underground ?? false) ? 'Find Underground city → ' : '') +
'Have 30 caps; Visit Underground fight cage; exercise; accept drug deal</li>' +
'<li>' + (!($game.location.hottub ?? false) ? 'Build a hot tub next to your bathhouse → ' : '') +
'Relax in your hot tub for a chance of raising max energy</li>' +
'</ul>'
: '<s>Maximium of max energy reached (140)</s>'),
},
recover_energy: {
show: true,
done: false,
category: 'Hint',
title: 'Energy',
description: 'Recover energy and do more things in a day; take a shower, take a nap & take a relaxing bath in the hot tub.<br/>Use the day to the fullest. Low on energy but have time? Go exploring! Have energy but little time? Find tasks to do!',
/* details: bedroom with maid +40, 1 h; bedroom without maid +20, 1 h; hot shower +20, ½ h; cold shower +10 ½ h; hot tub +10, ½ h but infinite use */
},
strength_endurance : {
show: $player.strength < 100 && $player.endurance < 50 && $game.location?.underground,
done: $player.strength >= 100 || $player.endurance >= 50,
category: 'Hint',
title: 'Strength & endurance',
description:
$player.strength >= 100 || $player.endurance >= 50
? '<s>You can\'t train strength or endurance by exercising at the Underground fight cage any more.</s>'
: $player.strength < 100 && $player.endurance < 50
? 'You can train both strength endurance simultaneously by exercising at the Underground fight cage'
: 'Training possible by exercising at Underground fight cage',
},
strength : {
show: $player.strength < 300,
done: $player.strength >= 300,
category: 'Hint',
title: 'Strength',
description: 'You can increase your strength by:<ul>' +
($player.strength < 100 && $game.location?.underground ? '<li>exercising at the Underground fight cage (+2)</li>' : '') +
($player.strength < 100 ? '<li>working out together with one of your settlers</li>' : '<li><s>Workout with settlers</s></li>') +
($player.strength < 100 ? '<li>winning (random) fights</li>' : '<li><s>(random) fights</s></li>') +
($player.strength < 50 ? '<li>training strength by the fireplace at your home</li>' : '<li><s>Fireplace training</s></li>') +
($game.location?.underground ? '<li>fighting at the Underground fight cage. Approximate chance to win: ' + _chanceFCtext +' </li>' : '') +
'<li>and some very few random events - if you are lucky to get them</li>' +
'</ul>' +
( $player.strength >= 300 ? 'You might be one of the strongest <strong>monsters</strong> in this part of the world (With the exception of the travelling teacher of course). One punch equals one enemy down.' :
$player.strength >= 200 ? 'You can stand your ground in a fight. One stab (or two if the enemy has body armor) with the knife downs one enemy.' :
$player.strength >= 150 ? 'You can probably beat Negan in arm wrestling. If you can get him to accept such challenge.' :
$player.strength >= 100 ? 'You are stronger than many enemies you can fight with. A good set of companions might come in handy when there is many of them.' :
$player.strength >= 50 ? 'Try fighting in the fight cage. You might even win!' :
'You are a weakling! Try to avoid strong winds and other dangers like angry girls or quicksand...'),
/* negan 150, octavia 100, beak humans, waterfall 50..100; base attack, randomInteger(40, 70) */
},
endurance: {
show: $player.endurance < 1000,
done: $player.endurance >= 1000,
category: 'Hint',
title: 'Endurance',
description: 'You can increase your endurance by:<ul>' +
(!$game.location?.underground ? ''
: ($player.endurance < 50 ? '<li>exercising at the Underground fight cage</li>' : '<li><s>Fight cage exercise</s></li>')) +
'<li>training endurance by the fireplace at your home</li>' +
'</ul>',
},
intelligence: {
show: $characters.rodger?.quests?.book || ($game.location.library ?? false),
done: $player.int > 100,
category: 'Hint',
title: 'Intelligence',
description:
'<ul><li>Read a book in your library. ' +
(!$backpack.has('blueprint_library')
? 'But first you have to go exploring to find a blueprint for it, and then you have to build it. '
: !($game.location.library ?? false) ? 'After you have built it! ' : '') + 'Find books to read.</li>' +
'<li>' + ($player.int < 60
? (!$player?.quests?.teacher_killed
? 'If you find a lone traveller when exploring be nice to him. He might be a teacher full of knowledge!'
: '<s>You have killed the lone travelling teacher</s>')
: '<s>Done with the lone travelling teacher</s>') + '</li>' +
'<li>' + ($player.int < 50
? 'Visit settlement church and read the <strong>Book of Knowledge</strong> and gain a point of intelligence. ' +
(!($characters.rodger?.quests?.book ?? false) ? '(Do quests for Rodger first!)' : '')
: '<s>Reading book in settlement church.</s>') + '</li>' +
'<li>Some random explore events can also give you points.</li>' +
'</ul>',
},
reputation: {
show: true,
done: $player.reputation >= 100,
category: 'Hint',
title: 'Reputation',
description: 'Gained and lost by doing stuff, too many to list. Mostly gained by winning fights and buying round of beers.',
},
goodwill: {
show: false,
done: true,
category: 'Hint',
title: 'Goodwill',
description: '<span style="color: yellow">Not used (yet)!</span> This is how nice person you appears to be. Gained by doing good deeds, sparing enemys, helping people etc. and lost doing the opposite.',
},
reputation_bounty: {
show: $game.location?.bar,
done: $player.reputation_bounty_hunter >= 20,
category: 'Hint',
title: 'Bounty hunter reputation',
description: 'Your reputation within the bounty hunter community. Gained by turn-ins and lost if you don\'t follow the the BH code. Your bounty reward increases with this rep.',
},
find_workbench: {
show: !$game.location?.workbench && $game.location?.farm,
done: $game.location?.workbench,
category: 'Gameplay',
title: 'Home improvement',
description: ($game.location?.workbench ?? false) ? 'You have the <span style="color: green">workbench</span>!' :
'From day 5 you have a chance to find a workbench when exploring. This important item will allow you to improve your base and build items',
},
randomm_fight: {
show: true,
done: false,
category: 'Gameplay',
title: 'Guide to fine fighting!',
description: 'All the random fights follow the same pattern: First you attack, then your allies and lastly the enemies attack either you or one of your allies. If both sides have people standing repeat until we have a winning side.<br/>Wepons and protection avaiable:<dl>' +
'<dt>Hands</dt><dd></dd>' +
'<dt>Knife</dt><dd>Does more damage than empty hands, Knifes have a chance to break.</dd>' +
'<dt>Body armo</dt><dd>Body armor halves knife damage</dd>' +
'<dt>Crossbow</dt><dd>Does the most damage of alll weapons. Chance of killing the target.</dd>' +
'<dt>Revolver</dt><dd>(Hero only) One hit - one kill!</dd>' +
'<dt>Endurance</dt><dd>(Hero only) Reduces damage from enemies.</dd>' +
'</dl>',
},
buildings_workbench: {
show: $game.location.workbench,
done: $game.location.greenhouse && $game.location.basement && $basementLimit >= 30 && $game.location.guesthouse && $guesthouseLimit >= 25 && $game.location.lab && $game.location.nursery && $game.location.shop && $game.location.bathhouse,
category: 'Gameplay',
title: 'Home buildings',
description: 'Buildings buildable in workbench: ' +
(!$game.location.greenhouse ? 'Greenhouse' : '<span style="color: green">Greenhouse</span> done') + ', ' +
(!$game.location.basement ? 'Basement' : $basementLimit < 30 ? '+' + (30-$basementLimit) + ' <span style="color: yellow">Slave cells</span>' : '<span style="color: green">Basement fully built</span>') + ', ' +
(!$game.location.guesthouse ? 'Guesthouse' : $guesthouseLimit < 25 ? '+' + (25-$guesthouseLimit) + ' <span style="color: yellow">Guest beds</span>' : !$game.location.lab ? 'Laboratory in guesthouse' : '<span style="color: green">Guesthouse & lab fully built</span>') + ', ' +
(!$game.location.nursery ? 'Nursery' : '<span style="color: green">Nursery</span> done' ) + ', ' +
($game.location.shop ? 'Shop' : '<span style="color: green">Shop</span> done') + ', ' +
($game.location.bathhouse ? 'Bathhouse' : '<span style="color: green">Bathhouse</span> done') +
/* gate */
'',
},
girl_in_cage: {
show: $game.location?.farm,
done: $characters.vincent?.talked_about_girl,
category: 'Gameplay',
title: 'Girl in cage',
description: 'From day 5 you can ask Vincent about the strange girl in the cage. You get a little background history of the world and permission to have fun with her (for a small fee). Her name is Rose by the way!',
},
find_hot_shower: {
show: $game.location?.farm,
done: $game.hotShower,
category: 'Gameplay',
title: 'Home improvement',
description: ($game.hotShower ?? false) ? 'You have the <span style="color: green">hot shower</span>!' :
$backpack.has('blueprint_hot_shower') ? 'You have the blueprint for <span style="color: yellow">hot shower</span>! Build it with workbench.' +
(($game.location?.workbench ?? false) ? '' : ' (After you found workbench.)') :
'From day 10 you have a chance to find a blueprint for a hot shower when exploring. Hot showers recovers more energy than cold showers',
},
blueprints: {
show: $game.location?.workbench || $player.quests?.base_building,
done: $backpack.hasAll('blueprint_hot_shower','blueprint_hot_tub', 'blueprint_library') && ($game.hotShower ?? false) && ($game.location.hottub ?? false) && ($game.location.library ?? false) && ($game.location.hospital ?? false),
category: 'Gameplay',
title: 'Blueprints for home & base improvement',
description:
'<dl>' +
(!$backpack.has('blueprint_hot_shower')
? '<dt>Hot shower</dt><dd>From day 10 you have a chance to find the blueprint for a hot shower when exploring. Hot showers recovers more energy than cold showers.</dd>'
: (!($game.hotShower ?? false) ? '<dt>Hot shower</dt><dd>Have blueprint so build at your leisure.</dd>' : '<dt>Built <s>Hot shower</s></dt>' )) +
(!$backpack.has('blueprint_hot_tub')
? '<dt>Hot tub</dt><dd>Visit bathhouse and the guests may suggest a hot tub. </dd>'
: (!($game.location.hottub ?? false) ? 'Have blueprint, build in workbench</dd>' : '<dt><s>Hot tub</s></dt>')) +
(!$backpack.has('blueprint_library')
? '<dt>Library</dt><dd>Go exploring for a chance to find the blueprint. </dd>'
: (!($game.location.library ?? false) ? '<dt>Library</dt><dd>Have blueprint, build away. </dd>' : '<dt>Built <s>Library</s></dt>')) +
(!$backpack.has('blueprint_hospital') && !($game.location.hospital ?? false)
? '<dt>Hospital</dt><dd>Go exploring for a chance to find the blueprint. </dd>'
: (!($game.location.hospital ?? false) ? '<dt>Hospital</dt><dd>Have blueprint, build it. </dd>' : '<dt>Built <s>Hospital</s></dt>')) +
'</dl>',
},
first_pregnancy: {
show: !$characters.vincent?.quests?.pregnancy_talked && $characters.vincent?.quests?.pregnancy,
done: $characters.vincent?.quests?.pregnancy_talked,
category: 'Gameplay',
title: 'First pregnancy',
description: 'Plant your seed and make a woman pregnant (slave, guest or important woman). Vincent will tell you how to terminate unwanted pregnancies and provide the means to do it.',
},
find_book : {
show: !$characters.rodger?.quests?.book && $game.location?.settlement_church,
done: $characters.rodger?.quests?.book,
category: 'Gameplay',
title: 'Book of Knowledge',
description: 'Visit settlement church; Talk with Rodger; He might ask you to go find the <strong>Book of Knowledge</strong>.',
},
blair_wedding : {
show: !$characters.vincent?.quests?.wedding_talk && $characters.vincent?.quests?.car_talk,
done: ($characters.vincent?.quests?.wedding_talk_day + 10) <= $game.day || $characters.blair.quests?.married,
category: 'Gameplay',
title: 'Wedding with Blair perhaps?',
description: 'Work on your relation with Blair. Increase relation(90) by talking with her, kissing her, (dating her) and even fucking her. You find her in your kitchen in the mornings, working on her father\'s farm in the days and in your bedroom at nights.<br/>' +
'After spending a long time with her, Vincent wants you to make her an honorable woman. Visit Vincent after day 150 and talk about wedding plans.' +
'If you want you can marry Blair or choose not to. Don\'t worry - you can have as many or few wives as you want. <div class="tooltip">By the way, do you know the similarity between wives and birds?<span class="tooltiptext">Both can be ringed...</span></div>' +
'',
},
basement_fun: {
show: !$characters.blair?.quests?.basement && $game?.cabinName,
done: $characters.blair?.quests?.basement,
category: 'Gameplay',
title: 'Basement fun',
description:
(!$characters.blair.quests?.basement ?
($characters.blair.relationship < 80 ? 'Raise relationship with Blaire (80)' : '<s>Blair relations done!</s>') +
'Talk with her in the bedroom for a reward' :
'<s>Have fun with Blair in the basement</s>'),
},
find_forest: {
show: !$game.location?.forest,
done: $game.location?.forest,
category: 'Story',
title: 'Explore - find forest',
description: 'Explore for the first time and find the forest. There you can find food and wood',
},
find_vincent: {
show: !$game.location?.farm && $game.location?.forest,
done: $game.location?.farm,
category: 'Story',
title: 'Explore - find neighbour',
description: "Explore for the second time and find Vincent's farm. He is important and involved in many of the quests and putting locations on the map.",
},
vincent_buy: {
show: !isMetChar('blair') && $game.location?.farm,
done: isMetChar('blair'),
category: 'Story',
title: 'Meet Blair',
description: 'Follow Vincent questline, that is buy from his shop. Meet his daughter Blair',
},
vincent_delivery: {
show: !$characters.vincent?.delivery && $game.location?.farm,
done: $characters.vincent?.delivery_done,
category: 'Story',
title: 'Doing a milk-run',
description: 'From day 10 Vincent wants you to deliver milk to underground city. Go visit underground and then back to farm.',
},
blair_wanted: {
show: isMetChar('blair'),
done: $characters.vincent?.wanted_poster,
category: 'Story',
title: 'A girl wanted',
description: 'A few days (3) after meting Blair visit Underground; discover streets; find Blair on wanted poster; tell Vincent back at farm; and Blair will be sleeping at your place',
},
blair_befriend: {
show: $characters.blair.relationship < 20 && $characters.vincent?.wanted_poster,
done: $characters.blair.relationship >= 20,
category: 'Story',
title: 'Making friends',
description: 'Befriend blair; follow journal - Increase relationship by talking to her in kitchen or bedroom (20)',
},
blair_save_ashley: {
show: $characters.blair.relationship >= 20 && !$characters.blair?.quests?.bj_day,
done: $characters.blair?.quests?.bj_day,
category: 'Story',
title: 'A girl in trouble',
description:
'<span style="color: red">Warning: Timed event in this questline!</span> But it is one of only two ways to get a gun in the game' +
'<ul>' +
'<li>In the morning talk to Blair in the kitchen; Goto underground - bar</li>' +
'<li>Talk to the bartender. <span style="color: red">Warning: You have only a few days to find Ashley alive once you talked to the bartender.</span></li>' +
'<li>Between 22:00 and midnight patrol the streets looking for Ashley. Start directly after you have talked to the bartender. Patrol means: visit streets; leave; repeat until Ashley is found</li>' +
'<li>In the morning talk to Blair in the kitchen; Get <strong class="iitem">revolver</strong> if you saved Ashley; Talk to Blair in bedroom at night either way.</li>' +
'<li>It may take a few days but eventually Blair will give you a morning bj.</li>' +
'</ul>',
},
vincent_settlement: {
show: $characters.blair.quests?.bj && $characters.blair.quests?.bj_day,
done: $game.location?.settlement_church,
category: 'Story',
title: 'Church',
description:
'A few days (3) after Blaire\'s morning bj visit the farm and talk to Vincent. For a bonus: Vincent will be impressed if you bring him <strong class="iitem">100 wood</strong> and <strong class="iitem">5 solar panels</strong>. Mind reading?<br/>' +
'Collect the materials wanted in journal and bring to Vincent.<br/>' +
'Settlement discovered and you meet Rodger and Eve. It seems that Vincent want you to build a church and you "volunteered" the material and time.<br/>' +
'Continue visiting the settlement and building the church. Don\'t forget to bring lots of building material. You will need an additional total of <strong class="iitem">100 wood</strong> and <strong class="iitem">5 rope</strong> to complete the church.<br/>' +
'Octavia shows up and interrupts the celebration. You can fight her four guys if you want.',
},
first_party: {
show: $game.location?.settlement_church,
done: $characters.eve.quests.sex && $characters.blair.quests?.house_party_finished,
category: 'Story',
title: 'Party time with bubbles',
description:
(!$characters.rodger.quests?.champagne ? 'Visit settlement church and talk with Rodger; He might ask you to look for wine in an old tavern in the city. Gets <span class="iitem">champagne</span>' : '<s>First chammpagne-run</s>') + '<br/>' +
( $characters.rodger.quests?.champagne ? 'After you have built the cabin, you can go on anther champagne-run with Eve every few weeks.' : '') + '<br/>' +
(!$characters.blair.quests?.house_party ? 'In the morning, talk to Blair in the kitchen. She has ideas what to do with the bubbles. <br/>' : '<s>Morning talk</s>') + '<br/>' +
(!$characters.blair.quests?.house_party_finished ? 'In the evening, throw a houseparty at the fire place. Invite any guest to your bedroom for after party fun. You will need <span class="iitem">20 food</span> and <span class="ittem">1 champagne</span>.' : '<s>First house party</s>') + '<br/>' +
( $characters.blair.quests?.house_party_finished ? 'You can now hold house partys' : ''),
},
making_community: {
show: !$characters.blair.quests?.gate && $characters.blair.quests?.house_party_finished,
done: $characters.vincent?.quests?.car_talk,
category: 'Story',
title: 'Making a community',
description: 'After the first house party we quickly move on to the next adventure 8-|.<ul>' +
'<li>It all starts with you having a chat with Blair in the morning. Being a good(?) daughter she wants you to fulfill one of her father\'s old dreaams. A dream he since then abandoned.</li>' +
'<li>Use your workbench to build a <strong>Settlement gate</strong>.' + (!$game.location?.workbench ? 'But first you have to go exploring until you find a workbench!' : '') + '</li>' +
'<li>Visit Vincent at his farm. He has very strong opinions about this project.</li>' +
'</ul>',
},
sanctuary_reconnaissance: {
show: $characters.vincent?.quests?.wedding_talk,
done: $characters.vincent?.quests?.sanctuary_done,
category: 'Story',
title: 'Reconnaissance',
description: 'Ten days after you have discussed the wedding plans, Vincent opens up and want to talk about <strong>The Sancturary</strong>. He is clearly obsessed with that place!<br/>' +
'Prepare your party; You can bring two and only two companions, both with strength at least 40; Follow Vincent and spy on that place (and fail)',
},
home_shopping: {
show: !$game.location?.shop && !$characters.vincent?.quests?.shop_talk && $characters.vincent?.quests?.sanctuary_done,
done: $game.location?.shop,
category: 'Story',
title: 'Home shopping',
description: 'Vincent suggests that you build a small shop in your place.<br/>' +
'Use your workbench to build the <strong>Shop</strong>.' + ($game.location?.workbench ? '' : 'But first you have to go exploring until you find a workbench!'),
},
sanctuary_infiltration: {
show: !$characters.vincent?.quests?.sanctuary_car_talk && $characters.vincent?.quests?.shop_talk && $game.location?.shop,
done: $game.location?.garage,
category: 'Story',
title: 'Infiltration',
description: 'Vincent have found a way to get into the sanctuary.' +
'Prepare your party for the Sanctuary visit; You can bring four and only four companions. <span style="color: red">Warning: All companions will die!</span>',
},
car: {
show: !$player.car?.explore && $game.location?.garage,
done: $player.car?.explore,
category: 'Story',
title: 'Testing car',
description: 'Collect car parts and fuel and repair the wreck in the garage; Vincent will show up for the testrun',
},
nursery: {
show: !$characters.blair.quests?.nursery && $game?.cabinName,
done: $game.location?.nursery,
category: 'Story',
title: 'Nursery',
description:
(!$characters.blair.quests?.nursery ? 'Talk with Blair in the kitchen. She want you to build a nursery for the children.<br>' : '<s>Talked with Blair!</s> ') + '<br/>' +
(!$game.location?.nursery ? 'Use your workbench and build the nursery' : '<s>Nursery built!</s>'),
},
settlement_shop: {
show: !$game.location?.settlement_shop && $game?.cabinName,
done: $game.location?.settlement_shop,
category: 'Story',
title: 'A shop for the settlement',
description:
(!$characters.rodger.quests?.shop_talk ? 'Rodger wants you to build a shop in his little settlement<br/>Visit main square and build shop.' : '<s>Talked with Rodger about shop!</s><br/>' +
(!$game.location?.settlement_shop ? 'Visit the settlement\'s main square and build the shop.' : '<s>Built Settlement shop!</s>')),
},
horse: {
show: !$characters.rodger.quests?.horse && $game.location?.settlement_shop,
done: $player?.horse,
category: 'Story',
title: 'Horse',
description:
(!$characters.rodger.quests?.horse ? 'Rodger tells you that a person called Harper might have a horse to sell. Go find him.<br/>' : '<s>Harper visited!</s><br/>') +
(!$player?.horse ? 'Barnaby, the horse traveling merchant comes by your place now and then if you don\'t get the horse from Harper, give it to Rodger or loose it somehow.' : '<s>My horse, ' + $player?.horse + '!</s>'),
},
burn_settlement: {
show: isMetChar('octavia') && $game.location?.settlement,
done: $characters.octavia?.quests?.burned_settlement,
category: 'Story',
title: 'Settlement on fire',
description:
($game.day < 80 ? 'From day 80 there is a chance you find something burning in the settlement.<br/>' : '') +
(!$characters.octavia?.quests.burned_settlement ? 'Octavia is burning the settlement! Resolve the situation.' : '<s>Octavia tried to burn the settlement.</s>' ),
},
eve_kidnapped: {
show: $characters.octavia?.quests?.burned_settlement,
done: $characters.octavia?.quests?.canTalk ,
category: 'Story',
title: 'Eve kidnapped',
description: 'A few days (5) after the burning, visit the Settlement and find that Octavia has misbehaved again. This time Eve has ben taken. Resolve the situation.',
},
octavia_rivals: {
show: $characters.octavia?.quests.eve_kidnapped,
done: $characters.octavia?.quests.kidnapped_found,
category: 'Story',
title: 'Octavia and her rivals',
description: 'Octavia has set up camp next to the settlement. Visit her!<br>' +
($characters.octavia.relationship < 40 ? 'Octavia wants wolf pelts for her tribe. Give pelts and raise her relations to 40. <span style="color: yellow">Tip!</span> Give her 3 wolf pelts at a time for the most action.' : 'You can continue to give Octavia 3 wolf pelts at a time for fun if you want.') + '<br/>' +
(!$characters.octavia?.quests.ultimatum ? 'A messenger from a rival tribe gives Octavia an ultimatum. She asks you for advice!' : '<s>Rival tribe ultimatum</s>') + '<br/>' +
($characters.octavia.relationship < 60 ? 'Octavia wants medallions carried by high-level members of the rival tribe. You can encounter groups from the rival tribe by going exploring' : 'You can continue to give Octavia medallions for fun if you want.') + '<br/>' +
(!$characters.octavia?.quests.kidnapped_found ?
'A mountain tribe has attacked the camp and taken Octavia.<br/>' +
($backpack.count('tribe_medallion') < 3 ? 'Weaken the oppositon - Get more tribe medallions (3)' : '<s>Have weakened the opposition</s>') +
'<span style="color: red">Warning: Hard fight with many enemies (with knives)!</span> Before rescuing her make sure you have trained your strength and endurance really hard. Bring maximium number of fighting companions. The stronger the better' :
'<s>Octavia kidnapped and rescued.</s>'),
},
faith: {
show: $characters.rodger?.quests?.horse && $characters.octavia?.quests.eve_kidnapped,
done: $characters.rodger?.quests?.faith,
category: 'Story',
title: 'Testing of the Faith',
description:
'Vist the settlement. Some bandits have blocked the water supply. Fix!',
},
more_octavia: {
show: $characters.octavia?.quests?.kidnapped_found,
done: $characters.octavia?.quests.new_plan3,
category: 'Story',
title: 'More of Octavia',
description:
($characters.octavia.quests.kidnapped_found && !$characters.octavia.quests.betrayal ?
($characters.octavia.quests.kidnapped_found_day + 5 >= $game.day?
'Wait ' + ($characters.octavia.quests.kidnapped_found_day + 5-$game.day+1) + ' more days' :
'Octavia visits your cabin with bad news. Help her investigate the posioning of the water source') : '') +
($characters.octavia.quests.betrayal && !$characters.octavia.quests.betrayal2 ?
($characters.octavia.quests.betrayal_day + 3 >= $game.day?
'Wait ' + ($characters.octavia.quests.betrayal_day + 3-$game.day+1) + ' more days' :
'Octavia visits your cabin. Help her investigate Blackthorn camp') : '') +
($characters.octavia.quests.betrayal2 && !$characters.octavia.quests.next_move ?
($characters.octavia.quests.betrayal2_day + 3 >= $game.day?
'Wait ' + ($characters.octavia.quests.betrayal2_day + 3-$game.day+1) + ' more days' :
'Octavia visits your cabin. Help her') : '') +
($characters.octavia.quests.next_move && !$characters.octavia.quests.new_plan ?
($characters.octavia.quests.next_move_day + 5 >= $game.day?
'Wait ' + ($characters.octavia.quests.next_move_day +5 -$game.day+1) + ' more days' :
'After all bad things that have happened Octavia moves in to your guesthouse. Visit her in her room') : '') +
($characters.octavia.quests.new_plan && !$characters.octavia.quests.new_plan2 ?
'Prepare for battle. Have maximium allowed fighting companions (8). Equip them as good as pssible. Visit Octavia in her room and join her.' : '') +
($characters.octavia.quests.new_plan2 && !$characters.octavia.quests.new_plan3 ?
($characters.octavia.quests.new_plan2_day + 0 >= $game.day?
'Visit Octavia tomorrow' :
'Visit Octavia in her room and go with her to investigate the last lead. <strong style="color:yellow">[</strong>To be continued!<strong style="color:yellow">]</strong>') : '') + '' +
($characters.octavia.quests.new_plan3 ?
'<strong style="color:yellow">[</strong>To be continued!<strong style="color:yellow">]</strong>' : '')
},
happy_eve: {
show: $characters.rodger.quests?.champagne,
done: $characters.rodger.quests?.eve_pregnant,
category: 'Story',
title: 'Eve and <s>Snake in paradise</s> ' + $player.name,
description:
(!$characters.rodger.quests?.champagne ? 'Visit Rodger in his church and go on a champagne-run.<br/>' :
'<span style="color: green"><s>Normal champagne-run done!</s></span><br/>') +
(!$game?.cabinName ? 'Follow Blair\'s quests and build a gate and choose a flag.<br>' :
'<span style="color: green"><s>Have gate!</s></span><br/>') +
(!$characters.eve.quests?.sex ? 'Visit Rodger for another (but a little special) champagne-run.<br/>' :
'<span style="color: green"><s>Special champagne-run done!</s></span><br/>') +
( $characters.eve.corruption < 30 ? 'Corrupt Eve more {' + (30-($characters.eve.corruption ?? 0)) + ' steps} (Misbehave=Masturbate in church {have horny 50+}, champagne-runs or rather sex-runs with Eve)<br/>' :
'<span style="color: green"><s>Innocent Eve corrupted enough!</s></span><br/>') +
( $game.day < 120 ? 'Do other stuff until after game day 120.<br/>' :
'<span style="color: green"><s>Waiting, no more!</s></span><br/>') +
( $characters.eve.quests?.sex && $characters.eve.corruption >= 30 && $game.day >= 120 ?
(!$characters.rodger.quests?.cheat ? 'Rodger sends you and Eve to a ruined library in search of a book with answers about the apocalypse!' :
'<span style="color: green"><s>Found something!</s></span><br/>') :
'<span style="color: yellow">Do all the things above before the ruined library</span><br/>') +
( $characters.rodger.quests?.cheat ?
(!$characters.rodger.quests.eve_pregnant ?
($characters.rodger.quests.cheat_day + 14 >= $game.day ?
'Wait for ' + ($characters.rodger.quests.cheat_day+14-$game.day+1) + ' more days' : 'Visit settlement. Eve have news!' ) :
'<span style="color: green"><s>Mission completed!</s></span>') :
'<span style="color: yellow">...</span><br/>'),
},
dom_taxes: {
show: $game.location?.streets,
done: $warnedAboutStreetHookers,
category: 'Story',
title: 'Dom and taxes',
description:
'Assign at least one worker to work the streets. Visit the Underground streets. Dom will inform you of the tax rules.' +
'If you don\'t want streetworkers you can remove them after the briefing.',
},
dom_invite: {
show: $warnedAboutStreetHookers,
done: $characters.dom?.quests?.invite,
category: 'Story',
title: 'An invitation from Dom',
description: 'Dom will invite you to a meeting if you impress him. To do this you have to do:<ul>' +
'<li>' + ($game.day < 100 ? 'Wait untill day 100 (as a trial period)' : '<s>Trial period over.</s>') + '</li>' +
'<li>' + ($player.reputation < 100 ? 'Have 100 reputation to be respected.' : '<s>Being respected in various communities.</s>') + '</li>' +
'<li>' + ((setup.getPersonsForLocation($slaves, 'streets').length + setup.getPersonsForLocation($guests, 'streets').length) < 4 ? 'Have at least four persons working the streets. If you don\' want street workers you can remove them after meeting Dom.' : '<s>4+ streetworkers</s>') + '</li>' +
'<li>' + (!($characters.dom?.quests?.invite ?? false) ?
'Visit the underground streets. Dom want to talk to you and invites you to his place. He suggests a better deal than before. Lower tax and better protection for your streetworkers if you are willing to do some odd jobs for him now and then.<br>' +
'<span style="color: red">Warning! Important choice!</span> <span style="color: yellow">Rejecting the deal ends the Dom & Isabel quest lines.</span> <span style="color: green">Accepting the deal continues them.</span>'
: '<s>Have been invited to Dom\'s place.</s>') + '</li>' +
'</ul>',
},
dom_champagne: {
show: $characters.dom?.quests?.invite,
done: $characters.dom.quests?.quest1_done || _closed.dom,
category: 'Story',
title: 'Bubbles for Dom',
description:
(($characters.dom.quests.day + 10) >= $game.day ? '10 days after accepting the deal Dom have the first quest for you. ' : 'Dom first quest: ') +
(!$characters.dom.quests?.quest1 ? 'Visit Underground streets and meet Dom. ' : '<s>Have met Dom.</s> ') +
(!$characters.dom.quests?.quest1_done ?
($backpack.count('champagne') < 10 ? 'He wants <strong class="iitem">10 bottles of champagne</strong>. ' : '<s>Have champagne!</s> ') +
'Bring the bubbles to him (streets)' : '<s>Brought bubbles</s>'),
},
dom_employee: {
show: $characters.dom.quests?.quest1_done,
done: $characters.dom.quests?.quest2_done || _closed.dom,
category: 'Story',
title: 'Punishment for emplyee',
description:
($player.strength < 100 ? 'Increase your strength (100+). ' : '<s>Enough strength! </s> ') +
(!$characters.dom.quests?.quest2 ?
('Meet Dom in the streets (as usual). He is angry on an employee and want her "punished". Go visit her. Free choice to follow order to punish or not follow order.<br/>' +
'If you follow order Dom will be pleased and Isabel unhappy but if you don\'t Dom will be very angry with you and Isabel happy.') :
('<s>Have met Dom. ' + ($characters.dom.quests?.quest2_killed ? 'Punished' : 'Didn\'t punish') + ' employee!</s>')),
},
dom_fuel: {
show: $characters.dom.quests?.quest2_done,
done: $characters.dom.quests?.quest3_done || _closed.dom,
category: 'Story',
title: 'Diplomacy for fuel to the city',
description: 'A week or two after the inccident meet Dom in the streets (as usual).He is in need of you. The underground is near a fuel crisis and the diplomatic envoy from a trading partner hasn\'t showed up as expected. Follow Dom and his entourage to the trading partner.',
},
isabel_try: {
show: $characters.dom.quests?.quest3_done,
done: $characters.dom.quests?.quest4_done_day|| _closed.dom,
category: 'Story',
title: 'Isabel\'s turn for fuel',
description: 'Ten days after the last attempt to get fuel to city meet up with Isabel in the nightclub. She know someone that runs an old oil and gas refinery. The only transport available is a bike with sidecar so you have to leave your companions behind at your home. Enjoy your solo adventure with Isabel.<br/>' +
'<<linkdesc>>(You have an option to use stealth in this quest. Stealth uses intelligence. For best result have a high stat!)><</linkdesc>>',
},
isabel_sanctuary: {
show: $characters.dom.quests?.quest4_done_day,
done: $characters.dom.quests?.quest6 || _closed.dom,
category: 'Story',
title: 'The Sanctuary contact',
description: 'After another ten days meet Isabel in the streets. She has made a deal with the Sanctury and want you to go and do the negoiation.<br/>' +
'You can now visit the Sanctuary. Go there and visit Negan. Depending on choices you might need 400 caps.<br/>' +
'The real price is that Negan wants four blonde girls, very beautiful (80+) for fuel.<br/>' +
'<span style="color: red">Warning: You will loose the four blondes.</span> Have the girls among the companions. If you don\'t have enough blondes you can use hair dye kit. Visit Negan\'s office and deliver the girls.<br/>' +
'(You can now repeat trade <strong class="iitem">2 blonde</strong> for <strong class="iitem">5 fuel</strong> by visiting Negan in his office.)<br/>' +
'Go back to the Underground city where Isabel eagerly awaits the fuel.',
},
isabel_desperation: {
show: $characters.dom.quests?.quest6,
done: $characters.isabel.quests?.temp_home || _closed.dom,
category: 'Story',
title: 'A desperate Isabel',
description: 'The Underground city is in turmoil. The meager deliveries of fuel to the city isn\'t enough. The threat of a fuel crisis and people rioting is immediate!' +
(_closed.dom ? '<br/><span style="color: yellow">These quests is unavailable!</span>' : '<ul>' +
(($characters.dom.quests?.quest6_day + 5) >= $game.day ? '<li>Wait almost a week after giving the 15 fuel to Isabel</li>' : '') +
(!$characters.dom.quests?.isabel_beg ? '<li>Visit the streets. A desperate Isabel begs for 10 fuel for the next time</li>' : '') +
(($characters.dom.quests?.isabel_beg_day + 5) > $game.day ? '<li>Wait another almost a week.</li>' : '') +
(!$characters.dom.quests?.isabel_beg_fuel ? '<li>Have 10 fuel in backpack. Visit the city. Help Isabel. Invite her as a guest.</li>' : '') +
(!$characters.isabel.quests?.temp_home ? '<li>Visit Isabel in your guest house and discuss her temporary new home.' : '') +
'<li>Have fun with Isabel, your new <s>toy</s> guest!</li>' +
'</ul>'),
},
dom_return: {
show: $characters.isabel.quests?.temp_home && !_closed.dom,
done: $characters.isabel.quests?.dom_return || _closed.dom,
category: 'Story',
title: 'Isabel back to Dom',
description:
( _closed.dom ? '<br/><span style="color: yellow">Unavailable!</span>' : '') +
(!_closed.dom ?
($characters.isabel.quests?.temp_home_day ?? 0) + 14 >= $game.day ? 'Wait two weeks for Isabel to settle in her new home.' :
!$characters.isabel.quests?.check_city ? 'Visit Isabel who wants you to check the situation in Underground city' :
!$characters.isabel.quests?.pregnant ?
(!$characters.isabel?.pregnancy ? 'Go on dates with Isabel and shag her until pregnancy' :
$characters.isabel?.pregnancy < 10 ? 'Wait for it!' : 'Visit Isabel and talk about her pregnancy' ) :
($characters.isabel.quests?.pregnant_day + 5) >= $game.day ? 'Wait a couple of days' :
!$characters.isabel.quests?.dom_return ? 'Dom shows up outside your place and takes back Isabel to the Underground' : 'To be continued...' : '')
},
laura_meet: {
show: $game.day >= 150,
done: $characters?.laura?.quests?.lab_workbench ?? false,
category: 'Story',
title: 'Dr. Laura Finch',
description:
'Meet up with Laura:<ul>' +
'<li>' + (!isMetChar('laura') ? ( $game.day < 200 ? 'Wait for day 200; Go exploring.' : 'Go exploring; Encounter toxic rain, find shelter and meet Laura. Give her a sample.' ) : '<s>First meeting with Laura</s>' ) + '</li>' +
'<li>' + ((!$characters?.laura?.quests?.successful_test ?? false) ?
(($characters?.laura?.quests?.metOnDay ?? -1) >= ($game.day - 3) ? 'Three days after the first meeting, ' : '') + 'Laura shows up outside your cabin. Talk with her and give new sample.' : '<s>Second meeting with Laura</s>' ) + '</li>' +
'<li>' + ((!$characters?.laura?.quests?.first_vials ?? false) ?
(($characters?.laura?.quests?.lastTestDay ?? -1) >= ($game.day - 5) ? 'Science takes time. Five days after the last meeting,' : '') + 'Laura shows up outside your cabin. She has good news about her potions.' : '<s>Third meeting with Laura</s>') + '</li>' +
'<li>' + ((!$characters?.laura?.quests?.lab_workbench ?? false) ?
(($characters?.laura?.quests?.lastTestDay ?? -1) >= ($game.day - 7) ? 'All this waiting... A full week after the last meeting,' : '') + 'Laura shows up outside your cabin. Bad news: Raiders have destroyed her lab.' : '<s>Fourth meeting with Laura</s>') + '</li>' +
'</ul>',
},
laura_move: {
show: $characters?.laura?.quests?.lab_workbench ?? false,
done: $characters?.laura?.quests?.breeder_trait ?? false,
category: 'Story',
title: 'Laura moving in',
description:
'Laura settles in at her new lab:<ul>' +
'<li>' + ((!$characters?.laura?.quests?.living ?? false) ?
(!$game.location.workbench ?? false ? 'Explore to find the workbench → ' : '') +
(!$game.location.guest_house ?? false ? 'Build guest house → ' : '') +
(!$game.location.lab ?? false ? 'Build lab → ' : '') + 'Laura shows up outside your cabin, ready to move in.'
: '<s>Laura moved in</s>') + '</li>' +
'<li>' + ((!$characters?.laura?.quests?.breeder_trait ?? false) ?
(($characters?.laura?.quests?.lastTestDay ?? -1) + 20 >= $game.day ? 'Wait for three weeks. ' : '') + 'Meet Laura in the greeenhouse.'
: '<s>Laura invented breeder serum.</s>') + '</li>' +
'</ul>',
},
negan: {
show: $game.location?.slave_market || $characters.dom?.quests?.quest4_done_day,
done: $characters?.negan?.quests?.quest2 ?? false,
category: 'Story',
title: 'Negan and the blondes',
description: 'Find the Sanctuary. You can do this by following the Dom questline or by selling 20 slaves at the Underground slave market. Visit Negan in the Sanctuary<br/>' +
'Negan wants to trade blonde girls, very beautiful (80+) for fuel, either <strong class="iitem">4 blonde</strong> for <strong class="iitem">15 fuel</strong> (Dom questline) or <strong class="iitem">2 blonde</strong> for <strong class="iitem">5 fuel</strong> (selling slaves).<br/>' +
'Thereafter you can repeat trade <strong class="iitem">2 blonde</strong> for <strong class="iitem">5 fuel</strong>.',
},
negan_bad: {
show: ($player.stats?.slaves_sold ?? 0) || $characters?.dom?.quests?.quest5,
done: $characters.negan?.quests?.quest5 || (_closed.dom && $characters?.negan?.quests?.fuel_slaves),
category: 'Story',
title: 'Negan - the bad guy that likes blondes',
description: '<ul>' +
($characters?.dom?.quests?.quest5 && !$characters?.negan?.quests?.quest1 ? '<li>Visit Sanctuary!</li>' : '') +
($characters?.negan?.quests?.quest1 && !$characters.negan.quests?.quest2 ? '<li>Trade Negan 4 blondes in his office!</li>' : '') +
($characters?.negan?.quests?.quest2 && !$characters?.negan?.quests?.fuel_slaves ? '<li>Visit Sanctuary!</li>' : '') +
(!$characters?.negan?.quests?.fuel_slaves && !isMetChar('negan') ? '<li>' +
(($player.stats.slaves_sold ?? 0) <= 20 ? 'Slave sell path: Sell ' + 21-(($player.stats.slaves_sold ?? 0)) + 'slaves in the Underground slave market' : 'Visit sanctuary!' ) + '</li>' : '') +
( $characters?.negan?.quests?.fuel_slaves ? '<li><span style="color: yellow">Repetable trade</span>: Fuel deal for slaves - In his office trade a pair of blonde women with high beauty (80+) for 5x fuel</li>' : '') + '<li>' +
($characters?.negan?.quests?.quest2 && !$characters.negan.quests?.quest3 ?
(($characters.negan.quests?.fuel_slaves_count ?? 0) < 2) ?
'Trade ' + (2-($characters.negan.quests?.fuel_slaves_count ?? 0)) + ' pair of blonde women in his office' : 'Visit office.' : '' ) +
($characters?.negan?.quests?.quest3 && !$characters.negan.quests?.quest4 ?
($game.day <= ($characters.negan.quests.quest3_day + 4) ?
'Wait ' + ($characters.negan.quests.quest3_day + 4-$game.day+1) + ' days' : 'Visit Negan\'s office for a gift') : '' ) +
($characters?.negan?.quests?.quest4 && !$characters.negan.quests?.quest5 ?
($game.day <= ($characters.negan.quests.quest4_day + 7) ?
'Wait ' + ($characters.negan.quests.quest4_day + 7-$game.day+1) + ' days' : 'Visit Negan\'s office for a lower deck experience') : '' ) + '</li></ul>'
},
boris: {
show: $game.location?.underground,
done: $characters.boris?.quests?.fight2,
category: 'Story',
title: 'Boris fight cage',
description:
(!$game.location?.underground ? 'Follow Vincents questline to find the location of the underground city and Boris fight cage.<br/>' :
($player.strength <= 30 ? 'Train your strength to more than 30 before Boris talks to you.<br/>' :
(!isMetChar('boris') ? 'Visit Fight cage and meet Boris' :
( $player.fighter_rank > 80 ?
'Fight in the cage and reach rank' + ( $player.fighter_rank > 95 ? 's 95, 90 & 80' : $player.fighter_rank > 90 ? 's 90 & 80' : ' 80') :
'Feel free to continue to fight and train in the fight cage and gain ranks.'
)
)
)
)
},
all_future: {
show: _doneSome,
done: _doneAll,
category: 'Story',
title: 'End of questlines',
description: 'This is the end of ' + (_doneAll ? 'all' : _doneSome ? 'some' : 'none') + ' of the characters quests as of version v0.51c. Just be patient and wait for game updates.<br/>' +
'Vincent: ' + (_done.vincent ? '<span style="color: green">Done!</span>' : 'More quests to do!') + '<br/>' +
'Blair: ' + (_done.blair ? '<span style="color: green">Done!</span>' : 'More quests to do!') + '<br/>' +
'Rodger & Eve: ' + (_done.rodger ? '<span style="color: green">Done!</span>' : 'More quests to do!') + '<br/>' +
'Eve: ' + (_done.eve ? '<span style="color: green">Done!</span>' : 'More quests to do!') + '<br/>' +
'Octavia: ' + (_done.octavia ? '<span style="color: green">Done!</span>' : 'More quests to do!') + '<br/>' +
'Dom: ' +
(_closed.dom ? '<span style="color: yellow">Questline aborted!</span>' :
(_done.dom ? '<span style="color: green">Done!</span>': 'More quests to do!')
) + '<br/>' +
'Isabel: ' +
(_closed.dom ? '<span style="color: yellow">Questline unavailable!</span>' :
(_done.isabel ? '<span style="color: green">Done!</span>' : 'More quests to do!')
) + '<br/>' +
'Negan: ' + (_done.negan ? '<span style="color: green">Done!</span>' : 'More quests to do!') + '<br/>' +
'Laura: ' + (_done.laura ? '<span style="color: green">Done!</span>' : 'More quests to do!'),
},
internal: {
show: false,
done: false,
category: 'Internal',
title: 'Notes for guide writer + help pages + info and more',
description: '<ul><li>It has been too loong since update of help+info + etc.</li>' +
'<li>A little fix for NPC training with bells</li><li>New limits for number of workers and new asssignments, info pages and help pages</li>' +
'<li>This is a reminder for the writer of this game guide of things to do.<br/>Player<br/>Characters<br/>More hints, gameplay etc. Improving the format<br/>Check f95-forum for suggestions.</li></ul>',
},
}>>
<<set _guide = {
past: {},
present: {},
future: {},
}>>
<<for _item range _helpguide>>
<<set _time = _item.done ? 'past' : _item.show ? 'present' : 'future'>>
<<set _guide[_time][_item.category] ??= []>>
<<set _guide[_time][_item.category].push('<span style="color: #ccc">' + _item.title + '</span><br/>' + _item.description)>>
<</for>>
<<set _out = {
past: '',
present: '',
future: '',
}>>
<<for _time, _obj range _guide>>
<<for _category, _list range _obj>>
<<set _out[_time] += '<h4>' + _category +'</h4>' + _list.join('<br/><br/>') + '<br/>'>>
<</for>>
<</for>>
<h3>
<<button "[0|1]">>
<<set _showPast = !(_showPast ?? false)>>
<<if _showPast>>
<<run $('#past').show()>>
<<else>>
<<run $('#past').hide()>>
<</if>>
<</button>>Past</h3>
<div id="past" style="display:none;"><<=_out['past']>><br/><br/></div>
<h3>
<<button "[0|1]">>
<<set _showPresent = !(_showPresent ?? true)>>
<<if _showPresent>>
<<run $('#present').show()>>
<<else>>
<<run $('#present').hide()>>
<</if>>
<</button>>Present</h3>
<div id="present" style="display:block;"><<=_out['present']>><br/><br/></div>
<h3>
<<button "[0|1]">>
<<set _showFuture = !(_showFuture ?? false)>>
<<if _showFuture>>
<<run $('#future').show()>>
<<else>>
<<run $('#future').hide()>>
<</if>>
<</button>>Future</h3>
<div id="future" style="display:none;"><<=_out['future']>><br/><br/></div>/* definitions of <<charactars ...>> from StoryInit.tw
<<character 'grandfather' setup.ImagePath+'/people/grandfather/avatar.png'>> X
<<character 'you' "$player.name" setup.ImagePath+'/people/you/avatar.png'>> X
<<character 'vincent' setup.ImagePath+'/people/vincent/avatar.png'>> X
<<character 'boris' setup.ImagePath+'/people/boris/avatar.png'>> X
<<character 'blair' setup.ImagePath+'/people/blair/avatar.png'>> X
<<character 'dom' setup.ImagePath+'/people/dom/avatar.png'>> X
<<character 'eve' setup.ImagePath+'/people/eve/avatar.png'>> X
<<character 'rodger' setup.ImagePath+'/people/rodger/avatar.png'>> X
<<character 'octavia' setup.ImagePath+'/people/octavia/avatar.png'>> X
<<character 'anonguy' 'Guy' setup.ImagePath+'/people/anonguy.png'>> X
<<character 'anongirl' 'Girl' setup.ImagePath+'/people/anongirl.png'>> X
<<character 'harper' setup.ImagePath+'/people/harper/avatar.png'>> X
<<character 'isabel' setup.ImagePath+'/people/isabel.png'>> X
<<character 'laura' setup.ImagePath+'/people/laura/avatar.jpg'>> X
<<character 'negan' setup.ImagePath+'/people/negan/avatar.png'>> X
other sourcess
+ slave merchant
+ horse
+ barnaby, horse traveller
*/
<<you>>
Hi!<br/>
I am the hero of this story. Also called MC, that is main character.
<</you>>
<h3>Farm</h3>
<<vincent>>
I am one of your nearest neighbors just an hour's walk from your place.<br/>
I run a dairy farm and also have a small shop.<br/>
Blair is my daughter. Hurt her and I will hurt you!<br/>
As a good neighbor I will put you and your companions in trouble...
<</vincent>>
<<blair>>
Hello! I might move in with you. And manipulate you to build things.
<</blair>>
<h3>Settlement</h3>
<<rodger>>
Greetings!<br/>
I am the priest of this nice and friendly settlement.<br/>
May I introduce my wife Eve?
<</rodger>>
<<eve>>
How do you do?<br/>
*whispers* Being a young wife to an old husband might make me interested in adventures...
<</eve>>
<br/>
<<octavia>>
I am the leader of my tribe, The grounders. We are in need of wolf pelts to keep us warm during the coming winter.
<</octavia>>
<h3>Underground</h3>
<<dom>>
I am Dom, self-appointed mayor of the Underground city! <br/>
You have to pay tax to me if you place street workers on my street. But if you help me with some jobs I might reduce that tax for you.
<</dom>>
<<isabel>>
I am Dom's deputy (or wife).
<</isabel>>
<br/>
<<boris>>
I run the Fight cage in the Underground city. Come for fighting or exercise.
<</boris>>
<br/>
<<say 'Slave merchant' setup.ImagePath+'/people/slave_merchant.jpg'>>
I manage the slave market in the Underground city.
<</say>>
<h3>The sanctuary</h3>
<<negan>>
I am the leader of the Sanctuary. I like blondes. both natural and bottle ones.
<</negan>>
<h3>Somewhere</h3>
<<harper>>
I might have a horse for you.<br>
I trade it for two beautiful ladies - 4 legs for 4 legs!
<</harper>>
<<laura>>
I'm an amazing scientist somehow in need of a lab.<br/>
Build me a lab and perhaps I will be your houseguest.
<</laura>>
<h3>Minor characters</h3>
<<anongirl>>
We are many. I represent any girl or women you haven't been introduced to, captured or invited by you.
<</anongirl>>
<<anonguy>>
We are also many. We are the male version of "Girl"...
<</anonguy>>
<<grandfather>>
Hello grandson! You will only see a little of me when starting the game.<br/>
But still, I will get credit for small role..
<</grandfather>>
<<say 'Horse' setup.ImagePath+'/game/misc/horse_black.jpg'>>
...
<</say>>
<<say 'Barnaby' setup.ImagePath+'places/cabin/horse_merchant.jpg'>>
I am a traveling horse merchant. My colorful caravan filled with beautiful horses will come by your cabin now and then.
<</say>>
<<say 'Lone traveller' setup.ImagePath+'places/explore/teacher_walking.webp'>>
I am a lone traveller. Share a meal with me and I will share with my konwledge.
<</say>>/* init simple inventory */
<<run setup.items.simple_inv_fix()>>
<<set _catHelpItems = {}>>
/* _catHelpItems[category] = map _itemID, _helpItem */
/* sugarcube do not like for ... of ..., must be for ... range ... */
<<for _cat range _catOrder>>
<<set _catHelpItems[_cat] = new Map()>>
<</for>>
/* _workbenchItems from <<include 'Workbench items' */
<<include 'Workbench items'>>
<<set _crafting = []>>
<<for _itemID range Object.keys(_workbenchItems)>>
/*<<set _crafting = _crafting.append(Object.keys(_workbenchItems[_itemID].required))>>*/
<<if typeof _workbenchItems[_itemID].required === 'undefined'>>
<</if>>
<<for _craftingID range Object.keys(_workbenchItems[_itemID].required)>>
<<run _crafting.push[_craftingID]>>
<</for>>
<</for>>
/* sold in shops, manual */
/* _shopItems in different shops,
should perhaps be setup.shopitems{shop} ? */
/*
<<set _shops = [
{
name: 'Farm',
sells: ['food','wood','axe','rope','alcohol','tobacco','glue','soda', 'milk'],
},
{
name: 'Settlement',
sells: ['wood','hay','flower','candy','necklace_cheap','plush'],
},
{
name: 'Underground',
sells: ['bandage', 'knife', 'solar_panel','fertility_potion','pregnancy_speed_potion','plastic','hair_dye_kit','buttplug','piercing', 'chastity_belt','cosmetics','sextoy','whippit','xanax'],
},
{
name: 'Sanctuary',
sells: ['metal','bullet_revolver','piercing', 'wedding_ring'],
},
]>>
*/
/*
<<set _shopSells = {}>>
<<for _shop range _shops>>
<<set _shopname = _shop.name>>
<<for _itemID range _shop.sells>>
<<set _shopSells[_itemID] ??= []>>
<<run _shopSells[_itemID].push(_shopname)>>
<</for>>
<</for>>
*/
<<set _shopSells = {}>>
<<for _shopname, _items range setup.items.shopSells()>>
<<for _itemID range _items>>
<<set _shopSells[_itemID] ??= []>>
<<run _shopSells[_itemID].push(_shopname)>>
<</for>>
<</for>>
<<set _helpItems = new Map()>>
/*
/*<<for _itemID, _item of Item.list.entries()>>*/
<<for _itemID range setup.mapKeys2list(Item.list).sort() >> /* .sort() */
<<set _item = Item.get(_itemID)>>
<<set _helpItem = {
name: _item.name,
desc: _item.description ?? '',
npc: setup.inventoryNpc[_itemID] ?? false,
sources: []
}>>
<<run _helpItems.set(_itemID, _helpItem)>>
<<set _tags = _item.tags>>
<<if !/no\suse/i.test(_helpItem.desc) && _item.hasTag('no_use')>>
<<set _helpItem.desc += '<br />No use for now'>>
<</if>>
/* a little humor */
<<if ['duck_tape'].includes(_itemID)>>
<<set _helpItem.desc += '<br />No ducks implemented in game yet!'>>
<</if>>
/* sources */
<<if (_shopSells[_itemID] ?? []).length>>
<<set _key = 'Shop: ' + _shopSells[_itemID].join(', ')>>
<<run _helpItem.sources.push(_key)>>
<</if>>
<<if ['milk'].includes(_itemID)>>
<<run _helpItem.sources.push('Milking the ladies')>>
<</if>>
<<if _workbenchItems[_itemID] ?? false>>
<<run _helpItem.sources.push('Workbench')>>
<</if>>
<<if ['food'].includes(_itemID)>>
<<run _helpItem.sources.push('Garden/Greenhouse')>>
<</if>>
<<if ['food', 'wood', 'glowing_mushroom', 'pelt_wolf'].includes(_itemID)>>
<<run _helpItem.sources.push('Forest')>>
<</if>>
<<if setup.items.scavenging.includes(_itemID) || typeof setup.items.scavenging_chance[_itemID] !== 'undefined'>>
<<run _helpItem.sources.push('Scavenging')>>
<</if>>
<<if ['coal', 'stone'].includes(_itemID)>>
<<run _helpItem.sources.push('Quarry')>>
<</if>>
<<if setup.inventoryManageable[_itemID] ?? false>>
<<run _helpItem.sources.push('Shopkeeper')>>
<</if>>
<<if _item.hasTag('start_item')>>
<<run _helpItem.sources.push('Start item')>>
<</if>>
<<if ['breast_pump', 'wedding_ring', 'note3844'].includes(_itemID)>>
<<run _helpItem.sources.push('Vincent quests/tasks')>>
<</if>>
<<if ['champagne'].includes(_itemID)>>
<<run _helpItem.sources.push('Rodger quests/tasks')>>
<</if>>
<<if ['fuel'].includes(_itemID)>>
<<run _helpItem.sources.push('Dom quests/tasks')>>
<</if>>
<<if ['growth_potion'].includes(_itemID)>>
<<run _helpItem.sources.push('Laura in lab')>>
<</if>>
<<if ['revolver'].includes(_itemID)>>
<<run _helpItem.sources.push('Special')>>
<</if>>
<<if _helpItem.sources.length == 0 && (['raw_human_meat', 'blueprint_hot_shower', 'blueprint_library', 'fuel', 'tribe_medallion', 'gas_mask', 'car_part', 'metal'].includes(_itemID) || _item.hasTag('explore'))>>
<<run _helpItem.sources.push('Explore!')>>
<</if>>
<<if _helpItem.sources.length == 0>>
<<run _helpItem.sources.push('<span style="color: yellow">Unavailable in this version!</span>')>>
<</if>>
/* categories */
<<set _catCount = 0>>
/*
crafting: 'Materials for building & crafting in workbench',
potion: 'Pharmacy; materials & finished products',
tool: 'Tools and weapons',
gift: 'Gifts for slaves & guests',
quest: 'Quest items',
no_use: 'No use for now',
que: 'Unsorted or new items',
*/
<<if _item.hasTag('food')>>
<<run _catHelpItems['food'].set(_itemID, _helpItem)>>
<<set _catCount++>>
<</if>>
<<if /building|crafting/i.test(_helpItem.desc) ||
_item.hasAnyTags('building', 'crafting', 'part') || _crafting.includes(_itemID) >>
<<run _catHelpItems['crafting'].set(_itemID, _helpItem)>>
<<set _catCount++>>
<</if>>
<<if _item.hasTag('fabric')>>
<<run _catHelpItems['fabric'].set(_itemID, _helpItem)>>
<<set _catCount++>>
<</if>>
<<if /potion/i.test(_item.name + _helpItem.desc) || _item.hasTag('potion')>>
<<run _catHelpItems['potion'].set(_itemID, _helpItem)>>
<<set _catCount++>>
<</if>>
<<if _item.hasAnyTags('tool', 'weapon')>>
<<run _catHelpItems['tool'].set(_itemID, _helpItem)>>
<<set _catCount++>>
<</if>>
<<if (setup.gifts[_itemID] ?? false) || _item.hasTag('gift')>>
<<run _catHelpItems['gift'].set(_itemID, _helpItem)>>
<<set _catCount++>>
<</if>>
<<if /quest/i.test(_helpItem.desc) || _item.hasTag('quest')>>
<<run _catHelpItems['quest'].set(_itemID, _helpItem)>>
<<set _catCount++>>
<</if>>
<<if /no\suse/i.test(_helpItem.desc) || _item.hasTag('no_use')>>
<<if !/no\suse/i.test(_helpItem.desc)>>
<<set _helpItem.desc += '<br />No use for now'>>
<</if>>
<<run _catHelpItems['no_use'].set(_itemID, _helpItem)>>
<<set _catCount++>>
<</if>>
<<if _catCount == 0>>
<<run _catHelpItems['que'].set(_itemID, _helpItem)>>
<</if>>
<</for>>
<<set setup.helpitemsByCategory = _catHelpItems>><h1>Help or hinder?</h1>
<h2>(<span style="color:red">Warning: spoilers ahead</span>)</h2>
<h2>
<<button "[0|1]">>
<<set _showGuide = !(_showGuide ?? false)>>
<<if _showGuide>>
<<run $('#guide').show()>>
<<else>>
<<run $('#guide').hide()>>
<</if>>
<</button>>Guide/Hints to playing - or at least a start!</h2>
<div id="guide" style="display:none;">
<<include 'Help - Guide'>>
<br /><hr /><br />
</div>
<h2>
<<button "[0|1]">>
<<set _showItems = !(_showItems ?? false)>>
<<if _showItems>>
<<run $('#items').show()>>
<<else>>
<<run $('#items').hide()>>
<</if>>
<</button>>Items</h2>
<div id="items" style="display:none;">
Note! Many items can be found by going exploring. Not mentioned in table!<br /><br />
Another note! Since the game is a work-in-progress with new versions all the time this help might be a little off.<br /><br />
<<set _catOrder = [
'food','crafting','fabric', 'potion','tool','gift','quest','no_use','que'
]>>
<<set _catTitle = {
food: 'Food for eating',
crafting: 'Materials for building & crafting in workbench, garage & base building tab',
fabric: 'Fabric',
potion: 'Pharmacy; materials & finished products',
tool: 'Tools, weapons & equipment',
gift: 'Gifts or stuff for slaves & guests',
quest: 'Quest items',
no_use: 'No use for now',
que: 'Unsorted or new items (If you find stuff here the writer forgot to update the help....)',
}>>
/* dynamic help for all items */
<<if typeof setup.helpitemsByCategory === 'undefined'>>
<<include 'Help - items include'>>
<</if>>
<<set _catHelpItems = setup.helpitemsByCategory>>
/* Finally, we are ready to make a (almost dynamic) table of items */
<table border="1">
<tr>
<th>Item</th>
<th>Source</th>
<th>Used for</th>
</tr>
<<for _cat range _catOrder>>
<<if !_catHelpItems[_cat].size>>
<<continue>>
<</if>>
<tr><td colspan="3"><h3>_catTitle[_cat]</h3></td></tr>
<<for _itemID range setup.mapKeys2list(_catHelpItems[_cat]) >>
<<set _helpItem = _catHelpItems[_cat].get(_itemID)>>
<tr>
<td>_helpItem.name</td>
<td>
<<if _helpItem.sources.length>>
/*<ul>*/
/*<li><<=_helpItem.sources.join('</li><li>')>></li> */
<<=_helpItem.sources.join('<br/>')>>
/*</ul>*/
<</if>>
</td>
<td>_helpItem.desc</td>
</tr>
<</for>>
<</for>>
</table>
<br /><hr /><br />
</div>
<h2>
<<button "[0|1]">>
<<set _showSkill = !(_showSkill ?? false)>>
<<if _showSkill>>
<<run $('#skills').show()>>
<<else>>
<<run $('#skills').hide()>>
<</if>>
<</button>>Important skills and traits</h2>
<div id="skills" style="display:none;">
<dl>
<<for _skill range setup.skills>>
<<set _learn =
typeof _skill.learnable === 'undefined' ? '<span style="color: yellow">(Learnable ?)</span>.' :
_skill.learnable ? '<span style="color: green">Learnable</span>.' :
'<span style="color: red">Not learnable</span>.'>>
<dt><<=_skill.title>></dt><dd><<=_skill.description>> <<=_learn>> <<=_skill.descriptionExtra ?? ''>></dd>
<</for>>
</dl>
<br /><hr /><br />
</div>
<h2>
<<button "[0|1]">>
<<set _showJob = !(_showJob ?? false)>>
<<if _showJob>>
<<run $('#jobs').show()>>
<<else>>
<<run $('#jobs').hide()>>
<</if>>
<</button>>Assigned to & jobs of all kinds</h2>
<div id="jobs" style="display:none;">
You can assign your slaves and guests to different jobs.<br/>
Slaves can only work in the garden/greenhouse, streets and as companions. <br/>
Guests can work in any job.
<dl>
<dt>Companion</dt><dd>A companion travels with the mc. Help him with fights.<br/>Both guests and slaves can be companions but slave companions will not help you in a fight.</dd>
<dt>Doctor</dt><dd>Outside the hospital the doctor don't need a special assignment. Can work anywhere. Any guest with doctor skill will step in as doctor when needed. A hospital will improve the chances for success.</dd>
<dt>Forest</dt><dd>Works in the forest, producing wood and sometimes a few berries to eat.</dd>
<dt>Garden/Greenhouse</dt><dd>Works in garden/greenhouse producing food.</dd>
<dt>Guard</dt><dd>A guest with good strength might work as a guard, watching over your place. Might sometimes capture cute young women who tries to sneak in.</dd>
<dt>Hospital</dt><dd>A doctor heals people here</dd>
<dt>Hunter</dt><dd>Provides you with food or wolf pelts</dd>
<dt>Kitchen</dt><dd>Any guest can work in the kitchen but with no effect. Only if the guest has the cook skill it will ha an effect.</dd>
<dt>Maid</dt><dd>Any guest can work as a maid. Will give extra energy for the hero taking a nap.</dd>
<dt>Mistress</dt><dd>Any guest with the sadistic trait might work as mistress. Will whip the slaves into shape.</dd>
<dt>Nightclub</dt><dd>After a deal with the glory-hole manager you can put your sex workers to work here</dd>
<dt>Quarry</dt><dd>An old quarry can be found by exploring. </dd>
<dt>Scavenging</dt><dd>A guest assigned to scavenging is sent out to find and collect nice-to-have things. There is a chance of a scavenger not coming home. When that happens the mc have a chance to go out and try to find her.</dd>
<dt>Shop</dt><dd>If you build a shop you will need a guest with shopkeeper skill to handle it. With a shopkeeper you can sell surplus and buy needed materials.<br/>
The shop also contains storage space to keep materials in the house.</dd>
<dt>Streets</dt><dd>Whatever you call the sexworkers, working the streets means coming in contact with the dark underbelly of human society. People don't respect others property. o_O Assaults, abuse and even killing of the workers isn't unheard of. High risk of miscarriage and loosing unborn children.<br/>
Dom, that more or less owns the streets, let your girls work there but you have to pay high taxes and get little or no protection in return.
After getting a better deal with Dom you will get lesser tax and some protection.</dd>
</dl>
<table border=1>
<tr>
<th>Job</th>
<th>Requirements</th>
<th>Bonus/Survival</th>
</tr>
<tr>
<td>Companion</td>
<td>None</td>
<td>A good strength & a knife helps in fight</td>
</tr>
<tr>
<td>Doctor</td>
<td>Doctor skill</td>
<td>Hospital</td>
</tr>
<tr>
<td>Forest</td>
<td>None</td>
<td>Good strength, axe & skill woodcraft</td>
</tr>
<tr>
<td>Garden/Greenhouse</td>
<td>(Relationship >= 30)</td>
<td>Upgrade the garden with a greenhouse to produce more food
<br/>Skill gardener</td>
</tr>
<tr>
<td>Guard</td>
<td>A good strength (Strength >= 30)</td>
<td>A good strength & knife, for the rare base attack</td>
</tr>
<tr>
<td>Hunter</td>
<td>Woodcraft skill & bow</td>
<td>A good strength</td>
</tr>
<tr>
<td>Kitchen</td>
<td>None</td>
<td>Cook skill</td>
</tr>
<tr>
<td>Maid</td>
<td>Being female</td>
<td>None</td>
</tr>
<tr>
<td>Mistress</td>
<td>Female|Male with sadistic trait</td>
<td>A paddle?</td>
</tr>
<td>Nightclub</td>
<td>Having a deal with the management<br/>(Relationship >= 70)</td>
<td>
<ul>
<li>Being female</li>
<li>Being a nymphomaniac and having a high submission</li>
</ul>
</td>
<tr>
<td>Quarry</td>
<td>Explore and find the quarry</td>
<td>A good strength gives a little more coal and stone.</td>
</tr>
<tr>
</tr>
<tr>
<td>Scavenging</td>
<td>None</td>
<td>A good strength, a knife & the scavenger skills increases chance of survival
<br/>Scavenging skills also gives bonus items</td>
</tr>
<tr>
<td>Shop</td>
<td>Shopkeeper skill for shop part, none for storage part</td>
<td>None</td>
</tr>
<tr>
<td>Streets</td>
<td>(Relationship >= 50)</td>
<td>
<ul>
<li>Being female</li>
<li>Deal with Dom for protection & lower taxes</li>
<li>High strength or a deal with Dom for protection and a knife for survival</li>
<li>Being a nymphomaniac, having a high submission, being beautiful and/or being trained in using body orifices for pleasure pays more.</li>
/*<li>Beauty, submission and other sexual traits pays more</li>*/
</ul>
</td>
</tr>
</table>
<br /><hr /><br />
</div>
<h2>
<<button "[0|1]">>
<<set _showFarm = !(_showFarm ?? false)>>
<<if _showFarm>>
<<run $('#farm').show()>>
<<else>>
<<run $('#farm').hide()>>
<</if>>
<</button>>Improving the farm</h2>
<div id="farm" style="display:none;">
The hero takes possession of a farm with little luxury. There is water but only cold water, a basement with only a few slave cells, a barren garden.
<dl>
<dt>Basement</dt>
<dd>You start with only a few slave cells in the basement but with room for more. Obedient slaves, that is high relationship, can be released and upgraded to guests in the guesthouse.</dd>
<dt>Bathhouse</dt>
<dd>A little luxury for the persons living in the farm. Improves beauty, at least temporary. </dd>
<dt>Bedroom</dt>
<dd>A place to rest and sleep and more. Taking a nap will restore energy. Having a house-maid will restore more energy when napping.</dd>
<dt>Cold shower</dt>
<dd>Can be upgraded to hot shower</dd>
<dt>Fire place</dt>
<dd>For training, partying and relaxing.</dd>
<dt>Garden</dt>
<dd>Produces food, upgradable to greenhouse, produces more food/worker</dd>
<dt>Gate</dt>
<dd>You can upgrade your farm to a settlement. For this you need a gate.</dd>
<dt>Garage</dt>
<dd>Guess...</dd>
<dt>Greenhouse</dt>
<dd>An upgraden garden, produces more food per worker</dd>
<dt>Guest beds</dt>
<dd>Expands the guesthouse.</dd>
<dt>Guest house</dt>
<dd>You can build a guest house. It starts with only a few beds but with room for more. Released slaves and invited persons live in the guest-house.</dd>
<dt>Hospital</dt>
<dd>To heal people</dd>
<dt>Hot tub</dt>
<dd>An expansion to bathhouse. A place to relax and recover energy.</dd>
<dt>Kitchen</dt>
<dd>For eating and some social talks.</dd>
<dt>Lab</dt>
<dd>An expansion to the guest house. A scientific laboratory.</dd>
<dt>Library</dt>
<dd>For keeping and reading books. Located in the youth district.</dd>
<dt>Nursery</dt>
<dd>A place to store children. Otherwise they will take up valuable space in basement and guesthouse. Located in the youth district.</dd>
<dt>Shower</dt>
<dd>Starts with cold water only. Taking a cold shower will restore a little energy. Can be upgraded to hot shower that restore a little more energy.</dd>
<dt>Shop</dt>
<dd>A shopkeeper can sell surplus and buy needed items from passers-by. Also storage space for the farm.</dd>
<dt>Slave cells</dt>
<dd>Expands the basement</dd>
<dt>Workbench</dt>
<dd>For building and crafting "stuff".</dd>
<dt>Youth district</dt>
<dd>A separate part of your home for the young ones. Library and Nursery are located here.</dd>
</dl>
<br /><hr /><br />
</div>
/*
<h2>
<<button "[0|1]">>
<<set _showAuto = !(_showAuto ?? false)>>
<<if _showAuto>>
<<run $('#auto').show()>>
<<else>>
<<run $('#auto').hide()>>
<</if>>
<</button>>Automation help</h2>
<div id="auto" style="display:none;">
-- WORK --
<br /><hr /><br />
</div>
*/
<h2>
<<button "[0|1]">>
<<set _showCast = !(_showCast ?? false)>>
<<if _showCast>>
<<run $('#cast').show()>>
<<else>>
<<run $('#cast').hide()>>
<</if>>
<</button>>Cast of characters</h2>
<div id="cast" style="display:none;">
<<include 'Help - characters'>>
<br /><hr /><br />
</div>
<h2>
<<button "[0|1]">>
<<set _showSchedule = !(_showSchedule ?? false)>>
<<if _showSchedule>>
<<run $('#schedule').show()>>
<<else>>
<<run $('#caschedulest').hide()>>
<</if>>
<</button>>Work schedules</h2>
<div id="schedule" style="display:none;">
<<include 'Help - Schedule'>>
<br /><hr /><br />
</div>/*
<<item id [name]>>
[use code]
<<description>>
[description code]
<<tags [listOfTags]>>
<<unique>>
<<permanent>>
<</item>>
*/
<<item "laptop" "Laptop">>
<<description>>
An old Windows 95 laptop
<<unique>>
<<tags 'start_item' 'no_use'>>
<</item>>
<<item "porn_magazine" "Porn">>
<<description>>
Vintage porn magazine
<<unique>>
<<tags 'start_item' 'no_use'>>
<</item>>
<<item "raw_human_meat" "Raw human meat">>
<<description>>
No use for now
<<tags 'no_use'>>
<</item>>
<<item "csgo_knife" "CS-GO knife">>
<<description>>
No use for now
<<unique>>
<<tags 'start_item' 'no_use'>>
<</item>>
<<item "wood" "Wood">>
<<description>>
Needed for crafting. You can sell at the farm store.
<</item>>
<<item "axe" "Axe">>
<<description>>
Increases amount of wood you get in the forest.
<<tags 'tool'>>
<</item>>
<<item "pickaxe" "Pickaxe">>
<<description>>
Allows to get resources from mines and quarry.
<<tags 'tool'>>
<</item>>
<<item "food" "Food">>
<<description>>
Eat it
<<tags 'food'>>
<</item>>
<<item "rope" "Rope">>
<<description>>
Needed for building things.
<</item>>
<<item "breast_pump" "Breast pump">>
<<unique>>
<<description>>
Breast pump for milking slaves.
<<tags 'tool'>>
<</item>>
<<item "milk" "Milk">>
<<description>>
Needed to craft pregnancy termination potion
<</item>>
<<item "solar_panel" "Solar panel">>
<<description>>
Needed for building things.
<</item>>
<<item "blueprint_hot_shower" "Hot shower blueprint">>
<<unique>>
<<permanent>>
<<tags 'crafting' 'explore'>>
<<description>>
Home improvement!
<</item>>
<<item "blueprint_hospital" "Hospital blueprint">>
<<unique>>
<<permanent>>
<<tags 'crafting' 'explore'>>
<<description>>
Base building
<</item>>
<<item "blueprint_church" "Church blueprint">>
<<unique>>
<<permanent>>
<<tags 'crafting' 'explore'>>
<<description>>
Base building
<</item>>
<<item "blueprint_hot_tub" "Hot tub blueprint">>
<<unique>>
<<permanent>>
<<tags 'crafting' 'explore'>>
<<description>>
Home improvement!
<</item>>
<<item "blueprint_library" "Library blueprint">>
<<unique>>
<<permanent>>
<<tags 'crafting' 'explore'>>
<<description>>
Home improvement!
<</item>>
<<item "revolver" "Revolver">>
<<description>>
Uses 38 Special bullets
<<tags 'weapon'>>
<</item>>
<<item "blueprint_crossbow" "Crossbow blueprint">>
<<unique>>
<<permanent>>
<<tags 'crafting' 'explore'>>
<<description>>
Crafting
<</item>>
<<item "crossbow" "Crossbow">>
<<description>>
Uses arrows
<<tags 'weapon'>>
<</item>>
<<item "arrow" "Arrow">>
<<description>>
For crossbow
<<tags 'weapon'>>
<</item>>
<<item "shotgun" "Shotgun">>
<<description>>
Uses shotgun shells. Fires a wide blast that damages the primary target and hits nearby enemies with reduced force.
<<tags 'weapon'>>
<</item>>
<<item "shotgun_shell" "Shotgun shell">>
<<description>>
Ammunition for the shotgun. Can be crafted at the workbench.
<<tags 'weapon'>>
<</item>>
<<item "knife" "Knife">>
<<description>>
Rusty but in good shape knife
<<tags 'weapon'>>
<</item>>
<<item "sword" "Sword">>
<<description>>
A hand-forged blade. Heavier than a knife, harder to break.
<<tags 'weapon'>>
<</item>>
<<item "glowing_mushroom" "Glowing mushroom">>
<<description>>
The main ingredient in the pregnancy and growth potion.
<<tags 'potion'>>
<</item>>
<<item "pregnancy_potion" "Pregnancy termination potion">>
<<description>>
Terminates pregnancy but may be fatal for the girl.
<</item>>
<<consumable "bandage" "Bandage">>
<<run delete $player.perks['bleeding']>>
<<description>>
Use this if you're bleeding.
<<tags 'fabric' 'potion'>>
<</consumable>>
<<item "bow" "Bow">>
<<description>>
Used for hunting.
<<tags 'tool'>>
<</item>>
<<item "towel" "Towel">>
<<description>>
Used for cleaning or childbirth.
<<tags 'fabric'>>
<</item>>
<<item "antibiotics" "Antibiotics">>
<<description>>
Used to cure illness.
<<tags 'potion'>>
<</item>>
<<consumable "fertility_potion" "Fertility potion">>
<<run $.wiki("<<perkAdd 'fertility'>>")>>
<<description>>
Used for increasing the reproductive ability greatly.
<</consumable>>
<<item "plastic" "Plastic">>
<<description>>
Needed for building things.
<</item>>
<<item "glass" "Glass">>
<<description>>
Needed for building things.
<</item>>
<<item "pregnancy_speed_potion" "Pregnancy speed potion">>
<<description>>
Speed up pregnancy by 100 days
<</item>>
<<item "champagne" "Champagne">>
<<description>>
Use them to throw party.
<<tags 'gift'>>
<</item>>
<<item "paddle" "Paddle">>
<<description>>
Increases submission gain while punishing slave
<<tags 'tool'>>
<</item>>
<<item "bullet_revolver" "Bullet .38">>
<<description>>
Bullet for revolver
<<tags 'weapon'>>
<</item>>
<<item "duck_tape" "Duck tape">>
<<description>>
Needed for building things.
<<tags 'no_use'>>
<</item>>
<<item "necklace_cheap" "Cheap necklace">>
<<description>>
Can use as a gift (+4 rel)
<</item>>
<<item "flower" "Flower">>
<<description>>
Can use as a gift (+3 rel)
<</item>>
<<item "hay" "Hay">>
<<description>>
Used for feeding farm animals
<<tags 'food'>>
<</item>>
<<item "pelt_wolf" "Wolf pelt">>
<<description>>
Quest item
<</item>>
<<item "coat_wolf" "Wolf coat">>
<<description>>
Protects from cold
<<tags 'tool'>>
<</item>>
<<item "wedding_ring" "Wedding ring">>
<<description>>
Ask someone to marry you
<<tags 'gift'>>
<</item>>
<<item "piercing" "Piercing">>
<<description>>
Use to customize your girls
<<tags 'gift'>>
<</item>>
<<item "gagball" "Gag ball">>
<<description>>
Use to customize your girls
<<tags 'gift'>>
<</item>>
<<item "cosmetics" "Cosmetics">>
<<description>>
Use to increase girl beauty or can use as a gift (+4 rel)
<</item>>
<<item "growth_potion" "Growth potion">>
<<description>>
Accelerated aging. Will age person by 8-9 years.
<</item>>
<<item "hair_dye_kit" "Hair dye kit">>
<<description>>
Change hair color of your girls
<<tags 'gift'>>
<</item>>
<<item "buttplug" "Butt plug">>
<<description>>
Increase girl anal stats automatically (max 20)
<<tags 'tool'>>
<</item>>
<<item "fuel" "Fuel can">>
<<description>>
For vehicle and story item
<<tags 'part'>>
<</item>>
<<item "tribe_medallion" "Tribe medaillion">>
<<description>>
Quest item
<</item>>
<<item "cloth" "Cloth">>
<<description>>
Can craft bandages and towels
<<tags 'fabric' 'crafting'>>
<</item>>
<<item "gas_mask" "Gas mask">>
<<description>>
Used to get into toxic places
<<tags 'tool'>>
<</item>>
<<item "radio_broken" "Broken radio">>
<<description>>
No use for now
<<tags 'tool'>>
<</item>>
<<item "car_part" "Car part">>
<<description>>
Used to fix car
<<tags 'part'>>
<</item>>
<<item "headlight_kit" "Headlight kit">>
<<description>>
Headlights for the car. Install them in the garage to drive at night
<<tags 'part'>>
<</item>>
<<item "car_battery" "Car battery">>
<<description>>
Used to craft battery storage system
<<tags 'part'>>
<</item>>
<<item "metal" "Metal">>
<<description>>
Needed for crafting
<</item>>
<<item "tobacco" "Tobacco">>
<<description>>
Can use as a gift (+3 rel)
<</item>>
<<item "alcohol" "Alcohol">>
<<description>>
Can use as a gift (+3 rel)
<</item>>
<<item "candy" "Candy">>
<<description>>
Can use as a gift (+3 rel)
<</item>>
<<item "soda" "Soda">>
<<description>>
Can use as a gift (+4 rel)
<</item>>
<<item "whippit" "Whippit">>
<<description>>
Can use as a gift (+5 rel)
<</item>>
<<item "xanax" "Xanax">>
<<description>>
Can use as a gift (+5 rel)
<</item>>
<<item "glue" "Glue">>
<<description>>
Can use as a gift (+4 rel)
<</item>>
<<item "plush" "Plush">>
<<description>>
Can use as a gift (+5 rel)
<</item>>
<<item "dice" "Dice">>
<<description>>
Random dice
<</item>>
<<item "sextoy" "Sextoy">>
<<description>>
Can use as a gift (+5 rel)
<</item>>
<<item "lube" "Lube">>
<<description>>
Can be used if inexperienced in anal
<<tags 'tool'>>
<</item>>
<<item "note3844" "Note">>
<<description>>
handwritten code "3844"
<<unique>>
<<tags 'no_use' 'quest'>>
<</item>>
<<item "note1337" "Note">>
<<description>>
handwritten code "1337"
<<unique>>
<<tags 'no_use' 'quest'>>
<</item>>
<<item "dumbbell" "Dumbbell">>
<<description>>
Let people workout and increase strength (up to 30). Small risk of injury
<<tags 'tool'>>
<</item>>
<<item "kettlebell" "Kettlebell">>
<<description>>
Let people workout and increase strength (up to 50). Medium risk of injury
<<tags 'tool'>>
<</item>>
<<item "dumbestbell" "Dumbestbell">>
<<description>>
Let people workout and increase strength (up to 60). High risk of injury
<<tags 'tool'>>
<</item>>
<<item "condom" "Condom">>
<<description>>
Contraception for girls working on streets
<<tags 'tool'>>
<</item>>
<<item "playing_cards" "Playing cards">>
<<description>>
A worn deck. Guests might play strip poker with you in the evening
<<tags 'tool'>>
<</item>>
<<item "torch" "Torch">>
<<description>>
Burns for one night outside. Lets you search in the dark
<<tags 'tool'>>
<</item>>
<<item "lantern" "Lantern">>
<<description>>
Reusable light for night trips. Burns one fuel can per night
<<tags 'tool'>>
<</item>>
<<item "chastity_belt" "Chastity belt">>
<<description>>
Use to prevent guest from having sex without permission
<<tags 'tool'>>
<</item>>
<<item "book" "Book">>
<<description>>
Use to increase intelligence in library
<<tags 'tool'>>
<</item>>
<<item "body_armor" "Body armor">>
<<description>>
Decreases damage taken from knife
<<tags 'weapon'>>
<</item>>
<<item "blueprint_massage_table" "Massage table blueprint">>
<<unique>>
<<permanent>>
<<tags 'crafting' 'explore'>>
<<description>>
Base building
<</item>>
<<item "blueprint_school" "School blueprint">>
<<unique>>
<<permanent>>
<<tags 'crafting' 'no_use'>>
<<description>>
Base building
<</item>>
<<item "stone" "Stone">>
<<tags 'crafting'>>
<<description>>
Used to build stone walls and construction.
<</item>>
<<item "coal" "Coal">>
<<tags 'crafting'>>
<<description>>
Used to build and fuel a coal furnace for electricity.
<</item>>
<<item "child_drawing" "Child's drawing">>
<<unique>>
<<tags 'no_use'>>
<<description>>
Child drawing
<</item>>
<<consumable "energy_drink" "Energy drink">>
<<energy 10>>
<<description>>
Restore energy
<<tags 'fabric' 'potion'>>
<</consumable>><<set _invFilter = ($player?.settings?.inventoryFilter ?? 'all')>>
<div id="inventory-header">
<div class="inv-filter-row">
<<for _f range ['all', 'use', 'weapon', 'food', 'tool']>><<capture _f>><<set _fl = {all:'All', use:'Usable', weapon:'Weapons', food:'Food', tool:'Tools'}[_f]>><<if _f === _invFilter>><span class="inv-filter-active"><<=_fl>></span><<else>><<link `_fl`>><<set $player.settings ??= {}>><<set $player.settings.inventoryFilter = _f>><<script>>Dialog.setup("Inventory","Inventory");Dialog.wiki(Story.get("Inventory").processText());Dialog.open();<</script>><</link>><</if>> <</capture>><</for>>
</div>
<div class="inv-blueprint-toggle">
<<set _linkName = $player?.settings?.hideBlueprints ? 'Show blueprints' : 'Hide blueprints'>>
<<link _linkName>>
<<set $player.settings ??= {}>>
<<set $player.settings.hideBlueprints = !$player?.settings?.hideBlueprints>>
<<script>>
Dialog.setup("Inventory", "Inventory");
Dialog.wiki(Story.get("Inventory").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</link>>
</div>
</div>
<div id="inventory">
<<for _item, _amount range $backpack.table>>
<<capture _item, _amount>>
<<set _icon = _item>>
<<if _icon.indexOf("blueprint") !== -1>>
<<if $player?.settings?.hideBlueprints>>
<<continue>>
<</if>>
<<set _icon = 'blueprint'>>
<</if>>
<<if _icon.indexOf("note") !== -1>>
<<set _icon = 'note'>>
<</if>>
<<if _invFilter === 'use' && !Item.get(_item).consumable>><<continue>><</if>>
<<if _invFilter === 'weapon' && !Item.get(_item).hasTag('weapon')>><<continue>><</if>>
<<if _invFilter === 'food' && !Item.get(_item).hasTag('food')>><<continue>><</if>>
<<if _invFilter === 'tool' && !Item.get(_item).hasTag('tool')>><<continue>><</if>>
<div class='inventory-item tooltip'>
<div class='inventory-img'>
[img[setup.ImagePath+'game/inventory/' + _icon + '.png']]
</div>
<div class='inventory-title'>
<<= Item.get(_item).name>>
<<if !Item.get(_item).unique>>
<span class='inventory-amount'>x_amount</span>
<</if>>
</div>
<<if Item.get(_item).description>>
<span class="tooltiptext"><<=Item.get(_item).description>></span>
<</if>>
<<if Item.get(_item).consumable>>
<div>
<<link 'Use'>>
<<run $backpack.use(_item)>>
<<script>>
Dialog.setup("Inventory");
Dialog.wiki(Story.get("Inventory").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</link>>
</div>
<</if>>
<div>
<<link 'Drop'>>
<<dialog 'Drop'>>
How much do you want to drop <<=Item.get(_item).name>>? <<textbox "_dropAmount" _amount>>
<<link 'OK'>>
<<drop $backpack _item _dropAmount>>
<<script>>
Dialog.setup("Inventory", "Inventory");
Dialog.wiki(Story.get("Inventory").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</link>>
<</dialog>>
<</link>>
</div>
</div>
<</capture>>
<</for>>
</div>
<style>
#inventory {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-column-gap: 10px;
grid-row-gap: 10px;
}
.inventory-item {
flex: 0 0 33.3333%;
}
.inv-filter-row {
margin-bottom: 6px;
}
.inv-filter-row .link-internal {
display: inline-block;
margin-right: 4px;
padding: 2px 10px;
}
.inv-filter-active {
display: inline-block;
margin-right: 4px;
padding: 2px 10px;
background: #555;
color: #fff;
border-radius: 3px;
cursor: default;
}
.inv-blueprint-toggle {
margin-bottom: 8px;
font-size: 0.85em;
opacity: 0.7;
}
</style><<set _mappingQuests = {
Vincent: {
Task1: {
conditions: !isMetChar('blair'),
desc: 'Increase relationship with Vincent (buy from his shop)',
},
Task2: {
condition: ($characters.blair.quests ?? false) && !$characters.vincent.quests.new_settlement,
condition2: !$characters.blair.quests.bj,
desc: 'Go to farm after few days',
desc2: 'Progress with Blair'
},
Task3: {
condition: $characters.vincent.quests.new_settlement && !($game.location.settlement ?? false),
desc: 'Collect <strong class="iitem">100 wood</strong> and <strong class="iitem">5 solar panels</strong>'
},
Task4: {
condition: !$characters.vincent.quests.car_talk && $game.cabinName,
desc: 'Talk with Vincent',
},
Task5: {
condition: !$characters.vincent.quests.wedding_talk,
condition2: $game.day < 150 || $characters.blair.relationship < 90,
desc: 'Meet Vincent in farm',
desc2: 'Reach 150 days and increase the Blair relationship to 90'
}
}
}>>
<<for _characterName, _characterQuests range _mappingQuests>>
<h2><<=_characterName>></h2>
<div>Relationship: <<=$characters[_characterName.toLowerCase()].relationship>></div>
<<for _characterQuestKey, _characterQuest range _characterQuests>>
<<if _characterQuest.condition>>
<<if _characterQuest.condition2 ?? null>>
<<=_characterQuest.desc2>>
<<else>>
<<=_characterQuest.desc>>
<</if>>
<<break>>
<<else>>
<<=_characterQuestKey>> done
<</if>>
<</for>>
<</for>>
<<if Object.keys($characters.vincent).length > 0>>
<h2>Vincent</h2>
<div>Relationship: <<=$characters.vincent.relationship>></div>
<<if !isMetChar('blair')>>
Increase relationship with Vincent (buy from his shop)
<<elseif ($characters.blair.quests ?? false) && !$characters.vincent.quests.new_settlement>>
<<if !$characters.blair.quests.bj>>
Progress with Blair
<<else>>
Go to farm after few days
<</if>>
<<elseif $characters.vincent.quests.new_settlement && !($game.location.settlement ?? false)>>
Collect <strong class="iitem">100 wood</strong> and <strong class="iitem">5 solar panels</strong>
<<elseif !$characters.vincent.quests.car_talk && $game.cabinName>>
Talk with Vincent
<<elseif !$characters.vincent.quests.wedding_talk>>
<<if $game.day < 150 || $characters.blair.relationship < 90>>
Reach 150 days and increase the Blair relationship to 90
<<else>>
Meet Vincent in farm
<</if>>
<<elseif !$characters.vincent.quests.sanctuary_talk>>
<<if $game.day < 160 || ($characters.vincent.quests.wedding_talk_day + 10) > $game.day>>
Wait a few days
<<else>>
Meet Vincent in farm
<</if>>
<<elseif $characters.vincent.quests.sanctuary_talk && !$characters.vincent.quests.sanctuary_done>>
Prepare yourself and meet Vincent at farm (two companions with strength 40+)
<<elseif !($game.location.shop ?? false) && $characters.vincent.quests.sanctuary_done && !$characters.vincent.quests.shop_talk>>
Talk with Vincent in the farm
<<elseif ($game.location.shop ?? false) && $characters.vincent.quests.shop_talk && !$characters.vincent.quests.sanctuary_car_talk>>
Talk with Vincent in the farm
<<elseif $characters.vincent.quests.sanctuary_car_talk && !($game.location.garage ?? false)>>
Go with your companions to Vincent farm (Need 4 guests with strength 40+)
<<elseif ($game.location.garage ?? false) && !$characters.vincent.quests.military_base>>
Wait few days
<<else>>
That's all for now
<</if>>
<</if>><div id="journal">
<div id="journal_more_help">
<<link 'More help'>>
<<script>>
Dialog.setup("Help", "Help");
Dialog.wiki(Story.get("Help").processText());
Dialog.open();
<</script>>
<</link>>
</div>
<h2>WORLD</h2>
You're on your own. Explore, survive, etc.<br />
Journal is only for unique characters.
<br /><br />
<<if Object.keys($characters.vincent).length > 0>>
<h2>Vincent</h2>
<div>Relationship: <<=$characters.vincent.relationship>></div>
<<if !isMetChar('blair')>>
Increase relationship with Vincent (buy from his shop)
<<elseif ($characters.blair.quests ?? false) && !$characters.vincent.quests.new_settlement>>
<<if !$characters.blair.quests.bj>>
Progress with Blair
<<else>>
Go to farm after few days
<</if>>
<<elseif $characters.vincent.quests.new_settlement && !($game.location.settlement ?? false)>>
Collect <strong class="iitem">100 wood</strong> and <strong class="iitem">5 solar panels</strong>
<<elseif !$characters.vincent.quests.car_talk && $game.cabinName>>
Talk with Vincent
<<elseif !$characters.vincent.quests.wedding_talk>>
<<if $game.day < 150 || $characters.blair.relationship < 90>>
Reach 150 days and increase the Blair relationship to 90
<<else>>
Meet Vincent in farm
<</if>>
<<elseif !$characters.vincent.quests.sanctuary_talk>>
<<if $game.day < 160 || ($characters.vincent.quests.wedding_talk_day + 10) > $game.day>>
Wait a few days
<<else>>
Meet Vincent in farm
<</if>>
<<elseif $characters.vincent.quests.sanctuary_talk && !$characters.vincent.quests.sanctuary_done>>
Prepare yourself and meet Vincent at farm (two companions with strength 40+)
<<elseif !($game.location.shop ?? false) && $characters.vincent.quests.sanctuary_done && !$characters.vincent.quests.shop_talk>>
Talk with Vincent in the farm
<<elseif $characters.vincent.quests.shop_talk && !$characters.vincent.quests.sanctuary_car_talk>>
Talk with Vincent in the farm
<<elseif $characters.vincent.quests.sanctuary_car_talk && !($game.location.garage ?? false)>>
Go with your companions to Vincent farm (Need 4 guests with strength 40+)
<<elseif ($game.location.garage ?? false) && !$characters.vincent.quests.car_fixed>>
Repair and fuel the car in the garage (100% health, 100% fuel)
<<elseif ($game.location.garage ?? false) && !$characters.vincent.quests.military_base>>
Wait few days
<<elseif $characters.vincent.quests.car_fixed && !$characters.vincent.quests.old_debt_day && $game.day < ($characters.vincent.quests.car_fixed_day + 20)>>
Wait a few days
<<elseif $characters.vincent.quests.car_fixed && !$characters.vincent.quests.old_debt_day>>
Talk with Vincent in the farm
<<elseif $characters.vincent.quests.old_debt_day && !$characters.vincent.quests.old_debt_followup_day>>
Talk with Vincent in the farm
<<else>>
<<if !$characters?.rodger?.quests?.dead>>
Progress with Dom's story or wait.
<<else>>
<<if !$characters.vincent.quests.wood_house>>
Talk with Vincent in the farm
<<else>>
That's all for now
<</if>>
<</if>>
<</if>>
<</if>>
<<if ($characters.blair.quests ?? false)>>
<h2>Blair</h2>
<div>Relationship: <<=$characters.blair.relationship>></div>
<<if !($game.location.streets ?? false)>>
After few days try to go to Underground city<br />
<<elseif ($game.location.streets ?? false) && !$characters.vincent.wanted_poster>>
Talk with Vicent about wanted poster<br />
<<elseif $characters.blair.relationship < 15>>
Increase relationship by talking with her in kitchen or bedroom (15)<br />
<<elseif $characters.blair.relationship < 20 && !($game.location.bar ?? false)>>
Increase relationship by talking with her in kitchen or bedroom (20)<br />
<<elseif !($game.location.bar ?? false)>>
Talk with her in the kitchen<br />
<<elseif !$characters.blair.quests.missing_friend_talked>>
Go to the bar and talk with bartender
<br />
<<elseif $characters.blair.quests.missing_friend_talked && !$characters.blair.quests.missing_friend_found>>
Try to find her friend Ashley (On streets in underground city)
<br />
<<elseif $characters.blair.quests.missing_friend_found && !$characters.blair.quests.missing_friend_found_finished>>
Talk to Blair in the morning about Ashley
<br />
<<elseif $characters.blair.quests.missing_friend_found_finished && !$characters.blair.quests.missing_friend_found_finished_thanked>>
Talk to Blair in the evening
<br />
<<elseif !$characters.blair.quests.bj>>
Wait till she makes a move on you
<br />
<<elseif !($characters.rodger.quests.champagne ?? false) && !$characters?.rodger?.quests.dead>>
Progress with Rodger
<<elseif (($characters.rodger.quests.champagne ?? false) || $characters?.rodger?.quests.dead) && !$characters.blair.quests.house_party>>
Talk with her in the morning
<<elseif $characters.blair.quests.house_party && !$characters.blair.quests.house_party_finished>>
Make a house party at fire place at 20:00 and invite any guest to your bedroom
<<elseif !$game.gate && !$characters.blair.quests.gate>>
Talk with Blair in the kitchen
<<elseif !$game.cabinName>>
Build gate for your settlement
<<elseif !$characters.blair.quests.nursery && !($game.location.nursery ?? false)>>
Talk with Blair in the kitchen
<<elseif ($game.cabinName ?? false) && !$characters.blair.quests.basement>>
<<if $characters.blair.relationship >= 80>>
Talk with her in the bedroom
<<else>>
Increase relationship
<</if>>
<<else>>
That's all for now
<</if>>
<br /><br />
<</if>>
<<if ($game.location.settlement ?? false) && isMetChar('rodger')>>
<h2>Rodger</h2>
<<if !$characters?.rodger?.quests?.dead>>
<div>Relationship: <<=$characters.rodger.relationship ?? 0>></div>
<div>Eve corruption: <<=$characters.eve.corruption ?? 0>></div>
<<if !($game.location.settlement_church ?? false)>>
Help him finish the church
<<elseif !$characters.rodger.quests.book>>
Talk with him in the church
<<elseif !$characters.rodger.quests.champagne>>
Talk with him in the church
<<elseif $characters.rodger.quests.champagne && !$characters.eve.quests.sex>>
<<if $game.cabinName>>
Talk with him in the church
<<else>>
Progress with Blair
<</if>>
<<elseif !($game.location.settlement_shop ?? false)>>
<<if !$characters.rodger.quests.shop_talk>>
Talk with him in the church
<<else>>
Help him build shop
<</if>>
<<elseif ($game.location.settlement_shop ?? false) && !$characters.rodger.quests.horse>>
Talk with him in the church
<<elseif $characters.rodger.quests.horse && !$characters.rodger.quests.faith>>
<<if $game.day < 80>>
Continue living for a while (reach 80 days)
<<else>>
Go to the Rodger's settlement
<</if>>
<<elseif !$characters.rodger.quests.cheat>>
Increase Eve corruption to 30 and visit talk to Rodger after 120 days
<<elseif !$characters.rodger.quests.eve_pregnant>>
Wait two weeks and then visit Settlement.
<<else>>
That's all for now
<</if>>
<<else>>
Story finished.
<</if>>
<br /><br />
<</if>>
<<if $player.quests.settlement_burned>>
<h2>Eve</h2>
<div>Relationship: <<=$characters.eve.relationship ?? 0>></div>
<<if !$characters?.eve?.quests?.new_home>>
Wait few days
<<elseif !$characters?.eve?.quests?.church_talk && !$game.location.church>>
Visit Eve
<<elseif !$game.location.church>>
Build church
<<else>>
That's all for now
<</if>>
<</if>>
<h2>Dom</h2>
<<if isMetChar('dom') && !$characters.dom.quests.invite>>
<<if $game.day < 100 || $player.reputation < 100 || (setup.getPersonsForLocation($slaves, 'streets').length + setup.getPersonsForLocation($guests, 'streets').length) < 4>>
Keep living your life. Increase reputation (150) and need more girls working on the street (4) and reach 100 days
<<else>>
Got to the underground streets
<</if>>
<<elseif $characters.dom.quests.accepted_deal>>
<<if !$characters.dom.quests.quest1>>
Wait for a few days until some of Dom's men find you. (Visit underground city streets)
<<elseif $characters.dom.quests.quest1 && !$characters.dom.quests.quest1_done>>
Get 10 bottles of champagne for Dom
<<elseif !$characters.dom.quests.quest2>>
<<if $player.strength < 100>>
Increase your strength (100+)
<<else>>
Meet Dom in streets
<</if>>
<<elseif !$characters.dom.quests.quest3>>
<<if $characters.dom.quests.quest3_start_day >= $game.day>>
Wait few days
<<else>>
Meet Dom in streets
<</if>>
<<elseif !$characters.dom.quests.quest4>>
<<if ($characters.dom.quests.quest3_done_day + 10) >= $game.day>>
Wait few days
<<else>>
Go to the nightclub
<</if>>
<<elseif !$characters.dom.quests.quest5>>
<<if ($characters.dom.quests.quest4_done_day + 10) >= $game.day>>
Wait few days
<<else>>
Go to the streets
<</if>>
<<elseif $characters.dom.quests.quest5 && !isMetChar('negan')>>
Go to The Sanctuary and meet with Negan
<<elseif !$characters.negan.quests.quest2>>
Progress Negan story
<<elseif $characters.negan.quests.quest2 && !$characters.dom.quests.quest6>>
Go to underground city and bring fuel to Isabel
<<elseif $characters.dom.quests.quest6 && !$characters.dom.quests.isabel_beg>>
Wait few days and then go to underground city to the streets
<<elseif $characters.dom.quests.isabel_beg && !$characters.dom.quests.isabel_beg_fuel>>
<<if ($characters.dom.quests.isabel_beg_day + 5) > $game.day>>
Wait few days
<<else>>
Bring 10 fuel cans to Isabel (Streets)
<</if>>
<<elseif $characters.isabel.quests.saved && !$characters.isabel.quests.temp_home>>
Visit Isabel in your guesthouse
<<elseif $characters.isabel.quests.temp_home & !$characters.isabel.quests.check_city>>
Wait two weeks and visit Isabel in her room
<<elseif $characters.isabel.quests.check_city && !$characters.isabel.quests.pregnant>>
<<if typeof $characters.isabel.pregnancy === 'undefined' || $characters.isabel.pregnancy < 7>>
Get Isabel pregnant
<<else>>
Go to Isabel's room
<</if>>
<<elseif $characters.isabel.quests.pregnant && !$characters.isabel.quests.dom_return>>
Wait few days
<<elseif $characters.isabel.quests.dom_return && !$characters.dom.quests.return_city1>>
Wait few days (15) and then visit underground city
<<elseif $characters.dom.quests.return_city1 && !$characters.dom.quests.return_city_done>>
Prepare for fight and visit underground city
<<elseif $characters.dom.quests.return_city_done && !$characters.dom.quests.return_city_done1>>
Visit Dom's office after few days
<<elseif $characters.dom.quests.return_city_done1 && !$characters.dom.quests.return_city_done2>>
Visit Dom's office after few days
<<elseif $characters.dom.quests.return_city_done2 && !$characters.dom.quests.return_city_done3>>
Visit Underground city in night (from 23:00 - 03:00) after few days
<<elseif $characters.dom.quests.return_city_done3 && !$characters.dom.quests.breaking_point>>
Visit Dom's office after few days
<<elseif $characters.dom.quests.breaking_point && !$characters.dom.quests.cracks_in_throne>>
Visit Dom's office after few days
<<elseif $characters.dom.quests.cracks_in_throne && !$characters.dom.quests.dinner>>
Visit Dom's office after few days in the evening (from 18:00 to 22:00)
<<elseif $characters.dom.quests.dinner && !$characters.dom.quests.new_king>>
Kill Dom
<<else>>
Story finished.
<</if>>
<<elseif $characters.dom.quests.accepted_deal === false>>
<<if !$characters.isabel.quests.secret_contact_day>>
<<if !($game.location.gloryhole ?? false) || ($characters.dom.quests.decline_day + 10) > $game.day>>
Wait a few days
<<else>>
Go to the nightclub
<</if>>
<<elseif !$characters.isabel.quests.secret_meeting1_day>>
Go to the nightclub bathroom
<<elseif !$characters.isabel.quests.secret_meeting2_day>>
<<if ($characters.isabel.quests.secret_meeting1_day + 2) > $game.day>>
Wait a few days
<<else>>
Go to the nightclub bathroom
<</if>>
<<elseif !$characters.isabel.quests.secret_meeting3_day>>
<<if ($characters.isabel.quests.secret_meeting2_day + 2) > $game.day>>
Wait a few days
<<else>>
Go to the nightclub bathroom
<</if>>
<<elseif !$characters.isabel.quests.secret_meeting4_day>>
<<if ($characters.isabel.quests.secret_meeting3_day + 2) > $game.day>>
Wait a few days
<<else>>
Go to the nightclub bathroom
<</if>>
<<elseif !$characters.dom.dead>>
<<if ($characters.isabel.quests.secret_meeting4_day + 3) > $game.day>>
Wait a few days
<<else>>
Bring a knife or a loaded revolver and go to Dom's office from the Underground city
<</if>>
<<else>>
Story finished.
<</if>>
<<else>>
That's all for now
<</if>>
<<if isMetChar('dom') && $characters.dom.dead>>
<h2>Isabel</h2>
<<if !$characters.isabel.quests.new_boss>>
Wait a day and visit her in Dom's old office
<<elseif !$characters.isabel.quests.new_business_day>>
Wait a day and visit her in Underground city
<<elseif !$characters.isabel.quests.strip_club_resources_day>>
Give resources for club renovation
<<elseif !$game.location.strip_club>>
Wait while strip club is being renovated
<<else>>
That's all for now
<</if>>
<</if>>
<<if ($game.location.settlement ?? false) && isMetChar('rodger') && isMetChar('octavia')>>
<h2>Octavia</h2>
<div>Relationship: <<=$characters.octavia.relationship ?? 0>></div>
<<if !$characters.octavia.quests.burned_settlement>>
<<if $game.day < 80>>
Reach 80 ingame days
<<else>>
Visit Rodger's settlement
<</if>>
<<elseif $characters.octavia.quests.burned_settlement && !$characters.octavia.quests.eve_kidnapped>>
After few days travel to Rodger's settlement
<<elseif !$characters.octavia.quests.ultimatum>>
<<if $characters.octavia.relationship < 40>>
Increase relationship. (Bring her medallions)
<<else>>
Go to her camp.
<</if>>
<<elseif !$characters.octavia.quests.kidnapped>>
<<if $characters.octavia.relationship < 50>>
Increase relationship.
<<else>>
Go to her camp.
<</if>>
<<elseif !$characters.octavia.quests.kidnapped_found>>
<<if $backpack.count('tribe_medallion') < 3>>
Get more tribe medallions (3)
<<else>>
Go to her camp. Need at least 6 companions.
<</if>>
<<elseif !$characters.octavia.quests.betrayal>>
Wait when Octavia will visit you.
<<elseif !$characters.octavia.quests.betrayal2>>
Wait when Octavia will visit you.
<<elseif !$characters.octavia.quests.next_move>>
Wait when Octavia will visit you.
<<elseif !$characters.octavia.quests.new_plan>>
Wait few days and visit Octavia in her room
<<elseif !$characters.octavia.quests.new_plan2>>
Talk with her in her room
<<elseif !$characters.octavia.quests.new_plan3>>
Talk with her in her room next day
<<elseif !$characters.octavia.quests.rebuild_tribe_day>>
Visit Octavia in her room after a few days
<<elseif !$characters.octavia.quests.warriors_done_day>>
<<set _wCount = ($characters.octavia.quests.warriors ?? []).length>>
Bring female warriors to Octavia (<<print _wCount>>/5). She needs <strong>women with 70+ strength</strong>. Visit her in her room to send them.
<<elseif ($characters.octavia.quests.warriors_done_day + 3) >= $game.day && !$characters.octavia.quests.emberclaw_ready_day>>
Wait a few days — Octavia is getting ready to leave
<<elseif !$characters.octavia.quests.emberclaw_ready_day>>
Visit Octavia in her room — she's ready to leave
<<else>>
That's all for now
<</if>>
<br /><br />
<</if>>
<h2>Laura (Dr. Finch)</h2>
<div>Relationship: <<= isMetChar('laura') ? $characters.laura.relationship : 0>></div>
<<if isMetChar('laura')>>
<<if !$characters.laura.quests.successful_test>>
Wait few days
<<elseif !$characters.laura.quests.first_vials>>
Wait few days
<<elseif !$characters.laura.quests.lab_workbench>>
Wait few days
<<elseif !($game.location.lab ?? false)>>
Build lab for her from workbench
<<elseif ($game.location.lab ?? false) && !$characters.laura.quests.breeder_trait>>
<<if ($characters.laura.quests.lastTestDay + 20) < $game.day>>
Meet her at greenhouse
<<else>>
Wait some days
<</if>>
<<else>>
That's all for now
<</if>>
<<else>>
Get to day 200
<</if>>
<h2>Negan</h2>
<<if isMetChar('negan') >>
<<if !$characters.negan.quests.quest1 && $characters?.dom?.quests?.quest5>>
Bring four slaves to him. (Blondes and 80+ beauty)
<<elseif !$characters.negan.quests.quest2 && $characters?.dom?.quests?.quest5>>
Bring four girls (80+ beauty and blonds) to Negan. (As companions)
<<elseif $characters.negan.quests.quest2 && !$characters.negan.quests.quest3>>
Bring Negan twice 2 female slaves and then visit his office. (80+ beauty and blonds)
<<elseif $characters.negan.quests.quest3 && !$characters.negan.quests.quest4>>
Wait few days and visit his office
<<elseif $characters.negan.quests.quest4 && !$characters.negan.quests.quest5>>
Wait few days and visit his office
<<elseif $characters.negan.quests.quest5 && !$characters.negan.quests.story_told_day>>
<<if !($characters?.vincent?.car_get_day ?? false)>>
Progress Vincent story
<<elseif $game.day <= ($characters?.negan?.quests.quest5_day + 7)>>
Wait few days and visit his office
<<else>>
Visit Negan's office
<</if>>
<<elseif $characters.negan.quests.story_told_day && !$characters.negan.quests.new_one_day>>
<<if $game.day <= ($characters?.negan?.quests.story_told_day + 10)>>
Wait few days and visit his office
<<else>>
Visit Negan's office
<</if>>
<<elseif $characters.negan.quests.new_one_day && !$characters.negan.quests.drunk_companion_day>>
<<if $game.day < ($characters.negan.quests.new_one_day + 5)>>
Wait a few days
<<else>>
Visit the underground city bar in the evening.
<</if>>
<<elseif $characters.negan.quests.drunk_companion_day && !$characters.negan.quests.informant_day>>
<<if $game.day < ($characters.negan.quests.drunk_companion_day + 3)>>
Wait a few days
<<else>>
Visit the Sanctuary. Something may have reached Negan's ears.
<</if>>
<<elseif $characters.negan.quests.informant_day && !$characters.negan.quests.barter_day>>
<<if $game.day < ($characters.negan.quests.informant_day + 5)>>
Wait a few days
<<else>>
Visit the Sanctuary. Negan had something on his mind last time — he may have a proposition.
<</if>>
<<elseif $characters.negan.quests.barter_day>>
That's all for now
<<else>>
That's all for now
<</if>>
<<else>>
Progress with Dom story.
<</if>>
<h2>Boris</h2>
<<if isMetChar('boris')>>
<<if !$characters.boris.quests.shop>>
Increase your fighter rank (95)
<<elseif !$characters.boris.quests.fight1>>
Increase your fighter rank and win your next rival
<<elseif !$characters.boris.quests.fight2>>
Increase your fighter rank and win your next rival
<<else>>
That's all for now
<</if>>
<<else>>
Train yourself in underground city (Reach 30 strength)
<</if>>
<<if isMetChar('elsa')>>
<h2>Elsa</h2>
<<if !$characters.elsa.quests.food_delivery>>
Bring her and her mother 30 food and 30 wood
<<elseif !$characters.elsa.quests.medicine_delivery && !$characters.elsa.quests.champagne_delivery>>
Bring her and her mother 10 antibiotics and 10 wolf pelts
<<elseif !$characters.elsa.quests.champagne_delivery>>
Bring her 2 champagne bottles
<<elseif $characters.elsa.quests.penetration_day && !$characters.elsa.quests.stranger_at_doors_day>>
Visit her after few days
<<elseif $characters.elsa.quests.stranger_at_doors_day && !$characters.elsa.quests.shower_day>>
Visit her after few days
<<elseif $characters.elsa.quests.shower_day && !$characters.elsa.quests.well_day>>
Check village well (Car explore)
<<elseif $characters.elsa.quests.well_day && !$characters.elsa.quests.homestead_day>>
Visit her after few days
<<elseif $characters.elsa.quests.homestead_day && !$characters.elsa.quests.crossbow_day>>
Bring them two crossbows
<<elseif $characters.elsa.quests.crossbow_day && !$characters.elsa.quests.attack_day>>
Visit her after few days
<<elseif $characters.elsa.quests.attack_day && !$characters.elsa.quests.new_home>>
Go to guest house
<<elseif $characters.elsa.quests.new_home && !$characters.elsa.quests.introduction_day>>
Wait few days and then visit her
<<else>>
That's all for now
<</if>>
<</if>>
</div><h2>Your stats</h2>
<h4>Reputation (<<=$player.reputation>>)</h4>
<<if $player.reputation < 10>>
Nobody knows you. When you go around, everyone will try to take advantage of you.
<<elseif $player.reputation < 20>>
Your name is whispered occasionally, though not with much significance.
<<elseif $player.reputation < 30>>
Your deeds have started to catch the attention of the local communities.
<<elseif $player.reputation < 50>>
You're gaining a following of supporters who admire your achievements.
<<elseif $player.reputation < 100>>
You're a well-known figure in multiple regions, often recognized on your travels.
<<else>>
Your actions have earned you respect and recognition from various communities. People speak of your achievements with admiration and respect.
<</if>>
<h4>Bounty hunter reputation (<<=$player.reputation_bounty_hunter>>)</h4>
<<if $player.reputation_bounty_hunter < 1>>
You are nobody.
<<elseif $player.reputation_bounty_hunter < 10>>
Few people have seen you but they still laugh at you
<<elseif $player.reputation_bounty_hunter < 20>>
Your deeds have started to catch the attention of the bounty hunter community.
<<else>>
People are starting to avoid you and be scared of you.
<</if>>
<br /><br />
<table class="mc-stats-table">
<tr><td>People captured:</td><td><<=$player.stats.people_captured ?? 0>></td></tr>
<tr><td>People killed:</td><td><<=$player.stats.people_killed ?? 0>></td></tr>
<tr><td>Girls impregnated:</td><td><<=$player.stats.girls_impregnated ?? 0>></td></tr>
<tr><td>Slaves sold:</td><td><<=$player.stats.slaves_sold ?? 0>></td></tr>
<<if $player.quests.slave_market_vip_room>>
<tr><td>Slaves sold (VIP):</td><td><<=$player.stats.slaves_sold_vip ?? 0>></td></tr>
<</if>>
<tr><td>Slaves killed:</td><td><<=$player.stats.slaves_killed ?? 0>></td></tr>
<tr><td>Slaves released:</td><td><<=$player.stats.slaves_released ?? 0>></td></tr>
</table>
<br /><br />
<h4>Goodwill (<<=$player.goodwill>>)</h4>
<br /><br />
<<link 'Leave'>>
<<goto 'Bedroom'>>
<<dialogclose>>
<</link>>
<style>
.mc-stats-table td {
padding: 10px;
}
#mc-stats {
display: flex;
flex-wrap: wrap;
}
.mc-stats-container {
width: 400px;
}
</style><h1 class="ptitle">PACKS</h1>
<div id="info">
<a href="https://apocalyptic-world.com/wiki_packs_custom.html" target="_blank">WIKI</a> how to create new packs.
</div>
<table>
<<set $packs ??= {}>>
<<set _allPacks = Object.entries(Object.assign({}, setup.packs, setup.packsCustom)).sort((a, b) => a[1].name.localeCompare(b[1].name))>>
<<for _entry range _allPacks>>
<<set _packKey = _entry[0]>>
<<set _pack = _entry[1]>>
<<capture _packKey, _pack>>
<<set $packs[_packKey] ??= false>>
<tr>
<td>
<<checkbox '$packs[_packKey]' false true autocheck>>
</td>
<td>
<<= _pack.name>>
<<if _pack.author>>
<div class="pack-meta">
by <<= _pack.author>>
</div>
<</if>>
<<if _pack.gender != null>>
<<set _genderLabel = ['Female', 'Male', 'Trans woman'][_pack.gender] ?? 'Unknown'>>
<div @class="'pack-meta' + (_pack.gender === 2 ? ' pack-trans' : '')">
<<= _genderLabel>>
</div>
<</if>>
</td>
<td>
<div>
<<= _pack.download>>
</div>
<div class="pack-description">
<<= _pack.description>>
</div>
</td>
</tr>
<<if _pack.portrait>>
<tr>
<td colspan="2">
<<set _image = 'packs/' + _packKey + '/' + _pack.portrait>>
<img @src="_image" referrerpolicy="no-referrer">
</td>
<td valign="top" style="font-size: 10pt">
<<if _pack.race>>
<div>
Race: <<=_pack.race>>
</div>
<</if>>
<<if _pack.hair>>
<div>
Hair color: <<=_pack.hair>>
</div>
<</if>>
</td>
</tr>
<</if>>
<</capture>>
<</for>>
</table>
<br /><br />
<<link 'Leave'>>
<<if $game.introFinished>>
<<goto 'Outside'>>
<<else>>
<<goto 'Welcome intro'>>
<</if>>
<</link>>
<style>
.pack-description {
font-size: 10px;
}
.pack-meta {
font-size: 10px;
color: #aaa;
}
.pack-trans {
color: #e88ad0;
font-weight: bold;
}
</style><h1 class="ptitle">SUPPORTER CODE</h1>
<br /><br />
<<if recall($suppCode) is true >>
<div class="patreon-box">
Supporter code activated! Thank you!
</div>
<<else>>
<div class="patreon-box">
Enter supporter code below to open more unique events.
<br /><br />
<<textbox "_testcode" "">>
<br /><br />
<div class="link-button passage">
<<link 'Check'>>
<<if _testcode == setup.decrypt($mcCache)>>
<<run memorize($suppCode, true)>>
<<notify 6s>>Supporter code activated!<</notify>>
<<dialogclose>>
<<goto `passage()`>>
<<else>>
<<notify 6s>>Wrong!<</notify>>
<</if>>
<</link>>
</div>
</div>
<</if>>
<style>
.patreon-box {
background:#f1c40f;
border-radius: 20px;
padding: 20px;
color: #000;
}
</style><h1 class="ptitle"><<=$shooter.title ?? 'Hunting'>></h1>
<div id="shooter-game">
<div id="shooter-game-time-left">
<h3>Time left <span id="time">00:00</span></h3>
</div>
<div class="board" id="board">
<div class="screen" id="start-screen">
<a href="#" class="start passage link-internal" id="start">Start</a>
<div id="shooter-start-info">Tip: Just press on the targets</div>
</div>
<div class="screen" id="shooter-game-finished">
<div id="shooter-game-finished-score"></div>
<<link 'Continue'>>
<<goto `$shooter.passageWon`>>
<</link>>
</div>
</div>
</div>
<center>
<<if $player.int > 50>>
<br /><br />
<<link 'Skip'>>
<<set $shooter = {
score: randomInteger(8,9),
target: either('deer', 'wolf')
}>>
<<goto 'Forest - hunt'>>
<</link>>
<</if>>
</center>
<<script>>
$(document).one(':passagedisplay', function (eventObject) {
var startBtn = document.querySelector("#start"),
timeEl = document.querySelector("#time"),
board = document.querySelector("#board"),
time = 10,
score = 0,
decreaseTimeInterval = false,
finished = false;
board.style.backgroundImage = "url('" + setup.ImagePath + "places/shooter/" + variables().shooter.place + ".jpg')";
startBtn.addEventListener("click", function(e) {
e.preventDefault();
startGame();
});
board.addEventListener("click", (e) => {
if (e.target.classList.contains("target")) {
score++;
e.target.remove();
if (!finished) {
createTarget();
}
}
});
function startGame() {
decreaseTimeInterval = setInterval(decreaseTime, 1000);
document.querySelector('#shooter-game-time-left').style.visibility = "visible";
document.querySelector('#start-screen').style.display = "none";
createTarget();
setTime(time);
}
function finishGame() {
finished = true;
clearInterval(decreaseTimeInterval);
timeEl.parentNode.classList.add("hide");
document.querySelector("#shooter-game-finished").style.display = "block";
document.querySelector("#shooter-game-finished-score").innerHTML = "<h1>Your Score: <span class = 'primary'>" + score + "</span></h1>";
variables().shooter.score = score;
}
function decreaseTime() {
if (time === 0) {
finishGame();
} else {
let current = --time;
if (current < 10) {
current = `0${current}`;
}
setTime(current);
}
}
function createTarget() {
var target = document.createElement("div"),
size = randomInteger(40, 100),
{ width, height } = board.getBoundingClientRect(),
x = randomInteger(0, width - size),
y = randomInteger(0, height - size);
target.classList.add("target");
target.style.width = `${size}px`;
target.style.height = `${size}px`;
target.style.top = `${y}px`;
target.style.left = `${x}px`;
target.style.backgroundImage = "url('" + setup.ImagePath + "places/shooter/" + variables().shooter.target + ".png')";
target.style.backgroundSize = "contain";
target.style.backgroundRepeat = "no-repeat";
board.append(target);
}
function setTime(value) {
timeEl.innerHTML = `00:${value}`;
}
});
<</script>>
<style>
#shooter-game {
cursor: crosshair;
}
#shooter-game-finished {
display: none;
}
a.link-external:after {
content: '' !important;
}
#start-screen {
background: #666;
opacity: 0.9;
border-radius: 20px;
width: 220px;
text-align: center;
padding: 15px;
padding-right: 25px;
padding-top: 20px;
}
.board {
display: flex;
justify-content: center;
align-items: center;
position: relative;
width: 100%;
height: 500px;
background: linear-gradient(118.38deg, #29323c -4.6%, #485563 200.44%);
box-shadow: -8px -8px 20px #2a333d, 10px 7px 20px #475462;
border-radius: 30px;
overflow: hidden;
background-size: contain;
}
.target {
position: absolute;
cursor: crosshair;
}
#shooter-game .screen {
padding: 20px;
background: #666;
opacity: 0.9;
border-radius: 20px;
}
#shooter-game-time-left {
text-align: center;
visibility: hidden;
}
</style><<sleep>><style>
.support-div {
height: 300px;
border: 2px solid #f1c40f;
}
.support-outer {
width: 250px;
}
.support-text {
padding: 15px;
color:#ddd;
}
.support-logo {
display: block;
background: white;
}
.pe-img img {
width: 100%;
}
</style>
<br /><br />
<div id="support-page" style="display:flex; flex-wrap: wrap; justify-content:space-evenly">
<div class="support-outer">
<div class="caut-bar"></div>
<div class="support-div">
<a href="https://subscribestar.adult/apocalyptic-world" target="_blank" class="support-logo">
[img[setup.ImagePath+'game/misc/ss_logo.png']]
</a>
<div class="support-text">
If you like this game and want to see it grow, please consider supporting the development. <br /><br />
</div>
</div>
<div class="caut-bar"></div>
</div>
<div class="support-outer">
<div class="caut-bar"></div>
<div class="support-div">
<a href="https://www.patreon.com/apocalyptic_world" target="_blank" class="support-logo">
[img[setup.ImagePath+'game/misc/patreon_logo.png']]
</a>
<div class="support-text">
If you like this game and want to see it grow, please consider supporting the development. <br /><br />
</div>
</div>
<div class="caut-bar"></div>
</div>
<div class="support-outer">
<div class="caut-bar"></div>
<div class="support-div">
<a href="https://f95zone.to/threads/apocalyptic-world-v0-07-ttyrke.137594" target="_blank" class="support-logo">
[img[setup.ImagePath+'game/misc/f95_logo.png']]
</a>
<div class="support-text">
Forum thread where update is released, discussed and bugs reported.
</div>
</div>
<div class="caut-bar"></div>
</div>
<div class="support-outer">
<div class="caut-bar"></div>
<div class="support-div">
<a href="https://discord.gg/x6CjzjChgu" target="_blank" class="support-logo">
[img[setup.ImagePath+'game/misc/discord_logo.png']]
</a>
<div class="support-text">
Discord server to report bugs, give suggestions or just talk about the game.
</div>
</div>
<div class="caut-bar"></div>
</div>
</div>
<br /><br /><br />
<<include 'Patreon code'>>
<br /><br />
<div style="text-align: center;">
<<link 'Credits'>>
<<script>>Dialog.setup("Credits", "Credits"); Dialog.wiki(Story.get("Credits").processText()); Dialog.open();<</script>>
<</link>>
</div>
<style>
#support-page img {
width: 100%;
}
#ss_logo img, #f95_logo img, #patreon_logo img {
width: 300px;
}
#ss_logo img {
width: 50%;
}
.support-outer {
margin: 20px;
max-width: 168px;
}
</style><div id="welcome">
[img[setup.ImagePath+'intro/start.jpg']]
<h1>Version 0.89a</h1>
<div id="versionCheck" style="display:none">
<div class="caut-bar"></div>
<div id="versionCheckInner"></div>
<div class="caut-bar"></div>
</div>
<br />
A few things from the developer before you start. You can skip them if you want by clicking below.
<br /><br />
This project is and will be absolutely free. For now, if you want to support my work, just leave a comment in F95zone. My ears are all yours.<br />
I need suggestions, criticism and your true opinion<br />
This is my first game ever.
<br /><br />
This is an open world RPG. You want to be a farmer, a trader, a bounty hunter, a cage fighter, a warlord — or something far darker? The choice is yours.
<br /><br />
<h2>Reputation</h2>
Your reputation reflects how the world sees you. Help people, win fights, buy rounds of drinks — it goes up. Kill innocents, betray trust — it goes down. Some factions, quests and opportunities only open up at certain reputation levels.
<br />
<h2>People</h2>
You can acquire people in several ways — capture them in the wild, buy them at the market, or invite them to live as guests at your settlement.<br />
Workers and guests can be assigned to a wide range of roles: tending the greenhouse, cooking, doctoring, teaching, hunting, running the shop, working the streets, or guarding the gate.<br />
Build relationships, unlock traits, and grow your community however you see fit.
<br /><br />
<h2>Exploration</h2>
The world beyond your settlement is dangerous and full of surprises. Go exploring to find resources, locations, random encounters and blueprints for new buildings. The further you push, the more you unlock.
<br /><br />
<h2>Building</h2>
Find a workbench and start improving your home. Build a greenhouse, a guesthouse, a basement, a shop, a nursery, a hospital, a bathhouse, a library and more. Each building opens new mechanics and opportunities.
<br /><br />
<h2>Combat</h2>
Fights happen. Your strength, endurance, weapons and companions all matter. Train hard, equip well, bring allies. The Underground city has a fight cage where you can compete for rank and rewards.
<br /><br />
<h2>Economy</h2>
Caps are the currency of this world. Trade resources, run a shop, send workers to the streets, do jobs for powerful people in the Underground city or make deals at the Sanctuary. Money opens doors.
<br /><br />
<h2>Relationships</h2>
The people around you are more than just workers. Talk to them, spend time with them, take them on dates. Relationships unlock new events, story content, and more intimate moments. Some characters have deep questlines that span the whole game.
<br /><br />
<h2>Story</h2>
Story and quests are woven into the world but you are never forced to follow them. Play at your own pace — the world keeps going either way.
<br /><br />
</div>
<br /><br />
[[Continue (I am 18+)|Intro]]
<<done>>
<<script>>
function showVersion(mainVersion, subVersion)
{
return mainVersion.toFixed(2) + subVersion;
}
$.get("https://apocalyptic-world.com/version.php", function(data, status){
if (!data) {
return;
}
var currentVersion = $('#version').text().replace('v','');
const pattern = /^(\d+(\.\d+)?)([a-zA-Z]*)$/;
const matches = currentVersion.match(pattern);
if (matches) {
const currentMainVersion = parseFloat(matches[1]);
const currentSubVersion = matches[3];
var data = data.replace('v','');
const liveMatches = data.match(pattern);
if (liveMatches) {
const liveMainVersion = parseFloat(liveMatches[1]);
const liveSubVersion = liveMatches[3];
if (liveMainVersion > currentMainVersion || (liveMainVersion === currentMainVersion && liveSubVersion > currentSubVersion)) {
$('#versionCheckInner').html('You are playing older version (' + showVersion(currentMainVersion, currentSubVersion) + '). Newer version is available (' + showVersion(liveMainVersion, liveSubVersion) + ') <br />Play it on <a href="http://apocalyptic-world.com" target="_blank">http://apocalyptic-world.com</a> or join discord and download it there.');
$('#versionCheck').show();
}
}
}
});
<</script>>
<</done>><<set _workbenchItems = {
axe: {
show: true,
title: "Axe",
description: "Helps to gather more wood",
required: {
wood: 2,
metal: 5
},
energy: 30,
after: function() {
variables().backpack.pickup('axe', 1);
},
multi: true,
goto: "Workbench"
},
pickaxe: {
show: true,
title: "Pickaxe",
description: "Required to work in quarry/mines",
required: {
wood: 2,
metal: 10,
},
energy: 40,
after: function() {
variables().backpack.pickup('pickaxe', 1);
},
multi: true,
goto: "Workbench"
},
greenhouse: {
show: !($game.location.greenhouse ?? false),
title: 'Greenhouse',
description: 'Increase food productivity by assigning slaves here.',
required: {
'solar_panel': 2,
'wood': 30,
},
energy: 60,
after: function() {
variables().game.location.greenhouse = true;
},
goto: 'Greenhouse'
},
hot_shower: {
show: $backpack.has('blueprint_hot_shower') && !$game.hotShower,
title: 'Hot shower',
description: 'Adds additional energy gain.',
required: {
'solar_panel': 2,
},
energy: 60,
goto: 'Shower-room',
after: function() {
variables().game.hotShower = true;
},
},
library: {
show: $backpack.has('blueprint_library') && !$game.location.library,
title: 'Library',
description: 'Increase intelligence by reading found books',
required: {
'wood': 50,
'rope': 10,
'solar_panel': 1,
'metal': 5,
'glass': 10
},
energy: 60,
goto: 'Library built',
after: function() {}
},
hot_tub: {
show: $backpack.has('blueprint_hot_tub') && !$game.location.hottub,
title: 'Hot tub',
description: 'Relax in hot tub',
required: {
'wood': 40,
'rope': 10,
'metal': 5,
},
energy: 60,
goto: 'Hottub built',
after: function() {}
},
basement_cell: {
show: $basementLimit < 45,
title: 'Basement cell',
description: 'Build an additional cell in the basement.',
required: {
wood: 40,
rope: 2,
},
energy: 60,
after: function() {
variables().basementLimit = variables().basementLimit += 1;
},
multi: true,
goto: 'Workbench'
},
pregnancy_potion: {
show: $characters.vincent.quests.pregnancy_talked,
title: "Pregnancy termination potion",
description: 'Craft pregnancy termination potion to terminate pregnancy',
required: {
glowing_mushroom: 1,
milk: 1
},
energy: 40,
after: function() {
variables().backpack.pickup('pregnancy_potion', 1);
},
multi: true,
goto: "Workbench"
},
guest_house: {
show: !($game.location.guesthouse ?? false),
title: "Guest house",
description: "Build a guest house for released slaves or new guests.",
required: {
wood: 200,
rope: 30,
solar_panel: 2
},
energy: 100,
after: function() {
variables().game.location.guesthouse = true;
},
goto: "Guest house"
},
bow: {
show: true,
title: "Bow",
description: "Used for hunting",
required: {
wood: 3,
rope: 3
},
energy: 60,
after: function() {
variables().backpack.pickup('bow', 1);
},
multi: true,
goto: "Workbench"
},
crossbow: {
show: $backpack.has('blueprint_crossbow'),
title: "Crossbow",
description: "Can be used as weapon",
required: {
wood: 10,
metal: 10,
rope: 10
},
energy: 60,
after: function() {
variables().backpack.pickup('crossbow', 1);
},
multi: true,
goto: "Workbench"
},
arrow: {
show: true,
title: "Arrow",
description: "Can be used with crossbow",
required: {
wood: 1,
metal: 1
},
energy: 10,
after: function() {
variables().backpack.pickup('arrow', 1);
},
multi: true,
goto: "Workbench"
},
torch: {
show: true,
title: 'Torch',
description: 'Light for one night outside',
required: {
wood: 1,
cloth: 1
},
energy: 10,
after: function() {
variables().backpack.pickup('torch', 1);
},
multi: true,
goto: "Workbench"
},
lantern: {
show: !setup.cabinInventory.has('lantern'),
title: 'Lantern',
description: 'Reusable light for night trips, burns one fuel can per night',
required: {
metal: 2,
glass: 1
},
energy: 30,
after: function() {
variables().backpack.pickup('lantern', 1);
},
goto: "Workbench"
},
guesthouse_cell: {
show: ($game.location.guesthouse ?? false) && ($guesthouseLimit ?? 3) < 45,
title: 'Guest house bed',
description: 'Build additional bed in guest house',
required: {
wood: 50,
rope: 5,
},
energy: 60,
after: function() {
if (!Number.isInteger(variables().guesthouseLimit)) {
variables().guesthouseLimit = 3;
}
variables().guesthouseLimit = variables().guesthouseLimit += 1;
},
multi: true,
goto: "Workbench"
},
solar_panel: {
show: true,
title: "Solar panel",
description: "Used for crafting",
required: {
plastic: 5,
glass: 5
},
energy: 60,
after: function() {
variables().backpack.pickup('solar_panel', 1);
},
multi: true,
goto: "Workbench"
},
paddle: {
show: !$backpack.has('paddle'),
title: "Paddle",
description: "Increases submission gain while punishing slave",
required: {
wood: 2,
rope: 1
},
energy: 30,
after: function() {
variables().backpack.pickup('paddle', 1);
},
multi: true,
goto: "Workbench"
},
bandage: {
show: true,
title: 'Bandage',
description: 'Stops bleeding',
required: {
cloth: 1
},
energy: 30,
after: function() {
variables().backpack.pickup('bandage', 1);
},
multi: true,
goto: "Workbench"
},
gate: {
show: ($characters.blair.quests?.gate || $game.day >= 14) && !$game.cabinName,
title: "Settlement gate",
description: "Gates for the entrance to your village",
required: {
wood: 150,
rope: 10,
},
goto: "Gate - done",
energy: 100,
after: function() {}
},
nursery: {
show: ((isMetChar('blair') && $characters.blair.quests.nursery) || ($player.quests?.nursery_request ?? false)) && !($game.location.nursery ?? false),
title: "Nursery",
description: "Shelter were all babies/kids will live.",
required: {
wood: 50,
plastic: 10,
rope: 10
},
goto: "Nursery - built",
energy: 100,
after: function() {}
},
shop: {
show: ((isMetChar('vincent') && $characters.vincent.quests.shop_talk) || Object.keys(setup.filterNPCs($guests, {'skills_inc': ['shopkeeper']})).length > 0) && !($game.location.shop ?? false),
title: "Shop",
description: "Let someone else manage your storage. Sell/Buy items from random travelers.",
required: {
wood: 200,
plastic: 30,
rope: 30
},
goto: "Workbench",
energy: 100,
after: function() {
variables().game.location.shop = true;
variables().characters.vincent.quests ??= {};
variables().characters.vincent.quests.shop_talk ??= true;
}
},
bathhouse: {
show: !($game.location.bathhouse ?? false) && ($player.quests.bathhouse_talk || $backpack.has('blueprint_bathhouse')),
title: 'Bathhouse',
description: "Your guests will have place where to wash them self and mistress will be able to wash slaves too.",
required: {
wood: 200,
plastic: 20,
rope: 20,
solar_panel: 1
},
goto: "Workbench",
energy: 100,
after: function() {
variables().game.location.bathhouse = true;
}
},
massage_table: {
show: ($game.location.bathhouse ?? false) && $backpack.has('blueprint_massage_table') && !($game.location.massage_table ?? false),
title: 'Massage table',
description: "Your guests will have a place in bathhouse where to receive a massage.",
required: {
wood: 20,
cloth: 10,
rope: 5,
},
goto: "Workbench",
energy: 30,
after: function() {
variables().game.location.massage_table = true;
}
},
lab: {
show: (isMetChar('laura') && $characters.laura.quests.lab_workbench && !$game.location.lab),
title: 'Lab',
description: 'Lab. An extension to guest house',
required: {
glass: 20,
wood: 100,
rope: 10,
solar_panel: 5
},
goto: 'Workbench',
energy: 100,
after: function() {
variables().game.location.lab = true;
}
},
towel: {
show: true,
title: 'Towel',
description: 'Used for childbirth to increase chance of survival',
required: {
cloth: 2
},
goto: 'Workbench',
energy: 30,
after: function() {
variables().backpack.pickup('towel', 1);
},
multi: true
},
dumbbell: {
show: true,
title: "Dumbbell",
description: "Lets people workout on their own and increase strength",
required: {
wood: 5,
metal: 2,
rope: 1
},
goto: 'Workbench',
energy: 30,
after: function() {
variables().backpack.pickup('dumbbell', 1);
},
multi: true
},
kettlebell: {
show: true,
title: "Kettlebell",
description: "Lets people workout on their own and increase strength",
required: {
wood: 6,
metal: 3,
rope: 2
},
goto: 'Workbench',
energy: 36,
after: function() {
variables().backpack.pickup('kettlebell', 1);
},
multi: true
},
dumbestbell: {
show: true,
title: "Dumbestbell",
description: "Lets people workout on their own and increase strength",
required: {
wood: 7,
metal: 4,
rope: 3
},
goto: 'Workbench',
energy: 42,
after: function() {
variables().backpack.pickup('dumbestbell', 1);
},
multi: true
},
sword: {
show: true,
title: "Sword",
description: "Melee weapon. More damage than a knife, less likely to break.",
required: {
metal: 8,
wood: 3
},
energy: 50,
after: function() {
variables().backpack.pickup('sword', 1);
},
multi: true,
goto: "Workbench"
},
body_armor: {
show: true,
title: "Body armor",
description: "Decreases damage taken from knife",
required: {
metal: 2,
plastic: 10
},
goto: 'Workbench',
energy: 30,
after: function() {
variables().backpack.pickup('body_armor', 1);
},
multi: true
},
coat_wolf: {
show: true,
title: "Wolf coat",
description: "Protects from cold",
required: {
pelt_wolf: 2,
rope: 1,
cloth: 5
},
goto: 'Workbench',
energy: 30,
after: function() {
variables().backpack.pickup('coat_wolf', 1);
},
multi: true
},
shotgun_shell: {
show: true,
title: "Shotgun shell",
description: "Ammunition for the shotgun",
required: {
metal: 2,
cloth: 1
},
goto: 'Workbench',
energy: 10,
after: function() {
variables().backpack.pickup('shotgun_shell', 1);
},
multi: true
}
}>><<set _training = false>>
<<set _percentInjury = 0>>
<<set _sickdays = 0>>
<<if _npc.sick || _isHeatWave>>
/* no workout when sick or too hot */
<<elseif setup.npcInventoryHas(_npc, 'dumbbell') && _npc.strength < 30>>
<<set _training = true>>
<<set _percentInjury = 0>> /* -7*_npc.strength/10 + 21 */
<<set _sickdays = 2>>
<<set _item = 'dumbbell'>>
<<elseif setup.npcInventoryHas(_npc, 'kettlebell') && _npc.strength < 50>>
<<set _training = true>>
<<set _percentInjury = -(7*_npc.strength^2)/1000 - (49*_npc.strength)/100 + 42>>
<<set _sickdays = 3>>
<<set _item = 'kettlebell'>>
<<elseif setup.npcInventoryHas(_npc, 'dumbestbell') && _npc.strength < 60>>
<<set _training = true>>
<<set _percentInjury = -(7*_npc.strength^3)/10000 + (63*_npc.strength^2)/1000 - (133*_npc.strength)/50 + 84>>
<<set _sickdays = 4>>
<<set _item = 'dumbestbell'>>
<</if>>
<<if _training>>
<<if setup.percentageChance(_percentInjury)>>
<<if setup.percentageChance(42)>>
<<set _reasons = [
'got training soreness',
'accidentally drops weight on toes',
'trips and has a bad fall landing on ' + either('left', 'right') + ' arm',
((_npc.pregnancy ?? 0) > 180 ? 'falls backwards surprised when her unborn baby kicks' : 'got back-pain'),
]>>
<<set _message = 'While working out with ' + _item +', ' + _npc.name + ' ' + either(_reasons) + '. Takes a sickday'>>
<<run setup.sleepMessages.add(_message, 'main', '')>>
<<set _npc.sick = {
days: _sickdays,
desc: 'injured when working out',
id: 'workout'
}>>
<</if>>
<<else>>
<<set _npc.strength++>>
<</if>>
<</if>><<if $game.day >= ($game.foodSabotageCooldown ?? 0)>>
<<set _outsideJobs = ['forest', 'scavenging', 'streets', 'nightclub', 'strip_club', 'quarry']>>
<<set _kitchenStaff = setup.getNpcsForLocation($guests, 'kitchen').concat(setup.getNpcsForLocation($slaves, 'kitchen'))>>
<<set _saboteurs = _kitchenStaff.filter(function (npc) { return npc.loyal === false || (npc.relationship ?? 0) < 10; })>>
<<if _saboteurs.length && setup.percentageChance(5)>>
<<set _sabotageVictims = []>>
<<for _sabGuest range $guests>>
<<if typeof _sabGuest.sick === 'undefined' && !_saboteurs.includes(_sabGuest)>>
<<set _sabChance = _outsideJobs.includes(_sabGuest.assignedTo) ? 10 : 35>>
<<if (_sabGuest.relationship ?? 0) < 40>>
<<set _sabChance += 25>>
<</if>>
<<if setup.percentageChance(_sabChance)>>
<<run _sabotageVictims.push(_sabGuest)>>
<</if>>
<</if>>
<</for>>
<<for _sabSlave range $slaves>>
<<if typeof _sabSlave.sick === 'undefined' && !_saboteurs.includes(_sabSlave)>>
<<set _sabChance = _outsideJobs.includes(_sabSlave.assignedTo) ? 10 : 35>>
<<if (_sabSlave.sub ?? 0) < 50>>
<<set _sabChance += 25>>
<</if>>
<<if setup.percentageChance(_sabChance)>>
<<run _sabotageVictims.push(_sabSlave)>>
<</if>>
<</if>>
<</for>>
<<if _sabotageVictims.length>>
<<for _sabVictim range _sabotageVictims>>
<<set _sabVictim.sick = {
days: 2,
desc: 'Food poisoning',
id: 'food_poisoning'
}>>
<</for>>
<<run setup.sleepMessages.addMain('Someone must have gotten into the kitchen last night — several people woke up sick.')>>
<<set $game.foodSabotageDiscovery = true>>
<<set $game.foodSabotageCooldown = $game.day + 30>>
<</if>>
<</if>>
<</if>><<set _shopKeeperId = setup.getPersonsForLocation($guests, 'shop')>>
<<if _shopKeeperId.length>>
<<set _shopKeeper = $guests[_shopKeeperId[0]]>>
<<set _settlerCount = $player.baseManagement?.settlers ?? 0>>
<<set _settlementRep = $player.baseManagement?.settlementReputation ?? 50>>
<<set _settlerEconomyBonus = Math.floor(_settlerCount * (_settlementRep / 100))>>
<<for _manageGoodsName, _manageGoods range ($player.manageGoods ?? {})>>
<<set _chance = setup.inventoryManageable[_manageGoodsName].chance + _settlerEconomyBonus>>
<<set _count = $storage.count(_manageGoodsName)>>
<<set _price = setup.inventoryManageable[_manageGoodsName].price>>
<<if _manageGoods.min && _count < _manageGoods.min>>
<<if _manageGoods.priority>>
<<set _chance += 40>>
<<set _price *= 2>>
<</if>>
<<if setup.percentageChance(_chance)>>
<<set _amount = Math.min(randomInteger(setup.inventoryManageable[_manageGoodsName].range[0], setup.inventoryManageable[_manageGoodsName].range[1]), Math.floor($player.money/_price), _manageGoods.min - _count)>>
<<set _totalPrice = _price * _amount>>
<<if $player.money >= _totalPrice>>
<<pickup $storage _manageGoodsName _amount>>
<<set $player.money -= _totalPrice>>
<<run setup.sleepMessages.addShop(setup.displayName(_shopKeeper) + ' managed to buy ' + _amount + ' ' + Item.get(_manageGoodsName).name + ' for $' + _totalPrice)>>
<</if>>
<</if>>
<</if>>
<<if _manageGoods.max && _count > _manageGoods.max>>
<<if setup.percentageChance(_chance)>>
<<set _amount = Math.min(randomInteger(setup.inventoryManageable[_manageGoodsName].range[0], setup.inventoryManageable[_manageGoodsName].range[1]), _count - _manageGoods.max)>>
<<set _totalPrice = _price * _amount>>
<<drop $storage _manageGoodsName _amount>>
<<set $player.money += _totalPrice>>
<<run setup.sleepMessages.addShop(setup.displayName(_shopKeeper) + ' managed to sell ' + _amount + ' ' + Item.get(_manageGoodsName).name + ' for $' + _totalPrice)>>
<</if>>
<</if>>
<</for>>
<</if>><<for _playerPerk, _playerPerkDay range ($player.perks ?? {})>>
<<capture _playerPerkDay, _playerPerk>>
<<if _playerPerk === 'bleeding'>>
<<set _item = 'bandage'>>
<<set _totals[_item] ??= 0>>
<<if _hasDoctor>>
<<run setup.sleepMessages.addMain(either(setup.getDoctors()).name + ' stops your bleeding and saves your bacon.')>>
<<run delete $player.perks[_playerPerk]>>
<<continue>>
<<elseif $storage.has(_item, 1)>>
<<set _totals[_item]-->>
<<drop $storage _item 1>>
<<run setup.sleepMessages.addMain('A bandage in the nick of time has stopped you from bleeding out.')>>
<<run delete $player.perks[_playerPerk]>>
<<continue>>
<<elseif $backpack.has(_item, 1)>>
<<set _totals[_item]-->>
<<drop $backpack _item 1>>
<<run setup.sleepMessages.addMain('A bandage in the nick of time has stopped you from bleeding out.')>>
<<run delete $player.perks[_playerPerk]>>
<<continue>>
<</if>>
<</if>>
<<if _playerPerkDay < $game.day>>
<<if _playerPerk === 'bleeding'>>
<<set _sleepDead = 'bleed out'>>
<</if>>
<<run delete $player.perks[_playerPerk]>>
<<continue>>
<</if>>
<<if _playerPerk === 'bleeding'>>
<<run setup.sleepMessages.addMain('<span class="starving">You are bleeding!</span>')>>
<</if>>
<<if _playerPerk === 'beaten'>>
<<set $player.energy -= 50>>
<<updatemeter '$energyBar' `$player.energy / $player.maxEnergy`>>
<</if>>
<</capture>>
<</for>><<if ($pregnantStrangers ?? []).length>>
/* A stranger who was later brought home already carries the pregnancy on her guest/slave copy; also drop repeat entries of the same girl */
<<set $pregnantStrangers = (function (list) {
var seen = {};
return list.filter(function (stranger) {
if (!stranger.id) return true;
if (seen[stranger.id] || setup.getNpcById(stranger.id)) return false;
seen[stranger.id] = true;
return true;
});
})($pregnantStrangers)>>
<<for _psI = 0; _psI < $pregnantStrangers.length; _psI++>>
<<set _psStranger = $pregnantStrangers[_psI]>>
<<if typeof _psStranger.pregnancy_return_day === 'undefined'>>
/* Half come back still pregnant, half come back carrying the baby */
<<set _psStranger.pregnancy_return_day = (_psStranger.pregnancy_encounter_day ?? $game.day) + (setup.percentageChance(50) ? random(90, 200) : random(290, 400))>>
<</if>>
<<if typeof $strangerPregnancyHappening === 'undefined' && $game.day >= _psStranger.pregnancy_return_day>>
<<set $strangerPregnancyHappening = _psI>>
<</if>>
<</for>>
<</if>><<if $game.foodRotten>>
<<set _foodRottenGuests = setup.getRandomPersonIds($guests, randomInteger(1,3))>>
<<for _rottenFoodKey, _rottenFoodId range _foodRottenGuests>>
<<set $guests[_rottenFoodId].sick = {
days: 2,
desc: 'Food poisoning',
id: 'food_poisoning'
}>>
<<run setup.sleepMessages.addMain($guests[_rottenFoodId].name + ' got sick with food poisoning.')>>
<</for>>
<<set _foodRottenSlaves = setup.getRandomPersonIds($slaves, randomInteger(1,3))>>
<<for _rottenFoodKey, _rottenFoodId range _foodRottenSlaves>>
<<set $slaves[_rottenFoodId].sick = {
days: 2,
desc: 'Food poisoning',
id: 'food_poisoning'
}>>
<<run setup.sleepMessages.addMain($slaves[_rottenFoodId].name + ' got sick with food poisoning.')>>
<</for>>
<<run delete $game.foodRotten>>
<</if>><<set _output = []>>
<<for _itemID, _count range _totals>>
<<if _count != 0>>
<<set _name = Item.has(_itemID) ? Item.get(_itemID)?.name : _itemID>>
<<set _out = (_count > 0 ? '<span style="color: green">+' : '<span style="color: red">') + _count + '</span> ' + _name>>
<<set _output.push(_out)>>
<</if>>
<</for>>
<<if _output.length>>
<<run setup.sleepMessages.add(_output.join(', '), 'Net change, produced(+) and consumed(-) excluding shop ')>>
<</if>>You're an 18-year-old gamer who pretty much spends all day in his room playing video games, blah-blah-blah... You live with your grandfather who's ex-military and even owns his own nuclear bunker as a hobby.
<br /><br />
<center>
[img[setup.ImagePath+'intro/playing.webp']]
</center>
<br /><br />
You've always thought that he was some sort of madman. An ex-military with a bunker, yet without a single weapon in there...
<br /><br />
Anyway, days go by and the situation in Europe keeps escalating. Each day there are more and more threats of nuclear war. You, as always, think that it's just bullshit and will never happen.
<br /><br />
<center>
[img[setup.ImagePath+'intro/war.webp']]
</center>
<br /><br />
What is your name? <<textbox "$player.name" "Tony">>
<br /><br />
<center>[[Continue|Intro2]]</center>Days go by and talks about nuclear war calm down. But one day, without any warning, you hear a loud nuclear alarm siren. You hop off your pc and over to the window to look outside. Your eyes are wide with amazement from seeing the red colors in the sky.
<br/>
You didn't even get a warning on TV!
<br />
<center>
[img[setup.ImagePath+'intro/crowd.webp']]
</center>
<br /><br />
Continuing to look outside through your window you see the street in front of your bunker is in total chaos. Cars are crashing and being abandoned on the roads and people are running in all directions.
<br /><br />
After a few seconds, your grandfather slams open your bedroom door and loudly screams at you.
<br /><br />
<<grandfather>><b><<print $player.name>> RUN! GET TO THE BUNKER!</b><</grandfather>>
<br /><br />
You feel adrenaline rushing through you and while turning toward the door you take one last look around your room. You notice a few things laying on your bed and decide to take the first item that comes to mind.
<br /><br />
<center>
[img[setup.ImagePath+'intro/bag.jpg']]
<br /><br />
<<link 'Pick up the cs-go knife'>>
<<pickup $backpack "knife" 1>>
<<goto [[Intro3]]>>
<</link>>
<<link 'Pick up the porn magazine'>>
<<pickup $backpack "porn_magazine" 1>>
<<set $player.maxEnergy += 10>>
<<goto [[Intro3]]>>
<</link>>
<<link 'Pick up the laptop'>>
<<pickup $backpack "laptop" 1>>
<<set $player.int += 10>>
<<goto [[Intro3]]>>
<</link>>
</center>You rush downstairs and outside, straining your eyes as as you see that a nuclear bomb has been dropped on the city next to yours.
<br /><br />
<center>
[img[setup.ImagePath+'intro/bomb.webp']]
</center>
<br /><br />
You run as fast as you can, following your grandfather to the bunker.
<br /><br />
<center>
[img[setup.ImagePath+'intro/shelter.webp']]
</center>
<br /><br />
<center>
[[Continue|Intro4]]
</center>After <strong>15 years</strong> living together in the bunker you and your grandfather both slowly started to hate each other. Food rations were getting low and in the last few days neither of you have eaten anything. You feel your stomach pressing against your spine.
After a few more days you wake up and see that your grandfather has died peacefully in his sleep.
<br /><br />
You're left alone without food and barely standing. You imagine a cooked steak while looking at your grandfather but decide to shake it off.
<br /><br />
<center>
[img[setup.ImagePath+'intro/body.webp']]
</center>
<br /><br />
You take another look at him and some thoughts are going through your head as you try to cover his dead body...<br />
You know you won't be able to survive much longer here.
<br /><br />
<<link 'Eat your grandfather'>>
<<set $player.cannibal to 1>>
<<goto 'Intro5'>>
<</link>>
[[Go back to sleep|Intro5]]You wake up <<if $player.cannibal>><strong>with full stomach</strong><<else>><strong>more hungrier</strong> than day before<</if>>
<br /><br />
You decide that you can't stay here anymore and need to get out or you'll go mad. Without hesitation you open the hatch and run outside as bright light shines into your eyes. For a moment you go blind.
<br /><br />
<center>
<<image 'intro/door_open.webp' 'sfw'>>
</center>
<br /><br />
You walk toward main street and look around. Nothing is left and the whole city is just rubble.
<br /><br />
<center>
<<image 'intro/empty_city.webp' 'sfw'>>
</center>
<br /><br />
You fully understand that it's not safe here and that a nearby forest would be more suitable for survival. At least you can try...
<br /><br />
<center>
[[Go outside the city to nearest forest|Intro6]]
</center>You walk through the city without seeing a single soul. Soon you reach the forest and decide to go in and look for food. You find an overgrown path and decide to follow it. For hours you keep going without finding anything. You continue walking till the sun goes down and, as soon as you're ready to accept your fate and give up, you notice an old wood cabin grown back into the trees.
<br /><br />
<center>
[img[setup.ImagePath+'intro/wood-cabin.webp']]
</center>
<br /><br />
[[Check cabin|Intro8]]You go inside and without thinking about any stealth just start digging
through each drawer and cabinet to find something edible. You get lucky
and find 4 cans of food. You instantly eat 2 of them and just lie down on the floor falling asleep.
<br /><br />
<<pickup $backpack 'food' 2>>
<center>
<<link 'Sleep'>>
<<set $game.introFinished to true>>
<<sleep>>
<</link>>
</center><h1 class="ptitle">ISABEL</h1>
<br /><br />
<<set $characters.isabel.quests.check_city = true>>
<<set $characters.isabel.quests.check_city_day = $game.day>>
You entered Isabel's room, Isabel lies on her bed, eyes distant and filled with worry.
<br /><br />
<center>
[img[setup.ImagePath+'people/isabel/bed.jpg']]
</center>
<br /><br />
She starts saying softly, her voice barely more than a whisper.
<br /><br />
<<isabel>>
I should go back. We need to know what we're up against. Especially the routes to Dom's apartment.
<</isabel>>
<br />
You nod, understanding the gravity of her words. The underground city is perilous, but it holds the key to your survival.
<br /><br />
<<you>>
I'll go check it out
<</you>>
<br />
Isabel gives a faint smile, gratitude and determination in her eyes.
<br /><br />
<<isabel>>
Thank you. Be careful.
<</isabel>>
<br />
<<linkreplace 'Go to the underground city'>>
<<addhours 2>>
You leave her room, the weight of the task ahead pressing down on you.
Gathering your gear, you check your weapons and supplies, mentally mapping out the possible routes through the underground city.
<br /><br />
When you arrive at the underground city, it's as usual—dimly lit and filled with the remnants of chaos.
The once-bustling underground streets are now quieter, but tension still hangs in the air.
As you make your way through the familiar alleys, you notice a group of goons harassing some of Dom's ex-girlfriends near a dilapidated storefront.
<br /><br />
Other group of goons has already put other girl in place and fucks her mouth while his friends join him.
<br /><br />
<center>
[img[setup.ImagePath+'places/underground/gangbang1.webp']]
</center>
<br />
As you continue your journey through the underground city, the unsettling quiet is broken by the sound of muffled cries.
Turning a corner, you come upon another horrifying scene: a group of goons harassing a young woman. Her bottom clothes have been stripped off, and she is being fucked in the ass.
<br /><br />
<center>
[img[setup.ImagePath+'places/underground/gangbang2.webp']]
</center>
<br />
Then you reach Dom's place.
<br /><br />
<center>
[img[setup.ImagePath+'places/streets/dom_invite2.jpg']]
</center>
<br />
The doors are broken, hanging off their hinges, a stark reminder of the recent chaos. Stepping inside, you're met with a scene of utter devastation. The apartment, once a safe haven and a hub of planning, is now a mess of shattered furniture, broken glass, and scattered papers. Everything of value seems to have been stolen or destroyed.
<br /><br />
<center>
[img[setup.ImagePath+'places/underground/dom_place_trashed.jpg']]
</center>
<br /><br />
You navigate through the wreckage carefully, your footsteps crunching on debris. The destruction is thorough, suggesting that whoever did this was looking for something specific—or they wanted to ensure nothing usable remained.
<br /><br />
As you move further inside, you keep your eyes peeled for anything that might have been overlooked. You know Dom had secrets and hidden compartments. There might still be something left that can help you.
<br /><br />
Suddenly, a shadow appears from the corner of the room. Your hand instinctively moves to your weapon, but then you see it's a woman. Her face is partially obscured by the dim light, but there's an air of familiarity about her.
<br /><br />
<center>
[img[setup.ImagePath+'places/underground/dom_place_trashed2.jpg']]
</center>
<br />
<<you>>
Who are you?
<</you>>
<br />
<<newgirl>>
<<sayNpc $tmpGirl>>
There's no time for introductions. Dom is alive, and he's getting better. He'll find you when the time is right, but you need to leave now
<</sayNpc>>
<br />
<<you>>
Dom is alive? Where is he?
<</you>>
<br />
She gives a brief, tense smile.
<br /><br />
<<sayNpc $tmpGirl>>
Stay safe. And be ready. The fight is far from over.
<</sayNpc>>
<br />
With that, she slips back into the shadows, disappearing as quickly as she appeared. It’s time to get out of here and return to Isabel and the other.
<br /><br />
<<linkreplace 'Return to Isabel'>>
When you arrive, Isabel is where you left her, resting on her bed. Her eyes light up with curiosity as you enter, but there's an underlying tension that hasn't left her since you returned.
<br /><br />
<center>
[img[setup.ImagePath+'people/isabel/bed.jpg']]
</center>
<br />
<<you>>
I have news. Dom is alive. He's getting better and will find us when the time is right.
<</you>>
<br />
Instead of the relief or joy you expected, Isabel's expression hardens. She looks away, her jaw tightening.
"Dom is alive," she repeats, but there's no happiness in her voice, only a strange mix of apprehension and resignation.
<br /><br />
<<isabel>>
If he's coming back, it means more danger, more fighting. I'm not sure I can handle that, especially not now.
<</isabel>>
<br />
Her words hang in the air, the weight of the truth settling between you...
<br /><br />
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle">OUTSIDE</h1>
<br />
<<addhours 4>>
<<energy -50>>
<<set $player.car.fuel -= 20>>
<<you>>
Ready for an adventure?
<</you>>
<br />
<<isabel>>
Absolutely. Let's go.
<</isabel>>
<br />
You drove through the ruins of the old city, the crumbling buildings and overgrown streets a stark reminder of the world that once was.
But as you ventured further, you found pockets of beauty amidst the devastation. Nature had begun to reclaim the land, and patches of wildflowers dotted the cracked asphalt.
<br /><br />
<<isabel>>
Look at that! I didn't think anything this beautiful could survive out here.
<</isabel>>
<br />
I pulled the car over and Isabel got out of the car and started to admire the view. Then she noticed some flowers on the ground.
<br /><br />
<<video 'isabel/date1_2'>>
<br /><br />
Isabel picked a flower and tucked it behind her ear, her face glowing with a rare sense of peace.
<br /><br />
<<video 'isabel/date1_3'>>
<br /><br />
She got back into the car, and you continued your journey.
<br />
Isabel's smile grew as she looked around, taking in the sights.
<br /><br />
<<isabel>>
Dom would never let me do this. This is beautiful...
<</isabel>>
<br />
As you drove along the lone road, Isabel did something unexpected. She spread her legs and lifted her top revealing her bra. Her bare skin glowing softly in the daylight.
<br /><br />
<<isabel>>
This view makes me horny..
<</isabel>>
<br />
You tried to keep your focus on the road, but the sight of her was irresistible. Isabel's hands moved to your belt, deftly unbuckling it and sliding her warm hand inside your pants. The sensation was electric, and you struggled to maintain control of the car as she grabbed your dick.
<br /><br />
<<video 'isabel/date1_4'>>
<br /><br />
She stroke it few times and then pulled it out and put your hard dick in her mouth.
The warmth and wetness enveloped you completely, and you gasped at the sensation. She moved with a slow, deliberate rhythm, her lips and tongue working together in perfect harmony.
<br /><br />
<<video 'isabel/date1_5'>>
<br /><br />
She used her tongue expertly, swirling it around the tip before sliding her lips down the length of you.
Her mouth was hot and inviting, creating a delicious friction that sent waves of pleasure coursing through you body.
You could feel every movement, every flick of her tongue, every gentle suction, and it drove you wild with desire.
<br /><br />
<<linkreplace 'Stop the car'>>
As you started to slow down the car, Isabel began to remove her clothes fully, each piece discarded with deliberate sensuality.
The bright daylight streamed through the windows, highlighting every curve and contour of her body. Her skin glowed in the sunlight, each movement graceful and enticing.
<br /><br />
<<video 'isabel/date1_6'>>
<br /><br />
Her eyes locked onto yours with an intensity that took my breath away as she helped you remove your clothes and instantly got onto you.
<br />
Isabel slid her hand between us, grabbing your dick firmly and guiding it toward her her pussy.
The sensation was electrifying, and you gasped as she slowly lowered herself onto your dick while kissign you, taking you in inch by inch.
<br /><br />
<<video 'isabel/date1_7'>>
<br /><br />
She moved slowly at first, savoring each thrust, but the intensity of the moment soon overwhelmed you.
You took the initiative, gripping her hips firmly and increasing the speed. Your thrusts became harder, more insistent, driving deep into her with each motion.
<br /><br />
<<isabel>>
Oh Yes... Just like that.
<</isabel>>
<br />
You continued to thrust hard and deep, fucking her wet pussy. With each thrust she hold you stronger and stronger.
<br /><br />
<div id="option_turn">
<<linkreplace 'Turn her around'>>
<<if $characters.isabel.sub < 90>>
<<set $characters.isabel.sub += 10>>
<strong>Isabel submission increased by 5</strong>
<br /><br />
<</if>>
<<if $characters.isabel.relationship < 90>>
<<set $characters.isabel.relationship += 10>>
<</if>>
<<set _turnedAround = true>>
<<video 'isabel/date1_8'>>
<br /><br />
Carefully, you turned Isabel around without taking your dick out of her pussy.
She spread her legs and leaned back. The new angle was perfect, and you thrusted hard and deep into her. You instantly picked up the same phase as in last position.
<br /><br />
<<isabel>>
Just like that.. Keep.. Ooohh my..
<</isabel>>
<br />
<</linkreplace>>
</div>
<<linkreplace 'Put her on the backseat'>>
<<if !_turnedAround>>
<<run $('#option_turn').hide()>>
<</if>>
With a sudden burst of desire, you lifted Isabel off you, our bodies separating briefly, before you guided her down onto her stomach on the backseat.
Her legs spread apart invitingly, and you wasted no time in positioning yourself behind her. Just grabbed your dick and instantly shoved it back into her pussy.
<br /><br />
<<video 'isabel/date1_9'>>
<br /><br />
You gripped her hips firmly, holding her in place as you thrust into her with increasing force.
Isabel's moans filled the car, her body responding eagerly to your touch. Her back arched, her movements becoming more frantic as she pushed back against you.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<br /><br />
<center>
<<image 'game/misc/creampie_prone.webp'>>
</center>
<br />
With one final, powerful thrust, you both reached your climax, your cries of ecstasy filling the car.
The cumming was intense, a wave of pleasure that left us trembling and gasping for breath. As your dick slipped out of her, your cum followed.
<br /><br />
<<if setup.pregnancyChance($characters.isabel)>>
<<set $characters.isabel.pregnancy_father = 'mc'>>
<<set $characters.isabel.pregnancy = 0>>
<</if>>
<<isabel>>
Wow. We should repeat this some other time. That was something.
<</isabel>>
<br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<link 'Go back home'>>
<<goto 'Garage'>>
<</link>><h1 class="ptitle">OUTSIDE</h1>
<br />
The sun was warm, the air just cool enough to make the walk comfortable.
As you left the settlement behind, the tension that had built up over the past week started to ease,
replaced by the quiet sounds of nature and the soft crunch of your boots on the dirt path.
<br /><br />
Isabel walked beside you, close enough that your arms brushed occasionally.
The world outside the settlement felt strangely calm. It wasn’t long before you caught sight of the shimmering water through the trees, the lake appearing as a peaceful oasis amidst the chaos that the world had become.
<br /><br />
<<isabel>>
Not bad for an apocalyptic date, huh?
<</isabel>>
<br />
<center>
<<image 'people/isabel/lake.jpg'>>
</center>
<br />
You found a quiet spot by the shore, a rocky outcrop where you put up your tent and could sit and watch the water.
It was peaceful, the kind of peace that had been hard to find lately. And as you sat there, side by side, the weight of everything seemed to lift just a little.
<br /><br />
As the conversation flowed from random thoughts to shared memories, you noticed her adjusting her shirt, and your eyes drifted for a moment. Her shirt was stretched tightly across her chest, and her breasts, full and pressing against the fabric, seemed to defy the casual nature of the day. For a second, you caught yourself staring.
<br /><br />
<center>
<<image 'people/isabel/cleavage.webp'>>
</center>
<br />
<<isabel>>
Enjoying the view?
<</isabel>>
<br />
She pulled her shirt up just enough to reveal the soft fabric of her bra, her breasts pushing against it, barely contained.
<br /><br />
<<video 'isabel/lake1'>>
<br /><br />
The delicate lace traced along the curve of her skin, and for a brief second, you couldn’t look away. Her movements were slow, deliberate, as if she knew exactly how much she was teasing you.
Then suddenly she dropped on her knees and grabbed your bulge.
<br /><br />
<<video 'isabel/lake2'>>
<br /><br />
She instantly wrapped her soft lips around your cock and started to suck it. Her eyes were locked with yours as while licking the tip of your dick, she pulled your pants lower and lower till they were off.
<br />
After that, with your dick fully in her mouth, she stopped for a second before she started to slide down her bra laces.
<br />
After that she grabbed your hand and you moved to tent.
<br /><br />
<<isabel>>
Just relax. Let me take the lead for once.
<</isabel>>
<br />
As you settled onto your back, Isabel straddled you, her knees pressing down on either side of your hips.
Her hands rested on your chest for a moment, her fingers lightly exploring as she looked down at you with a mixture of confidence and affection.
The warmth of her body was palpable, a contrast to the cool evening air outside.
<br /><br />
<<video 'isabel/lake3'>>
<br /><br />
As she hold your dick in her hand, she slowly slide onto you. With each next thrust her movement speed increased.
<br /><br />
<<isabel>>
Yes.. Just like that..
<</isabel>>
<br />
Slowly, she moved her knees off the ground, her body adjusting gracefully as she leaned back, her hands supporting her weight on the mattress.
<br /><br />
<<video 'isabel/lake4'>>
<br /><br />
Her back arched slightly as she settled into a new position, giving you a tantalizing view of her. She maintained eye contact, her expression a blend of satisfaction and anticipation.
<br /><br />
<<video 'isabel/lake5'>>
<br /><br />
The change in position brought a new dynamic to the encounter, heightening the sense of closeness and mutual desire.
The tent’s gentle glow cast soft shadows, enhancing the intimacy of the space as you both continued to explore the connection between you.
<br /><br />
In the intimate glow of the lantern, Isabel shifted again, laying down on her back on the mattress. The movement was smooth and deliberate, her eyes never leaving yours as she adjusted her position
<br /><br />
<<isabel>>
I still want to be in control here. Trust me?
<</isabel>>
<br />
<<video 'isabel/lake6'>>
<br /><br />
Isabel’s gaze was focused, her touch deliberate. You just hold still as she moved her hips letting herself slide on and of your dick.
<br /><br />
<<isabel>>
Yes! Yes! Just like that!
<</isabel>>
<br />
<div id="option_inside">
<<linkreplace 'Cum inside her pussy'>>
<<horny_reset>>
<<if setup.pregnancyChance($characters.isabel)>>
<<set $characters.isabel.pregnancy_father = 'mc'>>
<<set $characters.isabel.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<<run $('#option_breasts').hide()>>
<<run $('#option_leave').show()>>
<<image 'game/misc/cum_in_pussy2.webp'>>
<br />
Without warning you thrust your dick deep into Isabel's pussy and release your cum. Her legs shakes for a moment as you slowly pull out and let some of your cum drip on the floor.
<br /><br />
<</linkreplace>>
</div>
<div id="option_breasts">
<<linkreplace 'Cum on breasts'>>
<<horny_reset>>
<<video 'isabel/lake7'>>
<br />
<<run $('#option_inside').hide()>>
<<run $('#option_leave').show()>>
<br />
Without warning you pull out and while holding your dick in your hand get closer to her breasts.
She grabs your dick.
You feel that you're close and with each jerk you're almost ready to cum.
She bites her lips while eyes are locked with yours and soon enough you cum all over her big breasts.
<br /><br />
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
<<isabel>>
Uh, wow. That's a lot, hehe.
<</isabel>>
<br />
<<isabel>>
We should probably get back home.
<</isabel>>
<br />
<<link 'Leave'>>
<<addhours 4>>
<<goto 'Wood cabin'>>
<</link>>
</div><h1 class="ptitle">NIGHTCLUB</h1>
<br />
<<set $characters.isabel.relationship = Math.min(($characters.isabel.relationship ?? 0) + 10, 100)>>
<<set $characters.isabel.location = 'nightclub'>>
<<set $player = setup.drink($player, 3)>>
<<if $player.drunk > 75>>
<<perkAdd 'drunk'>>
<</if>>
You’d barely stepped in before Isabel pulled you toward the bar.
Her dress shimmered in the flickering lights, something sleek and dark she hadn’t worn in years — maybe ever. She looked alive in a way you hadn't seen since Dom died.
<br /><br />
<center>
<<actionImage $characters.isabel 'dance'>>
</center>
<br />
You downed a few shots together. The music pounded through your ribs, and the alcohol helped blur the weight of your new responsibilities.
For a moment, the world shrank to just you, her, and the rhythm.
<br /><br />
<center>
<<actionImage $characters.isabel 'dance'>>
</center>
<br />
Eventually, without a word, she pulled you by the wrist through the pulsing lights and narrow hallway leading to the bathrooms.
You followed, heartbeat thundering in your chest.
<br /><br />
<<video 'isabel/nightclub2'>>
<br /><br />
You grabbed her by the waist and pushed her against the bathroom wall.
The dim light flickered overhead. She met your mouth with hers, urgent, hands in your hair, your jacket half-sliding off.
<br /><br />
<center>
<<actionImage $characters.isabel 'pussy_insert'>>
</center>
<br />
You slowly push into her, inch by inch, her tightness enveloping you, her moans filling the bathroom.
<br /><br />
<<video 'isabel/nightclub1'>>
<br /><br />
<<isabel>>
Yes, fuck me hard!
<</isabel>>
<br />
The bathroom door swings open, and in walks one of Isabel's friends, a blonde with a wicked smile.
<br /><br />
<<newgirl>>
<<set _npc = $tmpGirl>>
<<set _npc.race = 'white'>>
<<set _npc.hair = 'blonde'>>
<<video 'isabel/nightclub9'>>
<br /><br />
<<sayNpc _npc>>
Wow, what we got here? hehe
<</sayNpc>>
<br />
She takes one look at the two of you and raises an eyebrow. Isabel looks at her with grin on her face and instantly jumps off you.
Isabel, not missing a beat, grabs the blonde's hand and pulls her closer, placing it on your cock.
<br /><br />
<<sayNpc _npc>>
Oh you're lucky one Isabel
<</sayNpc>>
<br />
<<video 'isabel/nightclub10'>>
<br /><br />
Their hands move together, one gripping the base of your shaft while the other works your balls,
their movements synchronized in a way that sends waves of pleasure coursing through your body.
<br /><br />
<div id="option_isabel">
<<linkreplace 'Fuck Isabel'>>
<<set _fuckIsabel = true>>
You position yourself at Isabel's entrance, your cock hard and ready.
You slowly push into her, inch by inch, her tightness enveloping you, her moans filling the bathroom.
You hold her against the wall, your body pressing into hers, your cock fully sheathed inside her.
<br /><br />
<<video 'isabel/nightclub3'>>
<br /><br />
Each thrust is deeper, harder, more primal than the last. Isabel's moans turn to cries of pleasure, her body shaking with each impact.
<br /><br />
<<isabel>>
Mmmm, just like that.
<</isabel>>
<br />
<</linkreplace>>
</div>
<div id="option_friend">
<<linkreplace "Fuck Isabel's friend">>
<<set _fuckFriend = true>>
<<if !_fuckIsabel>>
<<run $('#option_isabel').hide()>>
<</if>>
<<run $('#option_inside').show()>>
<<video 'isabel/nightclub5'>>
<br /><br />
With that, Isabel takes your cock in her hand and directs it to the blonde's entrance.
She rubs the head of your cock against the blonde's clit, teasing her, making her wetter and more eager.
<br /><br />
<<isabel>>
Oh you will like it girl
<</isabel>>
<br />
<<sayNpc _npc>>
Oh I have no doubt about that
<</sayNpc>>
<br />
Isabel smiles and slowly guides you into the blonde, inch by inch, letting her feel every bit of you. The blonde's eyes flutter closed, a look of pure ecstasy on her face as she takes you in.
Isabel holds your hips, using your cock to pleasure the blonde, moving you in and out of her slowly at first, then building up speed.
<br /><br />
<<video 'isabel/nightclub4'>>
<br /><br />
<<isabel>>
Fuck her good and hard
<</isabel>>
<br />
The blonde's moans fill the bathroom, mixing with the sound of your bodies slapping together, creating a symphony of sex and desire.
<br /><br />
After a while, Isabel decides to switch things up. She pulls you out of the blonde, who lets out a whimper of protest.
<br /><br />
<<isabel>>
Sit down
<</isabel>>
<br />
Isabel slowly guides you into the blonde, inch by inch, letting her feel every bit of you. The blonde's eyes flutter closed, a look of pure ecstasy on her face as she takes you in
<br /><br />
<<video 'isabel/nightclub6'>>
<br /><br />
You grab her ass, your fingers digging into her soft flesh, holding her in place as you start to fuck her furiously.
<br /><br />
<<video 'isabel/nightclub7'>>
<br /><br />
<<sayNpc _npc>>
Yes! Yes! Fuck me harder!
<</sayNpc>>
<br />
You fuck her like an animal, your hips moving faster and faster, your cock filling her completely with each thrust.
The room is filled with the sound of your bodies slapping together, her screams of pleasure, and your grunts of exertion.
<br /><br />
<</linkreplace>>
</div>
<div id="option_face">
<<linkreplace "Cum on Isabel's face">>
<<run $('#option_inside').hide()>>
<<run $('#option_leave').show()>>
<<if !_fuckIsabel>>
<<run $('#option_isabel').hide()>>
<</if>>
<<if !_fuckFriend>>
<<run $('#option_friend').hide()>>
<</if>>
<<horny_reset>>
Isabel's movements are fluid and deliberate as she shifts from standing to dropping to her knees.
Her eyes remain locked on yours, ensuring that you are fully aware of her intent and the power she holds in that moment.
<br /><br />
<center>
<<image 'people/isabel/cum_on_face.webp'>>
</center>
<br /><br />
Your hot cum shoots out, coating Isabel's face, her eyes, her nose, her lips.
She closes her eyes, a look of pure bliss on her face as she feels your release on her skin.
<br /><br />
<</linkreplace>>
</div>
<div id="option_inside" style="display:none">
<<linkreplace 'Cum inside friend'>>
<<run $('#option_face').hide()>>
<<run $('#option_leave').show()>>
<<horny_reset>>
<<if setup.pregnancyChance(_npc)>>
<<set _npc.pregnancy_father = 'mc'>>
<<set _npc.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<<set _npc.pregnancy_encounter_day = $game.day>>
<<set _npc.pregnancy_encounter_place = 'club'>>
<<run ($pregnantStrangers ??= []).push(clone(_npc))>>
<</if>>
<center>
<<image 'game/misc/creampie_cowgirl.webp'>>
</center>
<br /><br />
With a final, deep thrust, you come undone, your hot cum shooting into the blonde, filling her completely.
The blonde lets out a loud cry of pleasure, her body
convulsing as she reaches her own orgasm, her walls clenching around your cock, milking every last drop of your release.
<br /><br />
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
<<link 'Leave'>>
<<addhours 2>>
<<goto 'Underground city'>>
<</link>>
</div><h1 class="ptitle">OFFICE</h1>
<br />
Instead of answering her question, you grabbed her, your hands firm and demanding, pulling her towards you.
With a swift, decisive motion, you bent her over the office table, the impact of her body against the wood echoing through the small room.
You reached down, your fingers hooking into the waistband of her pants, and with a single, forceful tug, you stripped her clothes off, leaving her bare and exposed.
<br /><br />
<<isabel>>
<<=$player.name>>??
<</isabel>>
<br />
Isabel let out a gasp, a mix of surprise and arousal, as you positioned yourself behind her, your cock already hard and ready. You didn't hesitate, thrusting into her with a single, deep movement, your hips slamming against her ass, your cock filling her completely.
<br /><br />
<<video 'isabel/office4'>>
<br /><br />
She moaned, a loud, primal sound that filled the room, her body responding to yours with an intensity that matched your own.
<br /><br />
<<video 'isabel/office5'>>
<br /><br />
Isabel's body moved with yours, her hips bucking back to meet your thrusts, her hands gripping the edge of the table for support.
<br /><br />
<<video 'isabel/office6'>>
<br /><br />
You began to fuck her hard and fast, your hips moving with a relentless rhythm, your cock sliding in and out of her wet, tight pussy with ease.
The room was filled with the sound of your grunts and her moans, the wet slapping of flesh against flesh, a symphony of raw, unbridled passion.
<br /><br />
<<isabel>>
Oh, fuck me, yes.
<</isabel>>
<br />
<div id="option_turn">
<<linkreplace 'Turn her around'>>
<<set _turnAround = true>>
You spun her around, your hands gripping her hips, pulling her towards you.
With a sense of urgency and dominance, you laid her back on the table, her body arching, her legs wrapping around your waist, offering you a new angle, a new depth of penetration.
<br /><br />
<<video 'isabel/office7'>>
<br /><br />
Her body moved with a rhythm that was both primal and sensual, her pussy hot and tight, her body responding to yours, her moans turning to screams of pleasure, her hips bucking against yours,
urging you to go deeper, to take her harder.
<br /><br />
<<isabel>>
Harder! Fuck me like no one has done it!
<</isabel>>
<br />
<<video 'isabel/office8'>>
<br /><br />
She reached up, her hands gripping your shoulders, her nails digging into your skin, urging you on, begging for more.
<br /><br />
<<isabel>>
Cum inside me!
<</isabel>>
<br />
<</linkreplace>>
</div>
<div id="option_cum_inside">
<<linkreplace 'Cum inside'>>
<<if !_turnAround>>
<<run $('#option_turn').hide()>>
<</if>>
<<run $('#option_leave').show()>>
<<set _cumImage = 'game/misc/' + (_turnAround ? 'cum_in_pussy2.webp' : 'creampie.webp')>>
<<horny_reset>>
<<if setup.pregnancyChance($characters.isabel)>>
<<set $characters.isabel.pregnancy_father = 'mc'>>
<<set $characters.isabel.pregnancy = 0>>
<</if>>
<center>
<<image _cumImage>>
</center>
<br />
Her inner walls quivered, clutching at your cock, trying to draw out every last bit of your essence.
You held her close, your hips grinding against hers, ensuring that not a single drop was wasted, that she was utterly and completely filled with your cum.
<br /><br />
<</linkreplace>>
</div>
<div id="option_leave" style="display:none">
<<isabel>>
Uh, wow. That's a lot, hehe.
<</isabel>>
<br />
She picked up ripped clothes from the ground and with a smile on her face left the room.
<br /><br />
<<link 'Leave'>>
<<set $characters.isabel.horny = 0>>
<<addhours 1>>
<<goto 'Underground city office'>>
<</link>>
</div><h1 class="ptitle">ISABEL</h1>
<br /><br />
<<isabel>>
What you have in mind?
<</isabel>>
<br /><br />
<<if $player?.car?.fuel >= 20 && $player?.car?.health > 0>>
<<link 'Car ride'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Isabel - date [car ride]'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
Car ride
</div>
<</if>>
<<linkdesc>>
Car in driving condition
<</linkdesc>>
<<if recall($suppCode)>>
<<if timeBetween('08:00', '16:00')>>
<<link 'Lake visit'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Isabel - date [lake]'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
Lake visit
</div>
<</if>>
<<linkdesc>>
Time between 08:00-16:00
<</linkdesc>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Lake visit
<<notPatreonIcon>>
</div>
<</if>>
<<if $player.quests.underground_boss>>
<<if recall($suppCode)>>
<<if timeBetween('20:00', '23:59')>>
<<link 'Nightclub'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Isabel - date [nightclub]'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
Nightclub
</div>
<</if>>
<<linkdesc>>
Time between 20:00-24:00
<</linkdesc>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Nightclub
<<notPatreonIcon>>
</div>
<</if>>
<<if recall($suppCode)>>
<<link 'Bend her over the table'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Isabel - date [office]'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Bend her over the table
<<notPatreonIcon>>
</div>
<</if>>
<</if>>
<<link 'Leave'>>
<<set _backLinks = ($dateBack ? $dateBack : 'Isabel room')>>
<<goto _backLinks>>
<<unset $dateBack>>
<</link>><h1 class="ptitle">ISABEL</h1>
<br /><br />
<<set $characters.isabel.quests.temp_home = true>>
<<set $characters.isabel.quests.temp_home_day = $game.day>>
In the soft light of morning, you entered Isabel's room to find her already awake, her eyes carrying a mixture of anticipation and apprehension.
She sat up on the edge of the bed as you approached, a silent invitation for you to join her.
<br /><br />
<center>
<<image 'people/isabel/bed.jpg'>>
</center>
<br /><br />
Taking a seat beside her, you exchanged a brief nod of acknowledgment before Isabel spoke, her voice tinged with concern.
<br /><br />
<<isabel>>
Do you have a plan for what comes next? I don't want to go back to Dom, but I know he'll come looking for me as soon as he wakes up.
<</isabel>>
<br />
You considered her words carefully, understanding the gravity of the situation.
Dom's awakening would undoubtedly bring further turmoil to the already precarious balance, and Isabel's safety remained a priority.
<br /><br />
<<you>>
We'll figure something out. For now, the important thing is that you're safe here.
<</you>>
<br />
Isabel's gaze met yours, a silent expression of gratitude and trust passing between you. The weight of unspoken emotions hung in the air, mingling with the shared understanding of the challenges ahead.
<br /><br />
<<isabel>>
Thank you for everything you've done. I don't know how to repay you.
<</isabel>>
<br />
You offered her a reassuring smile, your hand reaching out to gently brush against hers.
<br /><br />
<<you>>
You don't need to repay me. Helping you is the right thing to do.
<</you>>
<br />
<<isabel>>
Yes, I do.
<</isabel>>
<br />
<center>
<<image 'people/isabel/drop_blanket.webp'>>
</center>
<br /><br />
As your eyes locked, a subtle shift in the air signaled a moment of unspoken connection.
With a gentle movement, Isabel reached and pulled down her blanket, revealing her naked body.
<br /><br />
<<video 'isabel/bedroom_bj'>>
<br /><br />
In that moment, as Isabel knelt before you with unwavering devotion, a sense of peace settled over the room as she pulled down your pants, revealing your dick. Without hesitation she put it in her mouth
and slowly started to suck it slowly but firmly.
<br /><br />
<<video 'isabel/bedroom_bj2'>>
<br /><br />
As she stroked your dick, you noticed that there is a soft smile playing on her lips. She studied it... A moment later she moved lower and started to lick your balls.
She enjoyed them very much. Then she took a look behind her shoulder, stand up and slowly moved backwards, while still holding your dick in her hand.
<br />
Then she lay down on her back in bed and put your dick on her clit.
<br /><br />
<<isabel>>
Please slowly...
<</isabel>>
<br />
<<video 'isabel/bedroom_insert'>>
<br /><br />
Your grabbed your dick and put it against her moist pussy. She looked at you with anticipation as you slowly started to slide your dick her pussy.
She let out small moan as you were fully inside her.
<br /><br />
<<isabel>>
Faster...
<</isabel>>
<br />
<<video 'isabel/bedroom_fuck1'>>
<br /><br />
She released her breasts as you picked up the pace. She fully embraced you and just laid there as you gently fucked her.
<br /><br />
<<isabel>>
More...
<</isabel>>
<br />
<<video 'isabel/bedroom_fuck2'>>
<br /><br />
As you thrusted your dick deep inside her and increased speed she let out another moan and just fell on the bed on her back. Her breasts were bouncing with each thrust you made.
<br /><br />
<<isabel>>
Oh, don't stop.. Faster... Fuck me harder!
<</isabel>>
<br />
Lying on her back, she nestled into the bed sheets.
<br /><br />
<<video 'isabel/bedroom_fuck3'>>
<br /><br />
<<isabel>>
Holly shit.. Don't, don't stop...
<</isabel>>
<br />
She wrapped her legs around you and hold you close to her as you fucked her wet and dripping pussy. She was clearly enjoying it as with each thrust she let out another moan. Louder and louder.
<br /><br />
<<linkreplace 'Cum'>>
<center>
<<image 'game/misc/cum_in_pussy.webp'>>
</center>
<br />
As you started to cum she pulled her away from you but not far enough. Your cum reached her pussy. Instead of freaking out she just smears it all over her pussy, looking happy and satisfied.
<br /><br />
<<isabel>>
Thank you again! I will clean up now.
<</isabel>>
<br />
<<addmins 60>>
<<horny_reset>>
<<link 'Leave'>>
<<set $characters.isabel.corruption += 25>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>><h1 class="ptitle">ISABEL</h1>
<br /><br />
<<addhours 1>>
<<set $characters.isabel.quests.pregnant = true>>
<<set $characters.isabel.quests.pregnant_day = $game.day>>
You entered her room but didn't see her so you went outside.
The wind was cool that evening as you stood at the edge of the settlement, overlooking the barren wasteland beyond the walls.
The tension between you and Isabel had been growing in recent days—ever since Dom’s coma and the escalating unrest in his underground city.
<br /><br />
As you waited, the gates creaked open behind you.
Isabel stepped through, her face pale and drawn, her dark hair tousled by the wind.
There was something different about her tonight—a nervous energy, as though she were carrying a burden she could no longer bear.
<br /><br />
<center>
<<image 'people/isabel/pregnant.jpg'>>
</center>
<br /><br />
She stood before you, arms wrapped tightly around herself, avoiding your gaze.
For a moment, the only sound between you was the distant howl of the wind across the wasteland. Then she took a deep breath and met your eyes.
<br /><br />
<<isabel>>
I didn’t know how to tell you...
<</isabel>>
<br />
<<isabel>>
I didn’t even know what to do with it myself, but... I can’t keep it hidden any longer.
<</isabel>>
<br />
A sense of unease crept over you, but you kept your expression calm, urging her to continue.
<br /><br />
<<you>>
Isabel, whatever it is, you can tell me.
<</you>>
<br />
She closed her eyes for a brief moment, gathering her strength, then took a step closer.
<br /><br />
<<isabel>>
I'm pregnant...
<</isabel>>
<br />
You stared at her, stunned, the weight of her revelation crashing down on you. Pregnant. The word echoed in your mind, but it took a moment for the full meaning to sink in. Your gaze instinctively dropped to her stomach, then back to her face, searching for confirmation in her eyes.
<br /><br />
You stood there, your thoughts a whirlwind of conflicting emotions.
There was joy, somewhere deep down, at the idea of creating something in a world so broken.
But there was also fear—fear of what this would mean for you, for her, for everything that had come before. And then, of course, there was Dom.
<br /><br />
He was still out there, somewhere, fighting to reclaim his city, to restore order to the underground. He didn’t know. He couldn’t know. The child wasn’t his—it was yours.
<br /><br />
<<isabel>>
What are we going to do?
<</isabel>>
<br />
The reality of her words hit you like a punch to the gut. Dom wouldn’t question the child’s parentage. He would claim it as his, just as he would claim Isabel. And if he found out the truth—that the child was yours—there would be hell to pay.
<br /><br />
<div id="option_abort">
<<linkreplace 'You need to get rid of it'>>
<<set $characters.isabel.relationship -= 50>>
<<run $('#option_keep').hide()>>
<<you>>
You need to get rid of it.
<</you>>
<br/>
Isabel blinked, the words clearly hitting her harder than you expected. Her expression froze, shock spreading across her face. She opened her mouth to respond, but for a moment, nothing came out.
She was struggling to process what you had just said, to understand that you, of all people, were telling her this.
<br /><br />
<<isabel>>
What did you just say?
<</isabel>>
<br />
She stared at you, tears welling in her eyes, her body trembling.
<br />
She placed a hand on her stomach, as if trying to shield the unborn child from your words.
<br /><br />
<<isabel>>
You're scared. That’s all this is. You're scared of Dom, and I get it. I am too. But you can't ask me to do this. I won't do this.
<</isabel>>
<br />
Her words echoed with finality. You could see the resolve in her eyes, and for the first time, you realized that there was no turning back. This wasn’t just about logic, about survival. For her, this was a matter of heart and soul.
The child meant more to her than you had realized, and in trying to protect her, you had only hurt her more.
<br /><br />
She took a sharp breath, turned on her heel, and stormed away without another word.
<br /><br />
You stood there, frozen, watching as she disappeared into the shadows of the settlement. The sound of her boots crunching against the dirt faded quickly, but the tension in the air remained. The words you had exchanged hung like a noose around your neck, tightening with each passing second.
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_keep">
<<linkreplace 'Keep it'>>
<<run $('#option_abort').hide()>>
<<you>>
Keep it.
<</you>>
<br />
Isabel's eyes widened in surprise. She had been bracing herself for something else entirely, the fear and uncertainty clear in her expression.
But now, those words hung between you, changing everything. You could see the confusion in her face slowly give way to something else—hope.
<br /><br />
<<isabel>>
You… you really mean that?
<</isabel>>
<br />
You nodded, stepping closer, your gaze locking with hers.
<br /><br />
She let out a shaky breath, a few tears escaping despite her best efforts to hold them back.
She looked away for a moment, as if trying to gather herself, before turning back to you with a small, trembling smile.
<br /><br />
<<isabel>>
Dom will think… he will think the child is his. He has no reason to believe otherwise. And for as long as we can keep it that way, we might be safe.
<</isabel>>
<br />
<<isabel>>
But if he ever finds out the truth—that you're the father—he won't just come after me.
He'll come after both of us. He'll come after you, and the baby. He'll kill us all.
<</isabel>>
<br />
As Isabel turned to leave, her hand still resting on her stomach, she looked back at you one last time, her eyes filled with quiet determination.
<br /><br />
With that, she walked back toward her room, leaving you standing there, the promise you had just made hanging heavy in the air. You watched her go, the realization of what you were both risking settling deep into your bones.
<br /><br />
<<link 'Leave'>>
<<goto 'Outside'>>
<</link>>
<</linkreplace>>
</div><h1 class="ptitle">ISABEL</h1>
<br /><br />
<<if !$characters.dom.quests.alt_route>>
<<if !$characters.isabel.quests.temp_home>>
<<goto 'Isabel - new home'>>
<<elseif (($characters.isabel.quests.temp_home_day ?? 0) + 14) < $game.day && !$characters.isabel.quests.check_city>>
<<goto 'Isabel - Check underground city'>>
<<elseif $characters.isabel.quests.check_city && !$characters.isabel.quests.pregnant && $characters.isabel.pregnancy >= 10>>
<<goto 'Isabel - pregnant'>>
<</if>>
<</if>>
<<isabel>>
Hey! How it's going?
<</isabel>>
<br /><br />
<<link 'Approach her'>>
<<set $charId = 'isabel'>>
<<unset $slaveId, $guestId, $childId>>
<<set $tmpGirl = $characters.isabel>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirlBack = 'Isabel room'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<goto 'NPC view - character'>>
<</link>>
<<link 'Date'>>
<<goto 'Isabel - date'>>
<</link>>
<<link 'Leave'>>
<<goto 'Guest house'>>
<</link>><h1 class="ptitle">LAB</h1>
<br />
<<set $characters.laura.quests.explore1 = true>>
You step into Laura's room and find her packing her bag hastily, her face set with determination.
<br /><br />
<center>
[img[setup.ImagePath+'people/laura/explore1.jpg']]
</center>
<br />
<<you>>
Laura, what are you doing?
<</you>>
<br />
Laura doesn't look up as she stuffs a worn notebook into her bag.
<br /><br />
<<laura>>
Oh, hey. I'm just packing a few things. I need to head out and explore a bit.
<</laura>>
<br />
<<you>>
Explore? Now? It's dangerous out there.
<</you>>
<br />
<<laura>>
I know, but I have to. I've been thinking about a few experiments that could really help our settlement. We can't keep surviving like this—we need to start thriving.
<</laura>>
<br />
Laura stops packing and looks at you earnestly.
<br /><br />
<<laura>>
I've been studying the plants around here. If I can find a way to cultivate larger, more nutritious vegetables, it could make a huge difference. Better food means stronger people, fewer illnesses. It's worth the risk.
<</laura>>
<br />
<<you>>
Those are great ideas, Laura, but it's risky out there. You can't do this alone
<</you>>
<br />
<<linkreplace 'Go with Laura'>>
You both leave the settlement, armed and ready for the journey ahead.
The city outside is a desolate wasteland, remnants of a world long gone. As you navigate through the ruins, the air is thick with tension.
<br /><br />
<<addhours 4>>
<center>
[img[setup.ImagePath+'people/laura/explore2.jpg']]
</center>
<br />
Hours pass as you trek through the desolate landscape. Laura stops occasionally to collect samples of soil and plants, meticulously noting her observations.
<br /><br />
As you walk through a narrow alley, the quiet is shattered by the sudden appearance of a ragged man with a knife.
<br /><br />
<center>
[img[setup.ImagePath+'people/laura/explore3.jpg']]
</center>
<br />
<<newguy>>
<<sayNpc $tmpGuy>>
Give me everything you've got, or I'll kill you both!
<</sayNpc>>
<br />
Laura stumbles but manages to pull out her own knife in the chaos.
The man lunges at you, and in the scuffle, Laura swings her knife defensively.
The blade catches the man's neck, and he cries out in pain, dropping his knife.
<br /><br />
<center>
[img[setup.ImagePath+'people/laura/explore4.jpg']]
</center>
<br />
<<laura>>
Stop! Please, stop!
<</laura>>
<br />
Laura shouts, rushing to the man's side as he clutches his bleeding neck.
<br /><br />
<<you>>
Laura, what are you doing? He's dangerous!
<</you>>
<br />
<<laura>>
He's hurt. We can't just leave him like this
<</laura>>
<br />
She insists, tearing a strip from her shirt to bandage his wound.
<br /><br />
<<you>>
Why are you helping him?
<</you>>
<br />
She replies firmly, trying to staunch the flow of blood with her hands.
<br /><br />
<center>
[img[setup.ImagePath+'places/explore/bleeding_neck.webp']]
</center>
<br /><br />
<<laura>>
He's hurt. We can't just leave him like this. We all have to survive out here, but we don't have to become monsters
<</laura>>
<br />
You hear noise in the distance—footsteps and yelling, the unmistakable sounds of approaching danger.
<br /><br />
<<you>>
Laura, we need to go! I hear more coming. Probably his associates!
<</you>>
<br />
Realizing there's no time to argue, you need to make a split-second decision.
<br /><br />
<div id="option_wait">
<<linkreplace 'Wait Laura'>>
<<run $('#option_kill').hide()>>
Suddenly, a group of five to ten men appear at the end of the alley. They see their wounded comrade and shout, rushing toward you.
<br /><br />
<<newguy>>
<<sayNpc $tmpGuy>>
There they are! Get them!
<</sayNpc>>
<br /><br />
<<link 'Fight them'>>
<<generateEnemies 4>>
<<set $game.death_reason = 'bleeding out'>>
<<fight $enemies 'Laura - Explore #2', 'Dead'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_kill">
<<linkreplace 'Kill man on the ground'>>
<<set $player.goodwill -= 5>>
<<set $characters.laura.relationship -= 30>>
<<run $('#option_wait').hide()>>
<center>
[img[setup.ImagePath+'people/laura/explore5.jpg']]
</center>
<br />
You grab the man's weapon from the ground and finish him off. Laura gasps in shock and pulls back, her hands covered in blood.
<br /><br />
<<laura>>
You didn't have to do that!!!
<</laura>>
<br />
<<you>>
We had no choice. Come on, we need to move. Now.
<</you>>
<br />
You both run, the sounds of the approaching men growing louder behind you.
Your hearts pound in your chests as you navigate through the ruins, finally finding a way to get out of their sight.
<br /><br />
<<link 'Run home'>>
<<goto 'Laura - Explore #2'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>><h1 class="ptitle">LAB</h1>
<br />
When you finally reach the safety of the settlement, you head to Laura's room. She places all the samples she collected on the table, her hands shaking slightly.
<br />
<br />
<<laura>>
Here, let's see what we got
<</laura>>
<br />
You watch her for a moment, then start to leave the room to give her some space. Just as you reach the door, Laura's voice stops you.
<br /><br />
<<addhours 2>>
<<laura>>
Wait! Stay with me.
<</laura>>
<br />
You turn back, surprised by the tone in her voice.
Laura takes a deep breath and reaches into her bag, pulling out a condom. She looks at you, her eyes filled with a mix of vulnerability and determination.
<br /><br />
<<laura>>
After everything we've been through... I need this. We both do.
<</laura>>
<br />
Laura's fingers tremble slightly as she unbuttons your shirt, her touch both tentative and eager.
You help her, shrugging off the fabric and dropping it to the floor. Her eyes meet yours, and she smiles, her expression softening.
<br /><br />
Once undressed, Laura bends down and removes your pants. As she does that she exposes your half hard cock, she instantly grabs it and strokes few times before pulling it in her mouth.
<br />
Her eyes never leaving yours as she sucks your half hard cock. The warmth and softness of her mouth surround you, and you feel yourself growing harder with each gentle movement.
<br /><br />
<<video 'laura/condom1'>>
<br /><br />
Laura's rhythm is slow and deliberate, her eyes occasionally fluttering closed as she focuses on the task at hand. You place a hand on her head, your fingers tangling in her hair, guiding her gently.
She responds with a hum of approval, the vibration adding an extra layer of sensation.
<br /><br />
<<video 'laura/condom2'>>
<br /><br />
She spits on your dick and also starts to stroke with while still sucking it. She looks determined to put that condom on very hard dick.
<br /><br />
Standing up, Laura takes the condom from the table and opens the packet with her mouth.
<br /><br />
<center>
<<image 'game/misc/condom_on.webp'>>
</center>
<br />
She rolls it onto your dick with tender care, her touch both steady and intimate. The connection between you deepens as she gets onto you, her body pressing against yours.
<br /><br />
With a look of determination, she lowers herself onto you hard dick, her eyes never leaving yours.
<br /><br />
<<video 'laura/condom3'>>
<br /><br />
Laura's breath catches, and she leans forward, her hands resting on your chest for balance.
<br /><br />
<<laura>>
You can increase the speed if you would like that.
<</laura>>
<br />
<<linkreplace 'Increase speed'>>
<<video 'laura/condom4'>>
<br /><br />
<<laura>>
Oh my... That's the spot. Do not change anything.
<</laura>>
<br />
Your movements are steady and controlled, each thrust bringing a new wave of sensation. Laura's breaths come in soft pants, her hands gripping the sheets for support.
<br /><br />
After few intense minutes to pull out and position yourself behind her, placing your hands on her hips.
<br /><br />
<<video 'laura/condom5'>>
<br /><br />
With a hard thrust you push your dick back into Laura's pussy, the sensation intensified by the new angle. Laura gasps softly, her body tensing momentarily before relaxing into the rhythm.
<br /><br />
<<video 'laura/condom6'>>
<br /><br />
<<laura>>
Turn me around!
<</laura>>
<br />
You grab her by her leg and as you lift it up, she rolls over on her back. You keep holding her leg as she with all your strength thrust into her and increase the speed.
<br /><br />
Her eyes never leaving yours while she gasps for air.
<br /><br />
<<video 'laura/condom7'>>
<br /><br />
Sensing your approaching climax, Laura pulls herself off you, turning to face you.
She wraps her hand around you, stroking your dick with the condom still on. The sensation is electrifying, her movements both firm and gentle, driving you to the brink.
<br /><br />
<<laura>>
Give that sample to me, hehe.
<</laura>>
<br />
<<linkreplace 'Cum'>>
<<horny_reset>>
As you begin to cum, Laura wraps both hands firmly around you, maintaining her speed.
The intensity builds with each stroke, her touch guiding you through the peak of your pleasure. The condom catches all your cum, filling with your release.
<br /><br />
<<video 'laura/condom8'>>
<br /><br />
Your breaths come in ragged gasps, the world narrowing to the sensation of Laura's hands and the incredible relief of release. She doesn't slow down, her movements deliberate and unyielding until you've given everything.
When you're finally spent, she slows her movements, allowing you to come down from the high.
<br /><br />
<<laura>>
Ah, I probably can find use for these samples too.
<</laura>>
<br /><br />
Laura gently removes the condom, tying it off with practiced care. She places it aside, perhaps with thoughts of future experiments, her scientific curiosity always present even in moments of intimacy.
<br /><br />
<<link 'Leave'>>
<<addmins 30>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle">LAB</h1>
<br /><br />
<<laura>>
So who you have in mind?
<</laura>>
<br />
<<unset $slaveId, $charId, $guestId, $childId>>
<div id="breeder-girls">
<table id="slaves">
<<for _labSlaveI, _labSlave range $slaves>>
<<capture _labSlaveI, _labSlave>>
<<if [1].includes(_labSlave.gender) || setup.getAge(_labSlave) < 18>>
<<continue>>
<</if>>
<<set _genderClass = 'gender-' + setup.genderClass(_labSlave)>>
<tr>
<td style="width: 300px">
<span @class="''+_genderClass+''">
<<link _labSlave.name>>
<<run $('#breeder-girls').hide()>>
<<run $('#continue').show()>>
<<replace ".breasts-name">><<=setup.displayName(_labSlave)>><</replace>>
<<set $slaveId = _labSlaveI>>
<<run delete $guestId>>
<<run delete $charId>>
<</link>>
</span>
(<<=_labSlave.breasts>>)
</td>
</tr>
<</capture>>
<</for>>
</table>
</div>
<div id="continue" style="display:none">
<<laura>>
You have choosen <span class="breasts-name"></span>. And what size of breasts do you want?
<</laura>>
<br />
<<for _size range ['small', 'medium', 'big']>>
<<capture _size>>
<<link _size>>
<<run $('#continue').hide()>>
<<run $('#done').show()>>
<<if typeof $slaveId !== 'undefined'>>
<<set _npc = $slaves[$slaveId]>>
<<elseif typeof $guestId !== 'undefined'>>
<<set _npc = $guests[$guestId]>>
<</if>>
<<set _npc.breasts = _size>>
<<set _npc.sick = {
days: 5,
desc: 'breasts surgery',
id: 'breasts_surgery'
}>>
<<replace ".breasts-size">><<=_size>><</replace>>
<<addmins 120>>
<</link>>
<</capture>>
<</for>>
</div>
<div id="done" style="display:none">
<strong>
You choose <span class="breasts-size"></span> size for <span class="breasts-name"></span>
</strong>
<br /><br />
<center>
<<image 'places/lab/breasts_surgery.jpg'>>
</center>
<br /><br />
<<laura>>
Don't worry. I will take good care of her. She will need some recovery time too so don't expect her to be working tomorrow.
<</laura>>
<br />
The girl gave you a final glance before closing her eyes, trusting in the process.
As the Laura prepared her tools, you stepped back, arms crossed, listening to the distant echoes of a world that had long since fallen apart.
</div>
<br /><br />
<<link 'Leave'>>
<<addmins 5>>
<<goto 'Laura - lab talk'>>
<</link>><h1 class="ptitle">LAB</h1>
<br /><br />
Laura stood over a metal operating table, her hands slick with blood, her face beaming with excitement.
On the table, a girl lay motionless, her chest cavity grotesquely open, revealing a series of makeshift surgical implants
<br /><br />
<center>
<<image 'places/lab/breasts_surgery.jpg'>>
</center>
<br />
<<laura>>
I did it!
<</laura>>
<br />
<<laura>>
A full breast augmentation—without anesthesia, without proper tools, and in a goddamn wasteland!
<</laura>>
<br />
You stepped closer, unsure whether to be horrified or impressed. The girl’s eyes fluttered weakly—she was alive, barely.
Laura had somehow pulled off a surgical procedure in this hellhole, using nothing but scavenged tools and raw ingenuity.
<br /><br />
She stepped closer, lowering her voice conspiratorially.
<br /><br />
<<laura>>
And listen, if you ever want another girl to go through with it—bigger, smaller, whatever—I can arrange that.
<</laura>>
<br />
<<link 'Leave'>>
<<notify 5s>>
Now you can surgically change people's breast size.
<</notify>>
<<set $characters.laura.quests.breastsSurgery = true>>
<<goto 'Lab'>>
<</link>><h1 class="ptitle">LAB</h1>
<br /><br />
<<laura>>
You need to decide which of the girls will be given the serum.
<</laura>>
<br />
<div id="breeder-girls">
<table id="slaves" class="npc-list">
<<for _labGuestI, _labGuest range $guests>>
<<capture _labGuestI, _labGuest>>
<<if _labGuest.gender || (_labGuest.traits ?? []).includes('breeder') || setup.getAge(_labGuest) < 18 || (_labGuest.traits ?? []).includes('infertile')>>
<<continue>>
<</if>>
<<set _genderClass = 'gender-' + setup.genderClass(_labGuest)>>
<tr class="item">
<td style="min-width:25%">
<span @class="''+_genderClass+''">
<<link _labGuest.name>>
<<run $('#breeder-girls').hide()>>
<<addmins 30>>
<<set $characters.laura.quests.productionSamples-->>
<<if ($guests[_labGuestI].traitsLocked ?? []).includes('breeder')>>
<<set _breederTraitLockedKey = setup.getKeyByValue($guests[_labGuestI].traitsLocked, 'breeder')>>
<<run $guests[_labGuestI].traitsLocked.splice(_breederTraitLockedKey, 1)>>
<</if>>
<<run $guests[_labGuestI].traits.push('breeder')>>
<<run $('#breeder-girls-give').show()>>
<<replace ".breeder-girl-name">><<=setup.displayName(_labGuest)>><</replace>>
<</link>>
</span>
</td>
<td>
<<npcListView _labGuest _labGuestI 'guest'>>
</td>
</tr>
<</capture>>
<</for>>
<<for _labSlaveI, _labSlave range $slaves>>
<<capture _labSlaveI, _labSlave>>
<<if (_labSlave.traits ?? []).includes('breeder') || setup.getAge(_labSlave) < 18 || (_labSlave.traits ?? []).includes('infertile')>>
<<continue>>
<</if>>
<<set _genderClass = 'gender-' + setup.genderClass(_labSlave)>>
<tr class="item">
<td style="min-width:25%">
<span @class="''+_genderClass+''">
<<link _labSlave.name>>
<<run $('#breeder-girls').hide()>>
<<addmins 30>>
<<set $characters.laura.quests.productionSamples-->>
<<if ($slaves[_labSlaveI].traitsLocked ?? []).includes('breeder')>>
<<set _breederTraitLockedKey = setup.getKeyByValue($slaves[_labSlaveI].traitsLocked, 'breeder')>>
<<run $slaves[_labSlaveI].traitsLocked.splice(_breederTraitLockedKey, 1)>>
<</if>>
<<run $slaves[_labSlaveI].traits.push('breeder')>>
<<run $('#breeder-girls-give').show()>>
<<replace ".breeder-girl-name">><<=setup.displayName(_labSlave)>><</replace>>
<</link>>
</span>
</td>
<td>
<<npcListView _labSlave _labSlaveI 'slave'>>
</td>
</tr>
<</capture>>
<</for>>
</table>
</div>
<div id="breeder-girls-give" style="display: none">
<center>
[img[setup.ImagePath+'people/laura/breeder_trait_give.jpg']]
</center>
<br />
You call <span class="breeder-girl-name"></span> inside the lab and Laura gives her serum of the fertility serum.
<br /><br />
<strong><span class="breeder-girl-name"></span> got breeder trait.</strong>
<br /><br />
</div>
<<link 'Leave'>>
<<goto 'Laura - lab talk'>>
<</link>><h1 class="ptitle">GREENHOUSE</h1>
<br /><br />
<<laura>>
Oh, <<=$player.name>>! I was looking for you. Lets take a walk.
<</laura>>
<br />
Inside, the air is warm and humid, a stark contrast to the harsh reality outside. The vibrant green of the plants is a stark reminder of the power of nature to endure, even in the face of adversity.
<br /><br />
<<laura>>
I've been working tirelessly on a new project, and I think it's time to share my findings with you.
<</laura>>
<br />
<center>
<<image 'people/laura/breeder_trait.jpg' 'sfw'>>
</center>
<br />
You nod, curious and eager to hear what she has to say. As you walk through the rows of plants, the conversation flows, filled with technical jargon and scientific terminology.
Laura explains the intricacies of her research, detailing how she believes she can create a permanent solution to the fertility crisis that has plagued the world for so long.
<br /><br />
<<laura>>
I believe we have the knowledge and the resources to give women the gift of fertility, to restore the natural cycle of life.
And not only that, but with careful genetic engineering, we can even introduce a breeder trait that would enhance their reproductive capabilities.
<</laura>>
<br />
The implications of her words hang in the air, a beacon of hope in a world that has known so much loss and despair.
You can feel the weight of responsibility settling on your shoulders, knowing that this breakthrough could change the course of humanity's future.
<br /><br />
<<laura>>
You know what that mmeans? Humanity won't have problems to get a child. Right now percentage is very low among others, even with fertility potions, but with this - it's almost guaranteed.
<</laura>>
<br />
<center>
<<image 'people/laura/new_home2.jpg' 'sfw'>>
</center>
<br />
With a sense of purpose, you follow Laura to her lab, a place where countless experiments and discoveries have been made.
The sterile scent of chemicals mingles with the faint earthiness of the plants, creating a unique olfactory tapestry.
<br /><br />
<<laura>>
I will need additional sample from you. And solution won't be as potion but serum so you'll need to come to me to inject it to girls. Just be sure I have enough samples.
<</laura>>
<br /><br />
When you sit down, she starts unbuttoning her blouse, because she already knows the procedure you like. It seems like she wants to get to your example as quickly as possible.
<br /><br />
<<video 'laura/sample3_1'>>
<br /><br />
<<laura>>
Well hello, my golden source
<</laura>>
<br />
She smiles and before she starts to jerk you off she greets your dick.
<br /><br />
<<video 'laura/sample3_2'>>
<br /><br />
This time something is different. It seems like she enjoys the process more and the pattern is not in the first place
<br /><br />
<<linkreplace 'Cum'>>
<center>
<<image 'people/laura/sample_cum.webp'>>
</center>
<br /><br />
As usual just right before you cum she grabs a vial and you cum inside it. While still holding your dick she puts vial on the table and stares at your dick for a second.
<br /><br />
<<video 'laura/sample3_3'>>
<br /><br />
Then something unexpected happens. While she holds your dick in her hand, she leans towards it and gently kisses your dickhead.
<br /><br />
<<laura>>
Thank you! The serum will be ready soon, so you can safely come back after 30 minutes.
<</laura>>
<br />
<<link 'Leave'>>
<<addmins 60>>
<<horny_reset>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>><h1 class="ptitle">BERRY PICKING</h1>
<br /><br />
You asked Laura if she wanted to get out of the lab for a few hours and pick some berries with you. She looked down at her stained lab coat, then back at you, and pulled it off without a word.
<br /><br />
When she came back out she was wearing a light red summer dress covered in small white dots, thin straps over her shoulders and a ruffled hem that stopped just above her knees. She had a wicker basket hooked over one arm.
<br /><br />
<<laura>>
Don't look at me like that. I do own clothes that aren't covered in chemicals.
<</laura>>
<br />
<center>
<<image 'people/laura/date_berries1.jpg'>>
</center>
<br />
You walked out past the fences and into the woods, following an old trail she said she had spotted on one of your trips. It didn't take long to find the bushes, heavy with dark blackberries and a few patches of wild raspberries hiding underneath.
<br /><br />
Laura picked like she worked, carefully and methodically, inspecting each berry before it went into the basket. Every few minutes she would pop one into her mouth instead.
<br /><br />
<<laura>>
Quality control. Somebody has to make sure they're not poisonous.
<</laura>>
<br />
<<you>>
And are they?
<</you>>
<br />
<<laura>>
I'll let you know if I drop dead.
<</laura>>
<br />
She held one up to your lips. You ate it from her fingers and she laughed, a real laugh, the kind you rarely heard from her in the lab. The sun came through the leaves, the dress kept catching on the thorns, and for a couple of hours the world didn't feel like it had ended at all.
<br /><br />
By the time the basket was full her fingertips were stained purple and there was a smear of juice at the corner of her mouth.
<br /><br />
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<pickup $backpack 'food' 3>>
<<addmins 120>>
<<set $characters.laura.happy = Math.min(($characters.laura.happy ?? 0) + 5, 100)>>
<<set $characters.laura.relationship = Math.min(($characters.laura.relationship ?? 0) + 3, 100)>>
You walked back home together, the basket swinging between you. <strong class="iitem">+3 food</strong>
<br /><br />
<center>
<<image 'people/laura/date_berries2.jpg'>>
</center>
<br />
In the kitchen she set the basket down on the table and stretched, rolling her shoulders.
<br /><br />
<<laura>>
That was... actually nice. I forgot what it's like to do something that isn't work.
<</laura>>
<br />
<<if ($characters.laura.likesGuys ?? true)>>
She turned around, stepped close and looked up at you for a moment. Then she leaned in and kissed you. Softly at first, then harder, her hands sliding up your chest and around your neck. She tasted like blackberries.
<br /><br />
<<video 'laura/date_berries1'>>
<br /><br />
Your hands found her waist, then her ass through the thin fabric of the dress. She pressed herself against you and pushed one strap off her shoulder, letting her breast spill out into your hand.
<br /><br />
<<laura>>
Thank you for today.
<</laura>>
<br />
<div id="ldb_continue">
<<set _labelContinue = 'Kiss her back and pull down her dress'>>
<<linkreplace _labelContinue>>
<<run $('#ldb_leave').hide()>>
<<video 'laura/date_berries2'>>
<br /><br />
You pulled both straps down and her big tits came free. You bent down and took a nipple into your mouth, sucking it and flicking it with your tongue while she held her breast up for you.
<br /><br />
<<laura>>
Mmm... yes... Don't stop.
<</laura>>
<br />
She tilted her head back, eyes half closed, one hand on the back of your head holding you against her. Her nipples were hard as stones.
<br /><br />
<div id="ldb_lick">
<<set _labelLick = 'Lift her onto the counter and lick her pussy'>>
<<linkreplace _labelLick>>
<<run $('#ldb_kneel').hide()>>
<<video 'laura/date_berries3'>>
<br /><br />
You lifted her up onto the kitchen counter and pushed the dress up around her waist. She wasn't wearing any panties. You spread her thighs and buried your face between them, licking her pussy in long slow strokes from bottom to top.
<br /><br />
<<laura>>
Oh... oh fuck...
<</laura>>
<br />
She held the dress bunched up against her stomach with both hands so it wouldn't get in your way, her breath coming faster with every stroke of your tongue.
<br /><br />
<<set _labelFinger = 'Slide your fingers into her pussy'>>
<<linkreplace _labelFinger>>
<<video 'laura/date_berries4'>>
<br /><br />
She leaned back against the cabinets, tits out, the dress a crumpled red mess around her waist. You slid two fingers into her wet pussy and kept licking her clit while you fucked her with them.
<br /><br />
<<laura>>
Right there... God, right there...
<</laura>>
<br />
Her eyes closed and her mouth hung open. Her hips rocked against your hand and her thighs trembled on either side of your head.
<br /><br />
<<set _labelSuck = 'Let her get on her knees'>>
<<linkreplace _labelSuck>>
<<video 'laura/date_berries5'>>
<br /><br />
She pushed you back gently, slid down off the counter and got down on her knees in front of you. She pulled your pants down, wrapped her hand around your cock and took it into her mouth, looking up at you over her glasses while she sucked.
<br /><br />
<<laura>>
Mmm... my turn.
<</laura>>
<br />
<<set $characters.laura.bj = Math.min(($characters.laura.bj ?? 0) + 10, 100)>>
<<set $characters.laura.statsSex ??= {}, $characters.laura.statsSex.bj = ($characters.laura.statsSex.bj ?? 0) + 1>>
<<run $('#ldb_bj').show()>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="ldb_kneel">
<<set _labelKneel = 'Push her down on her knees to suck your cock'>>
<<linkreplace _labelKneel>>
<<run $('#ldb_lick').hide()>>
<<video 'laura/date_berries5'>>
<br /><br />
You put your hand on her shoulder and pushed her down. She dropped to her knees on the kitchen floor without a word, pulled your pants down, wrapped her hand around your cock and took it into her mouth, looking up at you over her glasses while she sucked.
<br /><br />
<<laura>>
Mmm... somebody's impatient.
<</laura>>
<br />
<<set $characters.laura.bj = Math.min(($characters.laura.bj ?? 0) + 10, 100)>>
<<set $characters.laura.statsSex ??= {}, $characters.laura.statsSex.bj = ($characters.laura.statsSex.bj ?? 0) + 1>>
<<run $('#ldb_bj').show()>>
<</linkreplace>>
</div>
<div id="ldb_bj" style="display: none">
Her lips slid up and down your shaft, her hand stroking the base in rhythm with her mouth. Her tits swayed out of the dress with every bob of her head.
<br /><br />
<<set _labelDeep = 'Grab her head and force your cock down her throat'>>
<<linkreplace _labelDeep>>
<<video 'laura/date_berries6'>>
<br /><br />
You grabbed a fistful of her hair and pushed her head down, forcing your cock deep into her throat. She gagged around it, her eyes watering behind her glasses, but she didn't pull away. You held her there, then pulled back and pushed in again, fucking her mouth.
<br /><br />
Saliva ran down her chin and dripped onto her chest. When you finally let her up for air she gasped and looked up at you with a wild look in her eyes.
<br /><br />
<<laura>>
Fuck... Again.
<</laura>>
<br />
<<set $characters.laura.statsSex.bj = ($characters.laura.statsSex.bj ?? 0) + 1>>
<div id="ldb_bj_cum">
<<set _labelBjCum = 'Cum in her mouth'>>
<<linkreplace _labelBjCum>>
<<run $('#ldb_fuck').hide()>>
<<horny_reset>>
<<video 'laura/date_berries10'>>
<br /><br />
You pulled out of her mouth and stroked your cock right in front of her face. She knelt there with the dress bunched around her waist, mouth wide open and tongue out, waiting. You came hard, shooting your load onto her tongue, and she kept her mouth open, looking up at you, until the last drop.
<br /><br />
<<laura>>
Mmm... Better than the berries.
<</laura>>
<br />
She swallowed, wiped her lips with her thumb and got up, pulling the straps of her dress back over her shoulders. Her cheeks were flushed.
<br /><br />
<<laura>>
Next time you're not getting off that easy.
<</laura>>
<br />
<<set $characters.laura.statsSex.bj = ($characters.laura.statsSex.bj ?? 0) + 1>>
<<set $characters.laura.happy = Math.min(($characters.laura.happy ?? 0) + 5, 100)>>
<<set $characters.laura.relationship = Math.min(($characters.laura.relationship ?? 0) + 3, 100)>>
<<addmins 30>>
<<link 'Leave'>>
<<set $player.companions = $player.companionsHome ?? {}>>
<<run delete $player.companionsHome>>
<<goto 'Laura - lab talk'>>
<</link>>
<</linkreplace>>
</div>
<div id="ldb_fuck">
<<set _labelFuck = 'Push her against the counter and rip her dress off'>>
<<linkreplace _labelFuck>>
<<run $('#ldb_bj_cum').hide()>>
<<set $characters.laura.pussy = Math.min(($characters.laura.pussy ?? 0) + 10, 100)>>
<<set $characters.laura.statsSex.pussy = ($characters.laura.statsSex.pussy ?? 0) + 1>>
<<if $characters.laura.virgin>><<run setup.npc.addHistory($characters.laura, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $characters.laura.virgin = false>>
<<video 'laura/date_berries7'>>
<br /><br />
You pulled her up by the arm, spun her around and pushed her against the kitchen island. You grabbed the dress and dragged it up over her head. She threw it across the room and stood there completely naked, bracing herself on the counter as you lined your cock up with her pussy and pushed into her from behind.
<br /><br />
<<laura>>
Ahh...! Yes...!
<</laura>>
<br />
<<set _labelLeg = 'Lift her leg onto the counter and fuck her harder'>>
<<linkreplace _labelLeg>>
<<video 'laura/date_berries8'>>
<br /><br />
You lifted her leg up onto the counter, opening her wide, and fucked her pussy hard from behind. She grabbed her own ass and spread herself for you, looking back over her shoulder with her mouth open.
<br /><br />
<<laura>>
Harder... Fuck me harder...
<</laura>>
<br />
<<set $characters.laura.statsSex.pussy = ($characters.laura.statsSex.pussy ?? 0) + 1>>
<<set _labelBack = 'Lay her on the counter and pound her pussy'>>
<<linkreplace _labelBack>>
<<video 'laura/date_berries9'>>
<br /><br />
You pulled out, rolled her onto her back on the counter and pushed her leg up against her chest. Then you drove your cock back into her pussy and pounded her, squeezing her tits while she moaned and clawed at the countertop.
<br /><br />
<<laura>>
I'm... I'm cumming...!
<</laura>>
<br />
Her pussy clenched around your cock as she came, her whole body shaking on the counter. You kept fucking her through it and felt your own orgasm building fast.
<br /><br />
<<set $characters.laura.statsSex.pussy = ($characters.laura.statsSex.pussy ?? 0) + 1>>
<div id="ldb_cum_mouth">
<<set _labelMouth = 'Pull out and cum in her mouth'>>
<<linkreplace _labelMouth>>
<<run $('#ldb_cum_inside').hide()>>
<<horny_reset>>
<<video 'laura/date_berries10'>>
<br /><br />
You pulled out and she slid off the counter onto her knees on the kitchen floor, mouth wide open and tongue out. You stroked your cock over her face until you came, shooting your load onto her tongue. She kept her mouth open, looking up at you, until the last drop.
<br /><br />
<<laura>>
Mmm... Better than the berries.
<</laura>>
<br />
She swallowed, wiped her lips with her thumb and got up, completely naked in the middle of the kitchen. She looked around for her dress and found it hanging off the back of a chair.
<br /><br />
<<set $characters.laura.statsSex.bj = ($characters.laura.statsSex.bj ?? 0) + 1>>
<<set $characters.laura.horny = 0>>
<<set $characters.laura.orgasms ??= 0>>
<<set $characters.laura.orgasms++>>
<<set $characters.laura.happy = Math.min(($characters.laura.happy ?? 0) + 10, 100)>>
<<set $characters.laura.relationship = Math.min(($characters.laura.relationship ?? 0) + 5, 100)>>
<<addmins 60>>
<<link 'Leave'>>
<<set $player.companions = $player.companionsHome ?? {}>>
<<run delete $player.companionsHome>>
<<goto 'Laura - lab talk'>>
<</link>>
<</linkreplace>>
</div>
<div id="ldb_cum_inside">
<<set _labelInside = 'Cum inside her'>>
<<linkreplace _labelInside>>
<<run $('#ldb_cum_mouth').hide()>>
<<horny_reset>>
<center>
<<image 'game/misc/creampie_on_back.webp'>>
</center>
<br />
You grabbed her hips, pushed in as deep as you could and came inside her. Your cock pulsed again and again, filling her pussy while she lay there on the counter, legs shaking, moaning with every throb.
<br /><br />
<<laura>>
Oh god... I can feel all of it.
<</laura>>
<br />
When you pulled out, cum ran out of her and dripped onto the counter. She propped herself up on her elbows and looked at the mess, then at the basket of berries on the table.
<br /><br />
<<laura>>
We're cleaning that before anyone makes jam on it.
<</laura>>
<br />
<<if setup.pregnancyChance($characters.laura)>>
<<set $characters.laura.pregnancy_father = 'mc'>>
<<set $characters.laura.pregnancy = 0>>
<</if>>
<<set $characters.laura.horny = 0>>
<<set $characters.laura.orgasms ??= 0>>
<<set $characters.laura.orgasms++>>
<<set $characters.laura.happy = Math.min(($characters.laura.happy ?? 0) + 10, 100)>>
<<set $characters.laura.relationship = Math.min(($characters.laura.relationship ?? 0) + 5, 100)>>
<<addmins 60>>
<<link 'Leave'>>
<<set $player.companions = $player.companionsHome ?? {}>>
<<run delete $player.companionsHome>>
<<goto 'Laura - lab talk'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="ldb_leave">
<<set _labelLeave = 'Stop and leave'>>
<<linkreplace _labelLeave>>
<<run $('#ldb_continue').hide()>>
You gently stopped her, kissed her forehead and told her you had things to take care of. She smiled, a little flushed, and fixed the strap of her dress.
<br /><br />
<<laura>>
Your loss. More berries for me.
<</laura>>
<br />
<<link 'Leave'>>
<<set $player.companions = $player.companionsHome ?? {}>>
<<run delete $player.companionsHome>>
<<goto 'Laura - lab talk'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
She squeezed your arm and gave you a warm smile.
<br /><br />
<<laura>>
Thank you for today. I needed that.
<</laura>>
<br />
<<link 'Leave'>>
<<set $player.companions = $player.companionsHome ?? {}>>
<<run delete $player.companionsHome>>
<<goto 'Laura - lab talk'>>
<</link>>
<</if>><h1 class="ptitle">SCHOOL</h1>
<br /><br />
You suggested a walk around the settlement. Laura agreed without hesitation, setting down whatever she had been working on and wiping her hands on her lab coat before tossing it over the back of a chair.
<br /><br />
<center>
<<image 'people/laura/walk1.jpg'>>
</center>
<br />
You strolled past the garden beds, the water pump, the half-finished walls of the newest extension. She pointed things out — structural problems she had noticed, a patch of mold on the grain store she wanted to treat. Always the scientist, even on a walk.
<br /><br />
<center>
<<image 'people/laura/walk2.jpg'>>
</center>
<br />
Eventually you ended up at the school. The room was empty this time of day, chairs pushed neatly against the walls, a chalkboard still covered in someone's lesson from the morning.
<br /><br />
<<video 'laura/school1'>>
<br /><br />
Laura walked straight to the front and sat down in the teacher's chair, leaning back with a small smile. She ran her fingers along the edge of the desk.
<br /><br />
<<laura>>
You know, before the collapse I thought I'd end up in academia. Tenure, published papers, maybe a lecture hall full of students who pretended to care.
<</laura>>
<br />
She looked around the room.
<br /><br />
<<laura>>
This is better, honestly. These kids actually need what we teach them. Maybe one day I'll take a shift in here myself. Science teacher.
<</laura>>
<br />
<<you>>
You'd be good at it.
<</you>>
<br />
<<laura>>
You think so?
<</laura>>
<br />
She leaned forward on the desk, chin resting on her hand, looking at you with that half-smile she got when she was actually relaxed.
<br /><br />
<<set _labelApproach = 'Approach her'>>
<<linkreplace _labelApproach>>
<<run $('#ls_leave').hide()>>
<<video 'laura/school2'>>
<br /><br />
You walked around the desk to her side. She got up from the chair and stepped toward you, looking up with a raised eyebrow.
<br /><br />
<<laura>>
What are you doing?
<</laura>>
<br />
<<video 'laura/school3'>>
<br /><br />
You didn't answer. You guided her to sit on the edge of the desk and placed one hand on her knee, sliding it slowly up her thigh, under the hem of her skirt. Her breath caught. Your fingers found the thin fabric of her panties, already warm, and pressed against her pussy through the cloth.
<br /><br />
<<laura>>
Here? In the school?
<</laura>>
<br />
She didn't push your hand away. Her legs parted wider, giving you better access. You rubbed slow circles through the fabric, feeling her getting wet under your touch. She bit her lower lip, her hips shifting forward on the desk.
<br /><br />
You pushed her panties aside and slid two fingers along her bare slit. She was soaked. A soft moan escaped her as your fingers found her clit, rubbing it in tight circles.
<br /><br />
<<laura>>
Fuck... okay, don't stop...
<</laura>>
<br />
You worked her clit with your thumb while two fingers slipped inside her, curling upward. Her hands gripped the edge of the desk, knuckles white. Her thighs clamped around your wrist, then relaxed, then clamped again.
<br /><br />
She reached forward and undid your belt with shaking hands, pulling your cock free. It was rock hard already. She wrapped her fingers around the shaft and stroked it once, twice, then leaned forward and took you into her mouth.
<br /><br />
<<video 'laura/school4'>>
<br /><br />
Her lips sealed around the head as her tongue swirled over the tip. She took you deeper, her hand pumping the base of your shaft in rhythm with her mouth. Wet, sloppy sounds filled the quiet classroom.
<br /><br />
<<laura>>
Mmm... I love the taste of your cock.
<</laura>>
<br />
<<video 'laura/school5'>>
<br /><br />
She pulled back, a string of saliva connecting her lips to your dick, and looked up at you.
<br /><br />
<<laura>>
I need you inside me. Now.
<</laura>>
<br />
<<video 'laura/school6'>>
<br /><br />
You put her back on the desk, spread her legs wide and positioned your cock against her dripping pussy. You pushed in with one smooth thrust. She gasped, her fingers splaying flat against the desk, scattering papers. Her pussy was tight and wet, clenching around you as you bottomed out.
<br /><br />
<<laura>>
Oh god... yes...
<</laura>>
<br />
<<video 'laura/school9'>>
<br /><br />
You grabbed her thighs and started fucking her hard, each thrust driving deep. Her moans echoed off the classroom walls.
<br /><br />
<<laura>>
Harder... fuck me harder...
<</laura>>
<br />
<<video 'laura/school7'>>
<br /><br />
You lifted her legs up, holding them high, and drove into her relentlessly. She screamed, her back arching off the desk, her hands grabbing at anything she could reach.
<br /><br />
<<video 'laura/school8'>>
<br /><br />
Her whole body shook as she came, her pussy clenching hard around your cock, waves of orgasm rolling through her. Her moans turned ragged as you kept pounding her through it.
<br /><br />
<div id="ls_cum_inside">
<<set _labelCum = 'Cum inside her'>>
<<linkreplace _labelCum>>
<<run $('#ls_cum_outside').hide()>>
<<horny_reset>>
<center>
<<image 'game/misc/creampie_on_back.webp'>>
</center>
<br /><br />
You buried yourself deep and came hard, your cock pulsing inside her. She moaned into the desk as she felt you filling her, her pussy milking every last drop.
<br /><br />
<<laura>>
Mmm... you made such a mess of me.
<</laura>>
<br />
She sat up slowly, smoothing her skirt down. A trickle of cum ran down her inner thigh. She looked at the scattered papers on the desk and laughed.
<br /><br />
<<laura>>
If I do become a teacher, this desk is going to bring back some memories.
<</laura>>
<br />
<<if setup.pregnancyChance($characters.laura)>>
<<set $characters.laura.pregnancy_father = 'mc'>>
<<set $characters.laura.pregnancy = 0>>
<</if>>
<<if $characters.laura.virgin>><<run setup.npc.addHistory($characters.laura, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $characters.laura.virgin = false>>
<<set $characters.laura.horny = 0>>
<<set $characters.laura.orgasms ??= 0>>
<<set $characters.laura.orgasms++>>
<<set $characters.laura.happy = Math.min(($characters.laura.happy ?? 0) + 10, 100)>>
<<set $characters.laura.relationship = Math.min(($characters.laura.relationship ?? 0) + 5, 100)>>
<<addmins 60>>
<br /><br />
<<link 'Leave'>>
<<set $player.companions = $player.companionsHome ?? {}>>
<<run delete $player.companionsHome>>
<<goto 'Laura - lab talk'>>
<</link>>
<</linkreplace>>
</div>
<div id="ls_cum_outside">
<<set _labelPull = 'Pull out'>>
<<linkreplace _labelPull>>
<<run $('#ls_cum_inside').hide()>>
<<horny_reset>>
<center>
<<image 'game/misc/cum_on_stomach.webp'>>
</center>
<br /><br />
You pulled out and shot your load across her stomach. Thick ropes of cum splattered over her skin, dripping down onto her bunched-up skirt.
<br /><br />
<<laura>>
At least you didn't get it on the lesson plans.
<</laura>>
<br />
She grabbed a cloth from her bag and cleaned herself up, then turned around and leaned against the desk.
<br /><br />
<<laura>>
Same time next week?
<</laura>>
<br />
<<if $characters.laura.virgin>><<run setup.npc.addHistory($characters.laura, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $characters.laura.virgin = false>>
<<set $characters.laura.horny = 0>>
<<set $characters.laura.orgasms ??= 0>>
<<set $characters.laura.orgasms++>>
<<set $characters.laura.happy = Math.min(($characters.laura.happy ?? 0) + 10, 100)>>
<<set $characters.laura.relationship = Math.min(($characters.laura.relationship ?? 0) + 5, 100)>>
<<addmins 60>>
<br /><br />
<<link 'Leave'>>
<<set $player.companions = $player.companionsHome ?? {}>>
<<run delete $player.companionsHome>>
<<goto 'Laura - lab talk'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<div id="ls_leave">
<<link 'Leave'>>
<<set $player.companions = $player.companionsHome ?? {}>>
<<run delete $player.companionsHome>>
<<addmins 30>>
<<set $characters.laura.relationship = Math.min(($characters.laura.relationship ?? 0) + 3, 100)>>
<<goto 'Laura - lab talk'>>
<</link>>
</div><h1 class="ptitle">LAURA</h1>
<br /><br />
<<laura>>
A date? Hm... What did you have in mind?
<</laura>>
<br />
<<link 'Pick berries in the woods'>>
<<goto 'Laura - date \[berries\]'>>
<</link>>
<<if ($game.location.school ?? false)>>
<<if recall($suppCode)>>
<<link 'Walk around the settlement'>>
<<set $player.companionsHome = $player.companions>>
<<set $player.companions = {}>>
<<goto 'Laura - date \[settlement walk\]'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Walk around the settlement
<<notPatreonIcon>>
</div>
<</if>>
<</if>>
<<link 'Leave'>>
<<goto 'Laura - lab talk'>>
<</link>><h1 class="ptitle">LAB</h1>
<br />
<<addmins 30>>
You sat on the examination table, shirt damp with nervous sweat. Outside, the wind howled against the corrugated walls. Inside, it was just you and Dr. Laura.
<br /><br />
<<laura>>
You've been... tense
<</laura>>
<br />
<<you>>
I’m... constantly hard. It doesn’t go away. It’s not arousal—it’s just... there. Always
<</you>>
<br />
<<video 'laura/doctor1'>>
<br /><br />
Laura set the clipboard down slowly.
<br /><br />
<<laura>>
I've actually something I wanted to show you...
<</laura>>
<br />
Laura held your gaze for a long moment, searching for hesitation. When none came, she stepped back slightly—just enough to reach for the clasp at her throat.
Her coat—a long, dust-stained thing patched at the elbows—fell open with a soft rustle.
<br /><br />
<<video 'laura/doctor2'>>
<br /><br />
A bra and matching briefs—elegant, out of place in this world of grit and blood, yet somehow perfectly fitting her. Not provocative—intentional. A message.
<br /><br />
<<laura>>
You like it?
<</laura>>
<br />
She stepped closer again, the coat now hanging loosely from her shoulders, forgotten.
She got down on her knees, her eyes locked onto yours.
She reached out, her hands deftly undoing your pants and pulling out your cock.
<br /><br />
<<video 'laura/doctor3'>>
<br /><br />
You were already hard, and she wasted no time, her mouth wrapping around you with a fierce intensity.
<br /><br />
<<laura>>
Let's see if we can make the problem go away.
<</laura>>
<br />
You could only nod, your breath catching in your throat as she worked her magic.
Her tongue swirled around the head of your cock, her lips creating a tight seal as she took you deeper and deeper into her mouth.
<br /><br />
<<video 'laura/doctor4'>>
<br /><br />
Laura's hands were gentle, her fingers digging into your thighs as she sucked you off.
She was determined to make you cum, and she wasn't going to stop until she had what she wanted.
<br /><br />
<<laura>>
Doesn't seem to work... Maybe we should try something else.
<</laura>>
<br />
With that, she stood up and lay down on the examination table, her legs spreading wide in invitation.
You didn't need any more encouragement. You positioned yourself between her legs, your cock brushing against her entrance.
<<video 'laura/doctor5'>>
<br /><br />
Laura's eyes were locked onto yours, her gaze intense as you began to fuck her.
You started slow, your hips moving with a deliberate rhythm as you slid in and out of her wet, tight pussy
<br /><br />
<<laura>>
This will take all day in this pace. Faster!
<</laura>>
<br />
<<video 'laura/doctor6'>>
<br /><br />
You obliged, your hips slamming against hers as you fucked her with a raw, brutal intensity.
Laura's moans filled the room, her body arching against yours as she met your thrusts with her own.
<br /><br />
<<laura>>
Don't stop. Fuck me harder.
<</laura>>
<br />
<<video 'laura/doctor7'>>
<br /><br />
You increased your pace, your hips moving faster and faster as you pounded into her.
Laura's body was trembling, her muscles coiling tighter and tighter as she approached her climax.
And then, with a final, desperate thrust, she came, her body convulsing with pleasure as she screamed your name.
<<set $characters.laura.horny = 0>>
<<set $characters.laura.orgasms ??= 0>>
<<set $characters.laura.orgasms++>>
<br /><br />
As you approached the edge, Laura suddenly pulled back, her eyes gleaming with a mischievous spark.
She stood up, her body glistening with a sheen of sweat, and demanded.
<br /><br />
<<laura>>
I want you to cum on my face. Now.
<</laura>>
<br />
She looked up at you, her eyes filled with a mix of lust and dominance.
<br /><br />
<<laura>>
Cum for me. I want to feel it on my face.
<</laura>>
<br />
<<linkreplace 'Cum'>>
You started to stroke yourself, your eyes locked onto hers as you approached the point of no return.
<br /><br />
<<video 'laura/doctor8'>>
<br /><br />
With a final, desperate thrust, you came, your cock pulsing as you spilled your seed onto her face.
Laura let out a low moan, her eyes closing in ecstasy as she felt the warm liquid hit her skin.
She reached up, her fingers spreading your cum across her face, a satisfied smirk playing on her lips.
<br /><br />
<<laura>>
That was fucking hot
<</laura>>
<br />
<<horny_reset>>
<<link 'Leave'>>
<<goto 'Lab'>>
<</link>>
<</linkreplace>><h1 class="ptitle">LAB</h1>
<div id="place-head">
<<image 'places/cabin/lab_head.jpg' 'sfw'>>
</div>
<br /><br />
<<laura>>
Hey! Is there anything you wanted?
<</laura>>
<br /><br />
<<set $characters.laura.canTalk = true>>
<<if $characters.laura.relationship > 20>>
<<set $characters.laura.canFuck = true>>
<</if>>
<<link 'Approach her'>>
<<set $charId = 'laura'>>
<<unset $slaveId, $guestId, $childId>>
<<set $tmpGirl = $characters.laura>>
<<set $tmpGirl.location = 'bedroom'>>
<<set $tmpGirlBack = 'Laura - lab talk'>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<goto 'NPC view - character'>>
<</link>>
<<if $characters.laura.relationship >= 30>>
<<link 'Date'>>
<<goto 'Laura - date'>>
<</link>>
<</if>>
<<if !$characters.laura.quests.sampleToday>>
<<link 'Give her new sample'>>
<<goto 'Laura - new sample'>>
<</link>>
<</if>>
<<if $characters.laura.quests.breeder_trait && $characters.laura.quests.productionSamples>>
<<link 'Give girl breeder trait'>>
<<goto 'Laura - breeder trait give'>>
<</link>>
<</if>>
<<if $characters.laura.quests.breastsSurgery>>
<<link 'Breasts surgery'>>
<<goto 'Laura - breasts surgery NPC'>>
<</link>>
<</if>>
<<if $characters.laura.quests.sexChangeSurgery>>
<<link 'Sexchange surgery'>>
<<goto 'Laura - sexchange surgery NPC'>>
<</link>>
<</if>>
<<if $characters.laura.quests.bedroomNotAllowed>>
<<link 'Allow to surprise me in the morning'>>
<<set $characters.laura.quests.bedroomNotAllowed = false>>
<<addmins 5>>
<<goto `passage()`>>
<</link>>
<<else>>
<<link 'Do not allow to surprise me in the morning'>>
<<addmins 5>>
<<set $characters.laura.quests.bedroomNotAllowed = true>>
<<goto `passage()`>>
<</link>>
<</if>>
<<if $player.horny >= 50>>
<<if recall($suppCode)>>
<<link 'Tell about your hard dick problem'>>
<<goto 'Laura - hard dick'>>
<</link>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Tell about your hard dick problem
<<notPatreonIcon>>
</div>
<</if>>
<</if>>
<<link 'Leave'>>
<<goto 'Lab'>>
<</link>><h1 class="ptitle">BEDROOM</h1>
<br /><br />
<<set $characters.laura.quests.morningSampleDay = $game.day>>
The room is enveloped in the soft glow of dawn as you peacefully slumber.
The warmth of your blanket provides a comforting cocoon, shielding you from the chill of the early morning. Unbeknownst to you, the tranquility is about to be disrupted.
<br /><br />
Suddenly, you feel a gentle tug at your sheets, followed by the inexplicable sensation of someone attempting to relieve you of your pants.
In your half-asleep daze, confusion clouds your thoughts as you stir but remain blissfully unaware of the intruder.
<br /><br />
<div id="option_open">
<<linkreplace 'Open eyes'>>
<<run $('#option_skip, #option_sleep').hide()>>
As your eyelids flutter open, you catch a glimpse of a figure hovering over you.
<br />
It takes a moment for your groggy mind to register that it's <<=setup.displayName($characters.laura)>>, a mischievous glint in her eyes as she fumbles with your dick.
<br /><br />
<<video 'laura/morning1'>>
<br /><br />
When Laura finally meets your gaze, she smirks, a playful twinkle in her eye as she teases, offering a half-hearted shrug.
<br /><br />
<<laura>>
Caught in the act, huh? Sorry, but you haven't been given me a sample so I decided to grab one myself.
<</laura>>
<br />
She takes you by surprise and leans towards your dick.
<br /><br />
<<video 'laura/morning2'>>
<br /><br />
She sensually starts to suck your hard dick while she tries to fix her hair that falls in her face.
<br /><br />
<<laura>>
I think you have earned some reward as I woke you up, heh.
<</laura>>
<br />
<<video 'laura/morning3'>>
<br /><br />
As she sucks your hard dick while she's naked she decides to help herself by grabing your dick and stroking it simultaneously.
<br /><br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<center>
<<image 'people/laura/sample_cum.webp'>>
</center>
<br /><br />
As usually you warn her that you're about to cum and she grabs prepared sample cup and puts it in front of your dick. You cum into it and she gives another kiss to your dick before getting up.
<br /><br />
<<laura>>
Thank you! This could be made into a regular event.
<</laura>>
<br />
<<if $characters.laura.relationship < 60>>
<strong>Reputation with Laura increased by 1</strong>
<<set $characters.laura.relationship++>>
<br /><br />
<</if>>
<<link 'Leave'>>
<<set $characters.laura.quests.productionSamples++>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
</div>
<<if $characters.laura.quests.explore1>>
<div id="option_sleep">
<<if recall($suppCode)>>
<<linkreplace 'Pretend to be asleep'>>
<<run $('#option_open, #option_skip').hide()>>
When you finally opened your eyes, the sight that greeted you was intensely erotic.
Laura's legs were spread wide, her lack of panties a clear indication of her intentions.
She began to jerk you off, her hand moving with a rhythm that was both gentle and firm, teasing out your arousal.
<br /><br />
<<video 'laura/morning_new1'>>
<br /><br />
<<laura>>
Come one. Give it to me. I need something to work on in the lab.
<</laura>>
<br />
<<video 'laura/morning_new2'>>
<br /><br />
The sound of her hand moving over your skin, the sight of her concentration, and the feeling of her touch all combined to create a highly sensual experience.
Laura's actions were not just about the physical stimulation but also about the emotional and psychological connection that such an intimate act fosters.
<br /><br />
<<laura>>
You won't give it up so easy, huh?
<</laura>>
<br />
She leaned forward, taking your penis into her mouth.
<br /><br />
<<video 'laura/morning_new3'>>
<br /><br />
The sensation of her warm lips and tongue enveloping you was incredibly pleasurable, and you felt yourself becoming fully erect.
<br /><br />
<<video 'laura/morning_new4'>>
<br /><br />
The moment her lips made contact, a surge of pleasure coursed through you. Laura's mouth was warm and inviting, her tongue extending to caress the underside of your penis.
She began to move her head, her lips sliding over your length with a gentle yet firm pressure.
<br /><br />
<<video 'laura/morning_new5'>>
<br /><br />
In a moment of raw intensity, Laura's actions became more primal. She deepened the penetration of her mouth, taking more of your length into her throat.
The sensation of being so fully enveloped was almost overwhelming, the pleasure bordering on pain as your penis hit the back of her throat.
<br /><br />
<<laura>>
Still nothing?
<</laura>>
<br />
Without breaking eye contact, Laura leaned back slightly, her hands pressing your penis against her stomach as she maneuvered herself.
The cool air hit your moist skin, a brief contrast to the warmth that had enveloped you moments before.
<br /><br />
<<video 'laura/morning_new6'>>
<br /><br />
Then, in a fluid motion, Laura brought her breasts together, creating a valley of soft, inviting flesh.
<br /><br />
<<laura>>
And now? Nothing?
<</laura>>
<br />
As Laura shifted her position, she sat down directly against your penis, her weight and warmth enveloping you.
The sudden pressure and heat from her body were intensely arousing, your penis trapped between her thighs.
<br /><br />
<<video 'laura/morning_new7'>>
<br /><br />
Then, without breaking the gaze, Laura began to move. She started to jerk your penis, her hands wrapping around your length as she started to stroke you.
The movement was smooth and practiced, her touch sending waves of pleasure through your body.
<br /><br />
<<laura>>
Eh, screw the sample...
<</laura>>
<br />
Almost immediately, she slid your penis into her pussy, the movement sudden and decisive.
<br /><br />
<<video 'laura/morning_new8'>>
<br /><br />
As your penis slid into her, Laura let out a moan, the sound low and throaty, a primal expression of pleasure and satisfaction.
The noise was intensely erotic, a raw and unguarded expression of her desire.
<br /><br />
<<video 'laura/morning_new9'>>
<br /><br />
With each movement, Laura's moans grew louder, her body responding to the sensation of your penis inside her.
Her hips moved in a slow, circular motion, the friction building with each stroke.
The sensation was almost overwhelming, the combination of the physical pleasure and the emotional connection between you creating a potent
cocktail of arousal and intimacy.
<br /><br />
<<laura>>
Fill me up...
<</laura>>
<br />
<<linkreplace 'Cum'>>
<<horny_reset>>
<<if setup.pregnancyChance($characters.laura)>>
<<set $characters.laura.pregnancy_father = 'mc'>>
<<set $characters.laura.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
<<image 'game/misc/cum_reverse.gif'>>
<br /><br />
Laura's response was immediate, her body reacting to the sensation of your cum filling her. She let out a loud moan, her muscles contracting around your penis as she felt the warmth of your semen spreading through her. Her hips moved in a slow, circular motion, as if trying to draw every last drop of cum from your body.
<br /><br />
<<laura>>
Heh, maybe some other time.
<</laura>>
<br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Pretend to be asleep
<<notPatreonIcon>>
</div>
<</if>>
</div>
<</if>>
<div id="option_skip">
<<link 'Skip'>>
<<set $characters.laura.quests.productionSamples++>>
<<set $characters.laura.quests.morningSampleDay = $game.day>>
<<goto 'Wood cabin'>>
<</link>>
</div><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
<<laura>>
Alright! You know the drill. Get on the bed.
<</laura>>
<br /><br />
<<set _videoOptions = [
'new_home1',
'sample_bj',
'sample_bj2',
'sample2_3'
]>>
<<set _video = 'laura/' + _videoOptions[Math.floor(Math.random()*_videoOptions.length)]>>
<<video _video>>
<br /><br />
As usual, she approaches this matter very professionally. She takes your dick and gently starts to stroke it. Slowly she picks up the pace it up and down. She looks in your direction quite often, sometimes with a flirtatious smile.
<br /><br />
<<linkreplace 'Cum'>>
<<addmins 30>>
<<horny_reset>>
<center>
<<image 'people/laura/sample_cum.webp'>>
</center>
<br /><br />
Before you cum she puts another sample cup in front of your dick and collects all cum you shoot out.
<br /><br />
<<laura>>
Thanks! Be safe out there.
<</laura>>
<br /><br />
<<if $characters.laura.relationship < 40>>
<strong>Reputation with Laura increased by 1</strong>
<<set $characters.laura.relationship++>>
<</if>>
<br /><br />
<<link 'Leave'>>
<<set $characters.laura.quests.productionSamples++>>
<<set $characters.laura.quests.sampleToday = true>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>><h1 class="ptitle">LAB</h1>
<br /><br />
<<laura>>
So who you have in mind?
<</laura>>
<br />
<<unset $slaveId, $charId, $guestId, $childId>>
<div id="breeder-girls">
<table id="slaves">
<<for _labSlaveI, _labSlave range $slaves>>
<<capture _labSlaveI, _labSlave>>
<<if setup.getAge(_labSlave) < 18 || _labSlave.sexChanged>>
<<continue>>
<</if>>
<<set _genderClass = 'gender-' + setup.genderClass(_labSlave)>>
<tr>
<td style="width: 300px">
<span @class="''+_genderClass+''">
<<link _labSlave.name>>
<<run $('#option-gender-' + setup.genderPathByValue(_labSlave.gender)).hide()>>
<<run $('#breeder-girls').hide()>>
<<run $('#continue').show()>>
<<replace ".breasts-name">><<=setup.displayName(_labSlave)>><</replace>>
<<set $slaveId = _labSlaveI>>
<<run delete $guestId>>
<<run delete $charId>>
<</link>>
</span>
</td>
</tr>
<</capture>>
<</for>>
</table>
</div>
<div id="continue" style="display:none">
<<laura>>
You have choosen <span class="breasts-name"></span>. And what gender do you want?
<</laura>>
<br />
<<for _gender range [0, 1, 2]>>
<<capture _gender>>
<div @id="'option-gender-' + setup.genderPathByValue(_gender) + ''">
<<link setup.genderPathByValue(_gender)>>
<<if typeof $slaveId !== 'undefined'>>
<<set _npc = $slaves[$slaveId]>>
<<elseif typeof $guestId !== 'undefined'>>
<<set _npc = $guests[$guestId]>>
<</if>>
<<run $('#continue').hide()>>
<<run $('#done').show()>>
<<set _npc.gender = _gender>>
<<if !_npc.breasts>>
<<set _npc.breasts = 'small'>>
<</if>>
<<set _npc.sick = {
days: 15,
desc: 'sexchange surgery',
id: 'sexchange_surgery'
}>>
<<set _npc.sexChanged = true>>
<<replace ".breasts-size">><<=setup.genderPathByValue(_gender)>><</replace>>
<<addmins 240>>
<</link>>
</div>
<</capture>>
<</for>>
</div>
<div id="done" style="display:none">
<strong>
You choose <span class="breasts-size"></span> for <span class="breasts-name"></span>
</strong>
<br /><br />
<center>
<<image 'places/lab/breasts_surgery.jpg'>>
</center>
<br /><br />
<<laura>>
Don't worry. It all should be good. Will be out for some time tho. Probably something about two weeks.
<</laura>>
<br />
<span class="breasts-name"></span> got on the table.
<br />
As the Laura prepared her tools, you stepped back, arms crossed, listening to the distant echoes of a world that had long since fallen apart.
</div>
<br /><br />
<<link 'Leave'>>
<<addmins 5>>
<<goto 'Laura - lab talk'>>
<</link>><h1 class="ptitle">LAB</h1>
<br /><br />
When you stepped into the clinic, the air was heavy with the smell of boiled cloth and scorched metal.
A tray of scavenged tools glinted faintly in the dim light, their edges sharpened and cleaned as best as could be managed after the fall.
Laura was already there, bent over a stack of worn notes, charcoal staining her fingertips.
As soon as she noticed you, she straightened, and the words spilled out before you could say anything.
<br /><br />
<center>
<<image 'people/laura/sexchange.jpg'>>
</center>
<br />
<<laura>>
I think I can do it
<</laura>>
<br />
She said, her voice steady but charged with something close to fever.
<br /><br />
<<laura>>
A full change. Not just scars, not just half measures. A real sex change, with the body remade the way it should be.
<</laura>>
<br />
She pushed the notebook toward you, pages filled with rough sketches of bones and organs, her handwriting crammed into the margins.
<br /><br />
<<laura>>
I’ve studied every scrap of medical text I could salvage. I practiced grafts, reconstructions, organ work.
It would be brutal, yes, and without clean rooms or proper anesthesia the risks are high. But I knew enough now. I could try.
<</laura>>
<br />
Her eyes caught yours, sharp with conviction, and for a moment the silence in the room pressed down heavier than the stench of antiseptic.
You could feel the weight of her certainty, the terrible mixture of hope and danger coiled in her words.
Around you, the shadows of the ruined world seemed to lean in, as if listening to the promise she had just made.
The tools lay between you both like a line already drawn, and though she said nothing more, you could hear everything in the way her hands refused to tremble.
<br /><br />
<<laura>>
But it's irreversible...
<</laura>>
<br />
The choice lingered there, not in her mouth but in the hollow of your chest, where fear and possibility warred against each other.
<br /><br />
<<link 'Leave'>>
<<notify 5s>>
Now you can surgically change people's sex.
<</notify>>
<<set $characters.laura.quests.sexChangeSurgery = true>>
<<goto 'Lab'>>
<</link>><h1 class="ptitle">BATHHOUSE</h1>
<br />
You pushed open the heavy wooden door of the bathhouse, the warm, humid air enveloping you as you stepped inside.
The sound of running water and the soft, sensual scent of soap and shampoo filled the air.
As your eyes adjusted to the mist, you noticed a figure standing under one of the showerheads, her back to you.
<br /><br />
<<video 'laura/shower1'>>
<br /><br />
It was Laura, her body glistening with water and shower gel, her big breasts dripping with the soapy liquid.
She was turned away from you, her hands running over her curves, washing herself with a deliberate, almost hypnotic slowness
<br /><br />
As if sensing your presence, she turned to look at you over her shoulder, a playful smile playing on her lips.
<br /><br />
<<laura>>
<<=$player.name>>, how long you were standing there?
<</laura>>
<br />
<<laura>>
Care to join me?
<</laura>>
<br />
You kicked off your shoes, shed your clothes quickly, your cock already hard and ready. You approached her, the water spraying against your skin, the heat enveloping you, the steam filling your lungs.
<br /><br />
<<video 'laura/shower2'>>
<br /><br />
You reached out, your hands roaming her body, your fingers tracing the contours of her curves, your touch gentle, reverent.
<br /><br />
<<laura>>
I want to feel your hands on me.
<</laura>>
<br />
Your fingers slipping between her legs, finding her wet, swollen pussy. She let out a low moan, her hips bucking against your hand, urging you to go deeper.
You obliged, your fingers sliding inside her, curling up to hit that sweet spot, your thumb circling her clit, rubbing it in quick, firm circles.
<br /><br />
You pulled your hand away, your fingers glistening with her juices, and she dropped to her knees, the water running over her breasts, her nipples hardening under the stream.
<br /><br />
With that, she leaned in, taking you into her mouth, her lips soft and wet, her tongue swirling around the sensitive head, sending shocks of pleasure straight to your core.
<br /><br />
<<video 'laura/shower3'>>
<br /><br />
<<laura>>
I want you to fuck me..
<</laura>>
<br />
With that, she leaned in again, taking you back into her mouth, her head bobbing up and down with renewed fervor.
She sucked you with unbridled enthusiasm, her hand working your shaft in perfect sync with her mouth. The sensation was overwhelming, her mouth hot and tight, her tongue working magic on your sensitive flesh.
<br /><br />
<<video 'laura/shower4'>>
<br /><br />
She smiled, a look of anticipation on her face as she turned around, presenting her ass to you, her hands pressing against the shower wall for support.
<br /><br />
<<video 'laura/shower5'>>
<br /><br />
<<laura>>
Take me!
<</laura>>
<br />
You reached down, your hands gripping her hips, your fingers digging into her soft flesh as you positioned yourself at her entrance, your cock hard and ready.
With one swift thrust, you entered her, your hips slamming against hers as you sheathed yourself fully inside her tight, wet pussy.
<br /><br />
<<video 'laura/shower6'>>
<br /><br />
She let out a loud moan, her back arching as she pushed back against you, urging you to go deeper.
<br /><br />
She pushed back against you, meeting your thrusts with equal fervor, her body shaking with the intensity of your connection.
You reached around, your fingers finding her clit, rubbing it in quick, firm circles, pushing her towards her own climax.
<br /><br />
<<video 'laura/shower7'>>
<br /><br />
The shower stall shook with the intensity of your movements, the water spraying against your skin, the steam filling your lungs.
Her moans turned to screams of pleasure, her body shaking with the intensity of your connection.
<br /><br />
<<laura>>
Fill me up!
<</laura>>
<br />
<div id="option_cum_pussy">
<<linkreplace 'Cum in her pussy'>>
<<run $('#option_anal').hide()>>
<<if setup.pregnancyChance($characters.laura)>>
<<set $characters.laura.pregnancy_father = 'mc'>>
<<set $characters.laura.pregnancy = 0>>
<<if $characters.laura.virgin>><<run setup.npc.addHistory($characters.laura, 'virgin_lost', { with: 'mc' })>><</if>>
<<set $characters.laura.virgin = false>>
<</if>>
<<horny_reset>>
<center>
<<image 'game/misc/creampie_prone.webp'>>
</center>
<br /><br />
With a final, deep thrust, you sent her over the cliff.
Her body convulsed as she came undone, her pussy clenching around your cock, milking you for all you were worth.
You let out a loud groan, your body shaking as you found your release, your hot cum shooting into her, filling her completely, coating her walls, claiming her as yours.
<br /><br />
<<set $characters.laura.horny = 0>>
<<set $characters.laura.orgasms ??= 0>>
<<set $characters.laura.orgasms++>>
<<laura>>
Uh, wow. I think I will need to wash myself again.
<</laura>>
<<addmins 30>>
<br />
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_anal">
<<if recall($suppCode)>>
<<linkreplace 'Slide dick in her ass'>>
<<run $('#option_cum_pussy').hide()>>
You pulled out and positioned yourself at her ass, your cock pressing against her tight, asshole.
You pushed forward slowly, inch by inch, giving her time to adjust to the intrusion, the sensation of being filled, stretched, claimed.
<br /><br />
<<laura>>
Oh my, are you sure?
<</laura>>
<br />
<<video 'laura/shower_anal1'>>
<br /><br />
She let out a gasp, her body tensing as you entered her, her ass clenching around your shaft, milking you with each movement.
You began to move, your hips thrusting in a slow, deliberate rhythm, giving her time to adjust, to acclimate to the sensation of being filled, of being taken, of being claimed.
<br /><br />
<<video 'laura/shower_anal2'>>
<br /><br />
She took a deep breath, her body tensing slightly as you pushed forward, inch by inch, giving her time to adjust to the intrusion, the sensation of being filled, stretched, claimed
<br /><br />
<<video 'laura/shower_anal3'>>
<br /><br />
As she grew more comfortable, you began to pick up the pace, your movements becoming more confident, more assured.
You could feel her body responding, her ass clenching around your shaft, milking you with each movement, urging you to go deeper, to take her harder.
<br /><br />
<<laura>>
Oh this feels good.
<</laura>>
<br />
<<linkreplace 'Cum in her ass'>>
<<horny_reset>>
<<video 'laura/shower_anal4'>>
<br /><br />
With a final, deep thrust, you sent her over the cliff. Her body convulsed as she came undone, her ass clenching around your cock, milking you for all you were worth.
You let out a loud groan, your body shaking as you found your release, your hot cum shooting into her, filling her ass completely.
<br /><br />
<<set $characters.laura.horny = 0>>
<<set $characters.laura.orgasms ??= 0>>
<<set $characters.laura.orgasms++>>
<<laura>>
Uh, wow. I think I will need to wash myself again.
<</laura>>
<<addmins 30>>
<br />
<<link 'Leave'>>
<<goto 'Bathhouse'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
Slide dick in her ass
<<notPatreonIcon>>
</div>
<</if>>
</div><h1 class="ptitle"><<cabinName>></h1>
<<set $characters.laura.quests.living = true>>
<br /><br />
The early morning sun painted the horizon with a delicate wash of pink and gold. As you approached the gates, you saw Laura standing there, a determined glint in her eyes.
She held two large bags slung over her shoulders and a jar filled with a mysterious liquid cradled in her arms.
<br /><br />
<center>
<<image 'people/laura/new_home.jpg' 'sfw'>>
</center>
<br /><br />
She returned the smile, though there was a spark of excitement in her eyes.
<br /><br />
<<laura>>
I couldn't wait any longer. I managed to grab all my stuff in one go. I've heard you got something to show me.
<</laura>>
<br /><br />
<<linkreplace 'Go to her lab'>>
You unlocked the gate, allowing her to enter.
Together, you walked through the village, heading towards the newly constructed lab. The air was filled with a sense of anticipation, a feeling that something important was about to unfold.
<br /><br />
<<laura>>
I hope you didn't exaggerate. I really don't need anything big
<</laura>>
<br /><br />
As you stepped into the lab, Laura's eyes widened in awe. It was more than just a workspace; it was a sanctuary, a place where her dreams and aspirations could take shape.
<br /><br />
<center>
<<image 'people/laura/new_home2.jpg' 'sfw'>>
</center>
<br /><br />
<<laura>>
Oh, it's perfect! Thank you!
<</laura>>
<br /><br />
<<you>>
We've added a bed, too, for those nights when you need to rest but don't want to leave your work.
<</you>>
<br /><br />
Laura's gaze moved to the bed, a mixture of gratitude and surprise crossing her face.
<br /><br />
<<laura>>
Thank you. That's incredibly thoughtful
<</laura>>
<br /><br />
She carefully set the bags down on a nearby table, revealing an assortment of tools and equipment, meticulously organized. The jar she placed with utmost care, a label with her precise handwriting indicating its contents.
<br /><br />
<<laura>>
I've brought some of my most valuable samples," she explained, her eyes sparkling with enthusiasm. "These are the foundation of my research. With this lab, I can finally continue where I left off.
<</laura>>
<br /><br />
As the morning sun bathed the lab in a warm, golden glow, you knew that this moment marked the beginning of something extraordinary. Together, you and Laura stood at the threshold of new discoveries, ready to face the challenges of the post-apocalyptic world with determination and hope.
<br /><br />
<<linkreplace 'Leave'>>
<<laura>>
Not so fast! I really appreciate what you're doing.
<</laura>>
<br /><br />
She pulls rubber gloves out of her bag, places her hand on your chest, and gently guides you onto the bed, continuing what she had started with a soft chuckle.
<br /><br />
<<laura>>
But I won't let you leave this room without new samples for me to continue my work. It's very important. Just relax and I'll take care of everything.
<</laura>>
<br /><br />
<<linkreplace 'Lay down and relax'>>
<<video 'laura/new_home1'>>
<br /><br />
She slowly takes off her coat, underneath which a blue silk robe is hidden.
It looks like she's put it on for the first time, as it looks new. Perhaps for special occasions.
<br />
She grabs your dick and slowly starts to jerk you off.
<br /><br />
<<laura>>
I know what will help me get the samples faster.
<</laura>>
<br /><br />
<<video 'laura/new_home2'>>
<br /><br />
She releases your dick for a second and opens her robe. She nudges it aside so that her breasts are in your line of sight. Then she grabs your dick again and continues to sensually jerk it.
<br /><br />
<<laura>>
Are you close? I can't wait to start creating my first growth potion in my new laboratory.
<</laura>>
<br /><br />
<div id="option_not">
<<linkreplace 'Not really'>>
She sighs and gets onto you.
<br /><br />
<<video 'laura/new_home3'>>
<br /><br />
Without letting go of your dick, she swings her leg over you, giving you a view - she has nothing on underneath either, and her shaved pussy is just a couple of inches from your dick.
<br /><br />
<<laura>>
And now? Ah, screw it...
<</laura>>
<br /><br />
Without taking hand off your dick she gets off you...
<br /><br />
<<video 'laura/new_home4'>>
<br /><br />
<<run $('#option_yes').hide()>>
<<run $('#ending').show()>>
<</linkreplace>>
</div>
<div id="option_yes">
<<linkreplace 'Yes. I am cumming'>>
<<run $('#option_not').hide()>>
<<run $('#ending').show()>>
<</linkreplace>>
</div>
<div id="ending" style="display:none;">
<<linkreplace 'Cum'>>
<<addmins 30>>
<<horny_reset>>
<center>
<<image 'people/laura/sample_cum.webp'>>
</center>
<br /><br />
Before you cum she puts another sample cup in front of your dick and collects all cum you shoot out.
<br /><br />
<<laura>>
I'll need at least three samples from you and 5 days to make one potion so be sure to check me if I need to restock.
<</laura>>
<br /><br />
<<link 'Leave'>>
<<set $characters.laura.quests.productionSamples = 1>>
<<set $characters.laura.quests.productionDaysPerPotion = 5>>
<<set $characters.laura.quests.productionLastDay = $game.day>>
<<set $characters.laura.quests.sampleToday = true>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><h1 class="ptitle"><<cabinName>></h1>
<br /><br />
The morning sun cast feeble rays across the village, painting a bleak landscape with its pale light. As you stepped outside, the sight that greeted you sent a shiver down your spine.
There stood Laura, her once vibrant spirit now eclipsed by shadows of pain and weariness. Bruises painted her skin, and her coat, once a symbol of her resilience, hung tattered and torn.
<br /><br />
<center>
[img[setup.ImagePath+'people/laura/shattered_lab.jpg']]
</center>
<br /><br />
<<laura>>
Raiders... They came for the lab. There's nothing left. My other research.. My lab... It's all gone..
<</laura>>
<br /><br />
Your heart sank. The lab, the culmination of years of research, now reduced to ashes and rubble. It was a devastating blow, not just for Laura, but for the hope it held for your village's future.
<br /><br />
<div id="option_comfort">
<<linkreplace 'Comfort her'>>
<<set _comfort = true>>
<<you>>
I'm so sorry, Laura
<</you>>
<br /><br />
<center>
[img[setup.ImagePath+'places/cabin/hug.webp']]
</center>
<br /><br />
As you extended your arms in an attempt to comfort Laura, she didn't hesitate. With a sudden, desperate motion, she leapt into your embrace, her body trembling with a mixture of exhaustion, relief, and lingering fear. Her arms wrapped tightly around you, seeking solace in the warmth of your presence.
<br /><br />
<<set $characters.laura.relationship += 5>>
<strong>Relationship increased by 5</strong>
<br /><br />
<</linkreplace>>
</div>
<<linkreplace 'Ask her how you can help'>>
<<if !_comfort>>
<<run $('#option_comfort').hide()>>
<</if>>
<<laura>>
I need to go back, salvage what I can. But... I can do it alone but I need a new space, a place to continue my work.
<</laura>>
<br />
<<laura>>
I need a place to work, a space where I can focus without interruption. I was wondering if it would be possible to build a lab, an extension to your guest house, perhaps. It would mean the world to me.
<</laura>>
<br /><br />
<<linkreplace 'Tell her you will do it'>>
<<notify 6s>>
Lab available in workbench!
<</notify>>
<<set $characters.laura.quests.lab_workbench = true>>
<center>
[img[setup.ImagePath+'places/cabin/hug.webp']]
</center>
<br /><br />
As you agreed to build the lab for Laura, a surge of gratitude and relief washed over her. Without a word, she stepped forward and wrapped her arms around you in a tight embrace. Her body pressed against yours, the warmth of her presence a tangible reassurance.
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
<</linkreplace>><<set _atscEligible = []>>
<<for _atscI, _atscNpc range $slaves>>
<<if setup.getAge(_atscNpc) >= 18 && typeof _atscNpc.sick === 'undefined' && _atscNpc.id !== $tmpGirl.id && !($tmpGirl.gender === 1 && _atscNpc.gender === 1)>>
<<run _atscEligible.push({id: _atscI, npc: _atscNpc})>>
<</if>>
<</for>>
<<if _atscEligible.length === 0>>
No eligible slaves available.
<<else>>
<<for _atscEntry range _atscEligible>>
<<set _atscId2 = _atscEntry.id>>
<<set _atscNpc2 = _atscEntry.npc>>
<<set _atscGenderClass = 'gender-' + setup.genderClass(_atscNpc2)>>
<<capture _atscId2, _atscNpc2, _atscGenderClass>>
<div>
<span @class="_atscGenderClass">
<<link _atscNpc2.name>>
<<dialogclose>>
<<if $tmpGirl.gender === 1>>
/* Male attendant: make the female slave the focus NPC */
<<set _atscAttNpc = $tmpGirl>>
<<set _atscAttGuestId = $guestId>>
<<set _atscAttSlaveId = $slaveId>>
<<set $tmpGirl = _atscNpc2>>
<<set $slaveId = _atscId2>>
<<unset $guestId, $charId>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<set $tmpGirl2 = _atscAttNpc>>
<<if typeof _atscAttGuestId !== 'undefined'>>
<<set $guestId2 = _atscAttGuestId>>
<<unset $slaveId2, $charId2>>
<<else>>
<<set $slaveId2 = _atscAttSlaveId>>
<<unset $guestId2, $charId2>>
<</if>>
<<else>>
<<if typeof $slaveId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<</if>>
<<set $tmpGirl2 = _atscNpc2>>
<<set $slaveId2 = _atscId2>>
<<unset $guestId2, $charId2>>
<</if>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
</span>
</div>
<</capture>>
<</for>>
<</if>>
<br /><br />
<<link 'Back'>>
<<dialogclose>>
<</link>><<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _afcMistressIds = setup.getPersonsForLocation($guests, 'mistress')>>
/* Collect fellow attendants; exclude males when the current attendant is male (no MMM support) */
<<set _afcOtherAtts = []>>
<<for _afcI range setup.getPersonsForLocation($guests, 'attendant')>>
<<if $guests[_afcI].id !== $tmpGirl.id && !($tmpGirl.gender === 1 && $guests[_afcI].gender === 1)>>
<<run _afcOtherAtts.push({type: 'guest', id: _afcI})>>
<</if>>
<</for>>
<<for _afcI range setup.getPersonsForLocation($slaves, 'attendant')>>
<<if $slaves[_afcI].id !== $tmpGirl.id && !($tmpGirl.gender === 1 && $slaves[_afcI].gender === 1)>>
<<run _afcOtherAtts.push({type: 'slave', id: _afcI})>>
<</if>>
<</for>>
<<set _linkAlone = 'Fuck ' + _himOrHer>>
<<link `_linkAlone`>>
<<fuck $tmpGirl>>
<</link>>
<<if _afcMistressIds.length > 0 && setup.isAtWork($guests[_afcMistressIds[0]], $weather)>>
<<set _afcMIdx = _afcMistressIds[0]>>
<<capture _afcMIdx>>
<<set _afcMLink = 'Threesome with Mistress (' + setup.displayName($guests[_afcMIdx]) + ')'>>
<<link `_afcMLink`>>
<<if $tmpGirl.gender === 1>>
/* Male attendant: make the mistress the focus NPC */
<<set _afcAttNpc = $tmpGirl>>
<<set _afcAttGuestId = $guestId>>
<<set _afcAttSlaveId = $slaveId>>
<<set $tmpGirl = $guests[_afcMIdx]>>
<<set $guestId = _afcMIdx>>
<<unset $slaveId, $charId>>
<<set $tmpGirl2 = _afcAttNpc>>
<<if typeof _afcAttGuestId !== 'undefined'>>
<<set $guestId2 = _afcAttGuestId>>
<<unset $slaveId2, $charId2>>
<<else>>
<<set $slaveId2 = _afcAttSlaveId>>
<<unset $guestId2, $charId2>>
<</if>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<else>>
<<if typeof $slaveId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<</if>>
<<set $tmpGirl2 = $guests[_afcMIdx]>>
<<set $guestId2 = _afcMIdx>>
<<unset $slaveId2, $charId2>>
<</if>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</capture>>
<</if>>
<<if _afcOtherAtts.length > 0>>
<<set _afcOthEntry = _afcOtherAtts[0]>>
<<set _afcOthNpc = _afcOthEntry.type === 'guest' ? $guests[_afcOthEntry.id] : $slaves[_afcOthEntry.id]>>
<<capture _afcOthEntry, _afcOthNpc>>
<<set _afcOthLink = 'Threesome with fellow attendant (' + setup.displayName(_afcOthNpc) + ')'>>
<<link `_afcOthLink`>>
<<if $tmpGirl.gender === 1>>
/* Male attendant: make the female fellow attendant the focus NPC */
<<set _afcAttNpc = $tmpGirl>>
<<set _afcAttGuestId = $guestId>>
<<set _afcAttSlaveId = $slaveId>>
<<set $tmpGirl = _afcOthNpc>>
<<if _afcOthEntry.type === 'guest'>>
<<set $guestId = _afcOthEntry.id>>
<<unset $slaveId, $charId>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<else>>
<<set $slaveId = _afcOthEntry.id>>
<<unset $guestId, $charId>>
<<set $tmpGirlViewBack = 'NPC view'>>
<</if>>
<<set $tmpGirl2 = _afcAttNpc>>
<<if typeof _afcAttGuestId !== 'undefined'>>
<<set $guestId2 = _afcAttGuestId>>
<<unset $slaveId2, $charId2>>
<<else>>
<<set $slaveId2 = _afcAttSlaveId>>
<<unset $guestId2, $charId2>>
<</if>>
<<else>>
<<if typeof $slaveId !== 'undefined'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<</if>>
<<set $tmpGirl2 = _afcOthNpc>>
<<if _afcOthEntry.type === 'guest'>>
<<set $guestId2 = _afcOthEntry.id>>
<<unset $slaveId2, $charId2>>
<<else>>
<<set $slaveId2 = _afcOthEntry.id>>
<<unset $guestId2, $charId2>>
<</if>>
<</if>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</capture>>
<</if>>
<<link 'Threesome with slave'>>
<<script>>
Dialog.setup("Choose a slave", "attendant-threesome-slave-choose");
Dialog.wiki(Story.get("Attendant - threesome slave choose").processText());
Dialog.open();
<</script>>
<</link>>
<<link 'Back'>>
<<goto $tmpGirlViewBack>>
<</link>><<if $backpack.has('growth_potion')>>
<<link 'Give growth potion'>>
<<dialog 'Give growth potion'>>
How much years <<=setup.displayName($tmpGirl)>> should grow?
<br />
<<textbox '$yearsGrow' 1>>
<<link 'Give' 'Give growth potion'>>
<<dialogclose>>
<</link>>
<</dialog>>
<</link>>
<</if>>
<<link 'Customize'>>
<<goto 'NPC customize'>>
<</link>>
<<link 'Leave'>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<<elseif typeof $childId !== 'undefined'>>
<<set $nursery[$childId] = $tmpGirl>>
<</if>>
<<unset $slaveId, $charId, $guestId, $childId>>
<<if $tmpGirlBack>>
<<goto $tmpGirlBack>>
<<else>>
<<goto 'Nursery'>>
<</if>>
<</link>><<addmins 15>>
<<drop $backpack 'pregnancy_potion' 1>>
<center>
<<image 'places/basement/drink_pregnancy_potion.webp' 'sfw'>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> drinks the pregnancy termination potion and lays down to wait and see what will happen...
<br /><br />
<<set $pregnancyDied = (randomInteger(0, 5) === 0) && !$charId>>
<<if $pregnancyDied>>
<center>
<<image 'places/basement/pregnancy_potion_died.webp' 'sfw'>>
</center>
<br /><br />
She instantly feels a sharp pain in her stomach as she yells out that it hurts..
<br />
Pain continues for some time and then she suddenly dies.
<br /><br />
<strong><<=$tmpGirl.name>> died</strong>
<<assignedTo $tmpGirl 'none'>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves.splice($slaveId, 1)>>
<<elseif typeof $guestId !== 'undefined'>>
<<guestRemove $guestId>>
<</if>>
<<else>>
She feels pain in her stomach but after a few minutes it goes away and she feels fine.
<br /><br />
<strong>Pregnancy terminated</strong>
<<run delete $tmpGirl.pregnancy>>
<<if setup.percentageChance(20) && !($tmpGirl.traits ?? []).includes('infertile') && !($tmpGirl.traitsLocked ?? []).includes('infertile')>>
<<if ($tmpGirl.traits ?? []).includes('breeder')>>
<<run $tmpGirl.traits.splice($tmpGirl.traits.indexOf('breeder'), 1)>>
<</if>>
<<run $tmpGirl.traits.push('infertile')>>
<strong><<=setup.displayName($tmpGirl)>> received infertile trait!</strong>
<br /><br />
<</if>>
<</if>>
<br /><br />
<<link 'Continue'>>
<<if $pregnancyDied>>
<<if $tmpGirlBack>>
<<goto $tmpGirlBack>>
<<else>>
<<goto 'Outside'>>
<</if>>
<<else>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto [[NPC view]]>>
<</if>>
<</if>>
<</link>><<addmins 15>>
<<drop $backpack 'pregnancy_speed_potion' 1>>
<<set $tmpGirl.pregnancy += 30>>
<center>
[img[setup.ImagePath+'places/basement/drink_pregnancy_potion.webp']]
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> drinks pregnancy speed potion.
<br /><br />
<strong>Pregnancy period decreased by 30 days</strong>
<br /><br />
<<link 'Continue'>>
<<if $pregnancyPotionBackLink>>
<<goto $pregnancyPotionBackLink>>
<<unset $pregnancyPotionBackLink>>
<<elseif $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto [[NPC view]]>>
<</if>>
<</link>>/* An 'invite her'-button
Random event - meet girl #3 → NPC view
$wasRaped
Explore event: Abandoned mall
_gaveFood
*/
/*
things to consider
- current events
- personal status: relationship, happpiness, sub ....
- have she heard (rumours) of the hero? Good or bad?
- do she know any of the companions?
*/
<<if ($game.location.guesthouse ?? false) && ($tmpGirlInvite ?? false) && $guests.length < $guesthouseLimit>>
<<set _linkName = 'Invite ' + setup.pronounceWho($tmpGirl) + ' as guest'>>
<<linkreplace _linkName>>
<<set $tmpGirlInvite = false>>
<<set _strongNpc = $player.strength <= $tmpGirl.strength>>
<<set _relation = $tmpGirl.relationship ?? 0>>
<<set _countComp = $player.companions.length ?? 0>>
<<set _reputation = $player.reputation ?? 0>>
<<set _yes = setup.percentageChance(_relation) || setup.percentageChance(_countComp*(_countComp+1)/2) || setup.percentageChance(_reputation/4)>>
<<set _no = !_yes || ($wasRaped ?? false) || (_relation <= 0)>>
<<unset $wasRaped>>
<<if _no>>
<<if _strongNpc>>
<<set $escapeReason = setup.pronounceWhat($tmpGirl, true) + ' considers your invite for a few moments, says no and leaves.'>>
<<goto 'NPC found escape'>>
<<else>>
<<sayNpc $tmpGirl>>
No, I don't want to come to live with you. Please let me go!
<</sayNpc>>
<</if>>
<<else>>
<<set $tmpGirl.capture = false>>
<<run setup.npc.addHistory($tmpGirl, 'invited')>>
<<set $guests.push($tmpGirl)>>
<<addhours 1>>
<<goto 'Guest house'>>
<</if>>
<</linkreplace>>
<</if>><<energy -10>>
<<addmins 15>>
<<set $tmpGirl.milked = true>>
<<achievement 'milk_slave'>>
<center>
<<actionImage $tmpGirl 'milking'>>
</center>
<br /><br />
<<if $tmpGirl.location == 'basement'>>
<<=setup.displayName($tmpGirl)>> moans as you milk her.
<<else>>
You attach breast pump to <<=setup.displayName($tmpGirl)>>'s nipples and start to milk her.
<</if>>
<<set $tmpGirl.quests ??= {}>>
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<br /><br />
<<if $tmpGirl.relationship < 100>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<strong><<=$tmpGirl.name>> relationship increased by 3</strong>
<br /><br />
<</if>>
<<if $tmpGirl.traits.includes('sensitive_tits')>>
<<set _milkbottlechance = 50>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 3, 100)>>
<<if $tmpGirl.horny < 80>>
<<set $tmpGirl.horny = Math.min($tmpGirl.horny + 10, 80) >>
<strong><<=$tmpGirl.name>> likes how the pump feels on her nipples and gets turned on by it.</strong>
<br /><br />
<<else>>
<strong><<=$tmpGirl.name>> likes how the pump feels on her nipples.</strong>
<br /><br />
<</if>>
<<else>>
<<set _milkbottlechance = 25>>
<<if $tmpGirl.horny < 70>>
<<set $tmpGirl.horny = Math.min($tmpGirl.horny + 3, 70) >>
<strong><<=$tmpGirl.name>> can't help getting a little turned on feeling the pump on her nipples.</strong>
<br /><br />
<</if>>
<</if>>
<<if setup.percentageChance(_milkbottlechance)>>
<<pickup $backpack 'milk' 1>>
<strong>You managed to get one bottle of milk.</strong>
<br /><br />
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 5, 100)>>
<strong><<=$tmpGirl.name>> relaxes as she feels the pressure release in her breasts and feels a little happier.</strong>
<br /><br />
<</if>>
<<link 'Back'>>
<<goto $tmpGirlViewBack>>
<</link>><<set _ageStart = setup.getAge($tmpGirl)>>
<<if _ageStart < 4>>
<<set _startImg = 'baby'>>
<<elseif _ageStart < 18>>
<<set _startImg = 'kid'>>
<<else>>
<<set _startImg = ($tmpGirl.gender === 1 ? 'guy' : 'girl')>>
<</if>>
<center>
[img[setup.ImagePath+'places/cabin/growth_potion_' + _startImg + '.jpg']]
</center>
<br /><br />
The moment the liquid touched <<=setup.displayName($tmpGirl)>>'s lips, a shiver ran through <<=setup.pronounceWho($tmpGirl)>>. <<=setup.pronounceWhos($tmpGirl).toUpperCase()>> eyes widened,
and <<=setup.pronounceWhat($tmpGirl)>> looked up at you in astonishment. For a heartbeat, the room held its breath.
<br /><br />
Then, it began.
<br /><br />
<<=setup.displayName($tmpGirl)>>'s body seemed to pulse with newfound energy. <<=setup.pronounceWhos($tmpGirl).toUpperCase()>> limbs stretched, <<=setup.pronounceWhos($tmpGirl)>>
clothing strained against the sudden growth. You watched in awe as <<=setup.pronounceWhat($tmpGirl)>> transformed before your eyes. In a matter of moments, the room seemed to shrink around the figure now standing taller and stronger.
<br /><br />
<<set _randomGrowthYears = $yearsGrow ?? 8>>
<<run
const origDay = $tmpGirl.birthDate.getDate();
const origMonth = $tmpGirl.birthDate.getMonth();
$tmpGirl.birthDate.setFullYear(
$tmpGirl.birthDate.getFullYear() - _randomGrowthYears
);
if ($tmpGirl.birthDate.getMonth() !== origMonth) {
$tmpGirl.birthDate.setDate(0);
}
>>
<<set _ageEnd = setup.getAge($tmpGirl)>>
<<if _ageEnd < 18>>
<<set _endImg = 'kid'>>
<<else>>
<<set _endImg = ($tmpGirl.gender === 1 ? 'guy' : 'girl')>>
<</if>>
<center>
[img[setup.ImagePath+'places/cabin/growth_potion_' + _endImg + '.jpg']]
</center>
<br /><br />
<strong><<=setup.displayName($tmpGirl)>> grew <<=_randomGrowthYears>> year<<=_randomGrowthYears > 1 ? 's' : ''>>.</strong>
<br /><br />
<<if _ageStart < 18 && _ageEnd >= 18>>
<<set _isAdult = true>>
<<set $tmpGirl.grownByPotion = true>>
<strong><<=setup.displayName($tmpGirl)>> is now adult and moved into the guest house.</strong>
<br /><br />
<</if>>
<<link 'Leave'>>
<<unset $yearsGrow>>
<<if _isAdult>>
<<if typeof $childId !== 'undefined'>>
<<run setup.npc.addHistory($tmpGirl, 'grown_up')>>
<<run $guests.push($tmpGirl)>>
<<run $nursery.splice($childId, 1)>>
<<goto 'Nursery'>>
<<elseif typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<goto 'Basement'>>
<<else>>
<<set $guests[$guestId] = $tmpGirl>>
<<goto 'Guest house'>>
<</if>>
<<else>>
<<goto 'Child view'>>
<</if>>
<</link>>
<<drop $backpack 'growth_potion' 1>>
<<addmins 30>><h1 class="ptitle">GUEST HOUSE</h1>
<<set $tmpGirl.location = 'basement'>>
<center>
<<actionImage $tmpGirl 'move'>>
</center>
<br />
You tell <<=setup.displayName($tmpGirl)>> that you will move <<=setup.pronounceWho($tmpGirl)>> to a basement cell, <br />
<<=setup.pronounceWhat($tmpGirl)>> starts to resist and scream and tries to escape your grab and fails as you go there.
<br /><br />
<center>
<<actionImage $tmpGirl 'move2'>>
</center>
<br />
As you leave the cell, you can hear <<=setup.displayName($tmpGirl)>> crying out of resignation.
<br /><br />
<<set $tmpGirl.relationship -= 30>>
<<set $tmpGirl.happy -= 50>>
<strong><<=$tmpGirl.name>> relationship decreased by 30</strong>
<br /><br />
<<link 'Continue'>>
<<moveGuestToSlave $tmpGirl $guestId>>
<<unset $guestId>>
<<goto 'Basement'>>
<</link>><h1 class="ptitle">SETTLEMENT</h1>
<br /><br />
<center>
<<image 'places/cabin/new_settlers2.jpg'>>
</center>
<br />
You told <strong><<=setup.displayName($tmpGirl)>></strong> that it was time for <<=setup.pronounceWho($tmpGirl)>> to have a place of <<=setup.pronounceWhos($tmpGirl)>> own. The guest house had been a good start, but the settlement needed people who would stay, work and build a life inside its walls.
<br /><br />
<<sayNpc $tmpGirl>>
A house of my own? Really?
<</sayNpc>>
<br />
You walked <<=setup.pronounceWho($tmpGirl)>> down the worn path through the heart of the settlement to one of the empty houses. The roof was patched in places, but it held, and the door swung open with a soft creak.
<br /><br />
<<=ucfirst(setup.pronounceWhat($tmpGirl))>> stepped inside, looked around the bare room and smiled. It wasn't much, but it was <<=setup.pronounceWhos($tmpGirl)>>.
<br /><br />
<strong><<=setup.displayName($tmpGirl)>> moved to the settlement.</strong>
<br /><br />
<<link 'Continue'>>
<<set $player.baseManagement.settlers = ($player.baseManagement.settlers ?? 0) + 1>>
<<if !$tmpGirl.gender>>
<<set $player.baseManagement.settlersFemales ??= 0>>
<<set $player.baseManagement.settlersFemales += 1>>
<</if>>
<<guestLeft $guestId>>
<<unset $guestId>>
<<goto 'Guest house'>>
<</link>>Where do you want to assign <<=setup.pronounceWho($tmpGirl)>>?
<br /><br />
<<set _isFeral = ($tmpGirl.traits ?? []).includes('feral')>>
<<if ($game.location.church ?? false) && [0,2].includes($tmpGirl.gender) && setup.assignedToCount('church') < 6>>
<div>
<<link 'Assign as nun'>>
<<assignedTo $tmpGirl 'church'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Works in church, improves happiness of all guests)
</div>
<</if>>
<<if ($game.location.greenhouse ?? false) && $tmpGirl.relationship >= 30 && setup.assignedToCount('garden') < $workersLimitGarden>>
<div>
<<link 'Assign to garden'>>
<<assignedTo $tmpGirl 'garden'>>
<<set $tmpGirl.gardenDay = 0>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Provides you with food)
</div>
<</if>>
<<if !_isFeral && !setup.assignedToCount('kitchen') && !$tmpGirl.assignedTo>>
<div>
<<link 'Assign to kitchen'>>
<<assignedTo $tmpGirl 'kitchen'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>>
</div>
<</if>>
<<if !_isFeral && ($tmpGirl.skills ?? []).includes('teacher') && !setup.getPersonsForLocation($guests, 'school').length && $game.location.school>>
<div>
<<link 'Assign to school'>>
<<assignedTo $tmpGirl 'school'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Teachers kids skills in school)
</div>
<</if>>
<<if [0,2].includes($tmpGirl.gender) && !setup.assignedToCount('maid')>>
<div>
<<link 'Assign as maid'>>
<<assignedTo $tmpGirl 'maid'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Gives additional energy while taking a nap)
</div>
<</if>>
<<if !_isFeral && setup.getPersonsForLocation($guests, 'hospital').length < ($workersLimitHospital ?? 3) && !$tmpGirl.assignedTo && $game?.location?.hospital && ($tmpGirl.skills ?? []).includes('doctor')>>
<div>
<<link 'Assign to hospital'>>
<<assignedTo $tmpGirl 'hospital'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Decreases people sickness days and automatically heals MC if bleeding)
</div>
<</if>>
<<if !_isFeral && !setup.getPersonsForLocation($guests, 'shop').length && ($game.location.shop ?? false) && ($tmpGirl.skills ?? []).includes('shopkeeper')>>
<div>
<<link 'Assign to shop'>>
<<assignedTo $tmpGirl 'shop'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Will work in shop and sell/buy items for you automatically)
</div>
<</if>>
<div>
<<if !setup.getPersonsForLocation($guests, 'milkwarden').length && ($game.location.milk_barn ?? false) && ($tmpGirl.skills ?? []).includes('cook')>>
<<link 'Assign as milk warden'>>
<<assignedTo $tmpGirl 'milkwarden'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Caretaker and overseer of milk-gathering in farm and making cheese)
<<else>>
Assign as milk warden [Need cook skill and built milk farm]
<</if>>
</div>
<<if !_isFeral && [0,1,2].includes($tmpGirl.gender) && !setup.getPersonsForLocation($guests, 'mistress').length && ($tmpGirl.traits ?? []).includes('sadistic')>>
<div>
<<link 'Assign as mistress'>>
<<assignedTo $tmpGirl 'mistress'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Keeps slaves in order. Increases submission for them)
</div>
<</if>>
<<set _attendantTotal = setup.getPersonsForLocation($guests, 'attendant').length + setup.getPersonsForLocation($slaves, 'attendant').length>>
<<set _autoAttendantOk = ($automatization.job ?? false) && setup.cabinInventory.has('towel', 1)>>
<<if !_isFeral && _attendantTotal < 2 && (setup.npcInventoryHas($tmpGirl, 'towel') || _autoAttendantOk)>>
<div>
<<link 'Assign as attendant'>>
<<if !setup.npcInventoryHas($tmpGirl, 'towel')>>
<<run setup.cabinInventory.to_npc($tmpGirl, 'towel', 1)>>
<</if>>
<<assignedTo $tmpGirl 'attendant'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Tends to slaves in the bathhouse. Improves their beauty and mood)
</div>
<<elseif !_isFeral && _attendantTotal < 2>>
Assign as attendant [Need towel] (Tends to slaves in the bathhouse)
<</if>>
<div>
<<link 'Assign to forest'>>
<<assignedTo $tmpGirl 'forest'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Provides you with wood)
</div>
<<set $automatization ??= {}>>
<<set _itemcount = setup.automatization.job_tools.mc.includes('bow') ? 2 : 1>> /* save one for the MC */
<<set _autoHunterOk = ($automatization.hunter ?? false) && setup.cabinInventory.has('bow', _itemcount)>>
<<set _hunterEligible = _isFeral || (($tmpGirl.skills ?? []).includes('woodcraft') && (setup.npcInventoryHas($tmpGirl, 'bow') || _autoHunterOk))>>
<<if _hunterEligible && setup.assignedToCount('hunter') < ($workersLimitHunter ?? 8)>>
<<link 'Assign as hunter'>>
<<if !_isFeral && !setup.npcInventoryHas($tmpGirl, 'bow')>>
<<run setup.cabinInventory.to_npc($tmpGirl, 'bow', 1)>>
<</if>>
<<assignedTo $tmpGirl 'hunter'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Provides you with food or wolf pelts)
<<elseif !_isFeral>>
Assign as hunter [Need woodcraft skill and bow] (Provides you with food or wolf pelts)
<</if>>
<div>
<<if ($game.location.quarry ?? false)>>
<<set $automatization ??= {}>>
<<set _item = 'pickaxe'>>
<<set _itemcount = setup.automatization.job_tools.mc.includes(_item) ? 2 : 1>> /* save one for the MC */
<<set _autoMiningOk = ($automatization.job ?? false) && setup.cabinInventory.has(_item, _itemcount)>>
<<if setup.npcInventoryHas($tmpGirl, _item) || _autoMiningOk>>
<<link 'Assign to quarry'>>
<<assignedTo $tmpGirl 'quarry'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Provides you with coal and stone)
<<else>>
Assign to quarry [Need pickaxe] (Provides you with coal and stone)
<</if>>
<</if>>
</div>
<<if ($game.location.garage ?? false) && setup.assignedToCount('garage') < 1>>
<div>
<<if ($tmpGirl.skills ?? []).includes('mechanic')>>
<<link 'Assign to garage'>>
<<assignedTo $tmpGirl 'garage'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Helps to maintain and fix car)
<<else>>
Assign to garage (Helps to maintain and fix car)
<</if>>
</div>
<</if>>
<div>
<<link 'Assign to scavenging'>>
<<assignedTo $tmpGirl 'scavenging'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Provides you with plastic, glass, rope, etc)
</div>
<<if !_isFeral>>
<div>
<<if $tmpGirl.relationship >= 50 && [0,2].includes($tmpGirl.gender)>>
<<link 'Assign to streets'>>
<<assignedTo $tmpGirl 'streets'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Earns you money as hooker)
<</if>>
</div>
<<if $game.location.strip_club && $tmpGirl.relationship >= 50 && [0,2].includes($tmpGirl.gender)>>
<div>
<<link 'Assign to strip club'>>
<<assignedTo $tmpGirl 'strip_club'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Earns you money as dancer)
</div>
<</if>>
<<if $player?.quests?.gloryholeJob && $tmpGirl.relationship >= 70 && [0,2].includes($tmpGirl.gender)>>
<div>
<<link 'Assign to nightclub'>>
<<assignedTo $tmpGirl 'nightclub'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Earns you money with gloryholes)
</div>
<</if>>
<</if>>
<<if $tmpGirl.strength >= 30>>
<div>
<<link 'Assign as guard'>>
<<assignedTo $tmpGirl 'guard'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Decreases the chance of someone breaking in and stealing, and sometimes might catch intruders)
</div>
<</if>><<widget happyIcon>>
<<set _happyClass = 'happy-icon ' + setup.getNpcHappyLevel($args[0])>>
<span @style="'background-image: url(\'' + setup.ImagePath+'game/misc/happy.png\')'" @class="'' + _happyClass + ''"></span>
<</widget>><<set _isMasochist = ($tmpGirl.traits ?? []).includes('masochist')>>
<<set _relStats = 1>>
<<set _subStats = 1>>
<<set _girlGuest = setup.getPersonsForLocation($guests, 'mistress')>>
<<set $tmpGirl.location = 'basement-mistress.' + setup.genderPath($guests[_girlGuest[0]])>>
<<set _punishView = 'mistress_punish'>>
<<if $punishType === 'paddle'>>
<<set
_relStats = 2,
_subStats = 2,
_punishView = _punishView + '_paddle'
>>
<</if>>
<<set _relChanged = true, _subChanged = true>>
<<if _isMasochist>>
<<set
_relStats = 0,
_relChanged = false
>>
<</if>>
<<actionImage $tmpGirl _punishView>>
<<set $tmpGirl.relationship -= _relStats>>
<<if $tmpGirl.relationship < -100>>
<<set $tmpGirl.relationship = -100>>
<<set _relChanged = false>>
<</if>>
<<set $tmpGirl.sub += _subStats>>
<<if $tmpGirl.sub > 100>>
<<set $tmpGirl.sub = 100>>
<<set _subChanged = false>>
<</if>>
<<addmins 60>>
<<energy -5>>
<br /><br />
<<if _isMasochist>>
<<=setup.pronounceWhat($tmpGirl, true)>> moans in enjoyment while looking over <<=setup.pronounceWhos($tmpGirl)>> shoulder straight in your eyes.
<<set $tmpGirl.horny = Math.min($tmpGirl.horny + 10, 100)>>
<<else>>
<<=setup.pronounceWhat($tmpGirl, true)>> yells in pain as the mistress punishes <<=setup.pronounceWho($tmpGirl)>> by whipping.
<</if>>
<br /><br />
<<if _relChanged>>
<strong><<print $tmpGirl.name>></strong> relationship decreased by <<=_relStats>><br />
<</if>>
<<if _subChanged>>
<strong><<print $tmpGirl.name>></strong> submission increased by <<=_subStats>><br />
<</if>>
<br /><br />
<<if $player.energy >= 5 && hasTime(1)>>
<<set _linkName = 'Mistress punishes ' + setup.pronounceWho($tmpGirl)>>
<<link `_linkName`>>
<<run delete $punishType>>
<<goto 'Mistress - Npc punish'>>
<</link>>
<<set _linkName = _linkName +' with paddle'>>
<<if $backpack.has('paddle')>>
<<link `_linkName`>>
<<set $punishType = 'paddle'>>
<<goto 'Mistress - Npc punish'>>
<</link>>
<</if>>
<</if>>
<<link 'Take over'>>
<<unset $punishType>>
<<set $tmpGirl.location = 'basement'>>
<<goto 'NPC punish'>>
<</link>>
<<link 'Back'>>
<<unset $punishType>>
<<set $tmpGirl.location = 'basement'>>
<<goto 'NPC view'>>
<</link>><<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _linkAlone = 'Fuck ' + _himOrHer>>
<<link `_linkAlone`>>
<<fuck $tmpGirl>>
<</link>>
<<set _mfcAttendants = []>>
<<for _mfcI range setup.getPersonsForLocation($guests, 'attendant')>>
<<if setup.isAtWork($guests[_mfcI], $weather)>>
<<run _mfcAttendants.push({type: 'guest', id: _mfcI})>>
<</if>>
<</for>>
<<for _mfcI range setup.getPersonsForLocation($slaves, 'attendant')>>
<<if setup.isAtWork($slaves[_mfcI], $weather)>>
<<run _mfcAttendants.push({type: 'slave', id: _mfcI})>>
<</if>>
<</for>>
<<for _mfcAttEntry range _mfcAttendants>>
<<set _mfcAttNpc = _mfcAttEntry.type === 'guest' ? $guests[_mfcAttEntry.id] : $slaves[_mfcAttEntry.id]>>
<<capture _mfcAttEntry, _mfcAttNpc>>
<<set _mfcAttLink = 'Threesome with Attendant (' + setup.displayName(_mfcAttNpc) + ')'>>
<<link `_mfcAttLink`>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $tmpGirl2 = _mfcAttNpc>>
<<if _mfcAttEntry.type === 'guest'>>
<<set $guestId2 = _mfcAttEntry.id>>
<<unset $slaveId2, $charId2>>
<<else>>
<<set $slaveId2 = _mfcAttEntry.id>>
<<unset $guestId2, $charId2>>
<</if>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
<</capture>>
<</for>>
<<link 'Threesome with slave'>>
<<script>>
Dialog.setup("Choose a slave", "attendant-threesome-slave-choose");
Dialog.wiki(Story.get("Attendant - threesome slave choose").processText());
Dialog.open();
<</script>>
<</link>>
<<link 'Back'>>
<<goto $tmpGirlViewBack>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'workout'>>
<<addmins 30>>
<<actionImage $tmpGirl workout>>
<br /><br />
You start with some light stretches to warm up your muscles and prevent injury. You chat and catch up as you do some arm circles, shoulder rolls, and leg stretches.
<br /><br />
<<if $player.strength < 100>>
<<set $player.strength++>>
<strong>Your strength increased by 1</strong>
<<else>>
<strong>You can't increase your strength with this action anymore.</strong>
<</if>>
<br /><br />
<<set $tmpGirl.strength = Math.min($tmpGirl.strength + 1, 100)>>
<strong><<=$tmpGirl.name>> strength increased by 1</strong>
<br /><br />
<<set _enduranceGain = setup.fight.gainEndurance($tmpGirl, 100)>>
<<if _enduranceGain>>
<strong><<=$tmpGirl.name>> endurance increased by 1</strong>
<br /><br />
<</if>>
<<set $tmpGirl.happy += Math.min(100, $tmpGirl.happy + randomInteger(1, 10))>>
<<set _pronSheHe = setup.pronounceWhat($tmpGirl)>>
<<set _pronSheHeCap = setup.pronounceWhat($tmpGirl, true)>>
<<set _pronHerHis = setup.pronounceWhos($tmpGirl)>>
<<set _pronHerHim = setup.pronounceWho($tmpGirl)>>
<<set _linkName = 'Pull down ' + _pronHerHis + ' shorts'>>
<<linkreplace _linkName>>
<<actionImage $tmpGirl 'pull_pants'>>
<br /><br />
<<if setup.percentageChance(setup.sexChance($tmpGirl))>>
<<=_pronSheHe>> giggles and smiles at you as you pull down <<=_pronHerHis>> shorts.
<br /><br />
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<<set $tmpGirl.strength = Math.min($tmpGirl.strength + 1, 100)>>
<strong><<=$tmpGirl.name>> relationship increased by 3</strong>
<br /><br />
<strong><<=$tmpGirl.name>> strength increased by 1</strong>
<br /><br />
<<link 'Fuck'>>
<<fuck $tmpGirl>>
<</link>>
<<else>>
<<if !$tmpGirl.likesGuys>>
<<=_pronSheHeCap>> looks at you with widened eyes and an angry face. Then <<=_pronSheHe>> reminds you that <<=_pronSheHe>>'s not interested in men.
<<else>>
<<=_pronSheHeCap>> flinches and asks you to stop.
<</if>>
<br /><br />
<<set _linkName = 'Force ' + _pronHerHim>>
<<link _linkName>>
<<fuck $tmpGirl>>
<<set $sexForced = true>>
<</link>>
<</if>>
<</linkreplace>>
<<link 'Finish'>>
<<set $tmpGirl.location = $oldTmpGirlLocation>>
<<unset $oldTmpGirlLocation>>
<<goto $tmpGirlViewBack>>
<</link>><<link 'Names customization'>>
<<dialog 'Names customization'>>
<<if !$charId>>
<strong>Change NPC name</strong><br />
What you will call your guest? <<textbox "_tmpGirlName" $tmpGirl.name>>
<br /><br />
<</if>>
<strong>Change name for MC</strong><br />
<<=$tmpGirl.name>> currently calls you '<<=setup.npc.mcName($tmpGirl)>>'. Enter new name for <<=setup.pronounceWho($tmpGirl)>> to call you:<br /><<textbox "_myMcName" `$tmpGirl.myMcName ?? ''`>>
<br /><br />
<strong>Change nickname for NPC</strong><br />
<<=$tmpGirl.name>> is currently called '<<= ($tmpGirl.nickName ?? '') !== '' ? $tmpGirl.nickName : $tmpGirl.name>>' in descriptions and and dialog. Enter new name for you and other NPCs to call <<=setup.pronounceWho($tmpGirl)>>:<br /><<textbox "_nickName" `$tmpGirl.nickName ?? ''`>>
<br />
<<link 'OK'>>
<<if typeof _tmpGirlName !== 'undefined' && _tmpGirlName !== ''>>
<<set $tmpGirl.name = _tmpGirlName>>
<</if>>
<<set $tmpGirl.myMcName = _myMcName>>
<<set $tmpGirl.nickName = _nickName>>
<<dialogclose>>
<<goto 'NPC customize'>>
<</link>>
<</dialog>>
<</link>>
<<if setup.getAge($tmpGirl) >= 18>>
<<if !$tmpGirl.piercedBoobs && $backpack.has('piercing')>>
<<link 'Pierce nipples'>>
<<goto 'NPC customize - pierce boob'>>
<</link>>
<<elseif $tmpGirl.piercedBoobs>>
<<link 'Remove nipple piercings'>>
<<goto 'NPC customize - pierce boob remove'>>
<</link>>
<</if>>
<<if !$tmpGirl.piercedClit && $backpack.has('piercing') && !$tmpGirl.gender>>
<<link 'Pierce clit'>>
<<goto 'NPC customize - pierce clit'>>
<</link>>
<<elseif $tmpGirl.piercedClit>>
<<link 'Remove clit piercing'>>
<<goto 'NPC customize - pierce clit remove'>>
<</link>>
<</if>>
<<if !$tmpGirl.blindFold && !$tmpGirl.gender>>
<<link 'Add blindfold'>>
<<goto 'NPC customize - blindfold add'>>
<</link>>
<</if>>
<<if $tmpGirl.blindFold>>
<<link 'Remove bindfold'>>
<<goto 'NPC customize - blindfold remove'>>
<</link>>
<</if>>
<<if !$tmpGirl.gagBall && $backpack.has('gagball')>>
<<link 'Add gag ball'>>
<<goto 'NPC customize - gag ball add'>>
<</link>>
<</if>>
<<if $tmpGirl.gagBall>>
<<link 'Remove gag ball'>>
<<goto 'NPC customize - gag ball remove'>>
<</link>>
<</if>>
<<if !$tmpGirl.buttplug && $backpack.has('buttplug')>>
<<link 'Insert buttplug'>>
<<goto 'NPC customize - buttplug insert'>>
<</link>>
<</if>>
<<if $tmpGirl.buttplug>>
<<link 'Remove buttplug'>>
<<goto 'NPC customize - buttplug remove'>>
<</link>>
<</if>>
<<if !$tmpGirl.chastityBelt && $backpack.has('chastity_belt')>>
<<link 'Put on chastity belt'>>
<<goto 'NPC customize - chastity belt'>>
<</link>>
<</if>>
<<if $tmpGirl.chastityBelt>>
<<link 'Remove chastity belt'>>
<<goto 'NPC customize - chastity belt remove'>>
<</link>>
<</if>>
<<if $backpack.has('cosmetics') && !$tmpGirl.cosmetics>>
<<link 'Apply cosmetics'>>
<<goto 'NPC customize - cosmetics'>>
<</link>>
<</if>>
<<if $backpack.has('hair_dye_kit') && $tmpGirl.hair !== 'bald'>>
<<link 'Use hair dye kit'>>
<<goto 'NPC customize - hair dye'>>
<</link>>
<</if>>
<<link 'Portrait'>>
<<script>>
Dialog.setup("NPC customize - portrait", "NPC customize - portrait");
Dialog.wiki(Story.get("NPC customize - portrait").processText());
Dialog.open();
<</script>>
<</link>>
<<if [0,1,2,3].includes($tmpGirl.gender)>>
<<link 'Clothes'>>
<<script>>
Dialog.setup("NPC Wardrobe", "NPC Wardrobe");
Dialog.wiki(Story.get("NPC Wardrobe").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<link 'Tattoos'>>
<<script>>
Dialog.setup("NPC customize - tattoos", "NPC customize - tattoos");
Dialog.wiki(Story.get("NPC customize - tattoos").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<link 'Change name color'>>
<<script>>
Dialog.setup("NPC customize - name color", "NPC customize - name color");
Dialog.wiki(Story.get("NPC customize - name color").processText());
Dialog.open();
<</script>>
<</link>>
<<link 'Notes'>>
<<dialog 'Notes'>>
Notes:<<textbox "_notes" `$tmpGirl.notes ?? ''`>>
<<link 'OK'>>
<<set $tmpGirl.notes = _notes>>
<<dialogclose>>
<<goto 'NPC customize'>>
<</link>>
<</dialog>>
<</link>>
<<if setup.getAge($tmpGirl) >= 18>>
<<link 'Custom pack'>>
<<script>>
Dialog.setup("NPC customize - custom pack", "NPC customize - custom pack");
Dialog.wiki(Story.get("NPC customize - custom pack").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<link 'Back'>>
<<if !$tmpGirlViewBack && setup.getAge($tmpGirl) < 18>>
<<goto 'Child view'>>
<<else>>
<<goto $tmpGirlViewBack>>
<</if>>
<</link>><center>
<<actionImage $tmpGirl 'pet'>>
</center>
<<set _girlVisual = $tmpGirl>>
<<if $slaveId>>
<<set _interaction = either([
"You spend time coaxing " + setup.pronounceWho($tmpGirl) + " through small games, holding little rewards just out of reach until " + setup.pronounceWhat($tmpGirl) + " comes close enough to take them from your fingers.",
"You play a little game of keep-away, letting " + setup.pronounceWho($tmpGirl) + " circle you until you give " + setup.pronounceWhat($tmpGirl) + " a reward.",
"You run your hands gently through " + setup.pronounceWhos($tmpGirl) + " hair with slow, easy strokes.",
"You draw " + setup.pronounceWho($tmpGirl) + " a little closer with each small reward until " + setup.pronounceWhat($tmpGirl) + " is reliably eating from your hand, comfortable right where you want " + setup.pronounceWho($tmpGirl) + ".",
"You practice stillness with " + setup.pronounceWho($tmpGirl) + " — hands resting on " + setup.pronounceWhos($tmpGirl) + " sides, close and unmoving, letting " + setup.pronounceWho($tmpGirl) + " get used to your presence.",
"You run your hands over " + setup.pronounceWhos($tmpGirl) + " body, slowly and deliberately, touching where you choose, training " + setup.pronounceWho($tmpGirl) + " to get used to your contact.",
"You work on eye contact — holding " + setup.pronounceWhos($tmpGirl) + " face gently but firmly, establishing your authority as the Alpha.",
"You take " + setup.pronounceWho($tmpGirl) + " for a walk around the basement, guiding " + setup.pronounceWho($tmpGirl) + " to follow you, training " + setup.pronounceWho($tmpGirl) + " to stay right at your heels where " + setup.pronounceWhat($tmpGirl) + " belongs."
])>>
<<if $tmpGirl.sub < 20>>
<<set _feralResponse = either([
"endures your handling with tense stillness, eyes tracking your every movement",
"shrinks slightly at your approach but holds " + setup.pronounceWhos($tmpGirl) + " ground — neither fleeing nor engaging",
"accepts a treat warily, keeping " + setup.pronounceWhos($tmpGirl) + " distance even after taking it",
"sits where directed, muscles coiled, watching you with guarded eyes",
"tolerates your touch with a low, restrained sound — not quite a warning, not quite acceptance",
"does not resist, but the wariness in " + setup.pronounceWhos($tmpGirl) + " eyes makes clear this is compliance, not comfort",
"stays close only because " + setup.pronounceWhat($tmpGirl) + " has learned there is little point in doing otherwise"
])>>
<<else>>
<<set _feralResponse = either([
"responds to your cues with practiced ease, settling where directed without hesitation",
"sits attentive at your feet, waiting for the next prompt",
"accepts a reward calmly and stays close, having learned that proximity to you means safety",
"moves through the session with quiet, conditioned compliance — the tension of early days largely gone",
"holds eye contact longer now, reading you for cues rather than threats",
"responds to your approach without pulling back, " + setup.pronounceWhos($tmpGirl) + " posture open and yielding",
"takes a treat from your hand without flinching, then settles obediently"
])>>
<</if>>
<<else>>
<<set _interaction = either([
"You spend a while grooming " + setup.pronounceWho($tmpGirl) + " — working through " + setup.pronounceWhos($tmpGirl) + " hair with slow, careful fingers until " + setup.pronounceWhat($tmpGirl) + " settles.",
"You sit with " + setup.pronounceWho($tmpGirl) + " for a stretch, scratching behind " + setup.pronounceWhos($tmpGirl) + " ears and along " + setup.pronounceWhos($tmpGirl) + " neck, taking your time.",
"You spend some time playing with " + setup.pronounceWho($tmpGirl) + ", tossing an improvised toy of cloth and plastic for " + setup.pronounceWho($tmpGirl) + " to chase and play with, until " + setup.pronounceWhat($tmpGirl) + " tires of it.",
"You ease down beside " + setup.pronounceWho($tmpGirl) + " and stay there quietly, letting " + setup.pronounceWho($tmpGirl) + " get comfortable with your presence for a little while.",
"You work through a slow session of petting, running your hands along " + setup.pronounceWhos($tmpGirl) + " back and sides until the tension in " + setup.pronounceWhos($tmpGirl) + " body fully eases.",
"You coax " + setup.pronounceWho($tmpGirl) + " through a series of small exercises and games, rewarding " + setup.pronounceWho($tmpGirl) + " patiently each time " + setup.pronounceWhat($tmpGirl) + " engages.",
"You spend a relaxed stretch just being near " + setup.pronounceWho($tmpGirl) + " — reading, resting — letting " + setup.pronounceWho($tmpGirl) + " come and go as " + setup.pronounceWhat($tmpGirl) + " pleases."
])>>
<<if $tmpGirl.relationship < 20>>
<<set _feralResponse = either([
"keeps " + setup.pronounceWhos($tmpGirl) + " distance, watching you with flat, unreadable eyes",
"allows your approach but doesn't lean in — every muscle coiled, ready to bolt",
"gives a low warning sound when you reach too far, pulling back just out of reach",
"endures your touch with rigid stillness, eyes never leaving your face",
"circles back to a safe distance the moment you pause, keeping space between you",
"sniffs at your offered hand and recoils sharply, not yet satisfied",
"tolerates the session without warmth, watching you with the patience of something that hasn't decided yet"
])>>
<<elseif $tmpGirl.relationship < 50>>
<<set _feralResponse = either([
"leans into your touch with a slow, contented blink",
"lets out a deep, rumbling purr and presses " + setup.pronounceWhos($tmpGirl) + " head against your hand",
"nuzzles close, eyes half-closed and serene",
"looks up at you with wide, calm eyes — a quiet, settled familiarity",
"curls against your side and settles there with a soft sigh",
"bumps " + setup.pronounceWhos($tmpGirl) + " head gently against your legs",
"makes a soft, pleased trill and stays near",
"trots alongside you for a stretch, clearly at ease in your company",
"drops something at your feet and waits, clearly expecting a response",
"leans a shoulder into your side and simply stays"
])>>
<<else>>
<<set _feralResponse = either([
"leans into your touch with a slow, contented blink",
"lets out a deep, rumbling purr and presses " + setup.pronounceWhos($tmpGirl) + " head against your hand",
"nuzzles close, eyes half-closed and serene",
"curls against your side and settles there with a soft sigh",
"bumps " + setup.pronounceWhos($tmpGirl) + " head gently against your legs",
"trots alongside you for a stretch, clearly at ease in your company",
"leans a shoulder into your side and simply stays",
"climbs into your lap without invitation and settles there, warm and heavy and content",
"rolls onto " + setup.pronounceWhos($tmpGirl) + " back near your feet — an unmistakable sign of trust",
"presses the full length of " + setup.pronounceWhos($tmpGirl) + " body against yours and stays, unhurried",
"mouths at your hand gently, not biting, just holding, the way a very trusting animal does",
"wraps around you from behind and rests " + setup.pronounceWhos($tmpGirl) + " chin on your shoulder, simply staying close",
"brings you something small, a stone, a shiny bit of scrap — and places it carefully in your palm",
"buries " + setup.pronounceWhos($tmpGirl) + " face in your neck and breathes there slowly, utterly at ease",
"sprawls across your lap, eyes half-closed, utterly unbothered",
"tugs at your sleeve and leads you a short way before circling back, playful and sure of you"
])>>
<</if>>
<</if>>
<br />
<p><<=_interaction>></p>
<br />
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait">
<<include 'NPC visual'>>
</div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name">
<strong><<=setup.displayName($tmpGirl)>></strong>
</div>
<div class="npc-say-text">
<em>*<<= _feralResponse >>*</em>
</div>
</div>
</div>
<<if $guestId && setup.percentageChance(30)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + randomInteger(1, 10), 100)>>
<</if>>
<<if $slaveId && setup.percentageChance(30)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + randomInteger(1, 5), 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + randomInteger(1, 2), 100)>>
<</if>>
<br /><br />
<<set $tmpGirl.quests ??= {}>>
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<<if $charId && $tmpGirl.corruption > 50 && !$tmpGirl.canPunish>>
<<set $tmpGirl.canPunish = true>>
<</if>>
<<link 'Back'>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto [[NPC view]]>>
<</if>>
<</link>>[img[setup.ImagePath+'places/explore/escape.webp']]
<br /><br />
<<if $escapeReason ?? false>>
<<=$escapeReason>>
<<else>>
You don't have enough strength and <<=setup.pronounceWhat($tmpGirl)>> managed to escape.
<</if>>
<<unset $escapeReason>>
<br /><br />
[[Leave|Outside]]<<set _eligible = [], _foursomeLoc = $tmpGirl.location>>
<<if _foursomeLoc === 'church'>>
<<for _fci, _fcg range $guests>>
<<if _fcg.id === $tmpGirl.id || _fcg.gender !== 0 || !(_fcg.likesGuys ?? true) || (_fcg.horny ?? 0) < 20 || setup.getAge(_fcg) < 18>><<continue>><</if>>
<<if _fcg.assignedTo !== 'church' || !setup.isAtWork(_fcg, $weather)>><<continue>><</if>>
<<if !setup.percentageChance(setup.sexChance(_fcg))>><<continue>><</if>>
<<run _eligible.push({type: 'guest', id: _fci})>>
<</for>>
<<for _fci, _fcg range $slaves>>
<<if _fcg.id === $tmpGirl.id || _fcg.gender !== 0 || !(_fcg.likesGuys ?? true) || (_fcg.horny ?? 0) < 20 || setup.getAge(_fcg) < 18>><<continue>><</if>>
<<if _fcg.assignedTo !== 'church' || !setup.isAtWork(_fcg, $weather)>><<continue>><</if>>
<<if !setup.percentageChance(setup.sexChance(_fcg))>><<continue>><</if>>
<<run _eligible.push({type: 'slave', id: _fci})>>
<</for>>
<<elseif _foursomeLoc === 'hospital'>>
<<for _fci, _fcg range $guests>>
<<if _fcg.id === $tmpGirl.id || _fcg.gender !== 0 || !(_fcg.likesGuys ?? true) || (_fcg.horny ?? 0) < 20 || setup.getAge(_fcg) < 18>><<continue>><</if>>
<<if !(_fcg.assignedTo === 'hospital' && setup.isAtWork(_fcg, $weather)) && typeof _fcg.sick === 'undefined'>><<continue>><</if>>
<<if !setup.percentageChance(setup.sexChance(_fcg))>><<continue>><</if>>
<<run _eligible.push({type: 'guest', id: _fci})>>
<</for>>
<<for _fci, _fcg range $slaves>>
<<if _fcg.id === $tmpGirl.id || _fcg.gender !== 0 || !(_fcg.likesGuys ?? true) || (_fcg.horny ?? 0) < 20 || setup.getAge(_fcg) < 18>><<continue>><</if>>
<<if typeof _fcg.sick === 'undefined'>><<continue>><</if>>
<<if !setup.percentageChance(setup.sexChance(_fcg))>><<continue>><</if>>
<<run _eligible.push({type: 'slave', id: _fci})>>
<</for>>
<<elseif _foursomeLoc === 'bathhouse'>>
<<for _fci, _fcg range $guests>>
<<if _fcg.id === $tmpGirl.id || _fcg.gender !== 0 || !(_fcg.likesGuys ?? true) || (_fcg.horny ?? 0) < 20 || setup.getAge(_fcg) < 18>><<continue>><</if>>
<<set _fBsd = setup.bathSchedule[_fcg.assignedTo]>>
<<if _fBsd && !timeBetween(_fBsd.from, _fBsd.to)>><<continue>><</if>>
<<if !setup.percentageChance(setup.sexChance(_fcg))>><<continue>><</if>>
<<run _eligible.push({type: 'guest', id: _fci})>>
<</for>>
<<elseif ($tmpGirl.basementVoluntary ?? false)>>
<<for _fci, _fcg range $slaves>>
<<if _fcg.gender !== 0 || !(_fcg.likesGuys ?? true) || (_fcg.horny ?? 0) < 20 || setup.getAge(_fcg) < 18>><<continue>><</if>>
<<if !setup.percentageChance(setup.sexChance(_fcg))>><<continue>><</if>>
<<run _eligible.push({type: 'slave', id: _fci})>>
<</for>>
<<else>>
/* Default: all guests */
<<for _fci, _fcg range $guests>>
<<if _fcg.id === $tmpGirl.id || _fcg.gender !== 0 || !(_fcg.likesGuys ?? true) || (_fcg.horny ?? 0) < 20 || setup.getAge(_fcg) < 18>><<continue>><</if>>
<<if !setup.percentageChance(setup.sexChance(_fcg))>><<continue>><</if>>
<<run _eligible.push({type: 'guest', id: _fci})>>
<</for>>
<</if>>
<<if _eligible.length < 2>>
Not enough willing participants right now.
<br /><br />
<<link 'Back'>>
<<goto 'NPC fuck choose'>>
<</link>>
<<else>>
<<if typeof $foursomePickedFirst === 'undefined'>>
Choose the first partner:
<br /><br />
<table id="slaves" class="npc-list">
<<for _fentry range _eligible>>
<<capture _fentry>>
<<set _fnpc = _fentry.type === 'guest' ? $guests[_fentry.id] : $slaves[_fentry.id]>>
<tr class="item">
<td>
<<=setup.displayName(_fnpc)>> <<=setup.npcListInfo(_fnpc)>>
</td>
<td>
<<link 'Choose'>>
<<set $foursomePickedFirst = _fentry>>
<<goto 'NPC foursome choose'>>
<</link>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<else>>
<<set _remaining = _eligible.filter(function(e) { return !(e.type === $foursomePickedFirst.type && e.id === $foursomePickedFirst.id); })>>
<<set _fpFirstNpc = $foursomePickedFirst.type === 'guest' ? $guests[$foursomePickedFirst.id] : $slaves[$foursomePickedFirst.id]>>
<<if _remaining.length < 1>>
Not enough willing participants left.
<br /><br />
<<link 'Back'>>
<<unset $foursomePickedFirst>>
<<goto 'NPC fuck choose'>>
<</link>>
<<else>>
First partner: <strong><<=setup.displayName(_fpFirstNpc)>></strong>
<br />
Choose the second partner:
<br /><br />
<table id="slaves" class="npc-list">
<<for _rentry range _remaining>>
<<capture _rentry, _fpFirstNpc>>
<<set _rnpc = _rentry.type === 'guest' ? $guests[_rentry.id] : $slaves[_rentry.id]>>
<tr class="item">
<td>
<<=setup.displayName(_rnpc)>> <<=setup.npcListInfo(_rnpc)>>
</td>
<td>
<<link 'Choose'>>
<<if $foursomePickedFirst.type === 'guest'>>
<<set $guestId2 = $foursomePickedFirst.id>>
<<unset $slaveId2, $charId2>>
<<else>>
<<set $slaveId2 = $foursomePickedFirst.id>>
<<unset $guestId2, $charId2>>
<</if>>
<<set $tmpGirl2 = _fpFirstNpc>>
<<if _rentry.type === 'guest'>>
<<set $guestId3 = _rentry.id>>
<<unset $slaveId3, $charId3>>
<<else>>
<<set $slaveId3 = _rentry.id>>
<<unset $guestId3, $charId3>>
<</if>>
<<set $tmpGirl3 = _rentry.type === 'guest' ? $guests[_rentry.id] : $slaves[_rentry.id]>>
<<unset $foursomePickedFirst, $charId, $slaveId>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<foursome $tmpGirl $tmpGirl2 $tmpGirl3>>
<</link>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<link 'Pick someone else'>>
<<unset $foursomePickedFirst>>
<<goto 'NPC foursome choose'>>
<</link>>
<</if>>
<</if>>
<</if>>
<br /><br />
<<link 'Back'>>
<<unset $foursomePickedFirst>>
<<goto 'NPC fuck choose'>>
<</link>><<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _linkAlone = 'Fuck ' + _himOrHer>>
<<link `_linkAlone`>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<if setup.npc.isExOfMc($tmpGirl)>>
<<goto 'Mc fuck - ex'>>
<<elseif setup.percentageChance(setup.sexChance($tmpGirl))>>
<<fuck $tmpGirl>>
<<set $sexForced = false>>
<<else>>
<<goto 'Mc fuck - no'>>
<</if>>
<</link>>
<<if typeof $tmpGirl.family !== 'undefined' && $tmpGirl.family.husband === 'mc' && setup.NpcInHome($tmpGirl)>>
<<set _linkWedding = 'In ' + _hisOrHer + ' wedding dress'>>
<<link `_linkWedding`>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'wedding'>>
<<if setup.percentageChance(setup.sexChance($tmpGirl))>>
<<fuck $tmpGirl>>
<<set $sexForced = false>>
<<else>>
<<goto 'Mc fuck - no'>>
<</if>>
<</link>>
<</if>>
<<if ($tmpGirl.traits ?? []).includes('masochist') && setup.NpcInHome($tmpGirl)>>
<<set _linkBasement = 'In the basement'>>
<<link `_linkBasement`>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'basement'>>
<<if setup.npc.isExOfMc($tmpGirl)>>
<<goto 'Mc fuck - ex'>>
<<elseif setup.percentageChance(setup.sexChance($tmpGirl))>>
<<fuck $tmpGirl>>
<<set $sexForced = false>>
<<else>>
<<goto 'Mc fuck - no'>>
<</if>>
<</link>>
<</if>>
<<if $tmpGirl.location !== 'gloryhole' && [0, 2].includes($tmpGirl.gender) && setup.NpcInHome($tmpGirl)>>
<<link 'Threesome'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<script>>
var _tscLocLabels = { church: 'Church', hospital: 'Hospital', bathhouse: 'Bathhouse' };
var _tscLabel = _tscLocLabels[State.variables.tmpGirl && State.variables.tmpGirl.location] || 'Guesthouse';
Dialog.setup(_tscLabel + " - Ask for threesome", "Guesthouse - Ask for threesome");
Dialog.wiki(Story.get("Guesthouse - Ask for threesome choose").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<if [0, 2].includes($tmpGirl.gender) && setup.NpcInHome($tmpGirl)>>
<<if ($tmpGirl.basementVoluntary ?? false)>>
<<set _eligibleForFoursome = []>>
<<for _fsi, _fsnpc range $slaves>>
<<if _fsnpc.gender !== 0 || !(_fsnpc.likesGuys ?? true) || (_fsnpc.horny ?? 0) < 20 || setup.getAge(_fsnpc) < 18>><<continue>><</if>>
<<run _eligibleForFoursome.push(_fsi)>>
<</for>>
<<else>>
<<set _eligibleForFoursome = setup.filterNPCs($guests, {gender: 0, horny_gte: 20, likesGuys: true})[0] ?? []>>
<<set _eligibleForFoursome = _eligibleForFoursome.filter(function(id) { return $guests[id].id !== $tmpGirl.id && setup.getAge($guests[id]) >= 18; })>>
<</if>>
<<if _eligibleForFoursome.length >= 2>>
<<link 'Foursome'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<goto 'NPC foursome choose'>>
<</link>>
<</if>>
<</if>>
<<link 'Back'>>
<<goto 'NPC view - guest'>>
<</link>><div id="inventory">
<<for _item, _amount range $backpack.table>>
<<if typeof setup.gifts[_item] === 'undefined'>>
<<continue>>
<</if>>
<<capture _item>>
<<set _icon = _item>>
<div class='inventory-item tooltip'>
<div class='inventory-img'>
[img[setup.ImagePath+'game/inventory/' + _icon + '.png']]
</div>
<div class='inventory-title'>
<<= Item.get(_item).name>>
<<if !Item.get(_item).unique>>
<span class='inventory-amount'>x_amount</span>
<</if>>
</div>
<<if Item.get(_item).description>>
<span class="tooltiptext"><<=Item.get(_item).description>></span>
<</if>>
<<link 'Gift'>>
<<set _giftMultiplier = 1>>
<<if ($tmpGirl.likes ?? []).includes(_item)>>
<<set _giftMultiplier = 2>>
<<set $tmpGirl.happy += 2>>
<<elseif ($tmpGirl.dislikes ?? []).includes(_item)>>
<<set _giftMultiplier = -1>>
<<set $tmpGirl.happy -= 1>>
<<else>>
<<set $tmpGirl.happy += 1>>
<</if>>
<<if _giftMultiplier >= 1 && setup.personality.has($tmpGirl, 'extravagant')>>
<<set _giftMultiplier *= 2>>
<</if>>
<<if _giftMultiplier >= 1 >>
<<drop $backpack _item 1>>
<<run setup.npcInventoryAdd($tmpGirl, _item)>>
<<set $tmpGirl.gift = true>>
<</if>>
<<set $tmpGirl.relationship = Math.min(100, $tmpGirl.relationship + _giftMultiplier*setup.gifts[_item].rel)>>
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<<script>>Dialog.close();<</script>>
<<goto `passage()`>>
<</link>>
</div>
<</capture>>
<</for>>
</div>
<style>
#inventory {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-column-gap: 10px;
grid-row-gap: 10px;
}
.inventory-item {
flex: 0 0 33.3333%;
}
</style><<set _unknown = (typeof $guestId === 'undefined' && typeof $charId === 'undefined' && typeof $slaveId === 'undefined')>>
<<if _forceKnown>>
<<set _unknown = false>>
<</if>>
<<set _ageReal = setup.getAge($tmpGirl)>>
<<if $tmpGirlCapture && !$guestId && !$charId>>
<<set _age = setup.agePeriod(_ageReal)>>
<<else>>
<<set _age = _ageReal>>
<</if>>
<<set _isLegalAge = _ageReal >= 18>>
<div id="girl_info_stats">
<div id="girl_info_left" style="float: left; width: 60%">
<div id="girl_description">
<<if !_unknown>>
<<happyIcon $tmpGirl>>
<</if>>
<<if $tmpGirl.blindFold>>
Blindfolded
<</if>>
<strong class="iitem"><<= $tmpGirl.race>> <<=setup.getNpcAgeDescription($tmpGirl)>></strong> with <strong class="iitem"><<=$tmpGirl.hair>></strong>
<<if [0,2].includes($tmpGirl.gender) && setup.getAge($tmpGirl) >= 18>>
<<=$tmpGirl.hair === 'bald' ? 'head' : 'hair'>> and <strong class="iitem"><<=$tmpGirl.breasts>></strong>
<<if $tmpGirl.piercedBoobs>>
pierced
<</if>>
breasts.
<<if [0,3].includes($tmpGirl.gender) && $tmpGirl.virgin && !_unknown>>
<strong class="iitem" style="font-weight: normal;">She's a virgin.</strong>
<</if>>
<<else>>
<<=$tmpGirl.hair === 'bald' ? 'head' : 'hair'>>.
<</if>>
<<if $tmpGirl.buttplug>>
<strong class="iitem" style="font-weight: normal;">With buttplug.</strong>
<</if>>
<<if $tmpGirl.gagBall>>
<strong class="iitem" style="font-weight: normal;">Wearing a gag ball.</strong>
<</if>>
<<if $tmpGirl.piercedBoobs && $tmpGirl.gender == 1>>
<strong class="iitem" style="font-weight: normal;">With pierced nipples.</strong>
<</if>>
<<if $tmpGirl.piercedClit>>
<strong class="iitem" style="font-weight: normal;">With pierced clit.</strong>
<</if>>
<<if $tmpGirl.chastityBelt>>
<strong class="iitem" style="font-weight: normal;">With chastity belt.</strong>
<</if>>
<<if !_unknown>>
<<= setup.npcListInfo($tmpGirl)>>
<</if>>
<<if ($tmpGirl.drunk ?? 0) > 0>>
<strong><<=setup.pronounceWhat($tmpGirl, true)>> is <<=setup.drunkDescription($tmpGirl)>>.</strong>
<</if>>
</div>
<<if !_unknown>>
<div id="npc-inventory">
<<link "[img[setup.ImagePath+'game/misc/inventory.png']]">><<script>>Dialog.setup("NPC inventory", "NPC inventory"); Dialog.wiki(Story.get("NPC inventory").processText()); Dialog.open();<</script>><</link>>
<<if ($tmpGirl.inventory ?? {})>>
<<for _npcInventoryItem, _npcInventoryCount range ($tmpGirl.inventory ?? {})>>
<<if typeof setup.gifts[_npcInventoryItem] !== 'undefined'>>
<<continue>>
<</if>>
<<set _icon = _npcInventoryItem.indexOf("blueprint") !== -1 ? 'blueprint' :
_npcInventoryItem.indexOf("note") !== -1 ? 'note' :
_npcInventoryItem.indexOf("dumb") !== -1 ? 'dumbbell' : _npcInventoryItem>>
<div class='npc-inventory-item'>
<div class='npc-inventory-img'>
[img[setup.ImagePath+'game/inventory/' + _icon + '.png']]
</div>
</div>
<</for>>
<</if>>
</div>
<</if>>
<div id="npc_stats">
<span>Name: <<=setup.displayName($tmpGirl)>></span>
<span>Age: <<=_age>></span>
<<if _isLegalAge>>
<span>Beauty score: <<=$tmpGirl.beauty>></span>
<</if>>
<<if !$tmpGirlCapture>>
<span>Relationship: <<print $tmpGirl.relationship ?? 0>></span>
<</if>>
<<if typeof $slaveId !== 'undefined' || typeof $guestId !== 'undefined' || typeof $charId !== 'undefined' || _isSlaveMarket>>
<span>Strength: <<=$tmpGirl.strength ?? 0>></span>
<span>Endurance: <<=$tmpGirl.endurance ?? 0>></span>
<</if>>
<<if _isLegalAge>>
<div>Submission: <<= $tmpGirl.sub ?? 0>></div>
<</if>>
</div>
<<if !_unknown || $player.int > 30 || _isSlaveMarket>>
<<if _isLegalAge>>
<div id="npc-traits">
Traits:
<<if Object.keys($tmpGirl.traits ?? {}).length > 0>>
<<for _trait range ($tmpGirl.traits ?? [])>>
<div class="trait tooltip">
<<=setup.traits[_trait].title>>
<span class="tooltiptext"><<=setup.traits[_trait].description>></span>
</div>
<</for>>
<<else>>
none
<</if>>
</div>
<</if>>
<div id="npc-skills">
Skills:
<<if ($tmpGirl.skills ?? []).length > 0>>
<<for _skill range ($tmpGirl.skills ?? [])>>
<<if typeof setup.skills[_skill] !== 'undefined'>>
<div class="trait tooltip">
<<=setup.skills[_skill].title>>
<span class="tooltiptext"><<=setup.skills[_skill].description>></span>
</div>
<</if>>
<</for>>
<<else>>
none
<</if>>
</div>
<</if>>
<<if _isLegalAge && !_unknown>>
<<linkreplace 'More info'>>
<div id="additional-npc-info">
<div id="additional-npc-info-single">
<<if _isLegalAge>>
<div>Corruption: <<= $tmpGirl.corruption ?? 0>></div>
<div>Drunkenness: <<=setup.drunkDescription($tmpGirl)>></div>
<div>Horny: <<= $tmpGirl.horny ?? 0>></div>
<</if>>
<<if !$tmpGirl.gender>>
<div>
Orgasms: <<= ($tmpGirl.orgasms ?? 0)>>
</div>
<</if>>
<<if !$tmpGirl.gender>>
<div>
Creampies: <<=$tmpGirl?.sexStats?.creampies ?? 0;>>
</div>
<</if>>
<div>
Gender: <<=setup.genderDescription($tmpGirl)>>
</div>
<div>
Orientation: <<=setup.displayOrientation($tmpGirl)>>
</div>
<<if !$tmpGirl.gender || $tmpGirl.anal > 0>>
<div>Anal: <<=$tmpGirl.anal>></div>
<</if>>
<<if !_unknown && !$charId && $tmpGirl.relationship >= 50>>
<div>
Likes: <<=$tmpGirl.likes>>
</div>
<div>
Dislikes: <<=$tmpGirl.dislikes>>
</div>
<div>
Personality:
<<for _pTrait range [].concat($tmpGirl.personality ?? [])>>
<div class="trait tooltip">
<<=_pTrait>>
<span class="tooltiptext"><<=setup.personality.info[_pTrait] ?? ''>></span>
</div>
<</for>>
</div>
<</if>>
<div>
Eyes: <<=$tmpGirl.eyes>>
</div>
<div>
Birthday: <<=$tmpGirl.birthDate.getDate()>> <<=window.GameMonths[$tmpGirl.birthDate.getMonth()]>>
</div>
<<if !$tmpGirl.gender && ($tmpGirl.pregnancy ?? -1) >= 7>>
<<set _pregStage = setup.pregnancyStage($tmpGirl.pregnancy)>>
<div class="pregnancy-stage">
Pregnant — <strong><<=_pregStage.label>></strong> (day <<=($tmpGirl.pregnancy)>> / ~260)
<br />
<progress value="<<=_pregStage.pct>>" max="100" style="width:150px"></progress>
<br /><br />
<<if $backpack.has('pregnancy_speed_potion')>>
<<link 'Give pregnancy speed potion'>>
<<set $pregnancyPotionBackLink = passage()>>
<<goto 'Girl - pregnancy speed potion'>>
<</link>>
<</if>>
<<if $backpack.has('pregnancy_potion')>>
<<link 'Give termination potion'>>
<<goto 'Girl - pregnancy potion'>>
<</link>>
<</if>>
</div>
<</if>>
<<if !_unknown && $player.int >= 50>>
<div>
Unavailable traits:
<<for _trait range ($tmpGirl.traitsLocked ?? [])>>
<div class="trait tooltip">
<<=setup.traits[_trait].title>>
<span class="tooltiptext"><<=setup.traits[_trait].description>></span>
</div>
<</for>>
</div>
<</if>>
</div>
<<if ($tmpGirl.notes ?? '') !== ''>>
<div id="npc-notes">
<h4 style="display:block; margin-bottom: 0px;">Notes</h4>
<<=$tmpGirl.notes>>
</div>
<</if>>
<<if ($tmpGirl.history ?? []).length > 0>>
<div id="npc-history">
<h4 style="display:block; margin-bottom: 0px;">History</h4>
<<for _histEntry range $tmpGirl.history>>
<<set _histDate = setup.npc.dayToDate(_histEntry.day)>>
<div><span data-balloon-length="small" @aria-label="_histDate ? setup.formatDate(_histDate) : ''" data-balloon-pos="up"><<=setup.npc.historyLabel(_histEntry)>></span></div>
<</for>>
</div>
<</if>>
<div id="npc-notes">
<h4 style="display:block; margin-bottom: 0px;">💬</h4>
<<=setup.pronounceWhat($tmpGirl, true)>> calls you '<<=setup.npc.mcName($tmpGirl)>>'.
</div>
<div id="npc-notes">
<h4 style="display:block; margin-bottom: 0px;">🗨</h4>
<<=setup.pronounceWhat($tmpGirl, true)>> is called '<<= ($tmpGirl.nickName ?? '') !== '' ? $tmpGirl.nickName : $tmpGirl.name>>' in dialogs and actions.
</div>
<div id="npc_stats">
<<if ($tmpGirl.fightCage ?? false)>>
<div id="npc-sex-stats">
<h4 style="display:block; margin-bottom: 0px;">Fight cage stats</h4>
<table style="margin-top: 0px;">
<tr>
<td>
Fights won:
</td>
<td>
<<=$tmpGirl.fightCage.fightsWon ?? 0>>
</td>
</tr>
<tr>
<td>
Fights lost:
</td>
<td>
<<=$tmpGirl.fightCage.fightsLost ?? 0>>
</td>
</tr>
</table>
</div>
<</if>>
<<if ($tmpGirl.stats ?? false)>>
<div id="npc-work-stats">
<h4 style="display:block; margin-bottom: 0px;">Work stats</h4>
<table style="margin-top: 0px;">
<<for _npcWorkStatsLocation, _npcWorkStatsDays range $tmpGirl.stats>>
<tr>
<td>
<<=_npcWorkStatsLocation>>:
</td>
<td>
<<=_npcWorkStatsDays>>
</td>
</tr>
<</for>>
</table>
</div>
<</if>>
<<if ($tmpGirl.statsSex ?? false)>>
<div id="npc-sex-stats">
<h4 style="display:block; margin-bottom: 0px;">Sex stats</h4>
<table style="margin-top: 0px;">
<tr>
<td>
Gave blowjobs:
</td>
<td>
<<=$tmpGirl.statsSex.bj ?? 0>>
</td>
</tr>
<tr>
<td>
Deepthroated:
</td>
<td>
<<=$tmpGirl.statsSex.dp ?? 0>>
</td>
</tr>
<<if !$tmpGirl.gender>>
<tr>
<td>
Fucked in pussy:
</td>
<td>
<<=$tmpGirl.statsSex.pussy ?? 0>>
</td>
</tr>
<</if>>
<tr>
<td>
Fucked in ass:
</td>
<td>
<<=$tmpGirl.statsSex.anal ?? 0>>
</td>
</tr>
</table>
</div>
<</if>>
</div>
</div>
<</linkreplace>>
<</if>>
</div>
<div id="npc_info_right" @data-id="$tmpGirl.id" @class="'girl_info_picture gender-' + $tmpGirl.gender" style="float: right;">
<<if typeof $tmpGirl.family !== 'undefined'>>
<div id="family-tree" style="left:-20px; top:0px;">
<span class="glyph">䷤</span>
<div id="family-tree-expanded">
<<showFamilyTree $tmpGirl.family>>
</div>
</div>
<</if>>
<<if typeof $tmpGirl.clothes === 'undefined'>><<set $tmpGirl.clothes = setup.getRandomNpcClothes($tmpGirl) ?? {}>><</if>>
<<set _girlVisual = $tmpGirl>>
<<if setup.getAge($tmpGirl) >= 18>>
<<if _girlVisual.portrait>>
<div class="npc-div-portrait">
<<include 'NPC visual'>>
<<capture _girlVisual>>
<span style="zoom: 70%;position:absolute; right:20px; top:0px; text-shadow:2px 2px 0px #000000;;">
<<link '⤢'>>
<<dialog _girlVisual.name>>
<div class="npc-full-portrait">
<<include 'NPC visual'>>
</div>
<</dialog>>
<</link>>
</span>
<</capture>>
</div>
<<else>>
<<include 'NPC visual'>>
<</if>>
<</if>>
</div>
</div>
<div style="clear: both; margin-bottom: 5px;"></div>
<<if false>>
<<set $objectKeys = Object.keys($tmpGirl)>>
<<for _i to 0; _i lt $objectKeys.length; _i++>>
<<capture _i>>
<<print $objectKeys[_i]>>:
<strong><<print $tmpGirl[$objectKeys[_i]]>></strong>
<br />
<</capture>>
<</for>>
<hr />
<</if>>
<style>
#girl_description::first-letter {
text-transform:capitalize;
}
.npc-div-portrait {
max-height: 145px;
display: flex;
justify-content: center;
overflow: auto;
border-color: brown;
border-style: inset;
border-width: medium;
overflow: hidden;
border: 1px solid brown;
border-radius: 12px;
}
.npc-div-portrait img {
display: block;
object-fit: contain;
margin: 0px;
justify-self: center;
}
.npc-full-portrait {
max-height:100%;
display: flex;
justify-content: center;
overflow:hidden;
!border-color:brown;
!border-style:groove;
!border-width:medium;
}
.npc-full-portrait img {
display: block;
max-height: 100%;
object-fit: contain;
margin: 0px;
justify-self: center;
}
</style><<set $automatization ??= {}>>
<div id="storage-transfer">
<div id="storage-transfer-left">
<fieldset>
<legend><<=$player.name>></legend>
<<for _inventoryNpcMcKey, _inventoryNpcMcItem range setup.inventoryNpc>>
<<capture _inventoryNpcMcItem>>
<<if !$backpack.has(_inventoryNpcMcItem)>>
<<continue>>
<</if>>
<<set _icon = _inventoryNpcMcItem.indexOf("blueprint") !== -1 ? 'blueprint' :
_inventoryNpcMcItem.indexOf("note") !== -1 ? 'note' :
_inventoryNpcMcItem.indexOf("dumb") !== -1 ? 'dumbbell' : _inventoryNpcMcItem>>
<div class="npc-inventory-transfer-container">
<div class="npc-inventory-transfer-icon">
[img[setup.ImagePath+'game/inventory/' + _icon + '.png']]
</div>
<div class="npc-inventory-transfer-name">
(<<=$backpack.count(_inventoryNpcMcItem)>>x) <<=Item.get(_inventoryNpcMcItem).name>>
</div>
<div class="npc-inventory-transfer-link">
<<if ($automatization.dup ?? false) && setup.npcInventoryHas($tmpGirl, _inventoryNpcMcItem) && !setup.npcInventoryMultipleItems.includes(_inventoryNpcMcItem)>>
≯≯
<<else>>
<<link '>>'>>
<<drop $backpack _inventoryNpcMcItem 1>>
<<=setup.npcInventoryAdd($tmpGirl, _inventoryNpcMcItem)>>
<<script>>
Dialog.setup("NPC inventory", "NPC inventory");
Dialog.wiki(Story.get("NPC inventory").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</link>>
<</if>>
</div>
</div>
<</capture>>
<</for>>
</fieldset>
</div>
<div id="storage-transfer-right">
<fieldset>
<legend><<=$tmpGirl.name>></legend>
<<for _inventoryNpcMcKey, _inventoryNpcMcItem range setup.inventoryNpc>>
<<capture _inventoryNpcMcItem>>
<<if !setup.npcInventoryHas($tmpGirl, _inventoryNpcMcItem)>>
<<continue>>
<</if>>
<div class="npc-inventory-transfer-container">
<div class="npc-inventory-transfer-link">
<<link '<<'>>
<<pickup $backpack _inventoryNpcMcItem 1>>
<<=setup.npcInventoryRemove($tmpGirl, _inventoryNpcMcItem)>>
<<script>>
Dialog.setup("NPC inventory", "NPC inventory");
Dialog.wiki(Story.get("NPC inventory").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</link>>
</div>
<<set _icon = _inventoryNpcMcItem.indexOf("blueprint") !== -1 ? 'blueprint' :
_inventoryNpcMcItem.indexOf("note") !== -1 ? 'note' :
_inventoryNpcMcItem.indexOf("dumb") !== -1 ? 'dumbbell' : _inventoryNpcMcItem>>
<div class="npc-inventory-transfer-name">
(<<=setup.npcInventoryCount($tmpGirl, _inventoryNpcMcItem)>>x) <<=Item.get(_inventoryNpcMcItem).name>>
</div>
<div class="npc-inventory-transfer-icon">
[img[setup.ImagePath+'game/inventory/' + _icon + '.png']]
</div>
</div>
<</capture>>
<</for>>
</fieldset>
<fieldset>
<legend>Gifts</legend>
<<for _giftKey, _giftItem range setup.npcInventoryList($tmpGirl)>>
<<capture _giftItem>>
<<if setup.inventoryNpc.includes(_giftItem)>>
<<continue>>
<</if>>
<<set _icon = _giftItem.indexOf("blueprint") !== -1 ? 'blueprint' :
_giftItem.indexOf("note") !== -1 ? 'note' :
_giftItem.indexOf("dumb") !== -1 ? 'dumbbell' : _giftItem>>
<div class="npc-inventory-transfer-container">
<div class="npc-inventory-transfer-link"></div>
<div class="npc-inventory-transfer-name">
(<<=setup.npcInventoryCount($tmpGirl, _giftItem)>>x) <<=Item.get(_giftItem).name>>
</div>
<div class="npc-inventory-transfer-icon">
[img[setup.ImagePath+'game/inventory/' + _icon + '.png']]
</div>
</div>
<</capture>>
<</for>>
</fieldset>
</div>
</div><<set _isExOfMc = ($tmpGirl.family?.exes ?? []).includes('mc')>>
<<set _exAcceptRoll = _isExOfMc && setup.percentageChance($tmpGirl.relationship / 2)>>
<<set _isIncest = !($player?.baseManagement?.noIncest ?? false) && setup.family.isIncest($player, $tmpGirl)>>
<<set _incestAcceptRoll = _isIncest && setup.percentageChance($tmpGirl.relationship)>>
<<set _herRelation = _isIncest ? setup.family.getRelationshipLabel($player, $tmpGirl) : ''>>
<<set _maleRelationLabels = { daughter: 'father', mother: 'son', sister: 'brother', granddaughter: 'grandfather', grandmother: 'grandson', aunt: 'nephew', niece: 'uncle' }>>
<<set _hisRelation = _maleRelationLabels[_herRelation] ?? 'family member'>>
<center>
<<image 'places/kitchen/blair_propose.jpg' sfw>>
</center>
<br /><br />
You dropped to one knee, holding out the makeshift ring.
<br /><br />
<<you>>
<<=$tmpGirl.name>>, will you marry me?
<</you>>
<br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<addmins 10>>
She cocks her head at the ring, sniffs it, then looks back up at you — curious, not comprehending. She licks your hand once and pads away.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<elseif _isIncest && !_incestAcceptRoll>>
<<addmins 10>>
<<=setup.displayName($tmpGirl)>>'s expression softens, but she shakes her head slowly, her eyes glistening.
<br /><br />
<<sayNpc $tmpGirl>>
I love you dearly, <<=setup.npc.mcName($tmpGirl)>>, as your <<=_herRelation>>. But marrying my own <<=_hisRelation>>... it doesn't feel right. It doesn't feel natural. I'm sorry.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<elseif _isExOfMc && !_exAcceptRoll>>
<<addmins 10>>
<<sayNpc $tmpGirl>>
...No. We already tried this, <<=setup.npc.mcName($tmpGirl, false)>>. It didn't work out before. I don't think it would now, either.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<elseif !_isIncest && !_isExOfMc && ($tmpGirl?.family?.husband ?? false) && setup.percentageChance(40)>>
<<addmins 10>>
<<sayNpc $tmpGirl>>
What? No. I am already married.
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<elseif !_isIncest && !_isExOfMc && !$tmpGirl?.likesGuys>>
<<addmins 10>>
<<sayNpc $tmpGirl>>
What? Where did you got that idea? No... I am not into guys
<</sayNpc>>
<br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<else>>
<<drop $backpack 'wedding_ring' 1>>
<<set $tmpGirl.married = true>>
<<set $tmpGirl.family ??= {}>>
<<set $tmpGirl.family.husband = 'mc'>>
<<set $player.family ??= {}>>
<<set $player.family.wives ??= []>>
<<set $player.family.wives.push($tmpGirl.id)>>
<<run setup.npc.addHistory($tmpGirl, 'married', { with: 'mc' })>>
<<if _isIncest>>
<<=setup.displayName($tmpGirl)>> goes still for a moment, the weight of what you're asking plain on her face. Then, slowly, something like resolve settles over her.
<br /><br />
<<sayNpc $tmpGirl>>
This world doesn't run on the old rules anymore, does it, <<=setup.npc.mcName($tmpGirl)>>? We've always been close, closer than most people ever get to be. Maybe it's time that meant something new. I never imagined I would be considering marrying my own <<=_hisRelation>>... but somehow it feels right. Yes, I will marry you!
<</sayNpc>>
<br />
She reaches for your hand, her smile small but certain, like she's already decided this is a kind of family worth building. She's been your <<=_herRelation>> by circumstance, but now she will be your bride by choice.
<br /><br />
<<sayNpc $tmpGirl>>
Should we have a big celebration, <<=setup.npc.mcName($tmpGirl)>>? Or... maybe it's best we keep this between us, just for now.
<</sayNpc>>
<br />
<<elseif _isExOfMc>>
<<=setup.displayName($tmpGirl)>> stares at the ring for a long moment, old memories plainly crossing behind her eyes, before she finally looks up at you.
<br /><br />
<<sayNpc $tmpGirl>>
...Okay. Let's give this another chance, <<=setup.npc.mcName($tmpGirl)>>. I want to see if we can actually make it work this time.
<</sayNpc>>
<br />
You embraced tightly, the weight of your shared history and this newfound second chance washing over you. After a moment, <<=setup.displayName($tmpGirl)>> pulled back, her eyes sparkling with cautious determination.
<br /><br />
<<sayNpc $tmpGirl>>
Should we have a big celebration, <<=setup.npc.mcName($tmpGirl)>>? Or keep it simple, just the two of us, like before?
<</sayNpc>>
<br />
<<else>>
Tears welled up in <<=setup.displayName($tmpGirl)>>'s eyes as she looked down at you, overwhelmed with emotions.
<br /><br />
<<sayNpc $tmpGirl>>
Yes, <<=setup.npc.mcName($tmpGirl)>>, a thousand times yes!
<</sayNpc>>
<br />
You embraced tightly, the weight of your journey and this newfound commitment washing over you. After a moment, <<=setup.displayName($tmpGirl)>> pulled back, her eyes sparkling with determination.
<br /><br />
<<sayNpc $tmpGirl>>
Should we have a big celebration, <<=setup.npc.mcName($tmpGirl)>>? Or keep it simple, just the two of us?
<</sayNpc>>
<br />
<</if>>
<div id="option_two">
<<linkreplace 'Just the two of us'>>
<<set $tmpGirl.location = 'wedding'>>
<<run $('#option_others').hide()>>
<center>
[img[setup.ImagePath+'places/kitchen/blair_propose_yes.gif']]
</center>
<<setNpcStats 'guest' $guestId 'happy' 50>>
<<for _marryGuestI, _marryGuest range $guests>>
<<if !_marryGuest.married>>
<<continue>>
<</if>>
<<setNpcStats 'guest' _marryGuestI 'happy' -10>>
<</for>>
<br /><br />
You pull her closer to you and slowly slide the ring onto her finger.
There is a wide smile on her face. For a moment, she admires the ring and then tells you to go to your bedroom, running out of the room herself.
<br />
After a while, she comes to your bedroom with a borrowed wedding dress that the village girls share among themselves.
<br /><br />
<center>
<<actionImage $tmpGirl 'undress' 'no-text'>>
</center>
<br /><br />
In front of you she takes of her clothes and asks you to help her put on wedding dress.
<br />
As she's done, she pushes you onto your bed.
<br /><br />
<<sayNpc $tmpGirl>>
I've always wanted to do it in a wedding dress
<</sayNpc>>
<br />
<center>
<<actionImage $tmpGirl 'bj' 'no-text'>>
</center>
<br /><br />
She unbuttons your pants and slides her hand in to grab your dick. She strokes it few times while looking right into your eyes before pulling it out and sliding it into her mouth.
<br />
She catches her breath for a moment and you decide to take the lead.
<br /><br />
<<linkreplace 'Deepthroat her'>>
<center>
<<actionImage $tmpGirl 'dp' 'no-text'>>
</center>
<br /><br />
She deepthroats your dick with determination to get it all inside her tight mouth and still - without taking eyes off you. She really enjoys this moment.
<br /><br />
<</linkreplace>>
<<if !$tmpGirl.gender>>
<<linkreplace 'Eat her pussy'>>
<center>
<<actionImage $tmpGirl 'pussy_lick' 'no-text'>>
</center>
<br /><br />
You decide to reward your lovely wife by eating her pussy.
<br /><br />
<</linkreplace>>
<<if $tmpGirl.virgin>>
<<set _linkName = 'Fuck her virgin pussy'>>
<<else>>
<<set _linkName = 'Fuck her pussy'>>
<</if>>
<<linkreplace `_linkName`>>
<<if $tmpGirl.virgin>>
<<set $tmpGirl.virgin = false>>
<<set _virginityLost = true>>
<<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>>
<</if>>
<center>
<<actionImage $tmpGirl 'pussy' 'no-text'>>
</center>
<br /><br />
You enter her warm pussy and start ramming her while she moans louder and louder, as she glances at her ring every now and then.
<br /><br />
<<if _virginityLost>>
<strong>She lost her virginity!</strong>
<br /><br />
<</if>>
<</linkreplace>>
<</if>>
<<if $tmpGirl.anal < 20>>
<<set _linkName = 'Fuck her tight ass'>>
<<else>>
<<set _linkName = 'Fuck her ass'>>
<</if>>
<<linkreplace `_linkName`>>
<center>
<<actionImage $tmpGirl 'anal' 'no-text'>>
</center>
<br /><br />
<<if $tmpGirl.anal < 20>>
You enter her tight ass and start ramming her while she tries to control her pain, glancing at her ring for comfort.
<<else>>
You enter her warm ass and start ramming her while she moans louder and louder, as she glances at her ring every now and then.
<</if>>
<br /><br />
<</linkreplace>>
<<linkreplace 'Continue'>>
<<set _cum = !$tmpGirl.gender ? 'cum_on_pussy' : 'cum'>>
<center>
<<actionImage $tmpGirl _cum 'no-text'>>
</center>
<br /><br />
<<if !$tmpGirl.gender>>
You throw her on her back and cum all over her pussy.
<<else>>
You pull out your dick and you both lay on your back. You stroke your dick as she massages your balls. You both cum together.
<</if>>
<br /><br />
<<link 'Fuck some more'>>
<<fuck $tmpGirl>>
<</link>>
<<link 'Leave'>>
<<horny_reset>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
<</linkreplace>>
</div>
<div id="option_others">
</div>
<</if>><<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _backPassage = (typeof $slaveId !== 'undefined') ? 'NPC view' : 'NPC view - guest'>>
<<set _workLocationBack = { streets: 'Streets', nightclub: 'Nightclub - bathroom', strip_club: 'Strip Club' }[$tmpGirl.assignedTo] ?? _backPassage>>
<<set _attractedToMC = ($tmpGirl.likesGuys ?? true) && (!($player?.baseManagement?.noIncest ?? false) || !setup.family.isIncest($player, $tmpGirl))>>
<<set _incestBlocked = ($player?.baseManagement?.noIncest ?? false) && setup.family.isIncest($player, $tmpGirl)>>
<<set _barRound = 0>>
<<switch $tmpGirl.assignedTo>>
<<case 'nightclub'>>
<h1 class="ptitle">NIGHTCLUB</h1>
<br />
The bass thumps steady through the floor as you lead <<=_himOrHer>> toward the bar, the crowd a shifting tangle of dancers losing themselves in the noise, while near the bathroom door a couple of the club's other girls linger, waiting on their next client between songs.
<<case 'strip_club'>>
<h1 class="ptitle"><<stripClubName>></h1>
<br />
You bring <<=_himOrHer>> over to the bar at the edge of the floor, the room a low-lit mix of dancers working the crowd for the right tip and customers scanning the stage for the right dancer, the air thick with bass and spilled liquor.
<</switch>>
<br /><br />
<<set _pregnant = ($tmpGirl.pregnancy ?? 0) >= 7>>
<<set _alcoholLikedByNpcTop = ($tmpGirl.likes ?? []).includes('alcohol')>>
<<set _pregnancyDeclineChance = _alcoholLikedByNpcTop ? 60 : 80>>
<<if _pregnant && setup.percentageChance(_pregnancyDeclineChance)>>
<<sayNpc $tmpGirl>>
As much as the atmosphere in here might tempt me otherwise, I'm not going to risk anything happening to the baby. But thank you for thinking of me.
<</sayNpc>>
<br /><br />
<div>
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
</div>
<<else>>
<<include 'NPC offer bar drink - cycle'>>
<</if>><<set _barRound = (_barRound ?? 0) + 1>>
<<set _r = _barRound>>
<<set _buyFruityLinkText = 'Buy ' + _himOrHer + ' a mild fruity drink'>>
<<set _buyStrongLinkText = 'Buy ' + _himOrHer + ' a strong fancy drink'>>
<<set _askLinkText = 'Ask ' + _himOrHer + ' what kind of drink ' + _heOrShe + ' wants'>>
<<set _fruityDescId = 'opt_buy_fruity_desc_' + _r>>
<<set _strongDescId = 'opt_buy_strong_desc_' + _r>>
<<set _askDescId = 'opt_buy_ask_desc_' + _r>>
<div @id="'opt_buy_fruity_' + _r">
<<if $player.money < 5>>
<div class="link-internal" style="background: #ccc">
<<=_buyFruityLinkText>> (insufficient caps)
</div>
<<else>>
<<linkreplace `_buyFruityLinkText`>>
<<run $('#opt_buy_strong_' + _r + ', #opt_buy_ask_' + _r + ', #' + _fruityDescId + ', #' + _strongDescId + ', #' + _askDescId).hide()>>
<<set _herCost = 5>>
<<set _herHappyGain = 2>>
<<set _herSubGain = 1>>
<<set _herCorruptionGain = 0>>
<<set _herDrinkStrong = false>>
<<set _herDrunkGain = randomInteger(10, 20)>>
<<set _herDrinkName = setup.getRandomElement(setup.barDrinkNames.fruity)>>
<<set $player.money -= _herCost>>
<<set $tmpGirl.drunk = Math.min(99, ($tmpGirl.drunk ?? 0) + _herDrunkGain)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + _herHappyGain, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + _herSubGain, 100)>>
You order <<=_himOrHer>> a <<=_herDrinkName>>, something sweet and bright, and slide it across the bar to <<=_himOrHer>>.
<<include 'NPC offer bar drink - after her drink'>>
<</linkreplace>>
<<linkdesc _fruityDescId>>
Happiness +2 • Submission +1 • Drunk +10-20 • Caps -5
<</linkdesc>>
<</if>>
</div>
<div @id="'opt_buy_strong_' + _r">
<<if $player.money < 7>>
<div class="link-internal" style="background: #ccc">
<<=_buyStrongLinkText>> (insufficient caps)
</div>
<<else>>
<<linkreplace `_buyStrongLinkText`>>
<<run $('#opt_buy_fruity_' + _r + ', #opt_buy_ask_' + _r + ', #' + _fruityDescId + ', #' + _strongDescId + ', #' + _askDescId).hide()>>
<<set _herCost = 7>>
<<set _herHappyGain = 1>>
<<set _herSubGain = 2>>
<<set _herCorruptionGain = 1>>
<<set _herDrinkStrong = true>>
<<set _herDrunkGain = randomInteger(20, 40)>>
<<set _herDrinkName = setup.getRandomElement(setup.barDrinkNames.strong)>>
<<set $player.money -= _herCost>>
<<set $tmpGirl.drunk = Math.min(99, ($tmpGirl.drunk ?? 0) + _herDrunkGain)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + _herHappyGain, 100)>>
<<set $tmpGirl.corruption = Math.min(($tmpGirl.corruption ?? 0) + _herCorruptionGain, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + _herSubGain, 100)>>
You order <<=_himOrHer>> a <<=_herDrinkName>>, something with a serious kick to it, and set it down in front of <<=_himOrHer>>.
<<include 'NPC offer bar drink - after her drink'>>
<</linkreplace>>
<<linkdesc _strongDescId>>
Happiness +1 • Corruption +1 • Submission +2 • Drunk +20-40 • Caps -7
<</linkdesc>>
<</if>>
</div>
<div @id="'opt_buy_ask_' + _r">
<<if $player.money < 5>>
<div class="link-internal" style="background: #ccc">
<<=_askLinkText>> (insufficient caps)
</div>
<<else>>
<<linkreplace `_askLinkText`>>
<<run $('#opt_buy_fruity_' + _r + ', #opt_buy_strong_' + _r + ', #' + _fruityDescId + ', #' + _strongDescId + ', #' + _askDescId).hide()>>
<<set _askTier = setup.getWhippitDrunkTier($tmpGirl.drunk)>>
<<set _askDeclines = ['tipsy', 'drunk', 'drunk90'].includes(_askTier) && setup.percentageChance($tmpGirl.drunk ?? 0)>>
<<if _askDeclines>>
You ask <<=_himOrHer>> what <<=_heOrShe>>'d like. <<=ucfirst(_heOrShe)>> thinks it over for a second, then shakes <<=_hisOrHer>> head.
<br /><br />
<<sayNpc $tmpGirl>>I think I'm good for now, but thank you.<</sayNpc>>
<br /><br />
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
<<else>>
<<set _herDrinkStrong = !setup.percentageChance(50 + ($tmpGirl.drunk ?? 0) / 2)>>
<<set _herHappyGain = 3>>
<<set _herSubGain = 0>>
<<set _herCorruptionGain = 0>>
<<if _herDrinkStrong>>
<<set _herCost = 7>>
<<set _herDrunkGain = randomInteger(20, 40)>>
<<set _herDrinkName = setup.getRandomElement(setup.barDrinkNames.strong)>>
<<set _askLine = setup.getRandomElement(setup.barDrinkAskLines.strong)>>
<<else>>
<<set _herCost = 5>>
<<set _herDrunkGain = randomInteger(10, 20)>>
<<set _herDrinkName = setup.getRandomElement(setup.barDrinkNames.fruity)>>
<<set _askLine = setup.getRandomElement(setup.barDrinkAskLines.fruity)>>
<</if>>
<<set $player.money -= _herCost>>
<<set $tmpGirl.drunk = Math.min(99, ($tmpGirl.drunk ?? 0) + _herDrunkGain)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + _herHappyGain, 100)>>
<<set $tmpGirl.corruption = Math.min(($tmpGirl.corruption ?? 0) + _herCorruptionGain, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + _herSubGain, 100)>>
You ask <<=_himOrHer>> what <<=_heOrShe>>'d like. <<=ucfirst(_heOrShe)>> thinks it over for a second.
<br /><br />
<<sayNpc $tmpGirl>><<=_askLine>><</sayNpc>>
<br />
You order <<=_himOrHer>> a <<=_herDrinkName>>.
<<include 'NPC offer bar drink - after her drink'>>
<</if>>
<</linkreplace>>
<<linkdesc _askDescId>>
Happiness +3 • Drunk ?? • Caps ??
<</linkdesc>>
<</if>>
</div><<set _mcLightDescId = 'opt_mc_light_desc_' + _r>>
<<set _mcStrongDescId = 'opt_mc_strong_desc_' + _r>>
<<set _mcNoneDescId = 'opt_mc_none_desc_' + _r>>
<br /><br />
You could use a drink yourself.
<br /><br />
<div @id="'opt_mc_light_' + _r">
<<if $player.money < 5>>
<div class="link-internal" style="background: #ccc">
Have a light drink yourself (insufficient caps)
</div>
<<else>>
<<linkreplace 'Have a light drink yourself'>>
<<run $('#opt_mc_strong_' + _r + ', #opt_mc_none_' + _r + ', #' + _mcLightDescId + ', #' + _mcStrongDescId + ', #' + _mcNoneDescId).hide()>>
<<set $player.money -= 5>>
<<set _mcDrinkChoice = 'mild'>>
<<set _preMcDrunk = $player.drunk ?? 0>>
<<set $player = setup.drink($player, 1, 20)>>
<<set _mcDrunkGain = $player.drunk - _preMcDrunk>>
<<if $player.drunk > 75>>
<<perkAdd 'drunk'>>
<</if>>
You order yourself something light to match.
<<if $player.drunk >= 100>>
<<include 'NPC offer bar drink - passed out'>>
<<else>>
<<include 'NPC offer bar drink - reaction'>>
<</if>>
<</linkreplace>>
<<linkdesc _mcLightDescId>>
Your Drunk ~+15-25 • Caps -5
<</linkdesc>>
<</if>>
</div>
<div @id="'opt_mc_strong_' + _r">
<<if $player.money < 7>>
<div class="link-internal" style="background: #ccc">
Have a strong drink yourself (insufficient caps)
</div>
<<else>>
<<linkreplace 'Have a strong drink yourself'>>
<<run $('#opt_mc_light_' + _r + ', #opt_mc_none_' + _r + ', #' + _mcLightDescId + ', #' + _mcStrongDescId + ', #' + _mcNoneDescId).hide()>>
<<set $player.money -= 7>>
<<set _mcDrinkChoice = 'strong'>>
<<set _preMcDrunk = $player.drunk ?? 0>>
<<set $player = setup.drink($player, 1, 35)>>
<<set _mcDrunkGain = $player.drunk - _preMcDrunk>>
<<if $player.drunk > 75>>
<<perkAdd 'drunk'>>
<</if>>
You order yourself something with real bite to it.
<<if $player.drunk >= 100>>
<<include 'NPC offer bar drink - passed out'>>
<<else>>
<<include 'NPC offer bar drink - reaction'>>
<</if>>
<</linkreplace>>
<<linkdesc _mcStrongDescId>>
Your Drunk ~+30-40 • Caps -7
<</linkdesc>>
<</if>>
</div>
<div @id="'opt_mc_none_' + _r">
<<linkreplace "I'm good">>
<<run $('#opt_mc_light_' + _r + ', #opt_mc_strong_' + _r + ', #' + _mcLightDescId + ', #' + _mcStrongDescId + ', #' + _mcNoneDescId).hide()>>
<<set _mcDrinkChoice = 'none'>>
You decide to hold off and let <<=_himOrHer>> have this one to herself.
<<include 'NPC offer bar drink - reaction'>>
<</linkreplace>>
<<linkdesc _mcNoneDescId>>
No cost, no effect
<</linkdesc>>
</div><<set _herBucket = _herDrinkStrong ? 'strong' : 'mild'>>
<<set _comboKey = (_mcDrinkChoice === 'none') ? 'abstain_' + _herBucket : _herBucket + '_' + (_mcDrinkChoice === 'strong' ? 'strong' : 'mild')>>
<<set _comboPool = setup.barDrinkComboReactions[_comboKey] ?? []>>
<<set _comboLine = _comboPool.length ? setup.getRandomElement(_comboPool) : ''>>
<br /><br />
<<if _comboLine>>
<<sayNpc $tmpGirl>><<=_comboLine>><</sayNpc>>
<br />
<</if>>
<<set _barTier = setup.getWhippitDrunkTier($tmpGirl.drunk)>>
<<set _thankLine = setup.getRandomElement(setup.barDrinkThankYouLines)>>
<<set _tierData = setup.barDrinkTierAddendums[_barTier] ?? null>>
<<set _tierLine = _tierData ? setup.getRandomElement(_tierData.lines) : ''>>
<<set _tierExtra = (_tierData && _tierData.extraIfStrong && _herDrinkStrong) ? _tierData.extraIfStrong : ''>>
<<sayNpc $tmpGirl>>
<<=_thankLine>><<if _tierLine>> <<=_tierLine>><</if>><<if _tierExtra>> <<=_tierExtra>><</if>>
<</sayNpc>>
<<set _injured = false>>
<<if _barTier === 'drunk'>>
<<set _injured = setup.percentageChance(5)>>
<<if _injured>>
<br /><br />
<div class="injury-alert">
⚠ Before you can say anything else, <<=_heOrShe>> turns pale and throws up right there at the bar. There's no finishing the break like this; <<=_heOrShe>> needs to be taken to the hospital. 🚑
</div>
<<set $tmpGirl.sick = { days: 1, desc: 'Threw up after one too many at the bar', id: 'bar_drink_injury' }>>
<</if>>
<<elseif _barTier === 'drunk90'>>
<br /><br />
Behind the bar, the bartender glances over, watching <<=_himOrHer>> with a flicker of concern.
<<set _injured = setup.percentageChance(10)>>
<<if _injured>>
<br /><br />
<div class="injury-alert">
⚠ <<=ucfirst(_hisOrHer)>> eyes roll back and <<=_heOrShe>> goes limp against the bar, out cold. You need to get <<=_himOrHer>> to the hospital to sleep it off. 🚑
</div>
<<set $tmpGirl.sick = { days: 2, desc: 'Blacked out after one too many at the bar', id: 'bar_drink_injury' }>>
<</if>>
<</if>>
<br /><br />
<<set _barGoodwillDelta = (_barTier === 'drunk90' ? -2 : 0) + (_injured ? -5 : 0)>>
<<set $player.goodwill += _barGoodwillDelta>>
<<set _statSummary = 'Happiness +' + _herHappyGain + (_herSubGain ? ' • Submission +' + _herSubGain : '') + (_herCorruptionGain ? ' • Corruption +' + _herCorruptionGain : '') + ' • Drunk +' + _herDrunkGain + ' • Caps -' + _herCost + (_mcDrinkChoice !== 'none' ? ' • Your Drunk +' + _mcDrunkGain + ' • Your Caps -' + (_mcDrinkChoice === 'strong' ? 7 : 5) : '') + (_barGoodwillDelta ? ' • Goodwill ' + (_barGoodwillDelta >= 0 ? '+' : '') + _barGoodwillDelta : '')>>
<<if _injured>>
<div>
<<link 'Leave'>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<</if>>
<<unset $slaveId, $guestId, $charId>>
<<goto _workLocationBack>>
<</link>>
<div class="link-desc"><<=_statSummary>></div>
</div>
<<else>>
<<set _alcoholLikedByNpc = ($tmpGirl.likes ?? []).includes('alcohol')>>
<<set _sexChance = _alcoholLikedByNpc ? 100 : Math.round((($tmpGirl.drunk ?? 0) + ($tmpGirl.horny ?? 0)) / 2)>>
<<if !($tmpGirl.likesGuys ?? true)>>
<<set _sexChance = _sexChance / 2>>
<</if>>
<<set _hadSexOpportunity = !_incestBlocked && setup.percentageChance(_sexChance)>>
<<if _hadSexOpportunity>>
<<if _mcDrinkChoice === 'none'>>
You can see by the way <<=_heOrShe>>'s loosening up, moving to the music, that <<=_heOrShe>> wouldn't mind extending this break somewhere private.
<<else>>
<<=ucfirst(_heOrShe)>> starts to vibe to the music and the alcohol, dancing against you and whispering that <<=_heOrShe>> wouldn't mind taking this somewhere away from the crowd.
<</if>>
<<set _takeUpLinkText = 'Take ' + _himOrHer + ' up on the offer'>>
<<set _takeSomewhereLinkText = 'Take ' + _himOrHer + ' somewhere private'>>
<<set _stepUpLinkText = 'Step up to the hole'>>
<<set _pushStallLinkText = 'Push ' + _himOrHer + ' into a stall'>>
<<set _continueLinkText = (_mcDrinkChoice === 'none') ? _takeSomewhereLinkText : _takeUpLinkText>>
<<if $tmpGirl.assignedTo === 'nightclub' && ($game.location.gloryhole ?? false)>>
<br /><br />
<div @id="'btn_bardrink_gloryhole_' + _r">
<<linkreplace 'Follow her to the glory hole'>>
<<run $('#btn_bardrink_bathroom_' + _r + ', #btn_bardrink_leave_' + _r).hide()>>
<<=ucfirst(_heOrShe)>> slips off toward the bathroom wall, still swaying to the beat, and taps twice to let you know <<=_heOrShe>>'s ready on the other side.
<br /><br />
<<link `_stepUpLinkText`>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'gloryhole'>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div @id="'btn_bardrink_bathroom_' + _r">
<<linkreplace 'Lead her to the bathroom'>>
<<run $('#btn_bardrink_gloryhole_' + _r + ', #btn_bardrink_leave_' + _r).hide()>>
You take <<=_himOrHer>> by the hand and lead <<=_himOrHer>> to the bathroom instead, no wall between you to get in the way this time.
<br /><br />
<<link `_pushStallLinkText`>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'nightclub'>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<br /><br />
<div @id="'btn_bardrink_onhouse_' + _r">
<<link `_continueLinkText`>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
</div>
<</if>>
<div @id="'btn_bardrink_leave_' + _r">
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
<div class="link-desc"><<=_statSummary>> (either option)</div>
</div>
<<elseif !_incestBlocked>>
<div @id="'btn_bardrink_another_' + _r">
<<linkreplace 'Buy her another drink'>>
<<run $('#btn_bardrink_decline_leave_' + _r + ', #btn_bardrink_another_desc_' + _r).hide()>>
<<set _acceptAnotherChance = 100 - ($tmpGirl.drunk ?? 0)>>
<<if !($tmpGirl.likesGuys ?? true)>>
<<set _acceptAnotherChance = _acceptAnotherChance / 2>>
<</if>>
<<set _sheDeclines = !setup.percentageChance(_acceptAnotherChance)>>
<<if _sheDeclines>>
<<=ucfirst(_heOrShe)>> smiles and shakes <<=_hisOrHer>> head. "I think I'm good for now, but thank you."
<br /><br />
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
<<else>>
<<include 'NPC offer bar drink - cycle'>>
<</if>>
<</linkreplace>>
</div>
<div @id="'btn_bardrink_decline_leave_' + _r">
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
</div>
<div @id="'btn_bardrink_another_desc_' + _r" class="link-desc"><<=_statSummary>> (either option)</div>
<<else>>
<div>
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
<div class="link-desc"><<=_statSummary>></div>
</div>
<</if>>
<</if>><br /><br />
The bar starts to tilt sideways, the noise around you smearing into one long note, and before you can get a word out, everything goes dark.
<br /><br />
<<if $tmpGirl.assignedTo === 'strip_club'>>
You come to on a couch in the back office, a blanket someone tossed over you and a glass of water on the table. You're not entirely sure whether it was <<=setup.displayName($tmpGirl)>>, one of the other dancers, or Isabel herself who dragged you back here — nobody's saying, and you're in no state to ask.
<<addhours 2>>
<<set $player.drunk = 75>>
<br /><br />
<div>
<<link 'Continue'>>
<<goto 'Strip Club - office'>>
<</link>>
</div>
<<else>>
<<set _hasCompanions = Object.keys($player.companions ?? {}).length > 0>>
<<if _hasCompanions>>
Your companions get you upright and out the door before you can make more of a scene, hauling you the whole way back and putting you to bed.
<<set _travelHours = ($player.horse ?? false) ? 2 : 4>>
<<addhours 2 + _travelHours>>
<<set $player.drunk = 50>>
<br /><br />
<div>
<<link 'Continue'>>
<<goto 'Wood cabin'>>
<</link>>
</div>
<<else>>
<<set _nightclubWorkers = setup.getNpcsForLocations(($guests ?? []).concat($slaves ?? []), ['nightclub']).filter(function (npc) { return setup.isAtWork(npc, $weather); })>>
<<if _nightclubWorkers.length>>
One of the girls still on shift notices you're not getting back up on your own, and between her and the bouncer they walk you out and get you back to your office in the city to sleep it off.
<<addhours 2>>
<<addmins 30>>
<<set $player.drunk = 75>>
<br /><br />
<div>
<<link 'Continue'>>
<<goto 'Underground city office'>>
<</link>>
</div>
<<else>>
<<set _lossPercent = 20>>
<<set _capsMissing = Math.floor($player.money * (_lossPercent / 100))>>
Nobody's left on the floor in any state to notice, and you come to face-down, the club gone quiet around you, your skull pounding like someone set off a mine inside it.
<br /><br />
Out of old habit, you check your pockets. Emptier than they should be.
<<if _capsMissing>>
<br /><br />
<strong>You lost <<=_capsMissing>> caps</strong>
<<set $player.money -= _capsMissing>>
<</if>>
<<addhours 2>>
<<set $player.drunk = 75>>
<br /><br />
<div>
<<link 'Continue'>>
<<goto 'Underground city'>>
<</link>>
</div>
<</if>>
<</if>>
<</if>><h1 class="ptitle">OUTSIDE</h1>
<br />
<<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
The <<=setup.displayName($tmpGirl)>>'s gaze flickers to the bottle as you approach, curiosity sparking in <<=_hisOrHer>> eyes.
Without a word, you offer <<=_himOrHer>> a glass, the bubbles dancing in the dim light of a flickering street lamp.
<br /><br />
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<<if $tmpGirl.pregnancy > 10 && setup.percentageChance(50)>>
<<sayNpc $tmpGirl>>
I will have to decline as I am pregnant. I really don't want to hurt the baby.
<</sayNpc>>
<br />
<<else>>
<<=setup.pronounceWhos($tmpGirl, true)>> initial surprise gives way to a cautious smile as <<=_heOrShe>> accepts the glass, the effervescence of the champagne a stark contrast to the harsh realities of their world.
<<=setup.pronounceWhos($tmpGirl, true)>> raises bottle of champagne.
<br /><br />
<<sayNpc $tmpGirl>>
A taste of luxury in the midst of chaos
<</sayNpc>>
<br />
<center>
<<actionImage $tmpGirl 'drink'>>
</center>
<br /><br />
Sitting together on the bench, surrounded by the sounds of the settlement's inhabitants going about their daily routines, you share stories of survival and moments of fleeting joy.
The champagne serves as a reminder that even in the darkest of times, there are still moments worth savoring, connections worth forging.
<br /><br />
As the time deepens and the stars twinkle faintly through the haze of pollution, the <<=setup.displayName($tmpGirl)>> continues to drink, indulging in the rare luxury.
<<=setup.pronounceWhos($tmpGirl, true)>> speech becomes slurred, and laughter spills out uncontrollably.
It's evident <<=_heOrShe>>'s become quite drunk, <<=_himOrHer>> guard lowered as <<=_heOrShe>> shares tales of <<=_hisOrHer>> past with increasing openness and sentimentality.
<br /><br />
Eventually, as the champagne runs dry, <<=_heOrShe>> leans heavily on your shoulder, <<=_hisOrHer>> words now a jumble of gratitude and nostalgia for a world long lost.
<br /><br />
<<run setup.cabinInventory.drop('champagne', 1)>>
<<sayNpc $tmpGirl>>
Wow! I am really drunk... Thank god the bottle is empty as I couldn't stop..
<</sayNpc>>
<br />
<strong>You both are drunk!</strong>
<<perkAdd 'drunk'>>
<<set $tmpGirl.drunk = 89>>
<<set $tmpGirl.happy += Math.min(100, $tmpGirl.happy + randomInteger(5, 10))>>
<br /><br />
<</if>>
<<link 'Leave'>>
<<goto 'NPC view - guest'>>
<</link>><h1 class="ptitle">BASEMENT</h1>
<br />
<<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _begLinkText = 'Make ' + _himOrHer + ' beg for it'>>
<<set $tmpGirl.offeredFood = true>>
<<if typeof $slaveId !== 'undefined'>><<set $slaves[$slaveId].offeredFood = true>><</if>>
<<set _isFeral = ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
The stairs to the basement are narrow and the air turns cold before you reach the bottom. You push open the heavy door and the single overhead bulb fills the cell with pale, flat light. <<=ucfirst(_heOrShe)>> hears you on the stairs — already turned toward the door when you step through, <<=_hisOrHer>> eyes going straight to what you're carrying. The attention is immediate and total. <<=ucfirst(_heOrShe)>> studies what you've brought without appearing to study it, already working out what kind of day this is going to be.
<br /><br />
<img src="images/places/basement/offer_food_1.jpg" style="max-width: 100%; border-radius: 8px;">
<br /><br />
As you arrive at the cell, you lift the cover from the plate, revealing what you have decided <<=setup.displayName($tmpGirl)>> is worthy of...
<br /><br />
<div id="opt_scraps">
<<linkreplace 'Left over slop from the kitchen'>>
<<run $('#opt_plate, #opt_plate_desc, #opt_scraps_desc').hide()>>
<<set _girlVisual = $tmpGirl>>
You uncover what was left from the kitchen after the meal had cleared. The portions are uneven, a mix of slop and scraps nobody went back for. Edible, barely nourishing, but plainly what remained when the better parts were taken.
<br /><br />
<<set _mcLine = setup.getRandomElement(["It's better than wasting it.", "You look like you need this.", "You've been behaving yourself.", "You're looking thin.", "I keep what's mine in decent shape."])>>
<<you>>
<<=_mcLine>>
<</you>>
<br /><br />
<img src="images/places/basement/offer_food_2-slop.jpg" style="max-width: 100%; border-radius: 8px;">
<br /><br />
<<if _isFeral>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*looks at the food through the bars, then at you. After a moment, <<=_heOrShe>> moves closer to the bars and sniffs what you've brought, a disappointed expression, though <<=_heOrShe>> knows it's better than hunger*</em></div>
</div>
</div>
<<else>>
<<=ucfirst(_heOrShe)>> looks at the food, then at you — reading your face more than what you brought. You see <<=_himOrHer>> wince at the unappetizing appearance, but hunger wins out over preference.
<br /><br />
<<set _npcLines = ["Thank you.", "You didn't have to come down.", "I wasn't sure you'd bring anything today.", "It's more than I had.", "I'll eat."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcLines)>><</sayNpc>>
<</if>>
<br />
<<=ucfirst(_heOrShe)>> watches as you hold the plate outside the cell. <<=_hisOrHer>> eyes regard you, watching to see whether the food was a gift, or would call for something in return..
<br /><br />
<div id="opt_freely">
<<linkreplace 'Offer it freely'>>
<<run $('#opt_beg, #opt_freely_desc, #opt_beg_desc').hide()>>
<<set _girlVisual = $tmpGirl>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 10, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 5, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 5, 100)>>
<<set $player.goodwill += 5>>
You set it in <<=_hisOrHer>> reach and step back.
<br /><br />
<<set _mcLine = setup.getRandomElement(["I look after what's mine.", "You've been looking hungry lately.", "You've been keeping your head down. I notice that.", "You're looking thin. Eat.", "You've been good. Consider it acknowledged."])>>
<<you>>
<<=_mcLine>>
<</you>>
<br /><br />
<<if _isFeral>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*takes it quietly and sits down to eat, giving you a grateful nod*</em></div>
</div>
</div>
<<else>>
<<=ucfirst(_heOrShe)>> takes it. The look on <<=_hisOrHer>> face is careful, trying to place what the gesture means. <<=ucfirst(_heOrShe)>> expected something, or at least knew that something could be expected, and the plainness of it hasn't settled yet.
<br /><br />
<<set _npcLines = ["...Thank you.", "I wasn't sure what to expect.", "I'll make it last.", "I appreciate it.", "I didn't think you'd come today."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcLines)>><</sayNpc>>
<</if>>
<br />
<<if ($tmpGirl.likesGuys ?? true) && $tmpGirl.relationship > 0>>
<<if $tmpGirl.relationship < 20>>
<<=ucfirst(_heOrShe)>> is appreciative, but eyes you warily. <<=ucfirst(_heOrShe)>> knows little comes in this world without a price, and there is a begrudging air of acceptance that you will do as you wish.
<<elseif $tmpGirl.relationship < 50>>
In <<=_hisOrHer>> gratitude <<=_heOrShe>> looks receptive — not specifically inviting, but well aware that quid-pro-quo is the way of this world, and if that's what you want, the kindness was worth it.
<<else>>
Along with <<=_hisOrHer>> gratitude, <<=_heOrShe>> looks inviting, <<=_hisOrHer>> body language making clear that <<=_heOrShe>> is willing to reciprocate.
<</if>>
<br /><br />
<div id="btn_enter">
<<linkreplace 'Enter the cell'>>
<<run $('#btn_leave_freely').hide()>>
<<if $tmpGirl.relationship < 20>>
You step into the cell, letting the door close behind you. <<=ucfirst(_heOrShe)>> watches your approach without retreating — jaw set, eyes steady. <<=ucfirst(_heOrShe)>> knew this was coming the moment you set down the food. <<=ucfirst(_heOrShe)>> holds <<=_hisOrHer>> ground and waits, accepting what follows with the quiet resignation of someone who has stopped expecting anything free.
<<elseif $tmpGirl.relationship < 50>>
You step into the cell, letting the door close behind you. <<=ucfirst(_heOrShe)>> watches you with clear, steady eyes — not surprised, not resistant. <<=ucfirst(_heOrShe)>> understood the exchange from the moment you handed it over. <<=ucfirst(_heOrShe)>> shifts <<=_hisOrHer>> weight slightly and waits, willing enough to meet you halfway.
<<else>>
You step into the cell, letting the door close behind you. <<=ucfirst(_heOrShe)>> meets your eyes as you cross the room, something warmer than gratitude in <<=_hisOrHer>> expression. <<=ucfirst(_heOrShe)>> moves toward you — not waiting, not needing to be told — and offers <<=_himOrHer>>self with the ease of someone who genuinely wants to give something back.
<</if>>
<br /><br />
<<link 'Continue'>>
<<drop $backpack 'food' 1>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<div id="btn_leave_freely">
<<link 'Leave'>>
<<drop $backpack 'food' 1>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Relationship +10 • Submission +5 • Happiness +5 • Goodwill +5</div>
</div>
<</linkreplace>>
<<linkdesc 'opt_freely_desc'>>
Happiness +5 • Relationship +5 • Goodwill +5
<</linkdesc>>
</div>
<div id="opt_beg">
<<linkreplace _begLinkText>>
<<run $('#opt_freely, #opt_freely_desc, #opt_beg_desc').hide()>>
<<set _girlVisual = $tmpGirl>>
You hold the portion where <<=_heOrShe>> can see it but don't pass it through. You let the pause do its work.
<<if _isFeral>>
<<=ucfirst(_heOrShe)>> watches the food intently, nose working.
<br /><br />
You snap your fingers once and point to the floor.
<br /><br />
<<if setup.percentageChance($tmpGirl.sub * 2)>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*hesitates, then sinks slowly to her knees on the cold concrete, hands splayed, head lowering — a soft, whimpering sound in her throat as she stills, waiting*</em></div>
</div>
</div>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 10, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 10, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 3, 100)>>
<<=ucfirst(_heOrShe)>> looks submissive and receptive, body language open.
<br /><br />
<div id="btn_enter">
<<linkreplace 'Enter the cell'>>
<<run $('#btn_leave_beg').hide()>>
You step into the cell. <<=ucfirst(_heOrShe)>> is already waiting — head down, posture open. <<=ucfirst(_heOrShe)>> makes no sound. <<=ucfirst(_heOrShe)>> offers <<=_himOrHer>>self quietly, understanding that <<=_hisOrHer>> body belongs to you.
<br /><br />
<<link 'Continue'>>
<<drop $backpack 'food' 1>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_leave_beg">
<<link 'Leave'>>
<<drop $backpack 'food' 1>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Relationship +10 • Submission +10 • Happiness +3</div>
</div>
<<else>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*goes still — then bares her teeth, just slightly, and backs into the corner of the cell, eyes flat and watchful*</em></div>
</div>
</div>
<br /><br />
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 10, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 5, -100)>>
<<set $tmpGirl.sub = Math.max($tmpGirl.sub - 3, 0)>>
<<set $player.goodwill -= 5>>
<<set _rackLinkText = 'Take ' + _himOrHer + ' out for punishment'>>
<<set _rackLinkTextRope = _rackLinkText + ' (-1 rope)'>>
<div id="btn_punish">
<<if $backpack.has('rope')>>
<<linkreplace `_rackLinkTextRope`>>
<<run $('#btn_forced, #btn_leave_fail').hide()>>
<<drop $backpack 'rope' 1>>
You pull open the cell door and step inside. <<=ucfirst(_heOrShe)>> backs against the far wall but there is nowhere to go — you take hold of <<=_himOrHer>> before <<=_heOrShe>> can offer any real resistance and pull <<=_himOrHer>> out toward the dungeon area. <<=ucfirst(_heOrShe)>> struggles against your grip but is no match for you. You bind <<=_hisOrHer>> arms with rope and secure <<=_himOrHer>> in place, positioning <<=_himOrHer>> for what comes next.
<br /><br />
<<link 'Continue'>>
<<goto 'NPC punish'>>
<</link>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
<<=_rackLinkText>> (requires rope)
</div>
<</if>>
</div>
<div id="btn_forced">
<<linkreplace 'Enter the cell (forced)'>>
<<run $('#btn_punish, #btn_leave_fail').hide()>>
You push open the cell door and step inside. <<=ucfirst(_heOrShe)>> reads it immediately — <<=_hisOrHer>> eyes go wide and <<=_heOrShe>> backs away. <<=ucfirst(_heOrShe)>> puts up a fight, but <<=_heOrShe>> is no match for you. You press <<=_himOrHer>> down and take what's yours.
<br /><br />
<<link 'Continue'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<set $sexForced = true>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_leave_fail">
<<link 'Leave'>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Happiness -10 • Submission +2 • Goodwill -5</div>
</div>
<</if>>
<<else>>
<<=ucfirst(_heOrShe)>> reads the hesitation correctly and goes still.
<br /><br />
<<set _mcLine = setup.getRandomElement(["Then get on your knees and ask for it.", "You know what you have to do.", "Kneel. Ask properly.", "If you want it, show me you want it.", "You'd better beg for it."])>>
<<you>>
<<=_mcLine>>
<</you>>
<br /><br />
<<if setup.percentageChance($tmpGirl.sub * 2)>>
<<=ucfirst(_heOrShe)>> hesitates. Then slowly sinks to <<=_hisOrHer>> knees on the cold concrete, hands open, head bowed. The words come out low and careful. <<=ucfirst(_heOrShe)>> knows exactly what this costs.
<br /><br />
<<set _npcLines = ["Please. I'll do anything. Just let me eat.", "Please. I know what I am here. I'm asking you.", "I'm begging you. Please.", "I won't cause trouble. I promise. Please.", "Please. I'm yours. Just... please."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcLines)>><</sayNpc>>
<br />
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 10, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 10, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 3, 100)>>
<<=ucfirst(_heOrShe)>> looks submissive and receptive, understanding that <<=_hisOrHer>> body is yours — to feed or to use as you please.
<br /><br />
<div id="btn_enter">
<<linkreplace 'Enter the cell'>>
<<run $('#btn_leave_beg').hide()>>
You step into the cell. <<=ucfirst(_heOrShe)>> is already waiting — head slightly lowered, posture open. <<=ucfirst(_heOrShe)>> doesn't speak. The food was enough to show <<=_himOrHer>> where things stand, and <<=_heOrShe>> has made <<=_hisOrHer>> peace with it. <<=ucfirst(_heOrShe)>> offers <<=_himOrHer>>self quietly, understanding that <<=_hisOrHer>> body belongs to you — to feed or to use as you see fit.
<br /><br />
<<link 'Continue'>>
<<drop $backpack 'food' 1>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_leave_beg">
<<link 'Leave'>>
<<drop $backpack 'food' 1>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Relationship +10 • Submission +10 • Happiness +3</div>
</div>
<<else>>
<<=ucfirst(_heOrShe)>> goes still. A long moment passes. Then <<=_heOrShe>> turns away and moves to the corner of the cell, putting <<=_hisOrHer>> back to you.
<br /><br />
<<set _npcLines = ["Keep it.", "I won't.", "Not for that.", "I'd rather go hungry.", "Do what you want. I'm not begging."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcLines)>><</sayNpc>>
<br />
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 10, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 5, -100)>>
<<set $tmpGirl.sub = Math.max($tmpGirl.sub - 3, 0)>>
<<set $player.goodwill -= 5>>
<<set _rackLinkText = 'Take ' + _himOrHer + ' out for punishment'>>
<<set _rackLinkTextRope = _rackLinkText + ' (-1 rope)'>>
<div id="btn_punish">
<<if $backpack.has('rope')>>
<<linkreplace `_rackLinkTextRope`>>
<<run $('#btn_forced, #btn_leave_fail').hide()>>
<<drop $backpack 'rope' 1>>
You pull open the cell door and step inside. <<=ucfirst(_heOrShe)>> backs against the far wall but there is nowhere to go — you take hold of <<=_himOrHer>> before <<=_heOrShe>> can offer any real resistance and pull <<=_himOrHer>> out toward the dungeon area. <<=ucfirst(_heOrShe)>> struggles against your grip but is no match for you. You secure <<=_himOrHer>> in place, binding <<=_hisOrHer>> arms with rope and positioning <<=_himOrHer>> for what comes next. <<=ucfirst(_heOrShe)>> goes still, bracing for the consequences of <<=_hisOrHer>> defiance.
<br /><br />
<<link 'Continue'>>
<<goto 'NPC punish'>>
<</link>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
<<=_rackLinkText>> (requires rope)
</div>
<</if>>
</div>
<div id="btn_forced">
<<linkreplace 'Enter the cell (forced)'>>
<<run $('#btn_punish, #btn_leave_fail').hide()>>
You push open the cell door and step inside, the look on your face saying everything. <<=ucfirst(_heOrShe)>> reads it immediately — <<=_hisOrHer>> eyes go wide, breath catching as <<=_heOrShe>> backs away. <<=ucfirst(_heOrShe)>> puts up a fight, hands against your chest, trying to twist free — but <<=_heOrShe>> is no match for you. You press <<=_himOrHer>> down and make it clear, in terms <<=_heOrShe>> cannot mistake, what it means to belong to you.
<br /><br />
<<link 'Continue'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<set $sexForced = true>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_leave_fail">
<<link 'Leave'>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Happiness -10 • Submission +2 • Goodwill -5</div>
</div>
<</if>>
<</if>>
<</linkreplace>>
<<linkdesc 'opt_beg_desc'>>
Happiness ?? • Relationship ?? • Submission ??
<</linkdesc>>
</div>
<</linkreplace>>
<<linkdesc 'opt_scraps_desc'>>
Relationship +5 • Submission +5
<</linkdesc>>
</div>
<div id="opt_plate">
<<linkreplace "A fresh plate from the day's meals">>
<<run $('#opt_scraps, #opt_scraps_desc, #opt_plate_desc').hide()>>
<<set _girlVisual = $tmpGirl>>
You uncover a full portion. The same as any other resident receives today, nothing held back and nothing added — but it is considerably more than <<=_heOrShe>> has gotten used to expecting. <<=ucfirst(_heOrShe)>> goes still when it's close enough to see clearly.
<br /><br />
<<set _mcLine = setup.getRandomElement(["Same as everyone else.", "Eat. It's hot.", "Don't read into it.", "It wasn't sitting right, leaving you with nothing.", "You need to keep your strength."])>>
<<you>>
<<=_mcLine>>
<</you>>
<br /><br />
<img src="images/places/basement/offer_food_2-fresh.jpg" style="max-width: 100%; border-radius: 8px;">
<br /><br />
<<if _isFeral>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*leans forward against the bars and sniffs towards the plate, <<=_hisOrHer>> stomach growling at the aroma, then looks back at you, waiting*</em></div>
</div>
</div>
<<else>>
<<=ucfirst(_heOrShe)>> stares at the plate, then at you. <<=_hisOrHer>> expression doesn't quite know where to land. <<=ucfirst(_heOrShe)>> looks at the appetizing plate through the bars as if uncertain it's real.
<br /><br />
<<set _npcLines = ["That's... the same as what the others get.", "You didn't have to do this.", "I don't understand.", "Is this from your own meal?", "This is more than I expected."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcLines)>><</sayNpc>>
<</if>>
<br />
<<=ucfirst(_heOrShe)>> watches as you hold the plate outside the cell. <<=_hisOrHer>> eyes regard you, watching to see whether the food was a gift, or would call for something in return..
<br /><br />
<div id="opt_freely">
<<linkreplace 'Offer it freely'>>
<<run $('#opt_beg, #opt_freely_desc, #opt_beg_desc').hide()>>
<<set _girlVisual = $tmpGirl>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 12, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 8, 100)>>
<<set $player.goodwill += 5>>
You pass it through and say nothing else. You take a step back.
<br /><br />
<<set _mcLine = setup.getRandomElement(["I wanted you eating properly.", "The others aren't getting this.", "You've been doing better. I notice that.", "I noticed the improvement. Eat well.", "You've earned a proper meal."])>>
<<you>>
<<=_mcLine>>
<</you>>
<br /><br />
<<if _isFeral>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*takes the plate and eats quickly, unselfconsciously, then looks up at you and rubs the side of her face against your arm in gratitude*</em></div>
</div>
</div>
<<else>>
Something shifts in <<=_hisOrHer>> expression. Not quite relief and not quite gratitude yet, but the beginning of both. <<=ucfirst(_heOrShe)>> pulls the plate closer and is quiet for a moment, composing <<=_hisOrHer>> face into something more measured.
<br /><br />
<<set _npcLines = ["Thank you. I mean it.", "I didn't expect this.", "...You didn't have to.", "I've been trying to do better.", "I won't forget this."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcLines)>><</sayNpc>>
<</if>>
<br />
<<if ($tmpGirl.likesGuys ?? true) && $tmpGirl.relationship > 0>>
<<if $tmpGirl.relationship < 20>>
<<=ucfirst(_heOrShe)>> is appreciative, but eyes you warily. <<=ucfirst(_heOrShe)>> knows little comes in this world without a price, and there is a begrudging air of acceptance that you will do as you wish.
<<elseif $tmpGirl.relationship < 50>>
In <<=_hisOrHer>> gratitude <<=_heOrShe>> looks receptive — not specifically inviting, but well aware that quid-pro-quo is the way of this world, and if that's what you want, the kindness was worth it.
<<else>>
Along with <<=_hisOrHer>> gratitude, <<=_heOrShe>> looks inviting, <<=_hisOrHer>> body language making clear that <<=_heOrShe>> is willing to reciprocate.
<</if>>
<br /><br />
<div id="btn_enter">
<<linkreplace 'Enter the cell'>>
<<run $('#btn_leave_freely').hide()>>
<<if $tmpGirl.relationship < 20>>
You step into the cell, letting the door close behind you. <<=ucfirst(_heOrShe)>> watches your approach without retreating — jaw set, eyes steady. <<=ucfirst(_heOrShe)>> knew this was coming the moment you set down the food. <<=ucfirst(_heOrShe)>> holds <<=_hisOrHer>> ground and waits, accepting what follows with the quiet resignation of someone who has stopped expecting anything free.
<<elseif $tmpGirl.relationship < 50>>
You step into the cell, letting the door close behind you. <<=ucfirst(_heOrShe)>> watches you with clear, steady eyes — not surprised, not resistant. <<=ucfirst(_heOrShe)>> understood the exchange from the moment you handed it over. <<=ucfirst(_heOrShe)>> shifts <<=_hisOrHer>> weight slightly and waits, willing enough to meet you halfway.
<<else>>
You step into the cell, letting the door close behind you. <<=ucfirst(_heOrShe)>> meets your eyes as you cross the room, something warmer than gratitude in <<=_hisOrHer>> expression. <<=ucfirst(_heOrShe)>> moves toward you — not waiting, not needing to be told — and offers <<=_himOrHer>>self with the ease of someone who genuinely wants to give something back.
<</if>>
<br /><br />
<<link 'Continue'>>
<<drop $backpack 'food' 1>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<div id="btn_leave_freely">
<<link 'Leave'>>
<<drop $backpack 'food' 1>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Relationship +12 • Happiness +8 • Goodwill +5</div>
</div>
<</linkreplace>>
<<linkdesc 'opt_freely_desc'>>
Happiness +5 • Relationship +5 • Goodwill +5
<</linkdesc>>
</div>
<div id="opt_beg">
<<linkreplace _begLinkText>>
<<run $('#opt_freely, #opt_freely_desc, #opt_beg_desc').hide()>>
<<set _girlVisual = $tmpGirl>>
You set the plate where <<=_heOrShe>> can see it — close enough to smell — but don't pass it through.
<<if _isFeral>>
<<=ucfirst(_heOrShe)>> watches the plate intently, nose working.
<br /><br />
You snap your fingers once and point to the floor.
<br /><br />
<<if setup.percentageChance($tmpGirl.sub * 2)>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*hesitates, then sinks to her knees on the cold concrete, head bowing — a small, whimpering sound, and she stays there, waiting*</em></div>
</div>
</div>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 12, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 6, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 5, 100)>>
<<=ucfirst(_heOrShe)>> looks submissive and receptive, body language open.
<br /><br />
<div id="btn_enter">
<<linkreplace 'Enter the cell'>>
<<run $('#btn_leave_beg').hide()>>
You step into the cell. <<=ucfirst(_heOrShe)>> is already waiting — head down, posture open. <<=ucfirst(_heOrShe)>> makes no sound. <<=ucfirst(_heOrShe)>> offers <<=_himOrHer>>self quietly, understanding that <<=_hisOrHer>> body belongs to you.
<br /><br />
<<link 'Continue'>>
<<drop $backpack 'food' 1>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_leave_beg">
<<link 'Leave'>>
<<drop $backpack 'food' 1>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Relationship +12 • Happiness +6 • Submission +5</div>
</div>
<<else>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*goes still — then bares her teeth, just slightly, and backs to the corner, eyes flat and watchful*</em></div>
</div>
</div>
<br /><br />
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 10, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 5, -100)>>
<<set $tmpGirl.sub = Math.max($tmpGirl.sub - 3, 0)>>
<<set $player.goodwill -= 5>>
<<set _rackLinkText = 'Take ' + _himOrHer + ' out for punishment'>>
<<set _rackLinkTextRope = _rackLinkText + ' (-1 rope)'>>
<div id="btn_punish">
<<if $backpack.has('rope')>>
<<linkreplace `_rackLinkTextRope`>>
<<run $('#btn_forced, #btn_leave_fail').hide()>>
<<drop $backpack 'rope' 1>>
You pull open the cell door and step inside. <<=ucfirst(_heOrShe)>> backs against the far wall but there is nowhere to go — you take hold of <<=_himOrHer>> before <<=_heOrShe>> can offer any real resistance and pull <<=_himOrHer>> out toward the dungeon area. <<=ucfirst(_heOrShe)>> struggles but is no match for you. You bind <<=_hisOrHer>> arms with rope and secure <<=_himOrHer>> in place, positioning <<=_himOrHer>> for what comes next.
<br /><br />
<<link 'Continue'>>
<<goto 'NPC punish'>>
<</link>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
<<=_rackLinkText>> (requires rope)
</div>
<</if>>
</div>
<div id="btn_forced">
<<linkreplace 'Enter the cell (forced)'>>
<<run $('#btn_punish, #btn_leave_fail').hide()>>
You push open the cell door and step inside. <<=ucfirst(_heOrShe)>> reads it immediately — <<=_hisOrHer>> eyes go wide and <<=_heOrShe>> backs away. <<=ucfirst(_heOrShe)>> puts up a fight, but <<=_heOrShe>> is no match for you. You press <<=_himOrHer>> down and take what's yours.
<br /><br />
<<link 'Continue'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<set $sexForced = true>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_leave_fail">
<<link 'Leave'>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Happiness -10 • Submission +2 • Goodwill -5</div>
</div>
<</if>>
<<else>>
You wait. The quality of what's there is obvious, and so is the fact that it hasn't moved.
<br /><br />
<<set _mcLine = setup.getRandomElement(["This kind of meal has a price. You know what it is.", "Kneel. Ask me properly.", "If you want it, you beg for it.", "You know what to do first.", "Show me you understand your place, and it's yours."])>>
<<you>>
<<=_mcLine>>
<</you>>
<br /><br />
<<if setup.percentageChance($tmpGirl.sub * 2)>>
<<=ucfirst(_heOrShe)>> goes quiet. Then slowly drops to <<=_hisOrHer>> knees on the cold concrete, hands folded, head down. <<=ucfirst(_heOrShe)>> is willing to give anything just to survive another day.
<br /><br />
<<set _npcLines = ["Please. I'll do whatever you ask. Just... please.", "Please. I know what this is. I know what I am. Please.", "I'm begging you. Please let me have it.", "Please. I'm yours. I know that. Just let me eat.", "I'll be good. I'll do anything. Please."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcLines)>><</sayNpc>>
<br />
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 12, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 6, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 5, 100)>>
<<=ucfirst(_heOrShe)>> looks submissive and receptive, understanding that <<=_hisOrHer>> body is yours — to feed or to use as you please.
<br /><br />
<div id="btn_enter">
<<linkreplace 'Enter the cell'>>
<<run $('#btn_leave_beg').hide()>>
You step into the cell. <<=ucfirst(_heOrShe)>> is already waiting — head slightly lowered, posture open. <<=ucfirst(_heOrShe)>> doesn't speak. The food was enough to show <<=_himOrHer>> where things stand, and <<=_heOrShe>> has made <<=_hisOrHer>> peace with it. <<=ucfirst(_heOrShe)>> offers <<=_himOrHer>>self quietly, understanding that <<=_hisOrHer>> body belongs to you — to feed or to use as you see fit.
<br /><br />
<<link 'Continue'>>
<<drop $backpack 'food' 1>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_leave_beg">
<<link 'Leave'>>
<<drop $backpack 'food' 1>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Relationship +12 • Happiness +6 • Submission +5</div>
</div>
<<else>>
The plate sits between you. <<=ucfirst(_heOrShe)>> looks at it, then at you. <<=_hisOrHer>> jaw sets and <<=_heOrShe>> steps back to the far corner, hands at <<=_hisOrHer>> sides.
<br /><br />
<<set _npcLines = ["I'm not doing that.", "Keep it.", "Not for anything.", "I'd rather starve.", "You can have it back."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcLines)>><</sayNpc>>
<br />
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 10, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 5, -100)>>
<<set $tmpGirl.sub = Math.max($tmpGirl.sub - 3, 0)>>
<<set $player.goodwill -= 5>>
<<set _rackLinkText = 'Take ' + _himOrHer + ' out for punishment'>>
<<set _rackLinkTextRope = _rackLinkText + ' (-1 rope)'>>
<div id="btn_punish">
<<if $backpack.has('rope')>>
<<linkreplace `_rackLinkTextRope`>>
<<run $('#btn_forced, #btn_leave_fail').hide()>>
<<drop $backpack 'rope' 1>>
You pull open the cell door and step inside. <<=ucfirst(_heOrShe)>> backs against the far wall but there is nowhere to go — you take hold of <<=_himOrHer>> before <<=_heOrShe>> can offer any real resistance and pull <<=_himOrHer>> out toward the dungeon area. <<=ucfirst(_heOrShe)>> struggles against your grip but is no match for you. You secure <<=_himOrHer>> in place, binding <<=_hisOrHer>> arms and positioning <<=_himOrHer>> for what comes next. <<=ucfirst(_heOrShe)>> goes still, bracing for the consequences of <<=_hisOrHer>> defiance.
<br /><br />
<<link 'Continue'>>
<<goto 'NPC punish'>>
<</link>>
<</linkreplace>>
<<else>>
<div class="link-internal disabled" style="background: #ccc">
<<=_rackLinkText>> (requires rope)
</div>
<</if>>
</div>
<div id="btn_forced">
<<linkreplace 'Enter the cell (forced)'>>
<<run $('#btn_punish, #btn_leave_fail').hide()>>
You push open the cell door and step inside, the look on your face saying everything. <<=ucfirst(_heOrShe)>> reads it immediately — <<=_hisOrHer>> eyes go wide, breath catching as <<=_heOrShe>> backs away. <<=ucfirst(_heOrShe)>> puts up a fight, hands against your chest, trying to twist free — but <<=_heOrShe>> is no match for you. You press <<=_himOrHer>> down and make it clear, in terms <<=_heOrShe>> cannot mistake, what it means to belong to you.
<br /><br />
<<link 'Continue'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<set $sexForced = true>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_leave_fail">
<<link 'Leave'>>
<<goto 'NPC view'>>
<</link>>
<div class="link-desc">Relationship +2 • Happiness -7 • Submission -3 • Goodwill -5</div>
</div>
<</if>>
<</if>>
<</linkreplace>>
<<linkdesc 'opt_beg_desc'>>
Happiness ?? • Relationship ?? • Submission ??
<</linkdesc>>
</div>
<</linkreplace>>
<<linkdesc 'opt_plate_desc'>>
Relationship +7 • Happiness +3
<</linkdesc>>
</div><<set _goodwillDelta = _goodwillDelta ?? 0>>
<<set _goodwillPart = _goodwillDelta ? ' • Goodwill ' + (_goodwillDelta >= 0 ? '+' : '') + _goodwillDelta : ''>>
<<set _reactionPct = _mcJoined ? 100 : ($tmpGirl.relationship + (_sodaLikedByNpc ? 10 : 0))>>
<<set _reactionPositive = _mcJoined || setup.percentageChance(_reactionPct)>>
<<if _reactionPositive>>
<<if _mcJoined>>
<<set _reactHappy = 1>>
<<set _reactRel = 2>>
<<set _reactSub = -3>>
<<set _preSprayJoinSub = $tmpGirl.sub>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100)>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 2, 100)>>
<<set $tmpGirl.sub = Math.max($tmpGirl.sub - 3, 0)>>
<<=ucfirst(_heOrShe)>> stares at you a second, soda dripping down your front, then breaks into laughter so hard <<=_heOrShe>> nearly drops <<=_hisOrHer>> own can. Whatever this was supposed to be, you've turned it into something the two of you did together instead of something done to <<=_himOrHer>>.
<br /><br />
<<if _preSprayJoinSub < 20>>
<<set _joinLines = [
"Ha! Serves you right. Now we're even.",
"Good. Now you know how it feels.",
"Well, look at that — you're just as much of a mess as me now, " + setup.npc.mcName($tmpGirl) + ".",
"Guess karma didn't waste any time with you, " + setup.npc.mcName($tmpGirl) + "."
]>>
<<elseif _preSprayJoinSub < 50>>
<<set _joinLines = [
"Okay, that's actually kind of adorable. Didn't expect that side of you.",
"That's surprisingly charming, watching you make a fool of yourself for me.",
"I like this side of you, " + setup.npc.mcName($tmpGirl) + ". Didn't know you had it in you.",
"You're kind of a dork, " + setup.npc.mcName($tmpGirl) + ". I mean that as a compliment."
]>>
<<elseif _preSprayJoinSub <= 90>>
<<set _joinLines = [
"You really didn't need to do that — someone who runs this whole place shouldn't be covered in soda over something so small.",
"It just feels wrong, seeing you like this. You've got enough weighing on you without adding 'sticky' to the list.",
"That's not something you should have to deal with, " + setup.npc.mcName($tmpGirl) + ". You've got bigger things to worry about than soda.",
"Someone like you shouldn't be dealing with this kind of mess, " + setup.npc.mcName($tmpGirl) + ". But... thank you, I guess."
]>>
<<else>>
<<set _joinLines = [
"It's sweet, I guess. Just — you shouldn't have to get messy over someone like me.",
"That's... funny, actually. Though it feels strange, seeing you like this. For my sake.",
"You didn't have to lower yourself like that for me, " + setup.npc.mcName($tmpGirl) + "... but thank you.",
"I appreciate it, truly. But someone like you shouldn't be covered in soda because of me, " + setup.npc.mcName($tmpGirl) + "."
]>>
<</if>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_joinLines)>><</sayNpc>>
<<elseif _attractedToMC>>
<<set _reactHappy = 1>>
<<set _reactRel = 0>>
<<set _reactSub = 2>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 2, 100)>>
<<=ucfirst(_heOrShe)>> yelps, then laughs, soda soaking through the front of <<=_hisOrHer>> top as <<=_heOrShe>> wipes <<=_hisOrHer>> face with the back of <<=_hisOrHer>> hand, eyes finding yours through it.
<<else>>
<<set _reactHappy = 1>>
<<set _reactRel = 0>>
<<set _reactSub = 1>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 1, 100)>>
<<=ucfirst(_heOrShe)>> yelps, then laughs despite <<=_himOrHer>>self, soda soaking through <<=_hisOrHer>> clothes.
<</if>>
<br />
<<if _attractedToMC>>
<<=ucfirst(_hisOrHer)>> top clings wet against <<=_himOrHer>>, and as <<=_heOrShe>> plucks at the soaked fabric, grumbling about needing to get cleaned up, you find your eyes lingering on it a little too long — and an idea starts to form.
<br /><br />
<<set _showerLinkText = 'Take ' + _himOrHer + ' to the shower'>>
<div id="btn_spray_shower_choice">
<<linkreplace `_showerLinkText`>>
<<run $('#btn_spray_send_off').hide()>>
You nod toward the house, and <<=_heOrShe>> follows without needing to be asked twice, peeling the sticky shirt away from <<=_hisOrHer>> skin as you go.
<br /><br />
<<link 'Continue'>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'shower'>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<<set _sendOffLinkText = 'Send ' + _himOrHer + ' to clean up'>>
<div id="btn_spray_send_off">
<<link `_sendOffLinkText`>>
<<set $tmpGirl.rest = { days: 1, desc: 'Cleaning up after a soda mishap', id: 'resting' }>>
<<goto _backPassage>>
<</link>>
</div>
<div class="link-desc">Happiness +<<=_reactHappy>><<if _reactRel>> • Relationship +<<=_reactRel>><</if>> • Submission <<=(_reactSub >= 0 ? '+' : '') + _reactSub>><<=_goodwillPart>> (either option)</div>
<<elseif $tmpGirl.location === 'milk_barn'>>
Sticky and a mess now, <<=_heOrShe>> looks down at <<=_himOrHer>>self, soda dripping off the tubing, somewhere between amused and annoyed as <<=_heOrShe>> mutters a "thanks" for the gesture and waits to see what you'll decide.
<br /><br />
<div id="btn_spray_milkbarn">
<<link 'Let her disconnect and clean up'>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100)>>
<<set $tmpGirl.rest = { days: 1, desc: 'Cleaning up after a soda mishap', id: 'resting' }>>
<<goto _backPassage>>
<</link>>
<div class="link-desc">Happiness <<=((_reactHappy + 1) >= 0 ? '+' : '') + (_reactHappy + 1)>><<if _reactRel>> • Relationship +<<=_reactRel>><</if>> • Submission <<=(_reactSub >= 0 ? '+' : '') + _reactSub>><<=_goodwillPart>></div>
<br />
<<link 'Make her finish the workday sticky'>>
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 2, -100)>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 1, 100)>>
<<goto _backPassage>>
<</link>>
<div class="link-desc">Happiness <<=((_reactHappy - 2) >= 0 ? '+' : '') + (_reactHappy - 2)>><<if _reactRel>> • Relationship +<<=_reactRel>><</if>> • Submission <<=((_reactSub + 1) >= 0 ? '+' : '') + (_reactSub + 1)>><<=_goodwillPart>></div>
</div>
<<else>>
<<set $tmpGirl.rest = { days: 1, desc: 'Cleaning up after a soda mishap', id: 'resting' }>>
Sticky and a mess now, somewhere between amused and annoyed, <<=_heOrShe>> mutters a "thanks" for the gesture and figures <<=_heOrShe>> isn't getting any more work done like this.
<<switch $tmpGirl.location>>
<<case 'quarry'>>
<<=ucfirst(_heOrShe)>> heads off toward the spring to rinse off, laughing under <<=_hisOrHer>> breath the whole way.
<<case 'garden'>>
<<=ucfirst(_heOrShe)>> grabs the garden hose and rinses off right there, still grinning.
<<case 'forest'>>
<<=ucfirst(_heOrShe)>> heads for the nearby stream to rinse off, shaking <<=_hisOrHer>> head at you the whole way.
<</switch>>
<br /><br />
<div>
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
<div class="link-desc">Happiness +<<=_reactHappy>><<if _reactRel>> • Relationship +<<=_reactRel>><</if>> • Submission <<=(_reactSub >= 0 ? '+' : '') + _reactSub>><<=_goodwillPart>></div>
</div>
<</if>>
<<else>>
<<set $tmpGirl.happy = Math.max($tmpGirl.happy - 3, -100)>>
<<set $tmpGirl.relationship = Math.max($tmpGirl.relationship - 3, -100)>>
<<=ucfirst(_heOrShe)>> doesn't find it funny at all. <<=ucfirst(_heOrShe)>> wipes <<=_himOrHer>>self off as best <<=_heOrShe>> can and goes back to work without a word, sticky and clearly unhappy about it.
<br /><br />
<div>
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
<div class="link-desc">Happiness -3 • Relationship -3<<=_goodwillPart>></div>
</div>
<</if>><<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _backPassage = (typeof $slaveId !== 'undefined') ? 'NPC view' : 'NPC view - guest'>>
<<set _attractedToMC = ($tmpGirl.likesGuys ?? true) && (!($player?.baseManagement?.noIncest ?? false) || !setup.family.isIncest($player, $tmpGirl))>>
<<set _sodaLikedByNpc = ($tmpGirl.likes ?? []).includes('soda')>>
<<set $tmpGirl.offeredSoda = true>>
<<set _girlVisual = $tmpGirl>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId].offeredSoda = true>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId].offeredSoda = true>>
<</if>>
<<switch $tmpGirl.location>>
<<case 'garden'>>
<h1 class="ptitle">GARDEN</h1>
<br />
The rows of struggling green stretch out under the pale sun, dust hanging in the air from the last dry wind. <<=setup.displayName($tmpGirl)>> straightens up from the beds, one hand pressed to <<=_hisOrHer>> lower back, and catches sight of you crossing the dirt toward <<=_himOrHer>>.
<<case 'forest'>>
<h1 class="ptitle">FOREST</h1>
<br />
Broken light filters down through the canopy, and the air smells of sap and turned earth. <<=setup.displayName($tmpGirl)>> looks up from the work, sweat-damp and streaked with dirt, as you pick your way over roots toward <<=_himOrHer>>.
<<case 'quarry'>>
<h1 class="ptitle">QUARRY</h1>
<br />
The quarry is a haze of stone dust and noise, the rock face pale under the flat daylight. <<=setup.displayName($tmpGirl)>> sets down what <<=_heOrShe>>'s carrying and wipes <<=_hisOrHer>> hands on <<=_hisOrHer>> pants, watching you approach across the rubble.
<<case 'milk_barn'>>
<h1 class="ptitle">MILK BARN</h1>
<br />
The barn is warm and close, thick with the low hum of the pumps. <<=setup.displayName($tmpGirl)>> is exactly where she's tethered every shift, tubes running from her chest to the machine beside her, and she glances over as you step inside, grateful for any excuse to think about something other than the cycle of the pump.
<</switch>>
<br /><br />
You reach into your insulated backpack and pull out a can of soda.
<<set _sodaWarm = setup.percentageChance(25)>>
<<if _sodaWarm>>
It's room temperature, a little warm to the touch — grabbed from storage rather than the kitchen. You give it a glance; it's been jostled around in your travels and there's no telling if it's still stable.
<br /><br />
<strong class="warning">Warning: this soda may be unstable and could spray when opened.</strong>
<<else>>
It's cold, straight from the kitchen fridge, beads of condensation already forming on the can.
<</if>>
<br /><br />
<<set _giveLinkText = 'Give ' + _himOrHer + ' the soda to drink'>>
<div id="opt_give">
<<linkreplace _giveLinkText>>
<<run $('#opt_together, #opt_shake, #opt_give_desc, #opt_together_desc, #opt_shake_desc').hide()>>
<<set _girlVisual = $tmpGirl>>
<<set _sprayed = _sodaWarm && setup.percentageChance(50)>>
<<if _sprayed>>
You hand it to <<=setup.displayName($tmpGirl)>>, and <<=_heOrShe>> cracks the tab. Before either of you can react, it erupts in <<=_hisOrHer>> hand, soda foaming down over <<=_himOrHer>>self.
<<drop $backpack 'soda' 1>>
<br /><br />
<<set _mcJoined = false>>
<<set _goodwillDelta = 0>>
<<include 'NPC offer soda - spray reaction'>>
<<else>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<if $tmpGirl.location === 'milk_barn'>>
Before handing it over, you reach up and release <<=_hisOrHer>> arms from the restraints. <<=ucfirst(_heOrShe)>> flexes <<=_hisOrHer>> fingers and immediately reaches for the can — then stops, turning it over in both hands, nose twitching, not sure what to make of it. You press your thumb under the tab and crack it open for <<=_himOrHer>>, holding it out. <<=ucfirst(_heOrShe)>> leans in and laps at the opening eagerly, ears perked.
<<else>>
You hold out the can. <<=ucfirst(_heOrShe)>> sniffs it, turns it over, taps the top with one finger — then looks at you expectantly. You press your thumb under the tab and crack it open for <<=_himOrHer>>. <<=ucfirst(_heOrShe)>>'s eyes light up and <<=_heOrShe>> drinks quickly, head tilting back.
<</if>>
<br /><br />
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 3, 100)>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<<set $player.goodwill += 3>>
<<drop $backpack 'soda' 1>>
<<if !_sodaWarm>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*makes a short, pleased sound at the cold, shifting with restless satisfaction*</em></div>
</div>
</div>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 3, 100)>>
<</if>>
<<if ($tmpGirl.likes ?? []).includes('soda')>>
<br />
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*presses the cool can against her cheek for a moment, eyes half-closing in contentment*</em></div>
</div>
</div>
<</if>>
<<else>>
<<if $tmpGirl.location === 'milk_barn'>>
Before handing it over, you reach up and release <<=_hisOrHer>> arms from the restraints holding them to the machine. <<=ucfirst(_heOrShe)>> rolls <<=_hisOrHer>> shoulders, the relief plain on <<=_hisOrHer>> face, before taking the can from you and cracking the tab.
<<else>>
You hand it over. <<=ucfirst(_heOrShe)>> takes it and cracks the tab, a small, genuine bit of pleasure crossing <<=_hisOrHer>> face as the can hisses open.
<</if>>
<br /><br />
<<set _mcLine = setup.getRandomElement(["Figured you could use it.", "I thought you looked thirsty.", "You've been working hard, drink up.", "You've earned a break.", "Enjoy it while it lasts."])>>
<<you>>
<<=_mcLine>>
<</you>>
<br /><br />
<<set _npcLines = ["Thank you, I mean it. I could use a drink.", "I wasn't expecting this today, " + setup.npc.mcName($tmpGirl) + ".", "That would hit the spot on a day like today.", "You didn't have to come all this way for that, " + setup.npc.mcName($tmpGirl) + ".", "It's been a scorcher out here. I'll make it last, " + setup.npc.mcName($tmpGirl) + "."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcLines)>><</sayNpc>>
<br />
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 3, 100)>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<<set $player.goodwill += 3>>
<<drop $backpack 'soda' 1>>
<<if !_sodaWarm>>
<<=ucfirst(_heOrShe)>> takes a long pull and lets out a breath, savoring the cold.
<br /><br />
<<if $tmpGirl.location === 'milk_barn'>>
<<sayNpc $tmpGirl>>God, that's refreshing. It gets so stuffy, cooped up here in the barn all day... you don't know how much I needed that.<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>God, that's refreshing. Ice cold, after working out here in this heat... you don't know how much I needed that.<</sayNpc>>
<</if>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 3, 100)>>
<</if>>
<<if ($tmpGirl.likes ?? []).includes('soda')>>
<br />
<<=ucfirst(_heOrShe)>> grins, turning the can over in <<=_hisOrHer>> hand.
<br />
<<sayNpc $tmpGirl>>You always remember what I like. It means a lot.<</sayNpc>>
<</if>>
<</if>>
<br />
<<if (_sodaLikedByNpc || !_sodaWarm) && _attractedToMC>>
<<if !_sodaWarm>>
<<=ucfirst(_heOrShe)>> takes another slow sip, then draws the ice-cold can along the side of <<=_hisOrHer>> neck to cool down, eyes drifting to you as <<=_heOrShe>> does it.
<<else>>
<<=ucfirst(_heOrShe)>> lingers over the can, eyes drifting to you in a way that has nothing to do with the soda anymore.
<</if>>
<br /><br />
<<set _pullLinkText = ($tmpGirl.location === 'milk_barn') ? 'Step into her stall' : 'Pull ' + _himOrHer + ' over to you'>>
<div id="btn_step_away">
<<linkreplace `_pullLinkText`>>
<<run $('#btn_leave_give').hide()>>
<<if $tmpGirl.location === 'milk_barn'>>
You step into the stall with her, still tethered to the machine, and <<=_heOrShe>> leans back against you, offering no resistance at all.
<<else>>
You close the distance between you, and despite the sweat and heat, and <<=_heOrShe>> meets you the rest of the way without hesitation.
<</if>>
<br /><br />
<<link 'Continue'>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<<elseif $tmpGirl.location === 'milk_barn'>>
<<=ucfirst(_heOrShe)>> finishes the can and sets it down within reach, settling back against the machine to wait out the rest of the cycle.
<<else>>
<<=ucfirst(_heOrShe)>> finishes the can, sets it aside, and gets back to work, grateful for the refreshing break.
<</if>>
<div id="btn_leave_give">
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
<div class="link-desc">Happiness <<if !_sodaWarm>>+6<<else>>+3<</if>> • Relationship +3 • Goodwill +3<<if (_sodaLikedByNpc || !_sodaWarm) && _attractedToMC>> (either option)<</if>></div>
</div>
<</if>>
<</linkreplace>>
<<linkdesc 'opt_give_desc'>>
<<if _sodaWarm>>Happiness ?? • Relationship ?? • Goodwill ??<<else>>Happiness +6 • Relationship +3 • Goodwill +3<</if>>
<</linkdesc>>
</div>
<<if $backpack.count('soda') >= 2>>
<<set _togetherLinkText = 'Take a soda-break with ' + _himOrHer>>
<div id="opt_together">
<<linkreplace _togetherLinkText>>
<<run $('#opt_give, #opt_shake, #opt_give_desc, #opt_together_desc, #opt_shake_desc').hide()>>
<<set _girlVisual = $tmpGirl>>
<<set _sprayed = _sodaWarm && setup.percentageChance(50)>>
<<if _sprayed>>
<<drop $backpack 'soda' 2>>
You pass the first can to <<=_himOrHer>>, and just as you settle back with your own, <<=_heOrShe>> cracks hers open — and it goes off in <<=_hisOrHer>> hand, spraying all over <<=_himOrHer>>self! You haven't opened yours yet, and in the moment before <<=_heOrShe>>'s even finished reacting, you have a split second to decide whether to shake your own can too.
<br /><br />
<div id="opt_join_prank">
<<linkreplace 'Shake your own can and spray yourself too'>>
<<run $('#opt_dont_join_prank, #opt_join_prank_desc, #opt_dont_join_prank_desc').hide()>>
You give your own can a hard shake and crack it open before <<=_heOrShe>> can even react, dousing yourself in solidarity.
<br /><br />
<<set _mcJoined = true>>
<<set _goodwillDelta = 1>>
<<set $player.goodwill += 1>>
<<include 'NPC offer soda - spray reaction'>>
<</linkreplace>>
<<linkdesc 'opt_join_prank_desc'>>
Happiness +1 • Relationship +2 • Submission -3 • Goodwill +1
<</linkdesc>>
</div>
<<set _dealWithMessLinkText = 'Let ' + _himOrHer + ' deal with the mess'>>
<div id="opt_dont_join_prank">
<<linkreplace `_dealWithMessLinkText`>>
<<run $('#opt_join_prank, #opt_join_prank_desc, #opt_dont_join_prank_desc').hide()>>
<<set _mcJoined = false>>
<<set _goodwillDelta = 0>>
<<include 'NPC offer soda - spray reaction'>>
<</linkreplace>>
<<linkdesc 'opt_dont_join_prank_desc'>>
Happiness ?? • Relationship ?? • Submission ??
<</linkdesc>>
</div>
<<else>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<if $tmpGirl.location === 'milk_barn'>>
You crack open both cans, then reach up and release <<=_hisOrHer>> arms from the restraints. <<=ucfirst(_heOrShe)>> flexes <<=_hisOrHer>> fingers, spots the open can in your hand, and waits — nose twitching. You hold it out. <<=ucfirst(_heOrShe)>> takes it and drinks eagerly, still tethered by the tubing, while you settle on a stool beside <<=_himOrHer>>.
<<else>>
You crack open your own can, then crack open <<=_hisOrHer>> soda. <<=ucfirst(_heOrShe)>> sniffs the open end, then takes it with both hands and sits down beside you. <<=ucfirst(_heOrShe)>> drinks awkwardly, finding cans more difficult to drink from than <<=_hisOrHer>> bowl, but <<=_heOrShe>> enjoys the sweet taste.
<</if>>
<<elseif $tmpGirl.location === 'milk_barn'>>
You crack open both cans, then reach up and release <<=_hisOrHer>> arms from the restraints holding them to the machine before handing one over — the relief on <<=_hisOrHer>> face plain as she flexes <<=_hisOrHer>> fingers around the cold can. Still tethered by the tubing, she isn't going anywhere, so instead of stepping away you pull up a stool and sit beside <<=_himOrHer>>, keeping her company while the pump keeps its slow, mechanical rhythm.
<<else>>
You crack open both cans and hand one over, settling in beside <<=_himOrHer>> for a few minutes away from the work.
<</if>>
<br /><br />
<<if $tmpGirl.relationship <= 10>>
The two of you sit in something close to silence, the exchange polite and a little stiff — <<if typeof $slaveId !== 'undefined'>>slave and owner<<else>>worker and employer<</if>> sharing a can of soda, nothing more read into it than that.
<<elseif $tmpGirl.relationship <= 40>>
It's an easy enough silence, the two of you familiar with each other by now — not quite friends, but people working toward the same goal of getting through another day out here.
<<else>>
It's comfortable between you, the kind of quiet that only comes from having been through enough of the wasteland together to not need to fill it with words.
<</if>>
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*holds still beside you, can open in both hands, then leans her head lightly against your shoulder — quiet, comfortable company*</em></div>
</div>
</div>
<<if ($tmpGirl.likes ?? []).includes('soda') && setup.npcInventoryHas($tmpGirl, 'soda')>>
<br />
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*taps the side of the can softly with one finger, then glances up at you — a quiet acknowledgment*</em></div>
</div>
</div>
<</if>>
<<else>>
<<set _breakTone = setup.pickDialogueTone($tmpGirl.happy)>>
<<set _breakPool = (setup.sodaBreakDialogue[$tmpGirl.assignedTo] ?? {})[_breakTone] ?? []>>
<<set _breakLine = _breakPool.length ? setup.getRandomElement(_breakPool) : ''>>
<<sayNpc $tmpGirl>>
<<=_breakLine.replace('{mcName}', setup.npc.mcName($tmpGirl))>>
<<if ($tmpGirl.likes ?? []).includes('soda') && setup.npcInventoryHas($tmpGirl, 'soda')>>
And thank you again for the ones before this, I still have some put away. I appreciate every one.
<</if>>
<</sayNpc>>
<</if>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 4, 100)>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 6, 100)>>
<<set $player.goodwill += 3>>
<<if _breakTone === 'negative'>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100)>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 1, 100)>>
<br /><br />
<<=ucfirst(_heOrShe)>> looks like some of the weight's been lifted off <<=_hisOrHer>> shoulders, if only for a moment.
<</if>>
<<energy +5>>
<<addmins 15>>
<<drop $backpack 'soda' 2>>
<br />
<<if (_sodaLikedByNpc || !_sodaWarm) && _attractedToMC>>
<<if !_sodaWarm>>
<<=ucfirst(_heOrShe)>> takes another slow sip, then draws the ice-cold can along the side of <<=_hisOrHer>> neck to cool down, eyes drifting to you as <<=_heOrShe>> does it.
<<else>>
<<=ucfirst(_heOrShe)>> lingers over the can, eyes drifting to you in a way that has nothing to do with the soda anymore.
<</if>>
<br /><br />
<<set _pullLinkText = ($tmpGirl.location === 'milk_barn') ? 'Step into her stall' : 'Pull ' + _himOrHer + ' over to you'>>
<div id="btn_step_away_together">
<<linkreplace `_pullLinkText`>>
<<run $('#btn_leave_together').hide()>>
<<if $tmpGirl.location === 'milk_barn'>>
You step into the stall with her, still tethered to the machine, and <<=_heOrShe>> leans back against you, offering no resistance at all.
<<else>>
You close the distance between you, and despite the sweat and heat, <<=_heOrShe>> meets you the rest of the way without hesitation.
<</if>>
<br /><br />
<<link 'Continue'>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<div id="btn_leave_together">
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
<div class="link-desc">Happiness <<if _breakTone === 'negative'>>+5<<else>>+4<</if>> • Relationship <<if _breakTone === 'negative'>>+7<<else>>+6<</if>> • Energy +5 • Goodwill +3<<if (_sodaLikedByNpc || !_sodaWarm) && _attractedToMC>> (either option)<</if>></div>
</div>
<</if>>
<</linkreplace>>
<<linkdesc 'opt_together_desc'>>
Happiness ?? • Relationship ?? • Energy <<if _sodaWarm>>??<<else>>+5<</if>> • Goodwill ??
<</linkdesc>>
</div>
<</if>>
<<if _sodaWarm>>
<<set _shakeLinkText = 'Shake the soda and give it to ' + _himOrHer + ' as a prank'>>
<div id="opt_shake">
<<linkreplace _shakeLinkText>>
<<run $('#opt_give, #opt_together, #opt_give_desc, #opt_together_desc, #opt_shake_desc').hide()>>
You give the can a few hard shakes behind your back before holding it out with a straight face.
<<drop $backpack 'soda' 1>>
<<set $player.goodwill -= 2>>
<br /><br />
<<set _mcJoined = false>>
<<set _goodwillDelta = -2>>
<<include 'NPC offer soda - spray reaction'>>
<</linkreplace>>
<<linkdesc 'opt_shake_desc'>>
Happiness ?? • Relationship ?? • Goodwill -2
<</linkdesc>>
</div>
<</if>><<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _backPassage = (typeof $slaveId !== 'undefined') ? 'NPC view' : 'NPC view - guest'>>
<<set _workLocationBack = { streets: 'Streets', nightclub: 'Nightclub - bathroom', strip_club: 'Strip Club' }[$tmpGirl.assignedTo] ?? _backPassage>>
<<set _mainIsSlave = typeof $slaveId !== 'undefined'>>
<<set _takeUpLinkText = 'Take ' + _himOrHer + ' up on the offer'>>
<<set _takeSomewhereLinkText = 'Take ' + _himOrHer + ' somewhere private'>>
<<set _stepUpLinkText = 'Step up to the hole'>>
<<set _pushStallLinkText = 'Push ' + _himOrHer + ' into a stall'>>
<<set _attractedToMC = ($tmpGirl.likesGuys ?? true) && (!($player?.baseManagement?.noIncest ?? false) || !setup.family.isIncest($player, $tmpGirl))>>
<<set _incestBlocked = ($player?.baseManagement?.noIncest ?? false) && setup.family.isIncest($player, $tmpGirl)>>
<<set _whippitLikedByNpc = ($tmpGirl.likes ?? []).includes('whippit')>>
<<set $tmpGirl.offeredWhippit = true>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId].offeredWhippit = true>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId].offeredWhippit = true>>
<</if>>
<<switch $tmpGirl.assignedTo>>
<<case 'streets'>>
<h1 class="ptitle">STREETS</h1>
<br />
The street is dim and half-empty, lit by whatever scavenged bulbs still work along the block. <<=setup.displayName($tmpGirl)>> is leaning against the wall between clients, arms crossed against the chill, and straightens up as you approach.
<<case 'nightclub'>>
<h1 class="ptitle">NIGHTCLUB</h1>
<br />
The bass thrums through the floor and the air is thick with cheap smoke and cheaper perfume. <<=setup.displayName($tmpGirl)>> spots you crossing the room between songs and breaks into a grin, glad for the distraction.
<<case 'strip_club'>>
<h1 class="ptitle"><<stripClubName>></h1>
<br />
The lights over the stage are low and colored, the air heavy with bass and the smell of spilled drinks. <<=setup.displayName($tmpGirl)>> catches your eye from the edge of the floor and saunters over, still warm from the last set.
<</switch>>
<br /><br />
You pull the whippit kit — canister and balloon — out where <<=_heOrShe>> can see it, a mischievous look on your face, and suggest <<=_heOrShe>> take a break to cut loose for a bit.
<br /><br />
<<set _pregnant = ($tmpGirl.pregnancy ?? 0) >= 7>>
<<set _pregnancyDeclineChance = _whippitLikedByNpc ? 60 : 80>>
<<if _pregnant && setup.percentageChance(_pregnancyDeclineChance)>>
<<sayNpc $tmpGirl>>
As much as the atmosphere in here might tempt me otherwise, I'm not going to risk anything happening to the baby. But thank you for thinking of me.
<</sayNpc>>
<br /><br />
<div>
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
</div>
<<else>>
<<set _npcAgreeLines = ["Oh, hell yes.", "Thought you'd never ask.", "Say no more.", "It's been that kind of night.", "Finally, something fun."]>>
<<sayNpc $tmpGirl>><<=setup.getRandomElement(_npcAgreeLines)>><</sayNpc>>
<br />
The two of you find somewhere out of sight — quiet enough to let your guard down, private enough that no one's going to bother you. You crack the canister and empty it into the balloon, the nitrous hissing as it fills.
<br /><br />
<<set _happyGain = 3 + (_whippitLikedByNpc ? 1 : 0)>>
<<set _corruptionGain = 3 + (_whippitLikedByNpc ? 1 : 0)>>
<<set _fullBalloonDrunkTier = ($tmpGirl.drunk ?? 0) > 0 ? setup.getWhippitDrunkTier($tmpGirl.drunk) : null>>
<<set _fullBalloonHappyTotal = _happyGain + (_fullBalloonDrunkTier ? setup.whippitDrunkReactions[_fullBalloonDrunkTier].happyDelta : 0)>>
<<set _fullBalloonGoodwillBase = setup.getWhippitTierGoodwill(_fullBalloonDrunkTier ?? 'not_drunk')>>
<<set _fullBalloonLinkText = 'Let ' + _himOrHer + ' have the whole balloon'>>
<div id="opt_full_balloon">
<<linkreplace `_fullBalloonLinkText`>>
<<run $('#opt_share_balloon, #opt_group_balloon, #opt_full_balloon_desc, #opt_share_balloon_desc, #opt_group_balloon_desc').hide()>>
<<drop $backpack 'whippit' 1>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + _happyGain, 100)>>
<<set $tmpGirl.corruption = Math.min((($tmpGirl.corruption ?? 0) + _corruptionGain), 100)>>
You hand the whole balloon over. <<=ucfirst(_heOrShe)>> takes a long, deep inhale, getting a good, strong buzz almost immediately — dizzy and disoriented, dissolving into giggling, uncontrollable laughter.
<<if _whippitLikedByNpc>>
<br /><br />
<<=ucfirst(_heOrShe)>> shivers, a tingling tremor running through <<=_himOrHer>> as the high rushes in, and <<=_heOrShe>> rides it out for a good thirty seconds before <<=_hisOrHer>> eyes refocus on you.
<</if>>
<<set _injured = false>>
<<if _fullBalloonDrunkTier>>
<<set _drunkReaction = setup.whippitDrunkReactions[_fullBalloonDrunkTier]>>
<<set _drunkLine = setup.fillWhippitPronouns(setup.getRandomElement(_drunkReaction.lines), $tmpGirl)>>
<br /><br />
The whippit hits different on top of the alcohol already in <<=_hisOrHer>> system. <<=_drunkLine>>
<<if _drunkReaction.happyDelta > 0>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + _drunkReaction.happyDelta, 100)>>
<<elseif _drunkReaction.happyDelta < 0>>
<<set $tmpGirl.happy = Math.max($tmpGirl.happy + _drunkReaction.happyDelta, -100)>>
<</if>>
<<set _injured = _drunkReaction.injuryChance > 0 && setup.percentageChance(_drunkReaction.injuryChance)>>
<<if _injured>>
<br /><br />
<<set _hospitalBuilt = $game.location.hospital ?? false>>
<div class="injury-alert">
⚠
<<if _fullBalloonDrunkTier === 'drunk90'>>
This time it doesn't stay funny — <<=_heOrShe>> loses control completely and takes a nasty fall, getting badly hurt in the process. There's no finishing the night like this; <<=_heOrShe>> needs to be taken to <<if _hospitalBuilt>>the hospital to get checked out<<else>>the settlement to rest it off<</if>>.
<<set $tmpGirl.sick = { days: 2, desc: 'Badly hurt on a whippit-and-alcohol high', id: 'whippit_injury' }>>
<<else>>
This time it doesn't stay funny — <<=_heOrShe>> goes down wrong, left with a splitting headache. There's no finishing the night like this; <<=_heOrShe>> needs to be taken to <<if _hospitalBuilt>>the hospital to get checked out<<else>>the settlement to rest it off<</if>>.
<<set $tmpGirl.sick = { days: 1, desc: 'Headache from a whippit-and-alcohol high', id: 'whippit_injury' }>>
<</if>>
🚑
</div>
<</if>>
<</if>>
<<set _fullBalloonGoodwillDelta = _fullBalloonGoodwillBase + (_injured ? -5 : 0)>>
<<set $player.goodwill += _fullBalloonGoodwillDelta>>
<br /><br />
<<set _hadSexOpportunity = false>>
<<if !_injured>>
<<set _sexChance = _whippitLikedByNpc ? 100 : Math.max($tmpGirl.relationship, $tmpGirl.drunk ?? 0)>>
<<if !($tmpGirl.likesGuys ?? true)>>
<<set _sexChance = _sexChance / 2>>
<</if>>
<<if !_incestBlocked && setup.percentageChance(_sexChance)>>
<<set _hadSexOpportunity = true>>
<<=ucfirst(_heOrShe)>> has completely lost <<=_hisOrHer>> inhibitions now, and the way <<=_heOrShe>> is looking at you gives you an idea. You ask if <<=_heOrShe>>'s up for a quick one on the house before <<=_hisOrHer>> break is over.
<<if $tmpGirl.assignedTo === 'nightclub' && ($game.location.gloryhole ?? false)>>
<br /><br />
<div id="btn_whippit_gloryhole">
<<linkreplace 'Follow her to the glory hole'>>
<<run $('#btn_whippit_bathroom, #btn_whippit_leave').hide()>>
<<=ucfirst(_heOrShe)>> slips off toward the bathroom wall, still giggling, and taps twice to let you know <<=_heOrShe>>'s ready on the other side.
<br /><br />
<<link `_stepUpLinkText`>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'gloryhole'>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_whippit_bathroom">
<<linkreplace 'Lead her to the bathroom'>>
<<run $('#btn_whippit_gloryhole, #btn_whippit_leave').hide()>>
You take <<=_himOrHer>> by the hand and lead <<=_himOrHer>> to the bathroom instead, no wall between you this time.
<br /><br />
<<link `_pushStallLinkText`>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'nightclub'>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<br /><br />
<div id="btn_whippit_onhouse">
<<link `_takeSomewhereLinkText`>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
</div>
<</if>>
<</if>>
<</if>>
<div id="btn_whippit_leave">
<<link 'Leave'>>
<<if _injured>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<</if>>
<<unset $slaveId, $guestId, $charId>>
<<goto _workLocationBack>>
<<else>>
<<goto _backPassage>>
<</if>>
<</link>>
<div class="link-desc">Happiness <<=_fullBalloonHappyTotal >= 0 ? '+' : ''>><<=_fullBalloonHappyTotal>> • Corruption +<<=_corruptionGain>><<if _fullBalloonGoodwillDelta>> • Goodwill <<=_fullBalloonGoodwillDelta >= 0 ? '+' : ''>><<=_fullBalloonGoodwillDelta>><</if>><<if _hadSexOpportunity>> (either option)<</if>></div>
</div>
<</linkreplace>>
<<linkdesc 'opt_full_balloon_desc'>>
Happiness <<=_fullBalloonHappyTotal >= 0 ? '+' : ''>><<=_fullBalloonHappyTotal>> • Corruption +<<=_corruptionGain>><<if _fullBalloonGoodwillBase>> • Goodwill <<=_fullBalloonGoodwillBase >= 0 ? '+' : ''>><<=_fullBalloonGoodwillBase>><</if>><<if _fullBalloonDrunkTier && setup.whippitDrunkReactions[_fullBalloonDrunkTier].injuryChance > 0>> (injury risk)<</if>>
<</linkdesc>>
</div>
<<set _shareHappyGain = 2 + (_whippitLikedByNpc ? 1 : 0)>>
<<set _shareRelGain = 3 + (_whippitLikedByNpc ? 1 : 0)>>
<<set _shareCorruptionGain = 1 + (_whippitLikedByNpc ? 1 : 0)>>
<<set _togetherTier = setup.getWhippitDrunkTier($tmpGirl.drunk)>>
<<set _togetherEffects = setup.whippitTogetherTierEffects[_togetherTier]>>
<<set _shareHappyTotal = _shareHappyGain + _togetherEffects.happyDelta>>
<<set _shareGoodwillBase = setup.getWhippitTierGoodwill(_togetherTier)>>
<<set _shareBalloonLinkText = 'Share the balloon with ' + _himOrHer>>
<div id="opt_share_balloon">
<<linkreplace `_shareBalloonLinkText`>>
<<run $('#opt_full_balloon, #opt_group_balloon, #opt_full_balloon_desc, #opt_share_balloon_desc, #opt_group_balloon_desc').hide()>>
<<drop $backpack 'whippit' 1>>
<<addmins 15>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + _shareHappyGain, 100)>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + _shareRelGain, 100)>>
<<set $tmpGirl.corruption = Math.min((($tmpGirl.corruption ?? 0) + _shareCorruptionGain), 100)>>
You and <<=_himOrHer>> pass the balloon back and forth, the giggles building and growing as you laugh at each other's laughter. By the end you both feel maybe a little bit silly, but it's worth it — a moment of levity in this wasteland.
<<set _injured = false>>
<<if _togetherEffects.injuryChance > 0>>
<<set _injured = setup.percentageChance(_togetherEffects.injuryChance)>>
<</if>>
<<set _coworker = setup.getWhippitCoworker($tmpGirl, $weather)>>
<<set _coworkerName = _coworker ? setup.displayName(_coworker) : null>>
<<set _linePool = (setup.whippitTogetherDialogue[$tmpGirl.assignedTo] ?? {})[_togetherTier] ?? []>>
<<set _availablePool = _linePool.filter(function (entry) { return !entry.needsCoworker || _coworkerName; })>>
<<set _lineEntry = _availablePool.length ? setup.getRandomElement(_availablePool) : null>>
<<set _thanksForGifts = _whippitLikedByNpc && !_injured && setup.npcInventoryHas($tmpGirl, 'whippit')>>
<br /><br />
<<if _lineEntry || _thanksForGifts>>
<<sayNpc $tmpGirl>>
<<if _lineEntry>><<=_lineEntry.needsCoworker ? _lineEntry.text.replace('{coworker}', _coworkerName) : _lineEntry.text>><</if>>
<<if _thanksForGifts>> And thank you again for keeping me stocked up. I don't take that for granted.<</if>>
<</sayNpc>>
<</if>>
<<if _injured>>
<br />
<<set _hospitalBuilt = $game.location.hospital ?? false>>
<div class="injury-alert">
⚠
<<if _togetherTier === 'drunk90'>>
The high turns dangerous fast — <<=_heOrShe>> blacks out completely. You get <<=_himOrHer>> back to <<if _hospitalBuilt>>the hospital to recover<<else>>the settlement to sleep it off<</if>>. 🚑
<<set $tmpGirl.sick = { days: _togetherEffects.sickDays, desc: 'Blacked out from a bad whippit-and-alcohol trip', id: 'whippit_together_injury' }>>
<<else>>
The high turns bad fast — the bad trip sets off a panic attack, and <<=_heOrShe>> needs the rest of the night off.
<<set $tmpGirl.sick = { days: _togetherEffects.sickDays, desc: 'Panic attack from a bad whippit-and-alcohol trip', id: 'whippit_together_injury' }>>
<</if>>
</div>
<br />
<</if>>
<<set _shareGoodwillDelta = _shareGoodwillBase + (_injured ? -5 : 0)>>
<<set $player.goodwill += _shareGoodwillDelta>>
<br />
<<set _hadSexOpportunity = false>>
<<if !_injured>>
<<set _sexChance = _whippitLikedByNpc ? 100 : Math.max($tmpGirl.relationship, $tmpGirl.drunk ?? 0)>>
<<if !($tmpGirl.likesGuys ?? true)>>
<<set _sexChance = _sexChance / 2>>
<</if>>
<<if !_incestBlocked && setup.percentageChance(_sexChance)>>
<<set _hadSexOpportunity = true>>
The two of you lose your inhibitions together, riding the buzz, and <<=_heOrShe>> decides to offer you a session on the house before <<=_hisOrHer>> break is over.
<<if $tmpGirl.assignedTo === 'nightclub' && ($game.location.gloryhole ?? false)>>
<br /><br />
<div id="btn_whippit_share_gloryhole">
<<linkreplace 'Follow her to the glory hole'>>
<<run $('#btn_whippit_share_bathroom, #btn_whippit_share_leave').hide()>>
<<=ucfirst(_heOrShe)>> slips off toward the bathroom wall, still giggling, and taps twice to let you know <<=_heOrShe>>'s ready on the other side.
<br /><br />
<<link `_stepUpLinkText`>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'gloryhole'>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<div id="btn_whippit_share_bathroom">
<<linkreplace 'Lead her to the bathroom'>>
<<run $('#btn_whippit_share_gloryhole, #btn_whippit_share_leave').hide()>>
You take <<=_himOrHer>> by the hand and lead <<=_himOrHer>> to the bathroom instead, no wall between you to get in the way this time.
<br /><br />
<<link `_pushStallLinkText`>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<set $tmpGirl.location = 'nightclub'>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<br /><br />
<div id="btn_whippit_share_onhouse">
<<link `_takeUpLinkText`>>
<<set $tmpGirlViewBack = _backPassage>>
<<fuck $tmpGirl>>
<</link>>
</div>
<</if>>
<</if>>
<</if>>
<div id="btn_whippit_share_leave">
<<link 'Leave'>>
<<if _injured>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<</if>>
<<unset $slaveId, $guestId, $charId>>
<<goto _workLocationBack>>
<<else>>
<<goto _backPassage>>
<</if>>
<</link>>
<div class="link-desc">Happiness <<=_shareHappyTotal >= 0 ? '+' : ''>><<=_shareHappyTotal>> • Relationship +<<=_shareRelGain>> • Corruption +<<=_shareCorruptionGain>><<if _shareGoodwillDelta>> • Goodwill <<=_shareGoodwillDelta >= 0 ? '+' : ''>><<=_shareGoodwillDelta>><</if>><<if _hadSexOpportunity>> (either option)<</if>></div>
</div>
<</linkreplace>>
<<linkdesc 'opt_share_balloon_desc'>>
Happiness <<=_shareHappyTotal >= 0 ? '+' : ''>><<=_shareHappyTotal>> • Relationship +<<=_shareRelGain>> • Corruption +<<=_shareCorruptionGain>><<if _shareGoodwillBase>> • Goodwill <<=_shareGoodwillBase >= 0 ? '+' : ''>><<=_shareGoodwillBase>><</if>><<if _togetherEffects.injuryChance > 0>> (injury risk)<</if>>
<</linkdesc>>
</div>
<<set _job = $tmpGirl.assignedTo>>
<<set _coworkerEntries = []>>
<<for _gi, _g range $guests>>
<<if _g.id !== $tmpGirl.id && _g.assignedTo === _job && setup.isAtWork(_g, $weather)>>
<<run _coworkerEntries.push({ type: 'guest', idx: _gi, npc: _g })>>
<</if>>
<</for>>
<<for _si, _s range $slaves>>
<<if _s.id !== $tmpGirl.id && _s.assignedTo === _job && setup.isAtWork(_s, $weather)>>
<<run _coworkerEntries.push({ type: 'slave', idx: _si, npc: _s })>>
<</if>>
<</for>>
<<run _coworkerEntries.forEach(function (entry) {
var npc = entry.npc;
entry.willJoinWhippit = true;
if ((npc.dislikes ?? []).includes('whippit')) {
entry.willJoinWhippit = false;
} else if ((npc.pregnancy ?? 0) >= 7) {
var declineChance = (npc.likes ?? []).includes('whippit') ? 60 : 80;
if (setup.percentageChance(declineChance)) entry.willJoinWhippit = false;
}
})>>
<<set _joiningEntries = _coworkerEntries.filter(function (entry) { return entry.willJoinWhippit; })>>
<<set _passingEntries = _coworkerEntries.filter(function (entry) { return !entry.willJoinWhippit; })>>
<<if _joiningEntries.length >= 1>>
<<set _groupTotal = 2 + _joiningEntries.length>>
<<set _groupWhippitCost = Math.ceil(_groupTotal / 3)>>
<<set _groupLinkText = 'Invite the rest of the crew to pass the balloon around'>>
<div id="opt_group_balloon">
<<if $backpack.count('whippit') < _groupWhippitCost>>
<div id="opt_group_balloon_desc" class="link-internal" style="background: #ccc">
<<=_groupLinkText>> (insufficient whippits to go around)
</div>
<<else>>
<<linkreplace `_groupLinkText`>>
<<run $('#opt_full_balloon, #opt_share_balloon, #opt_full_balloon_desc, #opt_share_balloon_desc, #opt_group_balloon_desc').hide()>>
<<drop $backpack 'whippit' _groupWhippitCost>>
<<addmins 15>>
<<set _joinNames = []>>
<<set _passNames = []>>
<<for _je range _joiningEntries>>
<<if _je.type === 'guest'>>
<<set $guests[_je.idx].happy = Math.min($guests[_je.idx].happy + 1, 100)>>
<<set $guests[_je.idx].relationship = Math.min($guests[_je.idx].relationship + 1, 100)>>
<<set $guests[_je.idx].corruption = Math.min(($guests[_je.idx].corruption ?? 0) + 1, 100)>>
<<else>>
<<set $slaves[_je.idx].happy = Math.min($slaves[_je.idx].happy + 1, 100)>>
<<set $slaves[_je.idx].relationship = Math.min($slaves[_je.idx].relationship + 1, 100)>>
<<set $slaves[_je.idx].corruption = Math.min(($slaves[_je.idx].corruption ?? 0) + 1, 100)>>
<</if>>
<<run _joinNames.push(setup.displayName(_je.npc))>>
<</for>>
<<for _pe range _passingEntries>>
<<run _passNames.push(setup.displayName(_pe.npc))>>
<</for>>
<<set _joinText = _joinNames.length > 1 ? _joinNames.slice(0, -1).join(', ') + ' and ' + _joinNames[_joinNames.length - 1] : _joinNames[0]>>
You wave the rest of the crew over and pass the balloon around, refilling it with a fresh canister whenever it starts to sag to make sure everyone gets a fair hit. <<=_joinText>> pile in, each one laughing harder than the last as they watch each other get wobbly and silly — a welcome break from the harshness of reality.
<<if _passNames.length>>
<<set _passText = _passNames.length > 1 ? _passNames.slice(0, -1).join(', ') + ' and ' + _passNames[_passNames.length - 1] : _passNames[0]>>
<br /><br />
<<=_passText>> <<=_passNames.length > 1 ? 'wave it off' : 'waves it off'>>, deciding it's just not <<=_passNames.length > 1 ? 'their' : 'her'>> thing.
<</if>>
<br /><br />
<<set _crEntry = _joiningEntries[Math.floor(Math.random() * _joiningEntries.length)]>>
<<set _crOriginalFirst = setup.percentageChance(50)>>
<<set _crNpcA = _crOriginalFirst ? $tmpGirl : _crEntry.npc>>
<<set _crNpcB = _crOriginalFirst ? _crEntry.npc : $tmpGirl>>
<<set _crLines = setup.pickWhippitCallResponse($tmpGirl.assignedTo, _crNpcA.drunk ?? 0, _crNpcB.drunk ?? 0, _crNpcA)>>
<<if _crLines>>
<<sayNpc _crNpcA>><<=_crLines[0]>><</sayNpc>>
<<sayNpc _crNpcB>><<=_crLines[1]>><</sayNpc>>
<br />
<</if>>
<<set _noIncestSetting = $player?.baseManagement?.noIncest ?? false>>
<<set _lingerEligible = _joiningEntries.filter(function (entry) { return !(_noIncestSetting && setup.family.isIncest($player, entry.npc)); })>>
<<set _femaleJoiners = _lingerEligible.filter(function (entry) { return [0, 2].includes(entry.npc.gender); })>>
<<set _didFoursome = false>>
<<set _didThreesome = false>>
<<if !_incestBlocked && _femaleJoiners.length >= 2 && setup.percentageChance(50)>>
<<set _picked = setup.weightedSampleWithoutReplacement(_femaleJoiners, function (entry) { return setup.getWhippitParticipantWeight(entry.npc); }, 2)>>
<<set _p2 = _picked[0]>>
<<set _p3 = _picked[1]>>
<<if _p2.type === 'guest'>><<set $guestId2 = _p2.idx>><<unset $slaveId2, $charId2>><<else>><<set $slaveId2 = _p2.idx>><<unset $guestId2, $charId2>><</if>>
<<set $tmpGirl2 = _p2.npc>>
<<if _p3.type === 'guest'>><<set $guestId3 = _p3.idx>><<unset $slaveId3, $charId3>><<else>><<set $slaveId3 = _p3.idx>><<unset $guestId3, $charId3>><</if>>
<<set $tmpGirl3 = _p3.npc>>
<<set $tmpGirlViewBack = _backPassage>>
<<set _didFoursome = true>>
As you all catch your breath, <<=setup.displayName($tmpGirl)>>, <<=setup.displayName($tmpGirl2)>> and <<=setup.displayName($tmpGirl3)>> trade a look, then close in around you, offering to take you somewhere private they know for a proper group party.
<br /><br />
<div id="btn_group_scene">
<<link 'Take them up on it'>>
<<foursome $tmpGirl $tmpGirl2 $tmpGirl3>>
<</link>>
</div>
<<elseif !_incestBlocked && _lingerEligible.length >= 1>>
<<set _picked = setup.weightedSampleWithoutReplacement(_lingerEligible, function (entry) { return setup.getWhippitParticipantWeight(entry.npc); }, 1)>>
<<set _p2 = _picked[0]>>
<<if _p2.type === 'guest'>><<set $guestId2 = _p2.idx>><<unset $slaveId2, $charId2>><<else>><<set $slaveId2 = _p2.idx>><<unset $guestId2, $charId2>><</if>>
<<set $tmpGirl2 = _p2.npc>>
<<set $tmpGirlViewBack = _backPassage>>
<<set _didThreesome = true>>
As you all catch your breath, <<=setup.displayName($tmpGirl)>> and <<=setup.displayName($tmpGirl2)>> linger close, offering to take you somewhere private they know for a little more fun.
<br /><br />
<div id="btn_group_scene">
<<link 'Take them up on it'>>
<<threesome $tmpGirl $tmpGirl2>>
<</link>>
</div>
<</if>>
<<if !_didFoursome && !_didThreesome>>
As you all catch your breath, the group winds down from the high and heads back to work, feeling a little more refreshed and grateful for the chance to let loose.
<<for _p range _joiningEntries>>
<<if _p.type === 'guest'>>
<<set $guests[_p.idx].happy = Math.min($guests[_p.idx].happy + 2, 100)>>
<<set $guests[_p.idx].relationship = Math.min($guests[_p.idx].relationship + 2, 100)>>
<<else>>
<<set $slaves[_p.idx].happy = Math.min($slaves[_p.idx].happy + 2, 100)>>
<<set $slaves[_p.idx].relationship = Math.min($slaves[_p.idx].relationship + 2, 100)>>
<</if>>
<</for>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 2, 100)>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 2, 100)>>
<</if>>
<div id="btn_group_leave">
<<link 'Leave'>>
<<goto _backPassage>>
<</link>>
<div class="link-desc">Happiness +1 • Relationship +1 • Corruption +1 (all who join)</div>
</div>
<</linkreplace>>
<<linkdesc 'opt_group_balloon_desc'>>
Happiness +1 • Relationship +1 • Corruption +1 (all who join) • costs <<=_groupWhippitCost>> whippit<<=_groupWhippitCost > 1 ? 's' : ''>>
<</linkdesc>>
<</if>>
</div>
<</if>>
<</if>><h1 class="ptitle">BASEMENT</h1>
<br /><br />
<<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _heOrSheU = setup.pronounceWhat($tmpGirl, true)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _hisOrHerU = setup.pronounceWhos($tmpGirl, true)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _isMasochist = ($tmpGirl.traits ?? []).includes('masochist')>>
<<set _relStats = 1>>
<<set _subStats = 1>>
<<set _punishView = 'punish'>>
<<if !settings.gaysEnabled && $tmpGirl.gender == 1 >>
<<set _punishView = _punishView + '_hit'>>
<</if>>
<<set _punishSettings = {
paddle: { show: true, relStats: 2, subStats: 3, viewSuffix: '_paddle' },
beat: { show: true, relStats: 1, subStats: 1, viewSuffix: '_hit' },
piss: { show:true, relStats: 2, subStats: 2, viewSuffix: '_piss' },
choke: { show: !$tmpGirl.gender, relStats: 0, subStats: 2, viewSuffix: '_choke'},
whip: { show: !$tmpGirl.gender, relStats: 0, subStats: 2, viewSuffix: '_whip'}
}>>
<<set _punishTypeSettings = _punishSettings[$punishType] ?? { relStats: 1, subStats: 1, viewSuffix: '' }>>
<<set _relStats = _punishTypeSettings.relStats>>
<<set _subStats = _punishTypeSettings.subStats>>
<<set _punishView += _punishTypeSettings.viewSuffix>>
<<set _relChanged = true>>
<<set _subChanged = true>>
<<if _isMasochist && $punishType !== 'beat'>>
<<set _relStats = 0>>
<<set _relChanged = false>>
<</if>>
<<if $punishType !== $prevPunish>>
<<set $punishCount = 0>>
<</if>>
<<set $punishCount++>>
<<set _dead = false>>
<<if $punishType === 'choke' && $punishCount >= 3>>
<<if $charId>>
<<set $tmpGirl.happy = Math.min(0, ($tmpGirl.happy -= 10))>>
<<else>>
<<set _dead = true>>
<<set _punishView = 'punish_dead'>>
<</if>>
<</if>>
<<if typeof $punishType === 'undefined'>>
<<if $tmpGirl.gender == 1>>
<center>
[img[setup.ImagePath+'places/basement/guy_punish.webp']]
</center>
<br /><br />
<</if>>
You enter <<=_hisOrHer>> basement cell, and <<=_heOrShe>> is already waiting for you. Fear is visible in <<=_hisOrHer>> eyes, while <<=_hisOrHer>> hands are tied behind <<=_hisOrHer>> back.
<<else>>
<<actionImage $tmpGirl _punishView>>
<<set $tmpGirl.relationship -= _relStats>>
<<if $tmpGirl.relationship < -100>>
<<set $tmpGirl.relationship = -100>>
<<set _relChanged = false>>
<</if>>
<<set $tmpGirl.sub += _subStats>>
<<if $tmpGirl.sub > 100>>
<<set $tmpGirl.sub = 100>>
<<set _subChanged = false>>
<</if>>
<<addmins 15>>
<<energy -10>>
<<if _dead>>
You take a step back and look at her. You overdid and she's laying on the ground dead.
<<elseif $punishType == 'piss'>>
<strong>
You start to piss all over <<=setup.displayName($tmpGirl)>> face, <<=_heOrShe>> can't do anything because <<=_heOrShe>>'s tied up. <<=_heOrSheU>> tries to turn away and close <<=_hisOrHer>> eyes.
</strong>
<<elseif $punishType == 'beat'>>
<strong>
You've properly swung a few times and punched <<=setup.displayName($tmpGirl)>> right in the face, <<=_heOrShe>> can't do anything because <<=_heOrShe>>'s tied to a chair, but after a few punches, it seems like <<=_heOrShe>>'s slowly starting to give in.
</strong>
<<elseif $punishType === 'choke'>>
<<if $punishCount < 1>>
You put your hands around <<=setup.displayName($tmpGirl)>> neck and choke her.
<<elseif $punishCount < 3>>
<<=setup.displayName($tmpGirl)>> eyes gets sleepy as she looks straight at you and tries to tell something.
<</if>>
<<elseif $punishType === 'whip'>>
<strong>
Strike landed with a clean snap—loud in the cramped space. <<=_heOrSheU>> flinched, but made no sound.
Second. Third. <<=_hisOrHerU>> breath hitched on the fourth
</strong>
<<elseif _isMasochist>>
<strong><<=setup.displayName($tmpGirl)>></strong> moans in enjoyment while looking over <<=_hisOrHer>> shoulder straight in your eyes.
<<set $tmpGirl.horny = Math.min($tmpGirl.horny + 10, 100)>>
<<else>>
<strong><<print $tmpGirl.name>></strong> yells in pain as you punish <<=_himOrHer>>.
<</if>>
<<if _relChanged || _subChanged>>
<br /><br />
<</if>>
<<if _relChanged>>
<strong><<print $tmpGirl.name>></strong> relationship decreased by <<=_relStats>><br />
<</if>>
<<if _subChanged>>
<strong><<print $tmpGirl.name>></strong> submission increased by <<=_subStats>><br />
<</if>>
<</if>>
<br /><br />
<<set $prevPunish = $punishType>>
<<if !_dead>>
<<if $player.energy >= 10 && timeBetween('08:00', '04:00')>>
<<if $tmpGirl.gender == 1>>
<<link 'Hit him'>>
<<set $punishType = 'beat'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<if settings.gaysEnabled || !$tmpGirl.gender>>
<<link 'Punish (slap)'>>
<<set $punishType = 'slap'>>
<<goto `passage()`>>
<</link>>
<<if $backpack.has('paddle')>>
<<link 'Punish (paddle)'>>
<<set $punishType = 'paddle'>>
<<goto `passage()`>>
<</link>>
<</if>>
<</if>>
<<link 'Punish (whip)'>>
<<set $punishType = 'whip'>>
<<goto `passage()`>>
<</link>>
<<set _linkName = 'Piss on ' + _himOrHer>>
<<link _linkName>>
<<set $punishType = 'piss'>>
<<goto `passage()`>>
<</link>>
<<if [0, 2].includes($tmpGirl.gender)>>
<<set _linkName = 'Choke ' + _himOrHer>>
<<link _linkName>>
<<set $punishType = 'choke'>>
<<goto `passage()`>>
<</link>>
<</if>>
<</if>>
<<else>>
<<slaveRemove $slaveId>>
<</if>>
<<link 'Back'>>
<<unset $punishType, $prevPunish, $punishCount>>
<<if _dead>>
<<goto 'Basement'>>
<<else>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto 'NPC view'>>
<</if>>
<</if>>
<</link>><<set _bathSchedule = setup.bathSchedule>>
<<set _hasBathhouse = ($game.location.bathhouse ?? false)>>
<<for _scheduleGuestI, _scheduleGuest range $guests>>
<<set _scheduleGuest.location = ''>>
<<if setup.getAge(_scheduleGuest) < 18>>
<<continue>>
<</if>>
<<if (_hasBathhouse && !_scheduleGuest.washedBathhouse &&
(((!_scheduleGuest.assignedTo || typeof _bathSchedule[_scheduleGuest.assignedTo] === 'undefined') && setup.percentageChance(5)) ||
(typeof _bathSchedule[_scheduleGuest.assignedTo] !== 'undefined' && (timeBetween(_bathSchedule[_scheduleGuest.assignedTo].from, _bathSchedule[_scheduleGuest.assignedTo].to) && setup.percentageChance(_bathSchedule[_scheduleGuest.assignedTo].p))))
)>>
<<set _scheduleGuest.washedBathhouse = true>>
<<run setup.wash(_scheduleGuest)>>
<<set _scheduleGuest.location = 'bathhouse'>>
<<setNpcStats 'guest' _scheduleGuestI 'happy' 3>>
<</if>>
<</for>>
<<for _scheduleSlaveI, _scheduleSlave range $slaves>>
<<set _scheduleSlave.location = ''>>
<<if setup.getAge(_scheduleSlave) < 18>>
<<continue>>
<</if>>
<</for>><<set _chanceShowSkill = 20>>
<<if $player.int > 30>>
<<set _chanceShowSkill += 20>>
<</if>>
<<if $player.int > 60>>
<<set _chanceShowSkill += 20>>
<</if>>
<<if setup.percentageChance(_chanceShowSkill) && !$slaveId && !$guestId && !$charId>>
<<if ($tmpGirl.skills ?? []).length>>
<strong>You learned that <<=setup.pronounceWhat($tmpGirl)>> has <<=setup.skills[setup.getRandomElement($tmpGirl.skills)].title>> skill!</strong>
<<else>>
<strong>You learned that <<=setup.pronounceWhat($tmpGirl)>> don't have any skills!</strong>
<</if>>
<br /><br />
<</if>>
<br />
<<sayNpc $tmpGirl>>
<<if $charId>>
<<=setup.npc.getCharDialog($tmpGirl, $charId)>>
<<else>>
<<=setup.npc.getSayDialog($tmpGirl)>>
<</if>>
<</sayNpc>>
<<if $guestId && setup.percentageChance(30)>>
<<set $tmpGirl.happy += Math.min(100, $tmpGirl.happy + randomInteger(1, 10))>>
<</if>>
<<if $slaveId !== undefined && $tmpGirl.relationship > 30 && !$tmpGirl.gender>>
<br /><br />
She had <strong><<= ($tmpGirl.orgasms ?? 0)>></strong> orgasms
<</if>>
<br /><br />
<<set $tmpGirl.quests ??= {}>>
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<<if $charId && $tmpGirl.corruption > 50 && !$tmpGirl.canPunish>>
<<set $tmpGirl.canPunish = true>>
<</if>>
<<if [0, 2].includes($tmpGirl.gender) && ($tmpGirl.married ?? false) && ($tmpGirl.family?.husband) && $tmpGirl.family.husband !== 'mc' && ($tmpGirl.relationship ?? 0) >= 60 && $guestId !== undefined>>
<<link 'Ask her about her husband'>>
<<goto 'NPC - leave husband'>>
<</link>>
<</if>>
<<link 'Back'>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto [[NPC view]]>>
<</if>>
<</link>><<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<if $tmpGirl.canTalk && !$tmpGirl.talked && !$tmpGirl.gagBall && !($tmpGirl.traits ?? []).includes('feral')>>
<<link 'Talk'>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<<set $tmpGirl.talked = true>>
<<addmins 15>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<goto 'NPC talk'>>
<</link>>
<<elseif !$tmpGirl.talked && ($tmpGirl.traits ?? []).includes('feral')>>
<<link 'Play'>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<<set $tmpGirl.talked = true>>
<<addmins 15>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<goto 'NPC feral play'>>
<</link>>
<</if>>
<<if $tmpGirl.canFuck && setup.getAge($tmpGirl) >= 18 && $player.energy > 30 && $tmpGirl.location !== 'garden'>>
<<set _linkName = 'Fuck ' + _himOrHer>>
<<set $tmpGirl.location = 'bedroom'>>
<<link `_linkName`>>
<<set $tmpGirlViewBack = 'NPC view - character'>>
<<if setup.npc.isExOfMc($tmpGirl)>>
<<goto 'Mc fuck - ex'>>
<<elseif setup.percentageChance(setup.sexChance($tmpGirl))>>
<<fuck $tmpGirl>>
<<else>>
<<goto 'Mc fuck - no'>>
<</if>>
<</link>>
<</if>>
<<if $tmpGirl.canPunish && $player.energy > 30>>
<<set _linkName = 'Punish ' + _himOrHer + ' in basement'>>
<<link `_linkName`>>
<<set $tmpGirl.location = 'basement'>>
<<goto 'NPC punish'>>
<</link>>
<</if>>
<<if !$tmpGirl.gender && ($tmpGirl.pregnancy ?? -1) >= 7>>
<<if $backpack.has('pregnancy_speed_potion')>>
<<link 'Give pregnancy speed potion'>>
<<set $pregnancyPotionBackLink = 'NPC view - character'>>
<<goto 'Girl - pregnancy speed potion'>>
<</link>>
<</if>>
<<if $backpack.has('pregnancy_potion')>>
<<link 'Give termination potion'>>
<<goto 'Girl - pregnancy potion'>>
<</link>>
<</if>>
<</if>>
<<if $tmpGirl.canMarry && !$tmpGirl.gender && !$tmpGirl.married && $backpack.has('wedding_ring') && $tmpGirl.relationship >= 80>>
<<set _linkName = 'Marry ' + _himOrHer>>
<<link `_linkName`>>
<<goto 'NPC marry'>>
<</link>>
<</if>>
<<link 'Customize'>>
<<goto 'NPC customize'>>
<</link>>
<<link 'Go back'>>
<<set $characters[$charId] = $tmpGirl>>
<<unset $slaveId, $guestId, $charId>>
<<if $tmpGirlBack>>
<<goto $tmpGirlBack>>
<<else>>
<<goto 'Outside'>>
<</if>>
<</link>><<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<if !$tmpGirl.talked && !$tmpGirl.gagBall && !($tmpGirl.traits ?? []).includes('feral')>>
<<link 'Talk'>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<<set $tmpGirl.talked = true>>
<<addmins 15>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<goto 'NPC talk'>>
<</link>>
<<elseif !$tmpGirl.talked && ($tmpGirl.traits ?? []).includes('feral')>>
<<link 'Play'>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<<set $tmpGirl.talked = true>>
<<addmins 15>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<goto 'NPC feral play'>>
<</link>>
<</if>>
<<if !$tmpGirl.gender && timeBetween('22:00', '03:00')>>
<<link 'Invite to spend night in your bedroom'>>
<<goto 'Bedroom - invite to sleep in bedroom'>>
<</link>>
<</if>>
<<if [0,2].includes($tmpGirl.gender) && !($tmpGirl.traits ?? []).includes('feral') && setup.getAge($tmpGirl) >= 18 && typeof $tmpGirl.sick === 'undefined' && timeBetween('18:00', '02:00') && setup.cabinInventory.has('playing_cards') && ($tmpGirl.pokerDay ?? -1) !== $game.day>>
<<link 'Play strip poker'>>
<<set $tmpGirl.pokerDay = $game.day>>
<<set $guests[$guestId] = $tmpGirl>>
<<set $poker = { phase: 'ask' }>>
<<goto 'Strip poker'>>
<</link>>
<</if>>
<<if !$tmpGirl.gender && $tmpGirl.location === 'garden' && $player.energy >= 20 && !$tmpGirl.groped>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
[[Grope|Grope]]
<</if>>
<<if !$tmpGirl.gender && $tmpGirl.location === 'strip_club' && $player.energy >= 20>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<link 'Ask for a lap dance'>>
<<goto 'Strip Club - dance'>>
<</link>>
<</if>>
<<if $player.energy > 30 && $tmpGirl.location !== 'garden'>>
<<set _linkName = 'Fuck ' + _himOrHer>>
<<link `_linkName`>>
<<if $tmpGirl.assignedTo === 'attendant' && ($tmpGirl.location === 'shower' || $tmpGirl.location === 'basement')>>
<<goto 'Attendant fuck choose'>>
<<elseif $tmpGirl.assignedTo === 'mistress' && setup.isAtWork($tmpGirl, $weather)>>
<<goto 'Mistress fuck choose'>>
<<else>>
<<goto 'NPC fuck choose'>>
<</if>>
<</link>>
<</if>>
<<if setup.NpcInHome($tmpGirl) && !($tmpGirl.basementVoluntary ?? false) && !(($tmpGirl.assignedTo === 'attendant' || $tmpGirl.assignedTo === 'mistress') && setup.isAtWork($tmpGirl, $weather))>>
<<set _linkName = 'Ask '+ _himOrHer +' to fuck someone'>>
<<link `_linkName`>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<script>>
Dialog.setup("Guesthouse - Ask to fuck", "Guesthouse - Ask to fuck");
Dialog.wiki(Story.get("Guesthouse - Ask to fuck someone choose").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<if !($player.companions['guest:' + $guestId] ?? false) && Object.keys($player.companions ?? {}).length < $companionsLimit>>
<<link 'Add as companion'>>
<<companionAdd 'guest' $guestId>>
<<assignedTo $tmpGirl 'companion'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<if !$tmpGirl.assignedTo && !($player.companions['guest:' + $guestId] ?? false)>>
<<link 'Assign to'>>
<<dialog 'Assign to'>>
<<include 'Guest view assign to'>>
<</dialog>>
<</link>>
<</if>>
<<if $tmpGirl.assignedTo>>
<<link "Remove assigned job ($tmpGirl.assignedTo)">>
<<assignedTo $tmpGirl 'none'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<include 'Button - rest or work'>>
<<if !$tmpGirl.gender && !$tmpGirl.milked && $player.energy >= 10 && $backpack.has('breast_pump') && ($tmpGirl.pregnancy > 60 || ($tmpGirl.traits ?? []).includes('milker')) && setup.NpcInHome($tmpGirl)>>
<<link 'Milk her'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<goto 'Girl milk'>>
<</link>>
<</if>>
<<if ($game.hotShower ?? false) && $player.energy >= 10 && setup.NpcInHome($tmpGirl)>>
<<link 'Invite to your shower'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<goto 'Event: Guest invite shower'>>
<</link>>
<</if>>
<<if !$tmpGirl.workout && $player.energy >= 10 && setup.NpcInHome($tmpGirl)>>
<<link 'Workout together'>>
<<set $tmpGirl.workout = true>>
<<energy -10>>
<<goto 'NPC - workout together'>>
<</link>>
<</if>>
<<include 'NPC view - massage table invite'>>
<<if setup.cabinInventory.has('champagne') && setup.NpcInHome($tmpGirl)>>
<<set _linkName = 'Offer ' + _himOrHer + ' a drink'>>
<<link _linkName>>
<<goto 'NPC offer drink'>>
<</link>>
<</if>>
<<if ['nightclub', 'strip_club'].includes($tmpGirl.assignedTo) && setup.isAtWork($tmpGirl, $weather) && !($tmpGirl.dislikes ?? []).includes('alcohol')>>
<<set _linkName = 'Buy ' + _himOrHer + ' a drink'>>
<<if $player.money >= 5>>
<<link `_linkName`>>
<<goto 'NPC offer bar drink'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
<<=_linkName>> (insufficient caps)
</div>
<</if>>
<</if>>
<<if !$tmpGirl.offeredSoda && ['garden', 'forest', 'quarry'].includes($tmpGirl.assignedTo) && setup.isAtWork($tmpGirl, $weather) && !($tmpGirl.dislikes ?? []).includes('soda')>>
<<set _linkName = 'Offer ' + _himOrHer + ' a soda'>>
<<if $backpack.has('soda')>>
<<link `_linkName`>>
<<goto 'NPC offer soda'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
<<=_linkName>> (no soda in backpack)
</div>
<</if>>
<</if>>
<<if !$tmpGirl.offeredWhippit && ['streets', 'nightclub', 'strip_club'].includes($tmpGirl.assignedTo) && setup.isAtWork($tmpGirl, $weather) && !($tmpGirl.dislikes ?? []).includes('whippit')>>
<<set _linkName = 'Offer ' + _himOrHer + ' a whippit huff'>>
<<if $backpack.has('whippit')>>
<<link `_linkName`>>
<<goto 'NPC offer whippit'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
<<=_linkName>> (no whippit in backpack)
</div>
<</if>>
<</if>>
<<if !$tmpGirl.gender && $tmpGirl.pregnancy && $tmpGirl.pregnancy >= 7>>
<<if $backpack.has('pregnancy_potion')>>
<<link 'Give pregnancy termination potion'>>
<<goto 'Girl - pregnancy potion'>>
<</link>>
<</if>>
<<if $backpack.has('pregnancy_speed_potion')>>
<<link 'Give pregnancy speed potion'>>
<<goto 'Girl - pregnancy speed potion'>>
<</link>>
<</if>>
<</if>>
<<if [0, 2].includes($tmpGirl.gender) && !$tmpGirl.married && !$tmpGirl?.family?.husband && $backpack.has('wedding_ring') && $tmpGirl.relationship >= 80 && setup.NpcInHome($tmpGirl)>>
<<set _linkName = 'Marry ' + _himOrHer>>
<<link `_linkName`>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $oldTmpGirlLocation = $tmpGirl.location>>
<<goto 'NPC marry'>>
<</link>>
<</if>>
<<if [0, 2].includes($tmpGirl.gender) && $tmpGirl.married && $tmpGirl?.family?.husband === 'mc' && setup.NpcInHome($tmpGirl)>>
<<link 'Take her on a date'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<goto 'Date - pick'>>
<</link>>
<</if>>
<<if $tmpGirl.married && $tmpGirl?.family?.husband === 'mc' && setup.NpcInHome($tmpGirl)>>
<<link 'End marriage'>>
<<dialog 'End marriage'>>
Are you sure you want to end your marriage with <<=setup.displayName($tmpGirl)>>?
<br />
<<link 'Yes' 'NPC end marriage'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<dialogclose>>
<</link>>
<</dialog>>
<</link>>
<<elseif $tmpGirl?.family?.husband && $tmpGirl.family.husband !== 'mc' && setup.npc.isSpouseLost($tmpGirl.family.husband) && setup.NpcInHome($tmpGirl)>>
<<link 'End marriage with lost husband'>>
<<dialog 'End marriage'>>
Are you sure you want to end <<=setup.displayName($tmpGirl)>>'s marriage to her lost husband?
<br />
<<link 'Yes' 'NPC end marriage'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<dialogclose>>
<</link>>
<</dialog>>
<</link>>
<<elseif $tmpGirl?.family?.husband && $tmpGirl.family.husband !== 'mc' && setup.getNpcById($tmpGirl.family.husband) && setup.NpcInHome($tmpGirl)>>
<<set _divorceHusband = setup.getNpcById($tmpGirl.family.husband)>>
<<set _linkName = 'End marriage to ' + _divorceHusband.name>>
<<link `_linkName`>>
<<set _divorceHusbandName = setup.getNpcById($tmpGirl.family.husband)?.name ?? 'him'>>
<<dialog 'End marriage'>>
Are you sure you want to end the marriage between <<=setup.displayName($tmpGirl)>> and <<=_divorceHusbandName>>?
<br />
<<link 'Yes' 'NPC end marriage'>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<dialogclose>>
<</link>>
<</dialog>>
<</link>>
<</if>>
<<if [1, 3].includes($tmpGirl.gender) && $backpack.has('wedding_ring') && setup.NpcInHome($tmpGirl)>>
<<link 'Select a bride for marriage'>>
<<script>>
Dialog.setup("Offer a bride", "Offer a bride");
Dialog.wiki(Story.get("Guesthouse - Offer bride choose").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<if !$tmpGirl.gift>>
<<link 'Give gift'>>
<<script>>
Dialog.setup("NPC gift", "NPC gift");
Dialog.wiki(Story.get("NPC gift").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<link 'Customize'>>
<<goto 'NPC customize'>>
<</link>>
<<if $player.energy >= 10 && hasTime(1) && ($tmpGirl.traits ?? []).includes('masochist') && ($tmpGirl.basementVoluntary ?? false) && setup.NpcInHome($tmpGirl)>>
<<set _linkName = 'Punish ' + _himOrHer>>
<<link `_linkName`>>
<<set $tmpGirl.location = 'basement'>>
<<goto 'NPC punish'>>
<</link>>
<</if>>
<<if [0, 2].includes($tmpGirl.gender) && ($tmpGirl.relationship ?? 0) >= 70 && !($tmpGirl.basementVoluntary ?? false) && setup.NpcInHome($tmpGirl)>>
<<link 'Invite her to the basement'>>
<<set $guests[$guestId] = $tmpGirl>>
<<goto 'Guest - basement invite'>>
<</link>>
<</if>>
<<if ($tmpGirl.basementVoluntary ?? false) && setup.NpcInHome($tmpGirl)>>
<<link 'Send her back to guesthouse'>>
<<set $guests[$guestId] = $tmpGirl>>
<<run delete $guests[$guestId].basementVoluntary>>
<<if $tmpGirlBack>><<goto $tmpGirlBack>><<else>><<goto 'Guest house'>><</if>>
<</link>>
<</if>>
<<if $slaves.length < $basementLimit && setup.NpcInHome($tmpGirl)>>
<<set _linkName = 'Move ' + _himOrHer + ' to the basement cell'>>
<<link `_linkName`>>
<<set $guests[$guestId] = $tmpGirl>>
<<assignedTo $tmpGirl 'none'>>
<<goto 'Guest move to basement'>>
<</link>>
<</if>>
/* Straight to the settlement (no basement detour). Not for the MC's spouse - she would be gone for good. */
<<if setup.baseManagement.population.hasFreeHouse() && setup.NpcInHome($tmpGirl) && !($tmpGirl.married && $tmpGirl.family?.husband === 'mc')>>
<<set _linkName = 'Move ' + _himOrHer + ' to the settlement'>>
<<link `_linkName`>>
<<dialog 'Move to the settlement'>>
<<=setup.displayName($tmpGirl)>> will get a house in the settlement and live there as one of the settlers. You won't be able to visit <<=setup.pronounceWho($tmpGirl)>> as a guest anymore.
<br /><br />
Are you sure?
<br />
<<link 'Yes'>>
<<set $guests[$guestId] = $tmpGirl>>
<<assignedTo $tmpGirl 'none'>>
<<dialogclose>>
<<goto 'Guest move to settlement'>>
<</link>><<link 'No'>>
<<dialogclose>>
<</link>>
<</dialog>>
<</link>>
<</if>>
<<if setup.NpcInHome($tmpGirl)>>
<<link 'Throw out'>>
<<dialog 'Throw out'>>
Are you sure you want to throw <<=($tmpGirl.gender ? 'him' : 'her')>> out?
<br />
<<link 'Yes' 'Guest house'>>
<<assignedTo $tmpGirl 'none'>>
<<guestLeft $guestId>>
<<dialogclose>>
<<set $player.reputation-->>
<<set $player.goodwill-->>
<</link>>
<</dialog>>
<</link>>
<</if>>
<<link 'Go back'>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<<elseif typeof $charId !== 'undefined'>>
<<set $characters[$charId] = $tmpGirl>>
<</if>>
<<unset $slaveId, $guestId, $charId>>
<<if $tmpGirlBack>>
<<goto $tmpGirlBack>>
<<else>>
<<goto 'Outside'>>
<</if>>
<</link>><h1 class="ptitle">BATHHOUSE</h1>
<br />
She looked at you for a moment, her lips curling into a mischievous smile as she let out a quiet chuckle. She leaned forward a bit, the light catching in her eyes.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes(‘feral’)>>
She watches you with wide, curious eyes, head tilting as you approach. When you reach toward her shoulder, she doesn’t pull back — she presses her head against your hand, leaning in.
<br /><br />
When you gesture toward the table, she climbs onto it without hesitation, stretches out, and looks back at you expectantly.
<<else>>
<<sayNpc $tmpGirl>>
You offering to take care of me, or just fishing for an excuse to touch my shoulders?
<</sayNpc>>
<br />
You felt your face warm slightly, but before you could think of a clever comeback, she stepped closer. Her expression shifted, the humor in her eyes softening into something more tender. She paused, her hand resting gently on your arm.
<br /><br />
<<sayNpc $tmpGirl>>
How about this.
<</sayNpc>>
<br />
<<sayNpc $tmpGirl>>
You’ve been out there busting your back too—how about I give you one instead?
<</sayNpc>>
<br /><br />
Her offer lingered in the air, and for a second, you couldn’t help but feel an unexpected nervousness. There was something in her gaze, a warmth that felt more intimate than anything you’d felt in a long time. You took a deep breath and nodded, your heart picking up as you gave in to her offer.
<</if>>
<br /><br />
<div id="option_agree">
<<linkreplace 'Agree'>>
<<run $('#option_deny').hide()>>
You laid down on the table, the cushion beneath you strangely comforting.
Soon, you felt her hands settle on your shoulders, and she began working gently, kneading the knots and tension out of your muscles.
Her touch was careful, tracing every line and curve with a lingering softness.
It was as though, in that quiet moment, she was trying to reach beyond the scars and survival that defined so much of your lives now.
<br /><br />
<<video 'bathhouse/massage_mc1_1'>>
<br /><br />
Her hands moved slowly, working down your spine, kneading away the aches you’d pushed through without thinking.
Her touch was firm, steady, and surprisingly tender, each movement tracing the lines of your shoulders and back, easing the weight of exhaustion from your bones.
In her hands, the tension faded, replaced by a warmth that made you close your eyes and just breathe, if only for a moment.
<br /><br />
<<if setup.perkHas('beaten')>>
<<run delete $player.perks.beaten>>
And then, as you soak, something remarkable happens.
You feel a sense of relief wash over you as the aches and pains in your body begin to dissipate, leaving you feeling refreshed and rejuvenated.
<br /><br />
<strong>Your body doesn't hurt anymore!</strong>
<br /><br />
<</if>>
<center>
<<image 'places/bathhouse/massage_cleavage.webp'>>
</center>
<br />
<<linkreplace 'Grab her top'>>
With a soft smile, you brushed your fingers over her shoulder, gently tracing the edge of her worn shirt.
Meeting her gaze for silent permission, you slowly eased the fabric down her shoulders, revealing the skin beneath as she watched you, her expression open and unguarded.
<br /><br />
<<video 'bathhouse/massage_mc1_2'>>
<br /><br />
<<=setup.displayName($tmpGirl)>> let out a quiet moan, her eyes warm and playful. She teased reaching over to tug at the towel you were covered.
In a swift, mischievous move, she pulled it down, exposing your dick to the cool air, her grin widening at your surprised expression as she grabbed it.
<br /><br />
<<video 'bathhouse/massage_mc1_3'>>
<br /><br />
<<=setup.displayName($tmpGirl)>> slides her hand across your dick, slowly grabbing it again and now stroking it.
She leans as close as can towards you so her nipple almost touches your lips, teasing you that way.
<br /><br />
<<linkreplace 'Lick her nipples'>>
As you almost reach her nipple, she pulls herself away from you and removes her top. Then she focuses on your dick again.
<br /><br />
She gently grabs it with both hands and playfully rubs it against her nipples and juicy breasts. Her hands playfully touches just the tip of your dick as your dick is ready to explode.
<br /><br />
<<video 'bathhouse/massage_mc1_4'>>
<br /><br />
Moments later she has already removed her bottom clothes and slowly gets on the table, right on you without releasing your dick from her one hand.
<br /><br />
<center>
<<image 'places/bathhouse/massage_mc1_handjob.webp'>>
</center>
<br />
She grabs it with both hands again, now more firmly and with some force. She starts slow, but with each stroke increases speed and pressure on it.
Then she leans lower and starts to kiss you neck as she slowly crawls towards you till her pussy rubbing right against your dick.
<br /><br />
<<video 'bathhouse/massage_mc1_5'>>
<br /><br />
She presses her tights against your legs as she slides one hand between hers, grabs your dick and slowly adjusts it so it slowly slides inside her wet pussy.
<br /><br />
Your dick almost explodes as you enter her, but you calm down and let the fun continue. With each movement she slowly picks up the pace.
<br /><br />
<center>
<<image 'places/bathhouse/massage_grind_pussy.webp'>>
</center>
<br />
<<linkreplace 'Turn her on side'>>
You rolled onto your side, pulling her closer, and she straddled you, her legs parting to reveal the soft, inviting flesh of her pussy.
You started thrusting, feeling her pussy clench around your dick as you moved deeper.
<br /><br />
<<video 'bathhouse/massage_mc1_6'>>
<br /><br />
Her hand clutched the edge of the massage table, her fingers curling around it as if to steady herself, holding tight as your movements drew you both into a rhythm, shared and grounding
<br /><br />
<<video 'bathhouse/massage_mc1_7'>>
<br /><br />
The table creaked softly under your weight, but neither of you noticed, lost in the rhythm of your lovemaking.
Her hands were on your chest, her nails digging gently into your skin as she rode you, her eyes locked on yours with a deep, unspoken connection.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
She makes a raw, urgent sound and arches up against you.
<<else>>
<<sayNpc $tmpGirl>>
Cum inside me!
<</sayNpc>>
<</if>>
<br />
<<linkreplace 'Cum inside'>>
<<horny_reset>>
<<set $tmpGirl.horny = 0>>
<<if setup.pregnancyChance($tmpGirl)>>
<<set $tmpGirl.pregnancy_father = 'mc'>>
<<set $tmpGirl.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
<</if>>
As the climax approached, your movements became more urgent, your bodies straining together until the release came.
<br /><br />
<center>
<<image 'places/bathhouse/massage_cum_pussy.webp'>>
</center>
<br />
You felt yourself cumming, the wave of pleasure washing over you both. She moaned softly as she reached her own orgasm, her body shuddering against yours.
Soon enough you pulled out dick, letting your cum drip on the massage table right under you two.
<br /><br />
<<=setup.displayName($tmpGirl)>> grabbed her clothes and with smile on her face left to take a shower.
<br /><br />
<<link 'Leave'>>
<<addmins 30>>
/* $tmpGirl is a copy after navigation, so write her back before leaving */
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<<elseif typeof $charId !== 'undefined'>>
<<set $characters[$charId] = $tmpGirl>>
<</if>>
<<goto 'Bathhouse'>>
<</link>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div>
<<if !($tmpGirl.traits ?? []).includes('feral')>>
<div id="option_deny">
<<linkreplace 'Insist that you do the massage'>>
<<run $('#option_agree').hide()>>
She looked at you, her gaze softening, a mixture of surprise and gratitude glimmering in her eyes. After a beat, she sighed and tilted her head toward the massage table with a wry smile.
<br /><br />
<<sayNpc $tmpGirl>>
Alright, you win. But don't blame me if I fall asleep halfway through.
<</sayNpc>>
<br /><br />
<<link 'Continue'>>
<<goto 'Massage'>>
<</link>>
<</linkreplace>>
</div>
<</if>><<if [0, 2].includes($tmpGirl.gender) && $tmpGirl.location == 'bathhouse' && ($game.location.massage_table ?? false)>>
<<link 'Suggest a massage'>>
<<if recall($suppCode) && !$tmpGirl.gender && $tmpGirl.likesGuys && $tmpGirl.horny > 50 && setup.percentageChance(50)>>
<<goto 'NPC view - Massage proposal'>>
<<else>>
<<goto 'Massage'>>
<</if>>
<</link>>
<</if>><<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<if !$tmpGirl.talked && !$tmpGirl.gagBall && !($tmpGirl.traits ?? []).includes('feral')>>
<<link 'Talk'>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<<set $tmpGirl.talked = true>>
<<addmins 15>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<goto 'NPC talk'>>
<</link>>
<<elseif !$tmpGirl.talked && ($tmpGirl.traits ?? []).includes('feral')>>
<<link 'Train'>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 3, 100)>>
<<set $tmpGirl.talked = true>>
<<addmins 15>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<goto 'NPC feral play'>>
<</link>>
<</if>>
<<if $player.energy >= 30 && $tmpGirl.location !== 'garden'>>
<<if !$tmpGirl.gender && $tmpGirl.rape>>
<<link 'Try to rape her'>>
<<if $player.strength < $tmpGirl.strength>>
<<goto 'NPC found escape'>>
<<else>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<set $sexForced = true>>
<<fuck $tmpGirl>>
<<set $wasRaped = true>>
<</if>>
<</link>>
<<elseif !$tmpGirl.rape>>
<<set _linkName = 'Fuck ' + _himOrHer>>
<<link `_linkName`>>
<<goto 'Slave fuck choose'>>
<</link>>
<</if>>
<<include 'Girl invite - include'>>
<</if>>
<<if $game.location.basement && $tmpGirlCapture && $slaves.length < $basementLimit && $player.energy >= 30>>
<<set _linkName = 'Try to capture ' + setup.pronounceWho($tmpGirl)>>
<<link _linkName>>
<<if $player.strength > $tmpGirl.strength>>
<<set $tmpGirl.capture = false>>
<<run setup.npc.addHistory($tmpGirl, 'captured')>>
<<set $slaves.push($tmpGirl)>>
<<addhours 2>>
<<energy -30>>
<<statsAdd 'people_captured'>>
<<goto 'Basement'>>
<<else>>
<<goto 'NPC found escape'>>
<</if>>
<</link>>
<</if>>
<<if !$tmpGirl.gender && $tmpGirl.location === 'garden' && !$tmpGirl.groped>>
<<if $player.energy >= 20>>
<<set $tmpGirlViewBack = 'NPC view'>>
[[Grope|Grope]]
<</if>>
<</if>>
<<if !$tmpGirl.gender && $tmpGirl.location === 'strip_club' && $player.energy >= 20>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<link 'Ask for a lap dance'>>
<<goto 'Strip Club - dance'>>
<</link>>
<</if>>
<<if $slaveId !== undefined && !($player.companions['slave:' + $slaveId] ?? false) && Object.keys($player.companions ?? {}).length < $companionsLimit>>
<<link 'Add as companion'>>
<<achievement 'slave_companion'>>
<<companionAdd 'slave' $slaveId>>
<<assignedTo $tmpGirl 'companion_slave'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<if typeof $slaveId !== 'undefined' && !$tmpGirl.assignedTo && !($player.companions['slave:' + $slaveId] ?? false)>>
<<link 'Assign to'>>
<<dialog 'Assign to'>>
<<include 'Slave view assign to'>>
<</dialog>>
<</link>>
<</if>>
<<set _availableGirlSlaves = setup.getAvailablePersons18yo($slaves)>>
<<if $slaveId !== undefined && $tmpGirl.gender == 1 && (_availableGirlSlaves[0] ?? []).length && !$tmpGirl.offerSlave>>
<<link 'Offer him one of your slave girls'>>
<<script>>
Dialog.setup("Basement - Offer slave", "Basement - Offer slave");
Dialog.wiki(Story.get("Basement - Offer slave girl to slave guy: choose").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<set _availableGuySlaves = setup.getAvailablePersons18yo($slaves)>>
<<if $slaveId !== undefined && settings.gaysEnabled && $tmpGirl.gender == 1 && (_availableGuySlaves[1] ?? []).length > 1 && !$tmpGirl.offerSlave>>
<<link 'Offer him one of your slave guys'>>
<<script>>
Dialog.setup("Basement - Offer slave", "Basement - Offer slave");
Dialog.wiki(Story.get("Basement - Offer slave guy to slave guy: choose").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<set _availableTGirlsSlaves = setup.getAvailablePersons18yo($slaves)>>
<<if $slaveId !== undefined && settings.transEnabled && $tmpGirl.gender == 1 && (_availableTGirlsSlaves[2] ?? []).length && !$tmpGirl.offerSlave>>
<<link 'Offer him one of your slave trans girls'>>
<<script>>
Dialog.setup("Basement - Offer slave", "Basement - Offer slave");
Dialog.wiki(Story.get("Basement - Offer slave trans girls to slave guy: choose").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<set _availableGuySlaves = setup.getAvailablePersons18yo($slaves)>>
<<if $slaveId !== undefined && settings.gaysEnabled && $tmpGirl.gender == 2 && (_availableGuySlaves[1] ?? []).length > 0 && !$tmpGirl.offerSlave>>
<<link 'Offer her one of your slave guys'>>
<<script>>
Dialog.setup("Basement - Offer slave", "Basement - Offer slave");
Dialog.wiki(Story.get("Basement - Offer slave guy to slave trans girl: choose").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<if $tmpGirl.location === 'basement'>>
<<set _girlGuest = setup.getPersonsForLocation($guests, 'mistress')>>
<<if !$tmpGirl.gender && !$tmpGirl.milked && $player.energy >= 10 && $backpack.has('breast_pump') && ($tmpGirl.pregnancy >= 60 || ($tmpGirl.traits ?? []).includes('milker'))>>
<<link 'Milk her'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<goto 'Girl milk'>>
<</link>>
<</if>>
<<if $player.energy >= 10 && hasTime(1)>>
<<set _linkName = 'Punish ' + _himOrHer>>
<<link `_linkName`>>
<<goto 'NPC punish'>>
<</link>>
<</if>>
<<if _girlGuest.length > 0 && setup.isAtWork($guests[_girlGuest[0]], $weather)>>
<<if $player.energy >= 5 && hasTime(1)>>
<<set _linkName = 'Mistress punishes ' + _himOrHer>>
<<link `_linkName`>>
<<if $backpack.has('paddle')>>
<<set $punishType = 'paddle'>>
<</if>>
<<goto 'Mistress - Npc punish'>>
<</link>>
<</if>>
<</if>>
<</if>>
<<if typeof $slaveId !== 'undefined'>>
<<if $tmpGirl.assignedTo>>
<<link "Remove assigned job ($tmpGirl.assignedTo)">>
<<assignedTo $tmpGirl 'none'>>
<<goto 'NPC view'>>
<</link>>
<</if>>
<<include 'Button - rest or work'>>
<<if ($game.hotShower ?? false) && !$tmpGirl.washed && $player.energy >= 10>>
<<set _linkName = 'Wash ' + _himOrHer>>
<<link `_linkName`>>
<<energy -10>>
<<goto 'Slave - wash'>>
<</link>>
<</if>>
<<if !$tmpGirl.workout && $player.energy >= 10 && setup.NpcInHome($tmpGirl)>>
<<link 'Workout together'>>
<<set $tmpGirl.workout = true>>
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<<energy -10>>
<<goto 'NPC - workout together'>>
<</link>>
<</if>>
<<include 'NPC view - massage table invite'>>
<<if !$tmpGirl.offeredFood && $tmpGirl.location === 'basement'>>
<<set _linkName = 'Offer ' + _himOrHer + ' an extra food portion'>>
<<set _foodNeeded = 1>>
<<for _fi range ($guests ?? []).concat($slaves ?? []).concat($nursery ?? [])>>
<<if setup.getAge(_fi) >= 5>><<set _foodNeeded++>><</if>>
<</for>>
<<if $backpack.count('food') > _foodNeeded>>
<<link `_linkName`>>
<<goto 'NPC offer food'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
<<=_linkName>> (insufficient food to offer surplus)
</div>
<</if>>
<</if>>
<<if ['nightclub', 'strip_club'].includes($tmpGirl.assignedTo) && setup.isAtWork($tmpGirl, $weather) && !($tmpGirl.dislikes ?? []).includes('alcohol')>>
<<set _linkName = 'Buy ' + _himOrHer + ' a drink'>>
<<if $player.money >= 5>>
<<link `_linkName`>>
<<goto 'NPC offer bar drink'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
<<=_linkName>> (insufficient caps)
</div>
<</if>>
<</if>>
<<if !$tmpGirl.offeredSoda && ['garden', 'forest', 'quarry', 'milk_barn'].includes($tmpGirl.assignedTo) && setup.isAtWork($tmpGirl, $weather) && !($tmpGirl.dislikes ?? []).includes('soda')>>
<<set _linkName = 'Offer ' + _himOrHer + ' a soda'>>
<<if $backpack.has('soda')>>
<<link `_linkName`>>
<<goto 'NPC offer soda'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
<<=_linkName>> (no soda in backpack)
</div>
<</if>>
<</if>>
<<if !$tmpGirl.offeredWhippit && ['streets', 'nightclub', 'strip_club'].includes($tmpGirl.assignedTo) && setup.isAtWork($tmpGirl, $weather) && !($tmpGirl.dislikes ?? []).includes('whippit')>>
<<set _linkName = 'Offer ' + _himOrHer + ' a whippit huff'>>
<<if $backpack.has('whippit')>>
<<link `_linkName`>>
<<goto 'NPC offer whippit'>>
<</link>>
<<else>>
<div class="link-internal" style="background: #ccc">
<<=_linkName>> (no whippit in backpack)
</div>
<</if>>
<</if>>
<<if !$tmpGirl.gender && $tmpGirl.pregnancy && $tmpGirl.pregnancy >= 7>>
<<if $backpack.has('pregnancy_potion')>>
<<link 'Give pregnancy termination potion'>>
<<goto 'Girl - pregnancy potion'>>
<</link>>
<</if>>
<<if $backpack.has('pregnancy_speed_potion')>>
<<link 'Give pregnancy speed potion'>>
<<goto 'Girl - pregnancy speed potion'>>
<</link>>
<</if>>
<</if>>
<<if !$tmpGirl.gift>>
<<link 'Give gift'>>
<<script>>
Dialog.setup("NPC gift", "NPC gift");
Dialog.wiki(Story.get("NPC gift").processText());
Dialog.open();
<</script>>
<</link>>
<</if>>
<<link 'Customize'>>
<<goto 'NPC customize'>>
<</link>>
<<if ($game.location.guesthouse ?? false) && $guests.length < $guesthouseLimit>>
<<set _linkName = 'Move ' + _himOrHer + ' to the guest house'>>
<<link `_linkName`>>
<<achievement 'slave_to_guest'>>
<<moveSlaveToGuest $tmpGirl $slaveId>>
<<goto 'Guest house'>>
<</link>>
<</if>>
<<link 'Release'>>
<<goto 'Basement - release slave'>>
<</link>>
<<if setup.baseManagement.population.hasFreeHouse()>>
<<link 'Release to Settlement'>>
<<set $player.goodwill += 2>>
<<assignedTo $tmpGirl 'none'>>
<<slaveRemove $slaveId>>
<<statsAdd 'slaves_released'>>
<<set $player.baseManagement.settlers = ($player.baseManagement.settlers ?? 0) + 1>>
<<if !$tmpGirl.gender>>
<<set $player.baseManagement.settlersFemales ??= 0>>
<<set $player.baseManagement.settlersFemales += 1>>
<</if>>
<<unset $slaveId>>
<<goto 'Basement - release slave settler'>>
<</link>>
<</if>>
<</if>>
<<link 'Go back'>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<<elseif typeof $charId !== 'undefined'>>
<<set $characters[$charId] = $tmpGirl>>
<</if>>
<<unset $slaveId, $guestId, $charId>>
<<if $tmpGirlBack>>
<<goto $tmpGirlBack>>
<<else>>
<<goto 'Outside'>>
<</if>>
<</link>><<if _girlVisual.portrait && !_ignoreCustomPortrait>>
<div class="npc_custom_visual">
<<if _girlVisual.portrait.includes('http') || _girlVisual.portrait.includes('packs/')>>
<<set _url = _girlVisual.portrait>>
<img @src="_url" referrerpolicy="no-referrer">
<<elseif _girlVisual.portrait.startsWith('/')>>
<<image _girlVisual.portrait sfw>>
<<else>>
[img[setup.ImagePath+'custom_portraits/' + _girlVisual.portrait]]
<</if>>
</div>
<<else>>
<<set _visualType = ''>>
<<set _bodyImage = null>>
<<if _girlVisual.visual === 'trooper'>>
<<set _bodyImage = 'trooper.png'>>
<<elseif [1,3].includes(_girlVisual.gender)>>
<div id="npc_visual_body_male" @class="'' + _girlVisual.race + ''">
<<include 'NPC visual body male'>>
</div>
<div id="girl_face" @class="'race-' + _girlVisual.race + ''">
<<include 'NPC visual face male'>>
</div>
<<if _girlVisual?.clothes?.mask>>
<div id="girl_mask" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/mask/' + _girlVisual.clothes.mask + '.png\')'"></div>
<</if>>
<<if _girlVisual.hair && _girlVisual.hair !== 'bald'>>
<div id="male_hair" @class="'color-' + _girlVisual.hair + ''">
<<include 'NPC visual hair male'>>
</div>
<</if>>
<<if _girlVisual?.clothes?.top>>
<div id="girl_top" @class="'top' + _girlVisual.clothes.top + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/male/top/' + _girlVisual.clothes.top + '.png\')'"></div>
<</if>>
<<if _girlVisual?.clothes?.panties>>
<div id="girl_panties" @class="'panties' + _girlVisual.clothes.panties + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/male/panties/' + _girlVisual.clothes.panties + '.png\')'"></div>
<</if>>
<<if _girlVisual?.clothes?.bot>>
<div id="girl_bot" @class="'bot' + _girlVisual.clothes.bot + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/male/bot/' + _girlVisual.clothes.bot + '.png\')'"></div>
<</if>>
<<if !_girlVisual?.clothes?.panties && !_girlVisual?.clothes?.bot && !_girlVisual.chastityBelt>>
<div id="girl_penis" @class="'race-' + _girlVisual.race + ''">
<<include 'NPC visual penis'>>
</div>
<</if>>
<<elseif [0,2].includes(_girlVisual.gender)>>
<div id="npc_visual_body" @class="'' + _girlVisual.race + ''">
<<include 'NPC visual body'>>
</div>
<div id="girl_face">
<<include 'NPC visual face'>>
</div>
<<if _girlVisual?.clothes?.mask>>
<div id="girl_mask" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/mask/' + _girlVisual.clothes.mask + '.png\')'"></div>
<</if>>
<div id="girl_breasts" @class="'size-' + _girlVisual.breasts + ' race-' + _girlVisual.race + ''">
<<if _girlVisual.breasts == 'big'>>
<<include 'NPC visual breasts'>> <!-- <<include 'NPC visual breasts'>> -->
<<else>>
<<include 'NPC visual breasts'>>
<</if>>
</div>
<div id="girl_hair" @class="'size-long color-' + _girlVisual.hair + ''">
<<include 'NPC visual hair-long'>>
</div>
<!--
<div id="girl_hair" @class="'girl_body_hair_' + _girlVisual.hair + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/hair_' + _girlVisual.hair + '.gif\')'"></div>
-->
<<if _girlVisual?.clothes?.neck>>
<div id="girl_neck" @class="'neck' + _girlVisual.clothes.neck + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/neck/' + _girlVisual.clothes.neck + '.png\')'"></div>
<</if>>
<<if _girlVisual?.clothes?.top>>
<div id="girl_top" @class="'top' + _girlVisual.clothes.top + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/top/' + _girlVisual.clothes.top + '.png\')'"></div>
<<elseif _girlVisual.piercedBoobs>>
<div id="npc_visual_piercing" class="left" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/piercing.png\')'"></div>
<div id="npc_visual_piercing" class="right" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/piercing.png\')'"></div>
<</if>>
<<if _girlVisual.chastityBelt>>
<div id="girl_panties" @class="" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/chastity_belt.png\')'"></div>
<<elseif _girlVisual?.clothes?.panties>>
<div id="girl_panties" @class="'panties' + _girlVisual.clothes.panties + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/panties/' + _girlVisual.clothes.panties + '.png\')'"></div>
<<elseif _girlVisual.piercedClit>>
<div id="npc_visual_piercing_clit" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/clit_piercing.png\')'"></div>
<</if>>
<<if _girlVisual.gagBall>>
<div id="visual_gagball" @class="" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/gagball.png\')'"></div>
<</if>>
<<if _girlVisual?.clothes?.bot>>
<div id="girl_bot" @class="'bot' + _girlVisual.clothes.bot + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/bot/' + _girlVisual.clothes.bot + '.png\')'"></div>
<</if>>
<<if _girlVisual?.clothes?.accessories>>
<div id="girl_accessories" @class="'accessories' + _girlVisual.clothes.accessories + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/accessories/' + _girlVisual.clothes.accessories + '.png\')'"></div>
<</if>>
<<if _girlVisual?.clothes?.shoes>>
<div id="girl_shoes" @class="'shoes' + _girlVisual.clothes.shoes + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/shoes/' + _girlVisual.clothes.shoes + '.png\')'"></div>
<</if>>
<<if _girlVisual?.tattoos?.right_leg>>
<div @class="'girl_tattoo right_leg' + _girlVisual.tattoos.right_leg + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/tattoos/right_leg_' + _girlVisual.tattoos.right_leg + '.png\')'"></div>
<</if>>
<<if _girlVisual?.tattoos?.left_leg>>
<div @class="'girl_tattoo left_leg' + _girlVisual.tattoos.left_leg + ''" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/tattoos/left_leg_' + _girlVisual.tattoos.left_leg + '.png\')'"></div>
<</if>>
<<if _girlVisual?.blindFold>>
<div id="npc_visual_blindfold" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/blindfold.png\')'"></div>
<</if>>
<<if _girlVisual.gender == 2 && !_girlVisual?.clothes?.panties && !_girlVisual.chastityBelt>>
<div id="girl_penis" @class="'race-' + _girlVisual.race + ''">
<<include 'NPC visual penis'>>
</div>
<</if>>
<</if>>
<<if _bodyImage>>
<div id="girl_body" @style="'background-image: url(\'' + setup.ImagePath+'game/doll/' + _bodyImage + '\'); width: 88px;'"></div>
<</if>>
<</if>><h1 class="ptitle">BASEMENT</h1>
<br />
<<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _girlVisual = $tmpGirl>>
You pressed her down onto the old mattress and worked quickly — wrists crossed above her head, ankles spread and fixed to the frame legs with duck tape. A wide strip sealed across her mouth kept her quiet while you finished.
<br /><br />
<<video 'basement/tape1'>>
<br /><br />
She strained against the tape, chest heaving, eyes tracking your every move.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*strains against the tape with a low, muffled sound in her throat — wordless, purely animal*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
Mmpph—
<</sayNpc>>
<</if>>
<br />
You crouched and peeled the strip from her lips in one clean pull.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*doesn't cry out, she just lets out a low, timid growl. She blinks at you, her chest still heaving, wrists still taped. Her expression makes it clear she knows how powerless she is..*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
What are you going to do to me?
<</sayNpc>>
<</if>>
<br />
<div id="dt_opt_a">
<<linkreplace 'Wad the tape and push dick into her mouth'>>
<<run $('#dt_opt_b').hide()>>
<<video 'basement/tape2'>>
<br /><br />
You rolled the strip into a tight ball and pressed it past her lips, thumb pushing it in deep. She made a muffled sound — somewhere between protest and shock — her eyes wide above the gag.
<br /><br />
<div id="dt_throat">
<<linkreplace 'Force your cock down her throat'>>
<<run $('#dt_pussy_direct').hide()>>
<<video 'basement/tape3'>>
<br /><br />
You gripped the back of her head and pushed in slowly. She gagged, eyes watering, throat working around you as her wrists pulled hard at the tape above her.
<br /><br />
<div id="dt_mfuck">
<<linkreplace 'Use her mouth'>>
<<video 'basement/tape4'>>
<br /><br />
You set your own rhythm — slow draws back, then a hard thrust forward that forced a choked sound out of her each time. She could only hold on and take it.
<br /><br />
<div id="dt_post_mouth_a">
<<linkreplace 'Fuck her pussy'>>
<<run $('#dt_post_mouth_b').hide()>>
<<run $('#dt_post_mouth_c').hide()>>
<<set _girlVisual = $tmpGirl>>
<<set _wasVirgin = $tmpGirl.virgin ?? false>>
<<if _wasVirgin>>
<<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl.virgin = false>>
<</if>>
<<video 'basement/tape5'>>
<br /><br />
<<if _wasVirgin>>
You pushed her thighs flat and pressed in slowly. She tensed against the tape the moment she felt resistance, a sharp cry escaping her — then you were through. She went rigid, breath coming in short ragged pulls.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*goes rigid against the tape, a sharp, broken sound of pain tearing from her throat*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
It hurts—
<</sayNpc>>
<</if>>
<br />
<<else>>
You pushed her thighs flat and pressed in. She arched off the mattress as far as the bindings allowed, a sharp inhale hissing between her teeth.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*arches off the mattress as far as the tape allows, a raw, urgent sound escaping her*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
God—
<</sayNpc>>
<</if>>
<br />
<</if>>
<<run document.getElementById('dt_fuck').hidden = false>>
<</linkreplace>>
</div>
<div id="dt_post_mouth_b">
<<linkreplace 'Cum in her mouth'>>
<<run $('#dt_post_mouth_a').hide()>>
<<run $('#dt_post_mouth_c').hide()>>
<<horny_reset>>
<center>
<<actionImage $tmpGirl 'cum_in_mouth'>>
</center>
<br />
You pulled the tape from her mouth and pushed in one last time, spilling down her throat. She swallowed with her eyes squeezed shut.
<br /><br />
<<link 'Leave'>>
<<energy -30>>
<<addmins 45>>
<<goto 'NPC view'>>
<</link>>
<</linkreplace>>
</div>
<div id="dt_post_mouth_c">
<<linkreplace 'Cum on her face'>>
<<run $('#dt_post_mouth_a').hide()>>
<<run $('#dt_post_mouth_b').hide()>>
<<horny_reset>>
<center>
<<actionImage $tmpGirl 'cum_on_face'>>
</center>
<br />
You pulled out and finished across her face, her eyes flicking shut just in time. She lay there still bound, chest heaving.
<br /><br />
<<link 'Leave'>>
<<energy -30>>
<<addmins 45>>
<<goto 'NPC view'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="dt_pussy_direct">
<<linkreplace 'Fuck her pussy'>>
<<run $('#dt_throat').hide()>>
<<set _wasVirgin = $tmpGirl.virgin ?? false>>
<<set _girlVisual = $tmpGirl>>
<<if _wasVirgin>>
<<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl.virgin = false>>
<</if>>
<<video 'basement/tape5'>>
<br /><br />
<<if _wasVirgin>>
You pushed her thighs flat and pressed in slowly. She tensed against the tape the moment she felt resistance, a sharp cry escaping her — then you were through. She went rigid, breath coming in short ragged pulls.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*goes rigid against the tape, a sharp, broken sound of pain tearing from her throat*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
It hurts—
<</sayNpc>>
<</if>>
<br />
<<else>>
You pushed her thighs flat and pressed in. She arched off the mattress as far as the bindings allowed, a sharp inhale hissing between her teeth.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*arches off the mattress as far as the tape allows, a raw, urgent sound escaping her*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
God—
<</sayNpc>>
<</if>>
<br />
<</if>>
<<run document.getElementById('dt_fuck').hidden = false>>
<</linkreplace>>
</div>
<</linkreplace>>
</div>
<div id="dt_opt_b">
<<linkreplace 'Pull her thighs apart'>>
<<run $('#dt_opt_a').hide()>>
<<set _girlVisual = $tmpGirl>>
<<set _wasVirgin = $tmpGirl.virgin ?? false>>
<<if _wasVirgin>>
<<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl.virgin = false>>
<</if>>
<<video 'basement/tape5'>>
<br /><br />
<<if _wasVirgin>>
You pushed her thighs flat and pressed in slowly. She tensed against the tape the moment she felt resistance, a sharp cry escaping her — then you were through. She went rigid, breath coming in short ragged pulls.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*goes rigid against the tape, a sharp, broken sound of pain tearing from her throat*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
It hurts—
<</sayNpc>>
<</if>>
<br />
<<else>>
You pushed her thighs flat and pressed in. She arched off the mattress as far as the bindings allowed, a sharp inhale hissing between her teeth.
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>><div class="say_custom_portrait"><<include 'NPC visual'>></div><<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*arches off the mattress as far as the tape allows, a raw, urgent sound escaping her*</em></div>
</div>
</div>
<<else>>
<<sayNpc $tmpGirl>>
God—
<</sayNpc>>
<</if>>
<br />
<</if>>
<<run document.getElementById('dt_fuck').hidden = false>>
<</linkreplace>>
</div>
<div id="dt_fuck" hidden>
<<linkreplace 'Fuck her'>>
<<video 'basement/tape6'>>
<br /><br />
You drove into her steadily, the tape at her wrists creaking with every thrust. She could barely move — spread open and fixed to the frame, able to do nothing but take what you gave her.
<br /><br />
<<linkreplace 'Keep going'>>
<<video 'basement/tape7'>>
<br /><br />
You kept her pinned flat and drove into her steadily, her legs held wide by the tape, nothing she could do but take every thrust.
<br /><br />
<<linkreplace 'Keep going'>>
<<video 'basement/tape8'>>
<br /><br />
You picked up the pace, fucking her hard and fast. She moaned loud now, her thighs fighting the tape and pulling inward as the orgasm built, legs trembling as she came undone beneath you.
<<set $tmpGirl.horny = 0>>
<<set $tmpGirl.orgasms ??= 0>>
<<set $tmpGirl.orgasms++>>
<br /><br />
<div id="dt_cum_a">
<<linkreplace 'Cum inside her pussy'>>
<<run $('#dt_cum_b').hide()>>
<<horny_reset>>
<<if !$tmpGirl.gender && setup.pregnancyChance($tmpGirl)>>
<<set $tmpGirl.pregnancy = 0>>
<<set $tmpGirl.pregnancy_father = 'mc'>>
<</if>>
<center>
<<image 'game/misc/creampie_on_back.webp'>>
</center>
<br />
You buried yourself to the hilt and let go, filling her with a deep pulse she had no choice but to feel. She went still beneath you, chest rising and falling fast.
<br /><br />
<<link 'Leave'>>
<<energy -30>>
<<addmins 45>>
<<goto 'NPC view'>>
<</link>>
<</linkreplace>>
</div>
<div id="dt_cum_b">
<<linkreplace 'Pull out and cum on her pussy'>>
<<run $('#dt_cum_a').hide()>>
<<horny_reset>>
<center>
<<image 'game/misc/cum_on_stomach.webp'>>
</center>
<br />
You pulled out at the last moment and finished across her spread folds, watching it run slow down her inner thigh as she lay there helpless.
<br /><br />
<<link 'Leave'>>
<<energy -30>>
<<addmins 45>>
<<goto 'NPC view'>>
<</link>>
<</linkreplace>>
</div>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
</div><<set _heOrShe = setup.pronounceWhat($tmpGirl)>>
<<set _hisOrHer = setup.pronounceWhos($tmpGirl)>>
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<set _linkAlone = 'Fuck ' + _himOrHer>>
<<link `_linkAlone`>>
<<if $tmpGirl.assignedTo === 'attendant'>>
<<set $tmpGirlViewBack = 'NPC view'>>
<<goto 'Attendant fuck choose'>>
<<else>>
<<fuck $tmpGirl>>
<</if>>
<</link>>
<<if $tmpGirl.location === 'basement'>>
<<set _sfcGuest = setup.getPersonsForLocation($guests, 'mistress')>>
<<if _sfcGuest.length > 0 && setup.isAtWork($guests[_sfcGuest[0]], $weather) && $player.energy >= 15 && hasTime(1)>>
<<set _linkMistress = 'Mistress fucks ' + _himOrHer>>
<<link `_linkMistress`>>
<<mistress $tmpGirl>>
<</link>>
<</if>>
<</if>>
<<if recall($suppCode) && $backpack.has('duck_tape')>>
<<link 'Restrain with duck tape'>>
<<goto 'Slave - duck tape scene'>>
<</link>>
<</if>>
<<link 'Back'>>
<<goto 'NPC view'>>
<</link>>Where do you want to assign <<=setup.pronounceWho($tmpGirl)>>?
<br /><br />
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<i>This person is feral and cannot be assigned to any task.</i>
<<else>>
<<set _attendantTotal = setup.getPersonsForLocation($guests, 'attendant').length + setup.getPersonsForLocation($slaves, 'attendant').length>>
<<set _autoAttendantOk = ($automatization.job ?? false) && setup.cabinInventory.has('towel', 1)>>
<<if _attendantTotal < 2 && (setup.npcInventoryHas($tmpGirl, 'towel') || _autoAttendantOk)>>
<div>
<<link 'Assign as attendant'>>
<<if !setup.npcInventoryHas($tmpGirl, 'towel')>>
<<run setup.cabinInventory.to_npc($tmpGirl, 'towel', 1)>>
<</if>>
<<assignedTo $tmpGirl 'attendant'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Tends to slaves in the bathhouse. Improves their beauty and mood)
</div>
<<else>>
Assign as attendant [Need towel] (Tends to slaves in the bathhouse)
<</if>>
<<if ($game.location.greenhouse ?? false) && $tmpGirl.relationship >= 30 && setup.assignedToCount('garden') < $workersLimitGarden>>
<div>
<<link 'Assign to garden'>>
<<assignedTo $tmpGirl 'garden'>>
<<set $tmpGirl.gardenDay = 0>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Provides you with food)
</div>
<</if>>
<<if !setup.assignedToCount('kitchen')>>
<div>
<<link 'Assign to kitchen'>>
<<assignedTo $tmpGirl 'kitchen'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>>
</div>
<</if>>
<div>
<<link 'Assign to forest'>>
<<assignedTo $tmpGirl 'forest'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Provides you with wood)
</div>
<<if [0,2].includes($tmpGirl.gender) && !setup.assignedToCount('maid')>>
<div>
<<link 'Assign as maid'>>
<<assignedTo $tmpGirl 'maid'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Gives additional energy while taking a nap)
</div>
<</if>>
<<if $tmpGirl.relationship >= 50 && [0,2].includes($tmpGirl.gender)>>
<<link 'Assign to streets'>>
<<assignedTo $tmpGirl 'streets'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Earns you money as hooker)
<</if>>
<<if $game.location.strip_club && $tmpGirl.relationship >= 50 && $tmpGirl.sub >= 60 && [0,2].includes($tmpGirl.gender)>>
<div>
<<link 'Assign to strip club'>>
<<assignedTo $tmpGirl 'strip_club'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Earns you money as dancer)
</div>
<</if>>
<<if $player?.quests?.gloryholeJob && $tmpGirl.relationship >= 70 && [0,2].includes($tmpGirl.gender)>>
<div>
<<link 'Assign to nightclub'>>
<<assignedTo $tmpGirl 'nightclub'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>> (Earns you money with gloryholes)
</div>
<</if>>
<<if [0].includes($tmpGirl.gender) && $game?.location?.milk_barn && ($tmpGirl.pregnancy >= 7 || ($tmpGirl.traits ?? []).includes('milker'))>>
<div>
<<link 'Assign to milk barn'>>
<<assignedTo $tmpGirl 'milk_barn'>>
<<dialogclose>>
<<goto `$tmpGirlViewBack`>>
<</link>>
</div>
<</if>>
<</if>><h1 class="ptitle">STRIP POKER</h1>
<br /><br />
<<set _She = setup.pronounceWhat($tmpGirl, true)>>
<<set _she = setup.pronounceWhat($tmpGirl)>>
<<set _her = setup.pronounceWhos($tmpGirl)>>
<<set _herObj = setup.pronounceWho($tmpGirl)>>
<<if $poker.phase === 'ask'>>
<center>
<<image 'places/guesthouse/strip_poker.jpg'>>
</center>
<br />
You sat down across from <<= setup.displayName($tmpGirl)>> and shuffled the deck where <<= _she>> could see it. It did not take long for <<= _herObj>> to work out what kind of game you had in mind.
<br /><br />
<<if !setup.poker.herPieces($tmpGirl).length>>
<<sayNpc $tmpGirl>>
With what? I'm not exactly wearing anything to bet.
<</sayNpc>>
<br />
<<link 'Back'>>
<<unset $poker>>
<<goto 'NPC view - guest'>>
<</link>>
<<elseif setup.poker.agrees($tmpGirl)>>
<<sayNpc $tmpGirl>>
Strip poker? <<if ($tmpGirl.drunk ?? 0) >= 40>>Oh, you're on. Deal.<<else>>Fine. But I'm warning you, I'm good at this.<</if>>
<</sayNpc>>
<br />
<<link 'Deal the cards'>>
<<set $player.gambler = ($player.gambler ?? 0) + 1>>
<<run setup.poker.start($tmpGirl)>>
<<addmins 10>>
<<goto 'Strip poker'>>
<</link>>
<<else>>
<<sayNpc $tmpGirl>>
Nice try. Ask me again when I like you a lot more. Or when I've had a few.
<</sayNpc>>
<br />
<<link 'Back'>>
<<unset $poker>>
<<goto 'NPC view - guest'>>
<</link>>
<</if>>
<<else>>
/* ── The table: her, what you both still have on, and the cards ── */
<<set _dollGirl = clone($tmpGirl)>>
<<run $poker.herRemoved.forEach(slot => { if (slot !== 'bra') _dollGirl.clothes[slot] = null; })>>
<<if $poker.bra && $poker.herRemoved.includes('top') && !$poker.herRemoved.includes('bra')>>
<<set _dollGirl.clothes.top = $tmpGirl.clothes.top>>
<</if>>
<<set _herLeft = setup.poker.herPieces($tmpGirl).filter(slot => !$poker.herRemoved.includes(slot)).map(slot => setup.poker.pieceName($tmpGirl, slot))>>
<<set _youLeft = setup.poker.MC_ORDER.slice($poker.youRemoved)>>
<div class="poker-table">
<div class="poker-doll girl_info_picture">
<<set _girlVisual = _dollGirl>>
<<include 'NPC visual'>>
</div>
<div class="poker-status">
<strong><<= setup.displayName($tmpGirl)>></strong> is wearing: <<= _herLeft.length ? _herLeft.join(', ') : 'nothing'>>
<br />
<strong>You</strong> are wearing: <<= _youLeft.length ? _youLeft.join(', ') : 'nothing'>>
<br />
<span class="poker-hand-count">Hand <<= $poker.hand>></span>
</div>
</div>
<<if $poker.note>>
<<= $poker.note>>
<br /><br />
<<set $poker.note = null>>
<</if>>
<<if $poker.phase === 'draw'>>
<<= setup.poker.cardsHtml($poker.her, { faceDown: true })>>
<<= setup.poker.cardsHtml($poker.you, { clickable: true, holds: $poker.holds })>>
<div class="poker-hand-name"><<= setup.poker.evaluate($poker.you).name>></div>
Tap the cards you want to keep, then draw new ones for the rest.
<br /><br />
<<link 'Draw'>>
<<run setup.poker.draw($tmpGirl)>>
<<goto 'Strip poker'>>
<</link>><<if $backpack.has('alcohol') && ($tmpGirl.pregnancy ?? -1) < 7 && ($tmpGirl.drunk ?? 0) < 90>><<link 'Pour her a drink'>>
<<drop $backpack 'alcohol' 1>>
<<set $tmpGirl.drunk = Math.min(99, ($tmpGirl.drunk ?? 0) + randomInteger(15, 30))>>
<<set $poker.herLimit = Math.max($poker.herLimit, setup.poker.limit($tmpGirl))>>
<<set $poker.note = _She + ' knocked it back in one go and slapped the glass down on the table.'>>
<<goto 'Strip poker'>>
<</link>><</if>><<link 'Quit the game'>>
<<set $poker.ending = 'quit'>>
<<set $poker.phase = 'result'>>
<<set $poker.lost = []>>
<<set $poker.revealed = false>>
<<goto 'Strip poker'>>
<</link>>
<<elseif $poker.phase === 'bet'>>
<<= setup.poker.cardsHtml($poker.her, { faceDown: true })>>
<<= setup.poker.cardsHtml($poker.you)>>
<div class="poker-hand-name"><<= setup.poker.evaluate($poker.you).name>></div>
<<= _She>> swapped <<= $poker.herDrew === 0 ? 'none of ' + _her + ' cards' : $poker.herDrew + ($poker.herDrew === 1 ? ' card' : ' cards')>>.
<<set _tell = setup.poker.tell($tmpGirl, $poker.her, $player.gambler)>>
<<if _tell>>
<em><<= _tell>></em>
<</if>>
<br /><br />
<<link 'Check (loser strips 1)'>>
<<if setup.poker.herRaises($tmpGirl, $poker.her)>>
<<set $poker.phase = 'herRaise'>>
<<else>>
<<run setup.poker.showdown($tmpGirl, 1)>>
<</if>>
<<goto 'Strip poker'>>
<</link>><<link 'Raise (loser strips 2)'>>
<<if setup.poker.herCalls($tmpGirl, $poker.her)>>
<<run setup.poker.showdown($tmpGirl, 2)>>
<<else>>
<<run setup.poker.fold($tmpGirl, 'her')>>
<</if>>
<<goto 'Strip poker'>>
<</link>><<link 'Fold (you strip 1)'>>
<<run setup.poker.fold($tmpGirl, 'you')>>
<<goto 'Strip poker'>>
<</link>>
<<elseif $poker.phase === 'herRaise'>>
<<= setup.poker.cardsHtml($poker.her, { faceDown: true })>>
<<= setup.poker.cardsHtml($poker.you)>>
<div class="poker-hand-name"><<= setup.poker.evaluate($poker.you).name>></div>
<<sayNpc _dollGirl>>
Let's make it interesting. Two pieces.
<</sayNpc>>
<br />
<<link 'Call (loser strips 2)'>>
<<run setup.poker.showdown($tmpGirl, 2)>>
<<goto 'Strip poker'>>
<</link>><<link 'Fold (you strip 1)'>>
<<run setup.poker.fold($tmpGirl, 'you')>>
<<goto 'Strip poker'>>
<</link>>
<<else>>
/* ── Result of the hand, and the ending once someone runs out ── */
<<if $poker.revealed>>
<<= setup.poker.cardsHtml($poker.her)>>
<div class="poker-hand-name"><<= setup.poker.evaluate($poker.her).name>></div>
<<= setup.poker.cardsHtml($poker.you)>>
<div class="poker-hand-name"><<= setup.poker.evaluate($poker.you).name>></div>
<</if>>
<<if $poker.ending !== 'quit'>>
<<if $poker.winner === 'split'>>
It was a split. Nobody took anything off.
<<elseif $poker.folded === 'her'>>
<<= _She>> folded rather than risk two pieces.
<<elseif $poker.folded === 'you'>>
You folded.
<<elseif $poker.winner === 'you'>>
You won the hand.
<<else>>
<<= _She>> won the hand.
<</if>>
<br /><br />
<</if>>
<<if $poker.loser === 'her' && $poker.lost.length>>
<<set _lostNames = $poker.lost.map(slot => setup.poker.pieceName($tmpGirl, slot))>>
<<= _She>> stood up and took off <<= _her>> <<= _lostNames.join(' and ' + _her + ' ')>>, then sat back down.
<br /><br />
/* One action image per piece she took off: images/actions/<gender>/poker/<action>/ */
<<set _pokerGirl = clone($tmpGirl)>>
<<set _pokerGirl.location = 'poker'>>
<<for _lostSlot range $poker.lost>>
<<set _pokerAction = setup.poker.actionFor($tmpGirl, _lostSlot)>>
<<if _pokerAction>>
<center>
<<actionImage _pokerGirl _pokerAction 'no-text'>>
</center>
<br />
<</if>>
<</for>>
<<if $poker.ending !== 'herNaked'>>
<<set _last = $poker.lost[$poker.lost.length - 1]>>
<<sayNpc _dollGirl>>
<<if ($tmpGirl.drunk ?? 0) >= 60>>
<<= either('Whoops! There it goes.', 'Is it hot in here or is it just me?', 'Keep dealing, I\'m on a roll. Wait. No I\'m not.')>>
<<elseif ['top', 'bra'].includes(_last)>>
Eyes up here. ...Oh, forget it.
<<elseif _last === 'bot' || _last === 'accessories'>>
Don't get too excited. The game's not over.
<<else>>
That one doesn't count. It was barely anything.
<</if>>
<</sayNpc>>
<br />
<</if>>
<<elseif $poker.loser === 'you' && $poker.lost.length>>
You pulled off your <<= $poker.lost.join(' and your ')>>.
<br /><br />
<<if $poker.ending !== 'youNaked'>>
<<sayNpc _dollGirl>>
<<= either('Keep going, I want to see what you\'re hiding.', 'Is that all? Deal again.', 'I told you I was good at this.')>>
<</sayNpc>>
<br />
<</if>>
<</if>>
<<if !$poker.ending>>
<<link 'Deal the next hand'>>
<<run setup.poker.deal()>>
<<addmins 10>>
<<goto 'Strip poker'>>
<</link>>
<<elseif $poker.ending === 'herNaked'>>
<<if !$poker.statsDone>>
<<set $poker.statsDone = true>>
<<set $tmpGirl.relationship = Math.min(($tmpGirl.relationship ?? 0) + 2, 100)>>
<<set $tmpGirl.corruption = Math.min(($tmpGirl.corruption ?? 0) + 2, 100)>>
<<set $tmpGirl.horny = Math.min(($tmpGirl.horny ?? 0) + 15, 100)>>
<</if>>
That was the last of it. <<= _She>> sat there with nothing left to bet, cards face down on the table, and did not bother to cover up.
<br /><br />
<<sayNpc _dollGirl>>
Well. You won. What are you going to do about it?
<</sayNpc>>
<br />
<<if $player.energy <= 30>>
You wanted to, but after the long night you barely had the energy left to stand up, let alone collect.
<br /><br />
<<else>>
<div id="poker_collect">
<<linkreplace 'Collect your winnings'>>
<<run $('#poker_leave').hide()>>
<<set _collect = setup.poker.collect($tmpGirl)>>
<<if _collect === 'yes'>>
<<set $tmpGirl.rape = false>>
<<set $tmpGirlCapture = false>>
<<set $tmpGirlInvite = false>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $poker>>
<<set $sexForced = false>>
<<fuck $tmpGirl>>
<<else>>
<<if _collect === 'type'>>
<<set $tmpGirl.relationship = Math.max(($tmpGirl.relationship ?? 0) - 3, -100)>>
<<= _She>> snatched <<= _her>> top off the floor, held it against <<= _her>> chest and pushed your hand away when you reached for <<= _herObj>>.
<br /><br />
<<sayNpc _dollGirl>>
Whoa. No. I played for the game, not for that. I don't do guys, remember?
<</sayNpc>>
<br />
<strong><<= setup.displayName($tmpGirl)>> is not attracted to men (Relationship - 3)</strong>
<<elseif _collect === 'married'>>
<<= _She>> caught your wrist before you got anywhere and shook <<= _her>> head.
<br /><br />
<<sayNpc _dollGirl>>
The show was one thing. I'm married, and that's as far as it goes.
<</sayNpc>>
<br />
<strong><<= setup.displayName($tmpGirl)>> is married to someone else</strong>
<<elseif _collect === 'incest'>>
<<= _She>> pulled back the moment you moved closer.
<br /><br />
<<sayNpc _dollGirl>>
It was just a game. We're family, that's not happening.
<</sayNpc>>
<br />
<strong>Incest is prohibited by settlement policy</strong>
<<else>>
<<= _She>> laughed, gathered up <<= _her>> clothes from the floor and kissed you on the cheek on the way past.
<br /><br />
<<sayNpc _dollGirl>>
A deal's a deal, you got the show. That's all you won tonight.
<</sayNpc>>
<br />
<strong>Not enough relationship or <<= _she>>'s not in the mood</strong>
<</if>>
<br /><br />
<<if _collect !== 'incest'>>
<<set _forceLabel = 'Force ' + _herObj>>
<<link _forceLabel>>
<<set $tmpGirl.rape = false>>
<<set $tmpGirlCapture = false>>
<<set $tmpGirlInvite = false>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $poker>>
<<set $sexForced = true>>
<<set $wasRaped = true>>
<<fuck $tmpGirl>>
<</link>><<link 'Call it a night'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $poker>>
<<goto 'NPC view - guest'>>
<</link>>
<<else>>
<<link 'Call it a night'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $poker>>
<<goto 'NPC view - guest'>>
<</link>>
<</if>>
<</if>>
<</linkreplace>>
</div>
<</if>>
<div id="poker_leave">
<<link 'Call it a night'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $poker>>
<<goto 'NPC view - guest'>>
<</link>>
</div>
<<elseif $poker.ending === 'youNaked'>>
<<if !$poker.statsDone>>
<<set $poker.statsDone = true>>
<<set $tmpGirl.relationship = Math.min(($tmpGirl.relationship ?? 0) + 3, 100)>>
<<set $poker.pullsIn = ($tmpGirl.horny ?? 0) >= 60 && $player.energy > 30 && setup.percentageChance(setup.sexChance($tmpGirl))>>
<<if !$poker.pullsIn>>
<<set $poker.pot = Math.min($player.money, randomInteger(10, 30))>>
<<set $player.money -= $poker.pot>>
<</if>>
<</if>>
You were out of clothes and out of luck. <<= _She>> leaned back in <<= _her>> chair and took a long look at you.
<br /><br />
<<if $poker.pullsIn>>
<<sayNpc _dollGirl>>
Don't bother getting dressed. Come here.
<</sayNpc>>
<br />
<<link 'Let her have her prize'>>
<<set $tmpGirl.rape = false>>
<<set $tmpGirlCapture = false>>
<<set $tmpGirlInvite = false>>
<<set $tmpGirlViewBack = 'NPC view - guest'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $poker>>
<<fuck $tmpGirl>>
<</link>>
<<else>>
<<sayNpc _dollGirl>>
I'll take the pot, thanks. You can keep the view.
<</sayNpc>>
<br />
<<if $poker.pot > 0>>
<strong>(-<<= $poker.pot>> caps)</strong>
<br /><br />
<</if>>
<<link 'Get dressed'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $poker>>
<<goto 'NPC view - guest'>>
<</link>>
<</if>>
<<elseif $poker.ending === 'herLimit'>>
<<if !$poker.statsDone>>
<<set $poker.statsDone = true>>
<<set $tmpGirl.relationship = Math.min(($tmpGirl.relationship ?? 0) + 1, 100)>>
<</if>>
<<= _She>> reached for the next piece, stopped, and shook <<= _her>> head with a grin.
<br /><br />
<<sayNpc _dollGirl>>
Nope. That's as far as I go tonight. Maybe next time, if you pour me a few more.
<</sayNpc>>
<br />
<<link 'Call it a night'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $poker>>
<<goto 'NPC view - guest'>>
<</link>>
<<else>>
You gathered up the cards and called it a night.
<br /><br />
<<link 'Back'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $poker>>
<<goto 'NPC view - guest'>>
<</link>>
<</if>>
<</if>>
<</if>><h1 class="ptitle">BLINDFOLD</h1>
<br />
<<if $guestId !== null && $tmpGirl.sub < 20>>
<<=setup.displayName($tmpGirl)>> doesn't want to do that.
<br /><br />
<strong>Submission too low</strong>
<<else>>
<<set $tmpGirl.blindFold = true>>
<br /><br />
<center>
<<actionImage $tmpGirl customize_blindfold>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> lays down on <<=setup.pronounceWhos($tmpGirl)>> knees, <<=setup.pronounceWhat($tmpGirl)>> holds still as you slowly put blindfold around her eyes.
<<addmins 10>>
<</if>>
<br /><br />
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">BLINDFOLD</h1>
<br />
<<set $tmpGirl.blindFold = false>>
<br /><br />
<center>
<<actionImage $tmpGirl customize_blindfold>>
</center>
<br /><br />
You slowly take off blindfold off <<=setup.pronounceWho($tmpGirl)>> eyes.
<br /><br />
<<addmins 10>>
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">BUTTPLUG</h1>
<br />
<<if $guestId !== null && $tmpGirl.sub < 20>>
<<=setup.displayName($tmpGirl)>> doesn't want to do that.
<br /><br />
<strong>Submission too low</strong>
<<else>>
<<set $tmpGirl.buttplug = true>>
<<drop $backpack 'buttplug' 1>>
<br /><br />
<center>
<<actionImage $tmpGirl 'customize_buttplug_insert'>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> lays down and spreads <<=setup.pronounceWhos($tmpGirl)>> legs, <<=setup.pronounceWhat($tmpGirl)>> holds still as you slowly insert the buttplug inside <<=setup.pronounceWhos($tmpGirl)>> asshole. That feels uncomfortable but is generally tolerable.
<<addmins 30>>
<</if>>
<br /><br />
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">BUTTPLUG</h1>
<br />
<<set $tmpGirl.buttplug = false>>
<<pickup $backpack 'buttplug' 1>>
<br /><br />
<center>
<<actionImage $tmpGirl 'customize_buttplug_remove'>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> gets down in doggy and spread <<=setup.pronounceWhos($tmpGirl)>> ass. You slowly grab the buttplug and slowly pull it out of <<=setup.pronounceWho($tmpGirl)>>.
<br /><br />
<<addmins 10>>
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">CHASTITY BELT</h1>
<br />
<<set $tmpGirl.chastityBelt = false>>
<<pickup $backpack 'chastity_belt' 1>>
<br /><br />
<br /><br />
<<=setup.displayName($tmpGirl)>> stands still while you remove the chastity belt from <<=setup.pronounceWho($tmpGirl)>>.
<br /><br />
<<addmins 10>>
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">CHASTITY BELT</h1>
<br />
<<set _himOrHer = setup.pronounceWho($tmpGirl)>>
<<if $guestId !== null && $tmpGirl.sub < 50>>
<<=setup.displayName($tmpGirl)>> doesn't want to do that.
<br /><br />
<strong>Submission too low</strong>
<br /><br />
<<set _linkName = 'Force ' + _himOrHer>>
<<linkreplace _linkName>>
<<set $tmpGirl.chastityBelt = true>>
<<drop $backpack 'chastity_belt' 1>>
<br /><br />
<center>
<<actionImage $tmpGirl 'customize_chastity_belt'>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> resists a bit while you fasten a chastity belt on <<=_himOrHer>>.
<br /><br />
<<set $tmpGirl.relationship -= 40>>
<strong>Relationship decreased by 40</strong>
<br /><br />
<</linkreplace>>
<<else>>
<<set $tmpGirl.chastityBelt = true>>
<<drop $backpack 'chastity_belt' 1>>
<br /><br />
<center>
<<actionImage $tmpGirl 'customize_chastity_belt'>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> stands still while you fasten a chastity belt on <<=_himOrHer>>.
<br /><br />
<<addmins 30>>
<</if>>
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">COSMETICS</h1>
<br /><br />
<<if [0,2].includes($tmpGirl.gender)>>
<center>
[img[setup.ImagePath+'places/cabin/customize_cosmetics.jpg']]
</center>
<</if>>
<br /><br />
<<set _baseBeauty = $tmpGirl.beauty - ($tmpGirl.washDay ?? 0) * ($tmpGirl.washBeauty ?? 0)>>
<<drop $backpack 'cosmetics' 1>>
<<=setup.displayName($tmpGirl)>> opens the jar of cream and applies a small layer to <<=setup.pronounceWhos($tmpGirl)>> face, carefully spreading it all over.
<br /><br />
After a few minutes, <<=setup.pronounceWhat($tmpGirl)>> rinses off the cream.
<br /><br />
<<if _baseBeauty < 80>>
<strong><<=setup.displayName($tmpGirl)>> beauty increased by 1</strong>
<<set $tmpGirl.beauty++>>
<<else>>
<strong>Can't increase <<=setup.pronounceWhos($tmpGirl)>> beauty with cosmetics any more.</strong>
<</if>>
<<set $tmpGirl.cosmetics = true>>
<<addmins 15>>
<br /><br />
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">CUSTOM PACK</h1>
<br /><br />
<<set _customPack = $tmpGirl.pack ?? 'none'>>
<table id="custom_pack">
<tr>
<td>
<<radiobutton "_customPack" "none" autocheck>>
</td>
<td>
None
</td>
</tr>
<<for _packKey, _pack range setup.packs>>
<<capture _packKey, _pack>>
<<if _pack.extended>>
<<continue>>
<</if>>
<tr>
<td>
<<radiobutton "_customPack" _packKey autocheck>>
</td>
<td>
<<= _pack.name>>
</td>
</tr>
<</capture>>
<</for>>
<<for _packKey, _pack range setup.packsCustom>>
<<capture _packKey, _pack>>
<<if _pack.extended>>
<<continue>>
<</if>>
<tr>
<td>
<<radiobutton "_customPack" _packKey autocheck>>
</td>
<td>
<<= _pack.name>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br /><br />
<<link 'Save'>>
<<if _customPack === 'none'>>
<<run delete $tmpGirl.pack>>
<<else>>
<<set $tmpGirl.pack = _customPack>>
<</if>>
<<dialogclose>>
<<goto `passage()`>>
<</link>>
<style>
#custom_pack td {
padding: 5px;
}
</style><h1 class="ptitle">GAG BALL</h1>
<br />
<<if $guestId !== null && $tmpGirl.sub < 20>>
<<=setup.displayName($tmpGirl)>> doesn't want to do that.
<br /><br />
<strong>Submission too low</strong>
<<else>>
<<set $tmpGirl.gagBall = true>>
<<drop $backpack 'gagball' 1>>
<br /><br />
<center>
<<actionImage $tmpGirl gagball>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> lays down on <<=setup.pronounceWhos($tmpGirl)>> knees, <<=setup.pronounceWhat($tmpGirl)>> holds still as you slowly put gag ball around <<=setup.pronounceWhos($tmpGirl)>> mouth.
That feels uncomfortable but is generally tolerable.
<<addmins 10>>
<</if>>
<br /><br />
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">GAG BALL</h1>
<br />
<<set $tmpGirl.gagBall = false>>
<<pickup $backpack 'gagball' 1>>
<br /><br />
<center>
<<actionImage $tmpGirl gagball>>
</center>
<br /><br />
You slowly take off gag ball off <<=setup.pronounceWho($tmpGirl)>> mouth.
<br /><br />
<<addmins 10>>
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">HAIR DYE</h1>
<br /><br />
<<set _colorOptions = [
'black',
'brown',
'blonde',
'ginger',
'gray',
'white',
'red',
'green',
'blue',
'purple',
'pink'
]>>
<div id="options">
Choose color:
<<for _hairColor range _colorOptions>>
<<capture _hairColor>>
<<link _hairColor>>
<<drop $backpack 'hair_dye_kit' 1>>
<<run $('#options').hide()>>
<<run $('#done').show()>>
<<set $tmpGirl.hair = _hairColor>>
<</link>>
<</capture>>
<</for>>
</div>
<div id="done" style="display:none">
<<if [0,2].includes($tmpGirl.gender)>>
<center>
[img[setup.ImagePath+'places/cabin/customize_hair_dye.jpg']]
</center>
<</if>>
<br /><br />
<<=setup.displayName($tmpGirl)>> puts on gloves and mixes up the colorant and applies it according to the instructions, making sure not to miss a spot.
</div>
<br /><br />
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><<set _colors = [
"White",
"Yellow",
"LightSkyBlue",
"Orange",
"LightGreen",
"Pink",
"LightGoldenRodYellow",
"LightCyan",
"Lavender",
"Turquoise",
'Red',
'Chartreuse',
'Gold',
'Salmon',
'Thistle',
'MediumOrchid',
];>>
<<set _customColor = $tmpGirl.color ?? 'none'>>
<table id="custom_name_colors">
<tr>
<td>
<<radiobutton "_customColor" "none" autocheck>>
</td>
<td>
None
</td>
</tr>
<<for _colorKey, _colorName range _colors>>
<<capture _colorKey, _colorName>>
<tr>
<td>
<<radiobutton "_customColor" _colorName autocheck>>
</td>
<td>
<<set _class = 'npc-color color-' + _colorName>>
<span @class="''+_class+''"><a><<= _colorName>></a></span>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br /><br />
<<link 'Save'>>
<<if _customColor === 'none'>>
<<run delete $tmpGirl.color>>
<<else>>
<<set $tmpGirl.color = _customColor>>
<</if>>
<<dialogclose>>
<<goto `passage()`>>
<</link>>
<style>
#custom_name_colors td {
padding: 5px;
}
</style><h1 class="ptitle">NIPPLES PIERCING</h1>
<br /><br />
You remove the piercings from <<=setup.displayName($tmpGirl)>>'s nipples, <<=setup.pronounceWhat($tmpGirl)>> feels strange without them, but heals in no time.
<br /><br />
<<addmins 60>>
<<pickup $backpack 'piercing' 1>>
<<set $tmpGirl.piercedBoobs = false>>
<br /><br />
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">NIPPLES PIERCING</h1>
<br /><br />
<<if $guestId !== null && $tmpGirl.sub < 20>>
<<=setup.displayName($tmpGirl)>> doesn't want to do that.
<br /><br />
<strong>Submission too low</strong>
<<else>>
<<set $tmpGirl.piercedBoobs = true>>
<<drop $backpack 'piercing' 1>>
<center>
<<actionImage $tmpGirl 'customize_nipple_piercing'>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> feels a brief , sharp sensation as the needle passes through the nipple tissue. That feels uncomfortable but is generally tolerable.
<br /><br />
<<addmins 60>>
After a couple minutes it's done and <<=setup.pronounceWhat($tmpGirl)>> shows <<=setup.pronounceWhos($tmpGirl)>> nipples pierced.
<</if>>
<br /><br />
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">NIPPLES PIERCING</h1>
<br /><br />
You remove the piercings from <<=setup.displayName($tmpGirl)>>'s clit, <<=setup.pronounceWhat($tmpGirl)>> feels strange without it, but heals in no time.
<br /><br />
<<addmins 60>>
<<pickup $backpack 'piercing' 1>>
<<set $tmpGirl.piercedClit = false>>
<br /><br />
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><h1 class="ptitle">CLIT PIERCING</h1>
<br /><br />
<<if $guestId !== null && $tmpGirl.sub < 20>>
<<=setup.displayName($tmpGirl)>> doesn't want to do that.
<br /><br />
<strong>Submission too low</strong>
<<else>>
<<set $tmpGirl.piercedClit = true>>
<<drop $backpack 'piercing' 1>>
<center>
<<actionImage $tmpGirl 'customize_clit_piercing'>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> feels a brief , sharp sensation as the needle passes through the clit tissue. That feels uncomfortable but is generally tolerable.
<br /><br />
<<addmins 60>>
After a couple minutes it's done and <<=setup.pronounceWhat($tmpGirl)>> shows <<=setup.pronounceWhos($tmpGirl)>> clit pierced.
<</if>>
<br /><br />
<<link 'Back'>>
<<goto 'NPC customize'>>
<</link>><<set _mapping = [
'female',
'male',
'transfemale'
]>>
<<set _availablePortraits = (setup.portraits[_mapping[$tmpGirl.gender]][$tmpGirl.race] ?? [])>>
<div id="custom_portraits">
<div class="custom_portrait_item">
<div class="custom_portrait_item_img">
<div class="custom_portrait_item_default">
<div style="position:relative">
<<set _girlVisual = $tmpGirl>>
<<set _ignoreCustomPortrait = true>>
<<include 'NPC visual'>>
</div>
</div>
</div>
<div class="custom_portrait_item_link">
<<link 'Choose'>>
<<run delete $tmpGirl.portrait>>
<<dialogclose>>
<<goto `passage()`>>
<</link>>
</div>
</div>
<div class="custom_portrait_item">
<div class="custom_portrait_item_img">
Use your custom image from link
<br />
Need to add full link to the image, with starting http protocol.
<br />
Ratio: [1:1]
<br /><br />
<<set _customValue = (($tmpGirl.portrait ?? '').includes('http') ? $tmpGirl.portrait : '')>>
<<textbox '_portraitUrl' _customValue>>
</div>
<div class="custom_portrait_item_link">
<<link 'Choose'>>
<<set $tmpGirl.portrait = _portraitUrl>>
<<dialogclose>>
<<goto `passage()`>>
<</link>>
</div>
</div>
<div class="custom_portrait_item">
<div class="custom_portrait_item_img">
Use your custom image from pc
<br />
File need to be under game/custom_portraits
<br />
Ratio: [1:1]
<br /><br /><br />
<input type="file" name="_portraitPath" id="portraitPath">
<script>
$('#portraitPath').on('change', function () {
SugarCube.State.variables.tmpPortraitPath = this.files[0].name || null;
});
</script>
</div>
<div class="custom_portrait_item_link">
<<link 'Choose'>>
<<set $tmpGirl.portrait = $tmpPortraitPath>>
<<unset $tmpPortraitPath>>
<<dialogclose>>
<<goto `passage()`>>
<</link>>
</div>
</div>
<<set _packPortrait = setup.npcGetPackPortrait($tmpGirl)>>
<<if _packPortrait>>
<div class="custom_portrait_item">
<div class="custom_portrait_item_img">
[img[_packPortrait]]
</div>
<div class="custom_portrait_item_link">
<<link 'Choose'>>
<<set $tmpGirl.portrait = _packPortrait>>
<<dialogclose>>
<<goto `passage()`>>
<</link>>
</div>
<br />
</div>
<</if>>
<<for _key = 1; _key <= _availablePortraits; _key++>>
<<capture _key, _portraitUrl>>
<div class="custom_portrait_item">
<div class="custom_portrait_item_img">
<<set _portraitUrl = _mapping[$tmpGirl.gender] + '/' + $tmpGirl.race + "/" + _key + ".png">>
[img[setup.ImagePath+'custom_portraits/' +_portraitUrl]]
</div>
<div class="custom_portrait_item_link">
<<link 'Choose'>>
<<set $tmpGirl.portrait = _portraitUrl>>
<<dialogclose>>
<<goto `passage()`>>
<</link>>
</div>
<br />
</div>
<</capture>>
<</for>>
</div>
<style>
#custom_portraits {
display: flex;
justify-content: flex-start;
flex-wrap: wrap
}
.custom_portrait_item {
width: 200px;
padding: 10px;
}
.custom_portrait_item img {
width: 200px;
height: 200px;
}
.custom_portrait_item_img {
position: relative;
height: 200px;
}
.custom_portrait_item_default {
margin-left: 42px;
}
.custom_portrait_item_img input {
width: 100%;
min-width: auto;
}
</style><<set _tattoos = {
right_leg: {
list: setup.range(1, 3),
name: 'Right leg'
},
left_leg: {
list: setup.range(1, 2),
name: 'Left leg'
}
}>>
<<link 'Remove all tattoos'>>
<<script>>
Dialog.setup("NPC customize - tattoos", "NPC customize - tattoos");
Dialog.wiki(Story.get("NPC customize - tattoos").processText());
Dialog.open();
<</script>>
<<for _category, _tattoo range $tmpGirl.tattoos ?? {}>>
<<run delete $tmpGirl.tattoos[_category]>>
<</for>>
<<goto `passage()`>>
<</link>>
<<for _tattooCategory, _tattooCategoryItems range _tattoos>>
<<capture _tattooCategory>>
<fieldset>
<legend>
<<=_tattooCategoryItems.name>>
</legend>
<div class="npc-wardrobe-items">
<<if $tmpGirl?.tattoos && typeof $tmpGirl.tattoos[_tattooCategory] !== 'undefined'>>
<div class="npc-wardrobe-item remove">
<<link '<div>[img[setup.ImagePath+"game/doll/none.png"]]</div>'>>
<<run delete $tmpGirl.tattoos[_tattooCategory]>>
<<script>>
Dialog.setup("NPC customize - tattoos", "NPC customize - tattoos");
Dialog.wiki(Story.get("NPC customize - tattoos").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</link>>
</div>
<</if>>
<<for _tattooItem range _tattooCategoryItems.list>>
<<capture _tattooItem>>
<div class="npc-wardrobe-item">
<<link '<div>[img[setup.ImagePath+"game/doll/tattoos/"+_tattooCategory+"_"+_tattooItem+".png"]]</div>'>>
<<set $tmpGirl.tattoos ??= {}>>
<<set $tmpGirl.tattoos[_tattooCategory] = _tattooItem>>
<<script>>
Dialog.setup("NPC customize - tattoos", "NPC customize - tattoos");
Dialog.wiki(Story.get("NPC customize - tattoos").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</link>>
</div>
<</capture>>
<</for>>
</div>
</fieldset>
<</capture>>
<</for>><br />
<<actionImage $tmpGirl 'cum_on_face_cleanup'>>
<br />
<<=setup.pronounceWhat($tmpGirl, true)>> licks your cock clean.<<if ($tmpGirl.pregnancy ?? 0) >= 8 && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmh, I love how you're so careful with me right now, " + setup.npc.mcName($tmpGirl) + "... You feel so good inside me.",
"Ooh, " + setup.npc.mcName($tmpGirl) + "... Everything's so much more sensitive carrying your baby, you fill me perfectly.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... Be gentle, but don't stop, I love how you feel inside me.",
"Mmmhh, My body is so warm and full right now, " + setup.npc.mcName($tmpGirl) + "... In every possible way...",
"*sigh* " + setup.npc.mcName($tmpGirl) + "... I feel you so deeply... Everything's heightened when I'm carrying like this."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(30)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmh, " + setup.npc.mcName($tmpGirl) + "... My husband, inside me, this is everything.",
"*sigh* You feel so right inside me, " + setup.npc.mcName($tmpGirl) + "... Like you were made for me.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... I belong to you, and you belong inside me...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Nobody else gets this, only you, only ever you.",
"*wrapping around you* " + setup.npc.mcName($tmpGirl, 1) + "... My husband feels so perfect inside me..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.family?.husband && $tmpGirl.family?.husband !== 'mc' && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmh, " + setup.npc.mcName($tmpGirl) + "... I know I shouldn't... but you feel so much better than he does...",
"*biting her lip* He can never know about this, " + setup.npc.mcName($tmpGirl) + "... But I can't stop...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... This is so wrong... so why does it feel so right?",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... My husband doesn't make me feel like this... not even close.",
"*whispering* What are you doing to me, " + setup.npc.mcName($tmpGirl) + "... I keep coming back for this..."
])>>
<</sayNpc>>
<<elseif typeof $player.companions['guest:' + $guestId] !== 'undefined' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*sighing* You have my back out there every day, " + setup.npc.mcName($tmpGirl) + "... In here you can have all of me.",
"Out there we're partners. In here, you can claim me anytime.",
"*quietly* Every time we come back from the wastes I think about this, " + setup.npc.mcName($tmpGirl) + "... Just this.",
"The wasteland's a hard place... I like you even harder, " + setup.npc.mcName($tmpGirl) + ".",
"The wasteland is unforgiving...but you make me forget that for a while, " + setup.npc.mcName($tmpGirl) + "."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'kitchen' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Right here in the kitchen? This is so bad and so good!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You bent me over the counter like I'm something on the menu...",
"*gasping* The things we do in this kitchen, " + setup.npc.mcName($tmpGirl) + "... If the household ever knew...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! You're so insatiable, I love it!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'hospital' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! This is definitely not standard procedure, but don't stop...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The bedside manner here is exceptional...",
"Mmmhh, yes, " + setup.npc.mcName($tmpGirl) + "... This is just what the doctor ordered...",
"*gasping* Is this covered by my treatment plan? Because I want more...",
"Ahh, " + setup.npc.mcName($tmpGirl) + ", this is just the injection I was hoping for..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'maid' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I was supposed to be cleaning in here, not... this...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You caught me making the bed and now I'm... this is much better.",
"*gasping* I don't think this is in my job description, " + setup.npc.mcName($tmpGirl) + "... but I'm not complaining...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The bed was so tidy before you bent me over it..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'church' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmh, " + setup.npc.mcName($tmpGirl) + "... In this church we offer all of ourselves to what brings us closer to the divine...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... The body is a temple. You are very welcome in mine.",
"*sighing* Pleasure is a form of prayer here... I have been praying for this, " + setup.npc.mcName($tmpGirl) + "...",
"*gasping* Some churches say this is sin... we say it is sacred... *exhaling* so very sacred...",
"Mmmhh... Our faith holds that joy is holy, " + setup.npc.mcName($tmpGirl) + "... you make me very devout right now...",
"*exhaling slowly* The flesh is not something to be denied here. It is to be celebrated. *quietly* Celebrate me.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... *softly* The spirit is willing. So is the flesh. *exhaling* Very willing..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'workout' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Already out of breath from training and now this, I love it!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... All that sweat and effort, this is the reward I deserve..",
"*panting* You feel so good, " + setup.npc.mcName($tmpGirl) + "... My heart's already racing, this just finishes me off.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Best workout recovery routine I've ever had, you feel amazing!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'car' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! We barely fit in here, and yet it's perfect somehow!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Cramped and sweaty and I love every second of it...",
"*gasping* Anyone could see us through the windows, " + setup.npc.mcName($tmpGirl) + "... That just makes it better, doesn't it?",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! This backseat isn't big enough but somehow you fit perfectly inside me!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'forest' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Out here in the open, it feels so primal!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The trees, the air, you inside me, this is perfect.",
"*gasping* Anyone could walk by, " + setup.npc.mcName($tmpGirl) + "... I love the risk of it...",
"I love this, " + setup.npc.mcName($tmpGirl) + "! Out here in nature, raw and real, you feel incredible!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'shower' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The hot water and you, I can barely stand!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... All wet and you're inside me, this is my favorite kind of shower.",
"*gasping* The steam is already making me dizzy and you feel incredible, " + setup.npc.mcName($tmpGirl) + "...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I came in here to get clean and you're making me so dirty!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'massage' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! This is a very thorough massage...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I was so relaxed from your hands, and now you're inside me, perfection.",
"*gasping* The oils, the warmth, and now this, " + setup.npc.mcName($tmpGirl) + ", you feel incredible...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Your touch.. your passion.. it's all I need..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'bathhouse' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The sauna heat and you inside me, my whole body is melting!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Everything's already so hot and wet, and now this...",
"*gasping* The steam makes everything feel so intense, " + setup.npc.mcName($tmpGirl) + "... I can barely breathe.",
"Oh, " + setup.npc.mcName($tmpGirl) + "! The heat of your body feels so intense in here..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'school' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! This is not in the curriculum, but please don't stop...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Yes, give me my lesson, right here on the desk...",
"Ohh, " + setup.npc.mcName($tmpGirl) + "... Talk about hot for teacher...",
"*gasping* If anyone walked in right now, " + setup.npc.mcName($tmpGirl) + "... Don't stop, I don't care!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The teacher is receiving a very hands-on lesson today..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'basement' && typeof $guestId !== 'undefined' && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, yes, " + setup.npc.mcName($tmpGirl) + "! Bind me, claim me, show me who I belong to...",
"Mmmhh, I love being taken down here, " + setup.npc.mcName($tmpGirl) + "... This feels so dangerous and incredible.",
"*gasping* The darkness, the ropes, and your cock.. Mmm, " + setup.npc.mcName($tmpGirl) + "... Such a perfect combination...",
"Yes, " + setup.npc.mcName($tmpGirl) + "! Pound me! Punish me! Let me feel it all!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'mistress' && setup.percentageChance(35)>>
<<if ($tmpGirl.sub ?? 0) < 20>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... In this dungeon, I make the rules... *gasping* ...and right now the rule is that you keep going, " + setup.npc.mcName($tmpGirl) + "...",
"*exhaling slowly* You're allowed in here because I allow it, " + setup.npc.mcName($tmpGirl) + "... and I am allowing it very much right now...",
"Ahh... Look at you... privileged enough to be inside your Mistress... *quietly* ...don't waste it, " + setup.npc.mcName($tmpGirl) + ".",
"Mmmhh... I set the pace, I set the rules... *gasping* ...and I say deeper, " + setup.npc.mcName($tmpGirl) + "...",
"*with authority* You please me, " + setup.npc.mcName($tmpGirl) + "... I'll let you know when you're done..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.sub ?? 0) <= 50>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I give the orders in this dungeon to everyone... except you, and right now that's perfect.",
"*exhaling* I press others against these walls... *quietly* ...and here I am, pressed against one for you, " + setup.npc.mcName($tmpGirl) + "...",
"Ahh... They hear me crack the whip down there... *softly* ...they'll never hear this side of me, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh, you walked into my dungeon and somehow became the only one I'd open the door for, " + setup.npc.mcName($tmpGirl) + "...",
"*gasping* I don't let just anyone in here, " + setup.npc.mcName($tmpGirl) + "... You know that. Make it worth my while."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Take me however you want... the dungeon, the power, all of it is yours... so am I.",
"*exhaling* I have spent years in control of every person in this dungeon... *softly* ...with you, I don't want to be.",
"Ahh... You are the master here, " + setup.npc.mcName($tmpGirl) + "... and I give you this gladly... take whatever you need from me.",
"Mmmhh... *pressing closer* Command me as you please... I will meet every desire, " + setup.npc.mcName($tmpGirl) + "...",
"*quietly* My whip is on the wall... my authority stays at the door... in here, I am only yours, " + setup.npc.mcName($tmpGirl) + "."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'streets' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! You're getting the full experience today, I'm not holding back for you.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Usually I clock out in my head, but you're keeping me very present.",
"*gasping* You're different from the others, " + setup.npc.mcName($tmpGirl) + "... I really feel this...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Let me show you just how much this pussy is worth..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'strip_club' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! This has gone so far beyond 'no hands', and I am completely fine with that.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I know there are rules here, but you're worth breaking them for...",
"*grinding on your lap* Is this the kind of lap dance you were looking for, " + setup.npc.mcName($tmpGirl) + "...",
"*gasping* The music's still playing out there, " + setup.npc.mcName($tmpGirl) + "... And I'm in here with you inside me...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! You wanted a private show, this is as private as it gets..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'nightclub' && setup.percentageChance(70)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The tiles are cold and you're so warm inside me... I'm not complaining.",
"Ahh... I came here to dance, " + setup.npc.mcName($tmpGirl) + "... this is a much better use of the evening.",
"*quietly* The bass is shaking the walls... and you're deep inside me in a nightclub bathroom... this is insane.",
"Mmmhh... I barely know you, " + setup.npc.mcName($tmpGirl) + "... but this feels incredible.",
"*gasping* This is completely reckless... and I don't want to stop, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh... Just your cock through a hole in the wall, " + setup.npc.mcName($tmpGirl) + ", and I can feel every inch inside me...",
"Mmmhh... I can't see your face but I'd know this cock anywhere, " + setup.npc.mcName($tmpGirl) + ", you fill me perfectly...",
"*gasping* The wall, the hole, you on the other side, I can feel how deep you are...",
"Ahh... Just your manhood through this opening, and it's more than enough..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... *gasping* ...everything at once... the pull, the ache, and now you deep inside me... *shaking* ...I can't think straight, don't stop...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... *pressing back against you* ...I was already so close to the edge when you walked in... *breathlessly* ...this is almost too much...",
"*breathless* I'm already so sensitive... and you feel so... *gasping* ...please don't stop... please...",
"Ohh... *gripping the frame* ...I can't reach you, I can't pull you closer... *whimpering softly* ...just give me more...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... *trembling* ...I'm going to fall apart right here... *exhaling* ...and I don't mind at all.",
"*softly* The whole barn disappears when you're inside me... *gasping* ...all I feel is you..."
])>>
<</sayNpc>>
<<elseif !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father === 'mc' || ($tmpGirl.family?.siblings ?? []).includes('mc') || ($tmpGirl.family?.kids ?? []).includes('mc') || $player.family?.mother === $tmpGirl.id || $player.family?.father === $tmpGirl.id || ($player.family?.siblings ?? []).includes($tmpGirl.id)) && setup.percentageChance(45)>>
<<if $tmpGirl.family?.father === 'mc'>>
<<sayNpc $tmpGirl>>
<<=either([
"I know it's wrong, " + setup.npc.mcName($tmpGirl) + "... but it feels so right...",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... doesn't family feel just perfect...",
"The fact that it's you, " + setup.npc.mcName($tmpGirl) + ", makes it feel even better...",
"I know we shouldn't, " + setup.npc.mcName($tmpGirl) + "... but that's what makes it so exciting...",
"Mmmm, I bet mine feels much better than mom's does...",
"Ahhh, yes, " + setup.npc.mcName($tmpGirl) + ", forbidden fruit really is the best...",
"I was made for you, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.siblings ?? []).includes('mc') || ($player.family?.siblings ?? []).includes($tmpGirl.id)>>
<<sayNpc $tmpGirl>>
<<=either([
"We grew up together, " + setup.npc.mcName($tmpGirl) + ", but who could have predicted we would be this close...",
"I know we shouldn't, " + setup.npc.mcName($tmpGirl) + "... but you feel better than anyone I've ever been with...",
"My own brother, inside me... *breathless* ...the best secret we've ever kept...",
"You feel so perfect inside me, " + setup.npc.mcName($tmpGirl) + "... like we were made for each other...",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... family really does fit best, doesn't it...",
"Nobody will believe what we get up to when nobody's watching, " + setup.npc.mcName($tmpGirl) + "...",
"I always knew we were close... *softly* ...I didn't know it would feel like this...",
"Forbidden fruit... *gasping* ...and you're the most forbidden of all, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"My own son, inside me... *breathless* ...I always knew you'd grow up to be something special...",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... I made you, and now you're claiming me... the circle of it all...",
"I gave you life... *gasping* ...and you're giving me the time of my life... I call that a fair trade...",
"You fit so perfectly inside me, " + setup.npc.mcName($tmpGirl) + "... like you were made to fill me...",
"You know your mother better than anyone, " + setup.npc.mcName($tmpGirl) + "... and right now you know me completely...",
"Forbidden fruit... and I gave birth to it... *quietly* ...I'm not the least bit sorry...",
"You came from me, " + setup.npc.mcName($tmpGirl) + "... *softly* ...and now you come back to me like this...",
"I raised you so well... *gasping* ...so well, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"You feel so good inside me, " + setup.npc.mcName($tmpGirl) + "!",
"You're the perfect fit, " + setup.npc.mcName($tmpGirl) + "...",
"Yes.. you're such a stallion, " + setup.npc.mcName($tmpGirl) + "...",
"You're so much better than a toy, " + setup.npc.mcName($tmpGirl) + "...",
"Oooh, " + setup.npc.mcName($tmpGirl) + ", your cock fills me so perfectly...",
"Yes! Yes! Harder, " + setup.npc.mcName($tmpGirl) + "!",
"Ahh, mmmhh, yes! Fuck me " + setup.npc.mcName($tmpGirl) + "! Give me more!",
"Fuck! Yes, " + setup.npc.mcName($tmpGirl) + ", so deep...",
"Ahh! Hahhh! Yes, " + setup.npc.mcName($tmpGirl) + ", I can't get enough of your cock!",
"Mmmm... Deeper, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.anal ?? 0) >= 20>>
<<if ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(30)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... My husband can have all of me, every part of me...",
"*exhaling slowly* I love sharing this with you, " + setup.npc.mcName($tmpGirl) + "... I belong to you.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... I love giving my husband everything... Take it, it's yours.",
"*gripping the sheets* This is my gift to you, " + setup.npc.mcName($tmpGirl) + "... No part of me is off limits."
])>>
<</sayNpc>>
<<elseif $tmpGirl.family?.husband && $tmpGirl.family?.husband !== 'mc' && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* He's never brave enough to take me like this... you are, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... My husband doesn't even know I like this... you figured it out immediately.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... He'd never dare... That's the difference between you two right there.",
"*whispering* He doesn't get this from me... but I can't say no to you, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.pregnancy ?? 0) >= 8 && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*carefully* My pussy needs a little break right now... this is my gift to you in the meantime, " + setup.npc.mcName($tmpGirl) + ".",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The baby gets the front... you get the back.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... I'll never let you go without, and this way works for both of us...",
"*slowly* I'm bigger than I used to be... but this still works, and I still want you, " + setup.npc.mcName($tmpGirl) + "."
])>>
<</sayNpc>>
<<elseif typeof $player.companions['guest:' + $guestId] !== 'undefined' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"You trust me out there with your life, " + setup.npc.mcName($tmpGirl) + "... I trust you with this.",
"*exhaling* Partners everywhere, " + setup.npc.mcName($tmpGirl) + "... Even here. Even like this.",
"*tensing* We've been through harder things together. My ass is yours, " + setup.npc.mcName($tmpGirl) + ".",
"Out in the field you always have me. In here — *exhaling* — you have all of me."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'kitchen' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Taking me in the kitchen, right where I cook, this is so filthy!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Bent over in here, taking you like this, I love it.",
"*gasping* The things we do in this kitchen, " + setup.npc.mcName($tmpGirl) + "... You feel so deep from this angle."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'hospital' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! This is a very thorough examination...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Yes, I need a very deep injection...",
"*gasping* I love when you bend me over the hospital bed, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'maid' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I came to clean the bedroom, not get my own pipes cleaned... this is very unexpected...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... This is what happens when I drop the duster...",
"*gasping* You're going to make me ruin the sheets I just changed, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'church' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "... Our church teaches that all forms of devotion have their place...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The sisters would be scandalized. The elders would understand.",
"*gasping* Every part of me is consecrated to this, " + setup.npc.mcName($tmpGirl) + "... take what is offered freely...",
"*slowly* We have a saying here... the body holds no shame in the sight of the sacred. *exhaling* None at all.",
"Ahh... deeper, " + setup.npc.mcName($tmpGirl) + "... this too is a form of grace, I am certain of it...",
"*quietly* I have offered far more modest things at the altar. *gripping you* This feels more honest.",
"Mmmhh... The divine asks for nothing held back. *exhaling* I hold nothing back, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'workout' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Already worked my whole body during training, but my glutes were waiting for this!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Yes, take me deeper. I love getting my reps in with you...",
"*panting* Mmm, nothing like a good stretch after a workout, " + setup.npc.mcName($tmpGirl) + "... You feel so deep..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'car' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! If you thought the backseat was tight, how is my backdoor..?",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Anyone could see us through the window, I don't care, deeper!",
"*gasping* The confined space makes you feel even bigger, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'forest' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Bend me over against a tree! It feels so raw and wild!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Balls deep in my ass, where anyone could stumble on us.. Don't stop!",
"*gasping* Claim my ass, right out here in nature, " + setup.npc.mcName($tmpGirl) + "... This is so primal, I love it..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'shower' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Do you like the hot water running down my back over your cock while you bury yourself inside me?",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... All the steam and heat, and now getting filled like this, my knees are going to give out...",
"*gasping* You're so deep, " + setup.npc.mcName($tmpGirl) + "... The shower makes this feel even more intense..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'massage' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The massage loosened everything up, and now this, perfect.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The massage oils make you slide in so smoothly.. so good...",
"*gasping* Mmmph, you're driving me into the massage table, " + setup.npc.mcName($tmpGirl) + "... And I love it."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'bathhouse' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The sauna heat around me and your heat deep inside me, I'm going to melt completely!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Everything is relaxed from the heat, and you slide so deep...",
"*gasping* So hot, so steamy, and you in my ass, " + setup.npc.mcName($tmpGirl) + "... This is perfect."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'school' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Yes, " + setup.npc.mcName($tmpGirl) + "! Bend me over this desk and teach me a lesson!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I love when you take over my ass.. I mean class...",
"*gasping* Pin me against the chalkboard, " + setup.npc.mcName($tmpGirl) + "... And let me feel you deep inside me..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'basement' && $tmpGirl.type === 'guest' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh! *smack* Yes, " + setup.npc.mcName($tmpGirl) + "! Own my ass, spank me again, harder!",
"Mmmhh, take me, " + setup.npc.mcName($tmpGirl) + "... Tie me up! Claim me, in every way...",
"*gasping* Spank me again, " + setup.npc.mcName($tmpGirl) + "... Down here nobody hears, take everything...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The ropes, the darkness, and your cock filling my ass. Perfection...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You brought me down here to use me, so use me..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'mistress' && setup.percentageChance(35)>>
<<if ($tmpGirl.sub ?? 0) < 20>>
<<sayNpc $tmpGirl>>
<<=either([
"*controlled breath* I'll allow this... *gasping* ...because it pleases your Mistress to allow it, " + setup.npc.mcName($tmpGirl) + "...",
"Ahh... Even here, even like this, I decide who gets this from me... I've decided it's you, " + setup.npc.mcName($tmpGirl) + ".",
"Mmmhh... Don't think this means you've taken something from me, " + setup.npc.mcName($tmpGirl) + "... I'm giving it... there's a difference.",
"*gripping the wall* Your Mistress permits you to continue, " + setup.npc.mcName($tmpGirl) + "... *gasping* ...and that is high praise...",
"Ahh... I command this dungeon... and I command you to go deeper, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.sub ?? 0) <= 50>>
<<sayNpc $tmpGirl>>
<<=either([
"*carefully controlled breath* I use the strap-on on the others, " + setup.npc.mcName($tmpGirl) + "... this is reserved for you alone.",
"Ahh... I could stop you if I wanted to, " + setup.npc.mcName($tmpGirl) + "... *quietly* ...I don't want to.",
"Mmmhh... The dungeon mistress taking it instead of giving it... *gasping* Only for you, " + setup.npc.mcName($tmpGirl) + "...",
"*gripping the chains on the wall* Everything I do to them... *breathless* ...you do to me... and I let you, " + setup.npc.mcName($tmpGirl) + ".",
"Ahh... This is not in anyone's job description... *softly* ...but I'm not stopping you, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling* Take all of me, " + setup.npc.mcName($tmpGirl) + "... everything I withhold from the others... it's yours, freely given.",
"Ahh... My Master... *softly* I offer this willingly... every part of me is at your pleasure.",
"Mmmhh... I hold power over everyone in this dungeon... *gasping* ...and I surrender all of it to you, " + setup.npc.mcName($tmpGirl) + "...",
"*quietly* You don't need to take anything from me, " + setup.npc.mcName($tmpGirl) + "... I will give you whatever you ask... always.",
"Ahh... *pressing back* More, " + setup.npc.mcName($tmpGirl) + "... I am yours... use me as you please..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'streets' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! This is a special service, but for you, absolutely worth it.",
"Yes, " + setup.npc.mcName($tmpGirl) + "... Even though it's a job, I love feeling you in my ass...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Let me show you why this ass is worth every penny...",
"*gasping* You like it rough, " + setup.npc.mcName($tmpGirl) + "... I can work with that..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'strip_club' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! This is what I call a pole dance...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Nobody takes a private dance to the.. depth that you do...",
"*gasping* We left the rules behind ages ago, " + setup.npc.mcName($tmpGirl) + ". Nothing is off limits..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'nightclub' && setup.percentageChance(70)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "... I came here to dance, not to end up like this in a bathroom stall... but here we are.",
"*bracing against the wall* Mmmhh... You're incredibly confident for someone I met an hour ago, " + setup.npc.mcName($tmpGirl) + "...",
"*gasping* The bass through the tiles... your hands on my hips... this is completely surreal, " + setup.npc.mcName($tmpGirl) + "...",
"Ahh... You barely said ten words to me out there, " + setup.npc.mcName($tmpGirl) + "... and now you're all the way in...",
"*quiet moan* If anyone walks in right now... *gasping* ...don't stop, " + setup.npc.mcName($tmpGirl) + ", don't stop..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... Even through the wall, " + setup.npc.mcName($tmpGirl) + ", you're so deep in my ass, I can feel every inch...",
"*gasping* Your cock feels perfect through the hole, filling me completely...",
"Ahh... The wall between us makes it more intense somehow, you feel incredible deep inside me...",
"*pushing back* I'd know this cock anywhere, " + setup.npc.mcName($tmpGirl) + ", even through a glory hole, take me deeper..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gripping the frame* Ahh, " + setup.npc.mcName($tmpGirl) + "... held completely still and you're right there behind me... *gasping* ...I have no choice but to feel every single thing...",
"Mmmhh... *trembling* ...I was already so wound up... and now you're inside me too... *breathlessly* ...it's almost too much...",
"Ohh... *straining toward you* ...I want to push back, I want to give you more... *whimpering* ...take what I can't reach to give you...",
"*quietly* I was already so close to losing it... and then you walked in and... *gasping* ...everything goes quiet except you, " + setup.npc.mcName($tmpGirl) + "...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... *shaking* ...please tell me this is what you wanted... *softly* ...I want so much to be what you want...",
"*exhaling slowly* Right here, just like this... *barely audible* ...don't stop... please don't stop..."
])>>
<</sayNpc>>
<<elseif !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father === 'mc' || ($tmpGirl.family?.siblings ?? []).includes('mc') || ($tmpGirl.family?.kids ?? []).includes('mc') || $player.family?.mother === $tmpGirl.id || $player.family?.father === $tmpGirl.id || ($player.family?.siblings ?? []).includes($tmpGirl.id)) && setup.percentageChance(45)>>
<<if $tmpGirl.family?.father === 'mc'>>
<<sayNpc $tmpGirl>>
<<=either([
"It's so naughty " + setup.npc.mcName($tmpGirl) + ".. but it feels so right....",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ".. doesn't forbidden ass feel the best...?",
"Yes, " + setup.npc.mcName($tmpGirl) + ", let me feel that special cock deep inside me..",
"You know this ass was made just for you, " + setup.npc.mcName($tmpGirl) + "...",
"I bet mom doesn't let you do this, does she?",
"All of my holes belong to you, " + setup.npc.mcName($tmpGirl) + ". You know why...",
"I was made for you, daddy..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.siblings ?? []).includes('mc') || ($player.family?.siblings ?? []).includes($tmpGirl.id)>>
<<sayNpc $tmpGirl>>
<<=either([
"We share so many things, " + setup.npc.mcName($tmpGirl) + "... *gasping* ...but this has to be the most forbidden one...",
"Mmmm, " + setup.npc.mcName($tmpGirl) + "... siblings who share everything... I mean everything...",
"I let nobody else back here... *breathless* ...but you're not just anyone, " + setup.npc.mcName($tmpGirl) + "...",
"It's wrong... *gasping* ...which is exactly why it feels this good...",
"My own brother... *whispering* ...all the way in... I'm not complaining, " + setup.npc.mcName($tmpGirl) + "...",
"You know, growing up sharing the same roof... *breathless* ...I always wondered if we'd end up here...",
"Forbidden fruit hits different when it's your own blood, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"My own son, taking me here... *breathless* ...you've grown into quite the man, " + setup.npc.mcName($tmpGirl) + "...",
"I gave you everything when you were little... *gasping* ...and I'm still giving everything, " + setup.npc.mcName($tmpGirl) + "...",
"You belong to me more than anyone... *quietly* ...so I suppose I belong to you too...",
"My body made yours, " + setup.npc.mcName($tmpGirl) + "... *breathless* ...and now yours claims mine... the poetry of it...",
"Forbidden? Perhaps... *gasping* ...but I raised a man who takes what he wants, and I admire that...",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... you certainly know how to handle your mother...",
"Every part of me was always yours to have, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>>
<<elseif ($tmpGirl.virgin ?? false) && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"I'm so glad we have this loophole, " + setup.npc.mcName($tmpGirl) + "!",
"I love being able to feel you inside me, " + setup.npc.mcName($tmpGirl) + ". This way works so well.",
"It feels so good here, " + setup.npc.mcName($tmpGirl) + "... I don't see how the other way could be much better.",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ".. I love being so pure and so dirty at the same time..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"You feel so good in my ass, " + setup.npc.mcName($tmpGirl) + "!",
"It's a little tight, " + setup.npc.mcName($tmpGirl) + "... but I can take it.",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ", do you like when I clench my ass like that?",
"Oooh, yes, deeper " + setup.npc.mcName($tmpGirl) + ", deeper...",
"Ah! Mmf! Harder, " + setup.npc.mcName($tmpGirl) + "! Ngh, yes! Harder!",
"*pushing back* Mmmph! Yes, " + setup.npc.mcName($tmpGirl) + ", I love when you take me deeper!",
"Hahh, yes! Oooh, fill me, " + setup.npc.mcName($tmpGirl) + "! Fill my ass!",
"Mmmmh, " + setup.npc.mcName($tmpGirl) + ", your cock feels perfect in my ass.",
"Ahh, " + setup.npc.mcName($tmpGirl) + ", does my ass feel good on your cock?",
"Mmph.. you're so deep, " + setup.npc.mcName($tmpGirl) + ". I love it..."
])>>
<</sayNpc>>
<</if>>
<<elseif ($tmpGirl.traits ?? []).includes('masochist')>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh! Ungh! " + setup.npc.mcName($tmpGirl,1) + ", it hurts, but don't stop!",
"Ow! It's too tight, " + setup.npc.mcName($tmpGirl) + "! Give me more...",
"Mmph! Keep going, " + setup.npc.mcName($tmpGirl) + "! I like it rough...",
"*pushing back* Nnng! I can do it, " + setup.npc.mcName($tmpGirl) + "! I'll be good for you!",
"Hahh, " + setup.npc.mcName($tmpGirl) + ", keep going. Stretch me out like I deserve..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh! Ungh! " + setup.npc.mcName($tmpGirl,1) + ", that's too much, please be gentle!",
"Ow! It's too tight, " + setup.npc.mcName($tmpGirl) + "! I need a break...",
"Mmph! Hold on, " + setup.npc.mcName($tmpGirl) + "! I'm not ready for this..",
"Hahh, " + setup.npc.mcName($tmpGirl) + ", slow down. Please get the lube..."
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.traits ?? []).includes('breeder') && !(($tmpGirl.pregnancy ?? 0) >= 8) && setup.percentageChance(50)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* Yes, " + setup.npc.mcName($tmpGirl) + "! Breed me, give me every drop, I want it all!",
"Mmmhh, fill me up, " + setup.npc.mcName($tmpGirl) + "... I want to feel new life growing inside me.",
"Ohh, " + setup.npc.mcName($tmpGirl) + "! Yes, plant your seed deep, let me feel your essence where it belongs...",
"*trembling* Give it all to me, " + setup.npc.mcName($tmpGirl) + "... Every last drop, make me yours completely.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Nothing feels more right than this, fill me, breed me!"
])>>
<</sayNpc>>
<<elseif ($tmpGirl.traits ?? []).includes('infertile') && setup.percentageChance(25)>>
<<sayNpc $tmpGirl>>
<<=either([
"*soft sigh* I love when you fill me, " + setup.npc.mcName($tmpGirl) + "... Even if it won't take, it still feels incredible.",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... Feeling your warmth inside me... that alone is enough.",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "... Even if it never leads to anything, this feeling is everything.",
"*whispering* Yes, cum inside me, " + setup.npc.mcName($tmpGirl) + "... It won't make a baby, but it makes me feel complete."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.pregnancy ?? 0) >= 8 && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* You're adding to what's already there, " + setup.npc.mcName($tmpGirl) + "... So warm, so deep...",
"Ohh, " + setup.npc.mcName($tmpGirl) + "! Already carrying your baby and filling me up again, I love it.",
"Mmmhh, yes, cum inside me, " + setup.npc.mcName($tmpGirl) + "... I'm already round with you, what's a little more?",
"*shivering* " + setup.npc.mcName($tmpGirl, 1) + "... Even with a baby inside me, your warmth makes me feel complete..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(30)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"*sigh* " + setup.npc.mcName($tmpGirl, 1) + "... My husband filling me up, it's exactly where you belong.",
"Mmmmhh, I love feeling you inside me like this, " + setup.npc.mcName($tmpGirl) + "... all of you.",
"Ohh, " + setup.npc.mcName($tmpGirl) + "... I love feeling your essence filling me, reminding me that I belong to you...",
"*trembling* Yes, fill me, " + setup.npc.mcName($tmpGirl) + "... Your wife loves every second of this..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.family?.husband && $tmpGirl.family?.husband !== 'mc' && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* He never cums this deep, " + setup.npc.mcName($tmpGirl) + "... What am I doing...",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "! He'll never know, and I'll never forget this...",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ", you'r'e playing with fire. I shouldn't love the danger this much, but it feels so good...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I should feel guilty, but all I feel is how good this is...",
"*shuddering* You're cumming inside me, " + setup.npc.mcName($tmpGirl) + "... My husband can never find out..."
])>>
<</sayNpc>>
<<elseif typeof $player.companions['guest:' + $guestId] !== 'undefined' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*inhaling slowly* You've kept me alive out there... *quietly* I'll carry whatever you give me in here, " + setup.npc.mcName($tmpGirl) + ".",
"Warm... " + setup.npc.mcName($tmpGirl) + "... *softly* After everything out there, this is what I wanted to come home to.",
"*catching breath* I love when you claim me like this, " + setup.npc.mcName($tmpGirl) + ". It makes me feel like a true Companion.",
"*exhaling* Yes, " + setup.npc.mcName($tmpGirl) + "... I love feeling the heat of your power filling me..."
])>>
<</sayNpc>>
<<elseif !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father === 'mc' || ($tmpGirl.family?.siblings ?? []).includes('mc') || ($tmpGirl.family?.kids ?? []).includes('mc') || $player.family?.mother === $tmpGirl.id || $player.family?.father === $tmpGirl.id || ($player.family?.siblings ?? []).includes($tmpGirl.id)) && setup.percentageChance(45)>>
<<if $tmpGirl.family?.father === 'mc'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasps* You came inside me, daddy! You're so naughty..",
"Daddy! You're gonna make me a mommy if you keep doin' that...",
"Oh, " + setup.npc.mcName($tmpGirl) + ", I can feel how much you love your forbidden fruit...",
"Ahhh, " + setup.npc.mcName($tmpGirl) + ", yes.. put that seed where it really belongs...",
"So naughty, " + setup.npc.mcName($tmpGirl) + ". What will our family tree look like?",
"Mmmh, " + setup.npc.mcName($tmpGirl) + ", I love when you fill me with what made me...",
"Ohhh, " + setup.npc.mcName($tmpGirl) + ", I was made for your seed..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.siblings ?? []).includes('mc') || ($player.family?.siblings ?? []).includes($tmpGirl.id)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shivering* You came inside me, " + setup.npc.mcName($tmpGirl) + "... your own sister... we are absolutely terrible...",
"Mmmh... siblings who share everything... *gasping* ...and I mean everything...",
"What would people say... *softly* ...I honestly don't care right now, " + setup.npc.mcName($tmpGirl) + "...",
"Your seed, inside your sister... *breathless* ...forbidden fruit at its finest...",
"You know this makes us even closer, " + setup.npc.mcName($tmpGirl) + "... *quietly* ...if that was even possible...",
"I always knew this would happen eventually... *sighing* ...and it was worth every second of the wait, " + setup.npc.mcName($tmpGirl) + "...",
"So wrong... *exhaling* ...so, so right..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* You came inside your own mother, " + setup.npc.mcName($tmpGirl) + "... *softly* ...and I'm not the least bit sorry...",
"You came from me once... *exhaling* ...and now you come back inside me... full circle, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmh... I gave you life... *quietly* ...and right now I'd give you anything, " + setup.npc.mcName($tmpGirl) + "...",
"So naughty, my son... *breathless* ...so very naughty... and I'll take some credit for that...",
"Your seed where it all began... *softly* ...I can't think of a better place for it, " + setup.npc.mcName($tmpGirl) + "...",
"What will the family tree look like... *quietly* ...I suppose we'll find out...",
"Your mother receives you completely, " + setup.npc.mcName($tmpGirl) + "... *softly* ...as she always has..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shivering* You came inside me through the wall, " + setup.npc.mcName($tmpGirl) + "... I can feel you throbbing from in here...",
"Mmmhh... Your cum is so warm inside me, " + setup.npc.mcName($tmpGirl) + "... Just a hole in the wall between us and you still claim me completely...",
"*gasping* I can feel everything, " + setup.npc.mcName($tmpGirl) + ", every pulse, even through this..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'strip_club' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I'm going to be out there dancing with your hot cum still inside me...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I can't believe how far we went, but you're worth breaking every rule...",
"*shuddering on your lap as you fill her* Hahh.. I guess this is the kind of lap dance you were looking for, " + setup.npc.mcName($tmpGirl) + "...",
"*gasping* The music is still pumping out there, " + setup.npc.mcName($tmpGirl) + ".. They have no idea what you just did inside me...",
"Mmm, " + setup.npc.mcName($tmpGirl) + ", only you get to claim me in the club like this..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'nightclub' && setup.percentageChance(70)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... *exhaling* Your cum inside me in a nightclub bathroom... I don't even know your last name, " + setup.npc.mcName($tmpGirl) + "...",
"*shivering* I have to go back out there now... *softly* with you still inside me... knowing what just happened...",
"Ahh... The bass is still going out there... and you just came inside me... this night went places I didn't expect.",
"*catching her breath* I was out there dancing an hour ago, " + setup.npc.mcName($tmpGirl) + "... *quietly* How did I end up here...",
"Mmmhh... *tilting her head back* That was completely reckless... and I loved every second of it, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'mistress' && setup.percentageChance(35)>>
<<if ($tmpGirl.sub ?? 0) < 20>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling* Warm inside your Mistress... *quietly* ...consider that a reward, " + setup.npc.mcName($tmpGirl) + ". You've earned it.",
"Mmmhh... I decided to let you do that, " + setup.npc.mcName($tmpGirl) + "... *softly* ...I want you to understand the distinction.",
"Ahh... *catching her breath* You came inside your Mistress... *quietly* ...that is a privilege not given lightly.",
"*tilting her head* Good... *softly* ...very good, " + setup.npc.mcName($tmpGirl) + "... I may permit this again.",
"Mmmhh... Warm and deep... *quietly* ...because I allowed it... remember who holds the power in this dungeon, " + setup.npc.mcName($tmpGirl) + "."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.sub ?? 0) <= 50>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... *exhaling slowly* You claimed me, " + setup.npc.mcName($tmpGirl) + "... I claim everyone in this dungeon... only you claim me.",
"*quietly* Warm inside me... I don't give this to anyone, " + setup.npc.mcName($tmpGirl) + "... You know how rare that is.",
"Ahh... *catching her breath* The master marks his territory... *softly* ...I won't pretend I mind.",
"*leaning against the wall* I've spent years being untouchable in here, " + setup.npc.mcName($tmpGirl) + "... *softly* ...and then there's you.",
"Mmmhh... *tilting her head* Nobody else gets that from me... not the prisoners, not anyone... just you, " + setup.npc.mcName($tmpGirl) + "."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling slowly* You have claimed me completely, " + setup.npc.mcName($tmpGirl) + "... I am yours... every part of me... and I am glad.",
"Mmmhh... *softly* Fill me as you wish... the master of this dungeon fills his Mistress however he pleases...",
"Ahh... *trembling* I give this to you freely, " + setup.npc.mcName($tmpGirl) + "... I give you everything freely... always.",
"*leaning into him* You are the true master here... *quietly* ...and I have never been so willing to be claimed.",
"Mmmhh... *tilting her head back* Take everything, " + setup.npc.mcName($tmpGirl) + "... every room in this dungeon, every chain... and me."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'streets' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shivering* You came inside me, " + setup.npc.mcName($tmpGirl) + "... Nobody else gets that without protection..",
"Mmmhh... Your cum is so warm inside me, " + setup.npc.mcName($tmpGirl) + "... Even out here in the street you still claim me completely...",
"*gasping* You already paid, " + setup.npc.mcName($tmpGirl) + ". This is an extra deposit..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'church' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling slowly* Sacred... the giving of life is the most holy act there is, " + setup.npc.mcName($tmpGirl) + "... and you just gave it freely...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Our church celebrates this above all else. You have participated in something ancient and good.",
"*quietly* Be fruitful... *exhaling* ...I have always taken that scripture very literally, " + setup.npc.mcName($tmpGirl) + ".",
"Warm and deep inside me, " + setup.npc.mcName($tmpGirl) + "... *softly* This is how life begins. This is the holiest thing.",
"*sighing* The womb is a temple and you just left an offering, " + setup.npc.mcName($tmpGirl) + "... it is received with gratitude..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling slowly* Ohh... *softly* ...warm and deep inside me, " + setup.npc.mcName($tmpGirl) + "... *trembling* ...I feel so completely yours right now...",
"Mmmhh... *shaking gently* ...I can feel every pulse of it... *quietly* ...stay in me a little longer...",
"Ahh... *softly* ...I was already so wound up... and then this... *breathlessly* ...you always know exactly how to undo me, " + setup.npc.mcName($tmpGirl) + "...",
"*pressing into you as much as she can* Mmmhh... *quietly* ...warm everywhere... *exhaling* ...I don't want this to end.",
"*whispering* " + setup.npc.mcName($tmpGirl) + "... *shaking* ...everything at once... *softly* ...I don't know where one feeling ends and the other begins...",
"Ohh... *trembling* ...still aching from the pull, and warm now, and so full... *quietly* ...I feel so much right now...",
"*quietly amused* They send me here to give milk... *shaking* ...and here you are, leaving yours inside me... *softly* ...I think I got the better end of today.",
"*laughing softly* I spend all afternoon giving what I make... *warmly* ...and you give something back... *exhaling* ...this is the only kind of cream I want to keep.",
"*gasping* A milk girl who gets to receive her own cream... *trembling* ...I could get very used to you coming to me here, " + setup.npc.mcName($tmpGirl) + "...",
"*softly* Everything in this barn produces... *exhaling slowly* ...and now you've made your own contribution... *quietly* ...I'll keep every drop of this one."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmhh, it feels so warm inside me " + setup.npc.mcName($tmpGirl) + "...",
"Yes, fill me up, " + setup.npc.mcName($tmpGirl) + "! It feels so good.",
"Mmm, I feel you throbbing inside me, " + setup.npc.mcName($tmpGirl) + "...",
"Oooh, I feel you cumming so hard, " + setup.npc.mcName($tmpGirl) + "!",
"Ahh, yes, " + setup.npc.mcName($tmpGirl) + ", your cum feels so good inside me...",
"Oh! Mmmm, " + setup.npc.mcName($tmpGirl) + ", so much cum, so deep inside me...",
"Ahh, Ooh! So much cum, " + setup.npc.mcName($tmpGirl) + ". Somebody really likes my pussy...",
"Mmmmh, " + setup.npc.mcName($tmpGirl) + ", I love the feeling of your cum inside me...",
"I love when you breed me, " + setup.npc.mcName($tmpGirl) + ".",
"Oh " + setup.npc.mcName($tmpGirl) + ", it feels so good filling me up..."
])>>
<</sayNpc>>
<</if>><<if $tmpGirl.location === 'milk_barn' && setup.percentageChance(60)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping softly as you disconnect her* Ohh... *breathlessly* ...couldn't wait, could you, " + setup.npc.mcName($tmpGirl) + "? *warmly* ...I was hoping you wouldn't...",
"*looking down at you* Mmmhh... *quietly amused* ...the machine gets all afternoon and you get a minute... *pressing closer* ...let's make it count.",
"*shivering* The machine is so cold... your mouth is so warm... *exhaling slowly* ...there is no comparison, " + setup.npc.mcName($tmpGirl) + "...",
"*arching into you* Ohh... *softly* ...I'm so full right now, so sensitive... *trembling* ...and your tongue right there is... *gasping* ...perfect...",
"*exhaling* Mmmhh... *threading fingers into your hair* ...I've been giving all afternoon and now you're taking for yourself... *softly* ...good. Take more.",
"*quietly* They're yours, " + setup.npc.mcName($tmpGirl) + "... *pressing toward you* ...take your time... take everything you want...",
"*softly* I've been so full... so long... *arching toward you* ...and the machine doesn't care... *quietly* ...but your mouth does. Please don't stop.",
"*watching you, trembling* Mmmhh... *softly* ...do I taste the way you wanted? *quietly* ...I've been thinking about this all afternoon...",
"*breathless* Is this what you came for, " + setup.npc.mcName($tmpGirl) + "? *pressing closer* ...tell me I'm giving you what you wanted...",
"*cradling your head gently* Mmmhh... *softly* ...let me give you this... *quietly* ...I have so much, and I want so much to share it with you, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif (($tmpGirl.traits ?? []).includes('milker') || ($tmpGirl.pregnancy ?? 0) >= 60) && setup.percentageChance(60)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Careful, I'm sensitive, and you're going to make me leak...",
"Ohh, " + setup.npc.mcName($tmpGirl) + "! My nipples are so tender right now, and your tongue feels exquisite...",
"*cradling your head* Mmmm, " + setup.npc.mcName($tmpGirl, 1) + "... Do you like my milk? It's all yours...",
"Mmmm, " + setup.npc.mcName($tmpGirl) + "... Your mouth feels so perfect. Have a taste...",
"Careful, " + setup.npc.mcName($tmpGirl) + ", they're full, I might give you a squirt...",
"*whimpering* They're so sensitive and full, " + setup.npc.mcName($tmpGirl) + "... I love when you suck on them..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.pregnancy ?? 0) >= 8 && setup.percentageChance(45)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmh, " + setup.npc.mcName($tmpGirl) + "... They've gotten so sensitive lately, your tongue is incredible right now.",
"Ohh, " + setup.npc.mcName($tmpGirl) + "! Everything's more intense since... since this... don't stop.",
"*sharp intake* " + setup.npc.mcName($tmpGirl, 1) + "... So tender right now, that feels amazing...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You know exactly how to make me feel good, especially now..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmh, " + setup.npc.mcName($tmpGirl) + ", that feels so good...",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "... Right there, keep going...",
"*sighing* " + setup.npc.mcName($tmpGirl, 1) + "... Your tongue does magical things...",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ", I love when you pay attention to them...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! You know exactly what I like..."
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(30)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh.. " + setup.npc.mcName($tmpGirl) + "... Your wife loves doing this for you...",
"Mmm, " + setup.npc.mcName($tmpGirl) + ". My husband deserves this treatment.",
"*kissing up and down* I love you, " + setup.npc.mcName($tmpGirl) + "... Every part of you...",
"Mmmhh, I love how you taste, " + setup.npc.mcName($tmpGirl) + "... Don't rush, I want to enjoy this."
])>>
<</sayNpc>>
<<elseif $tmpGirl.family?.husband && $tmpGirl.family?.husband !== 'mc' && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I shouldn't be doing this... but I can't stop.",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... My husband doesn't know how I get on my knees for you...",
"*kissing up the shaft* You taste different from him, " + setup.npc.mcName($tmpGirl) + "... Better...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... This is the most honest thing I've done all week..."
])>>
<</sayNpc>>
<<elseif typeof $player.companions['guest:' + $guestId] !== 'undefined' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... After a rough run I've thought about doing this for you. So let me.",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... You fight for me out there. I'll do this for you in here.",
"*kissing slowly* Partners don't have to ask twice, " + setup.npc.mcName($tmpGirl) + "...",
"*muffled* Mmmhh... The harder it gets out there, the more I want to do something good when we get back..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'kitchen' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I just love when you're on the menu!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... This is my favorite snack...",
"*grinning* I was hoping for a treat, " + setup.npc.mcName($tmpGirl) + ", but you've given me a feast...",
"Ahh, " + setup.npc.mcName($tmpGirl) + ", the cook always gets to have a taste..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'hospital' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... It's time for your oral treatment...",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... A specimen like this deserves my.. closest attention.",
"*grinning* I'll always open up and say 'Ahh' for you, " + setup.npc.mcName($tmpGirl) + "...",
"*kissing slowly* The Hippocratic oath says do no harm. This is doing you nothing but good..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'maid' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I hope you don't mind me waking you up like this...",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... The cleaning can wait. This needs my immediate attention.",
"*smiling* Mmm, a cock like this makes me love this job, " + setup.npc.mcName($tmpGirl) + "...",
"*licking slowly* The last thing in the bedroom for me to get nice and clean..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'church' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... A form of communion they did not teach in seminary...",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... In this church, we kneel for many purposes. I prefer this one.",
"*muffled* The sacred and the sensual are not so far apart here, " + setup.npc.mcName($tmpGirl) + "... not far at all...",
"*kissing slowly* I offer this with full devotion. Body. Soul. *muffled* Both.",
"Mmm... the flesh is holy text here, " + setup.npc.mcName($tmpGirl) + "... let me read you very carefully...",
"*muffled* Mmmhh... Every act of giving is an act of worship. *slowly* Consider yourself worshipped.",
"*looking up* I have said many prayers on my knees. None as sincere as this one, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'car' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... In the car, with the windows fogging up, love it.",
"Mmm, " + setup.npc.mcName($tmpGirl) + ". Anyone who walks by is going to know exactly what's happening in here.",
"*muffled* Mmm, " + setup.npc.mcName($tmpGirl) + ", maybe we should try this while you're driving...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Buckle up, this is going to be a good ride."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'shower' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... On my knees in the shower for you, the water feels amazing.",
"Mmm, " + setup.npc.mcName($tmpGirl) + ". All warm and wet in here, and so are you...",
"*muffled* The steam, the heat, and you in my mouth, " + setup.npc.mcName($tmpGirl) + "... Perfect.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I love being on my knees for you in the shower like this..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'school' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... On my knees at school... If anybody walked in...",
"Mmm, " + setup.npc.mcName($tmpGirl) + ", are you ready for my oral exam..?",
"*muffled* I'll do anything for extra credit, " + setup.npc.mcName($tmpGirl) + "... Anything...",
"*kissing up and down the shaft* Mmmhh, " + setup.npc.mcName($tmpGirl) + ", this cock deserves an A+..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'mistress' && setup.percentageChance(35)>>
<<if ($tmpGirl.sub ?? 0) < 20>>
<<sayNpc $tmpGirl>>
<<=either([
"*looking up* Your Mistress decides who she kneels for, " + setup.npc.mcName($tmpGirl) + "... *deliberately* ...you should feel honoured.",
"Mmmhh... *pausing* I set the pace... I set the depth... I am still the one in command here, " + setup.npc.mcName($tmpGirl) + ".",
"*controlled* The others kneel for me... I kneel for you because I choose to, " + setup.npc.mcName($tmpGirl) + "... don't confuse that for weakness.",
"Mmm... *looking up with authority* Your Mistress will take her time with this... you wait.",
"*firmly* You don't push my head, you don't rush me... your Mistress decides what she does and when, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.sub ?? 0) <= 50>>
<<sayNpc $tmpGirl>>
<<=either([
"*looking up* I put men in collars, " + setup.npc.mcName($tmpGirl) + "... and here I am on my knees for you. Don't read too much into it.",
"Mmmhh... *pulling back slightly* I take orders from no one in this dungeon... *leaning back in* ...except you.",
"*deliberate, controlled* The others get the whip... you get this, " + setup.npc.mcName($tmpGirl) + "... consider yourself privileged.",
"Mmm... *looking up* Don't mistake this for submission, " + setup.npc.mcName($tmpGirl) + "... *pause* ...all right, maybe just this once.",
"*wrapping her hand around the base* I command this dungeon... and I'll take my time with this..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*looking up* Take what you need, " + setup.npc.mcName($tmpGirl) + "... I am here to please the master of this dungeon... in whatever way he asks.",
"Mmmhh... *quietly* I give this willingly... every bit of authority I carry downstairs means nothing up here with you.",
"*softly* Use me however pleases you, " + setup.npc.mcName($tmpGirl) + "... my hands, my mouth, everything I have is yours.",
"Mmm... *looking up* Tell me what you want... I will give it without hesitation, " + setup.npc.mcName($tmpGirl) + ".",
"*taking him deeper* My power, my pride, my Mistress title... *quietly* ...all of it kneels here for you, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'streets' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh.. " + setup.npc.mcName($tmpGirl) + "... You've got a really nice one, this one I actually don't mind.",
"Mmm, you taste good, " + setup.npc.mcName($tmpGirl) + ". That's a first out here.",
"*kissing the tip* Mmm, " + setup.npc.mcName($tmpGirl) + ", I can enjoy my time with a cock like this...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Let me show you what a million dollar mouth feels like..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'strip_club' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... This is very much against club policy...",
"Mmm, " + setup.npc.mcName($tmpGirl) + ". A cock like this is worth breaking some rules for...",
"*kneeling between your legs* Is this the kind of private dance you were looking for, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The music out there, and your cock in my mouth..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'nightclub' && setup.percentageChance(70)>>
<<sayNpc $tmpGirl>>
<<=either([
"*looking up* " + setup.npc.mcName($tmpGirl) + "... I've never done this in a bathroom before. There's a first time for everything.",
"*muffled* Mmmhh... One dance and somehow I'm on my knees for you... you move fast, " + setup.npc.mcName($tmpGirl) + "...",
"Mmm... *pausing* The crowd has no idea where I disappeared to... *leaning back in* and I love that.",
"*breathless* The bass is going right through the floor, " + setup.npc.mcName($tmpGirl) + "... I can feel it in my knees...",
"*looking up* I barely know you, " + setup.npc.mcName($tmpGirl) + "... but something about tonight made me say yes to all of this..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmm... I pressed my lips to this hole and here you are, " + setup.npc.mcName($tmpGirl) + ", I'd know this cock anywhere...",
"Mmm... All I can see is what's coming through this wall, and what a sight it is...",
"*kissing the tip* Who needs to see your face when you have something this beautiful to look at...",
"*muffled* Mmmhh... I can taste you, " + setup.npc.mcName($tmpGirl) + ", it's definitely you..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*pausing, breathless* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... *softly* ...I've been so wound up in here alone, and the moment you walk in, all I want is to taste you...",
"*looking up* You came to me... *pressing forward as far as she can* ...let me show you how much I wanted you to...",
"Mmmhh... *closing her eyes* ...I'd stay right here for you no matter what... *softly* ...just like this...",
"*breathlessly* I was already aching... and then your hands in my hair... *quietly* ...I want to give you everything I have, " + setup.npc.mcName($tmpGirl) + "...",
"*looking up at you* Everything else in this barn just... *softly* ...disappears when you're here... *exhaling* ...this is what I've been waiting for."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh.. you taste so good, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ". You feel so good in my mouth!",
"Do you like when I do this with my tongue, " + setup.npc.mcName($tmpGirl) + "?",
"*kissing up and down* Mmm, I love your cock, " + setup.npc.mcName($tmpGirl) + ", so much.",
"*muffled* Mmmmf, I wuv how your balls feel in my mouf, " + setup.npc.mcName($tmpGirl) + ".",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ". Do you like it better when I suck on the tip, or roll your balls on my tongue..?",
"*muffled* Am I doing it right, " + setup.npc.mcName($tmpGirl) + "?"
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(30)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Nng, " + setup.npc.mcName($tmpGirl) + "... My husband knows exactly how to use every inch of me...",
"Mmmmhh, I love giving you everything, " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.family?.husband && $tmpGirl.family?.husband !== 'mc' && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Gulck! Nng, " + setup.npc.mcName($tmpGirl) + "... I'm doing things with you my husband doesn't even know exist...",
"Mmmmhh, " + setup.npc.mcName($tmpGirl) + "! He'd never dare, but you go right to the edge..."
])>>
<</sayNpc>>
<<elseif typeof $player.companions['guest:' + $guestId] !== 'undefined' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Nng, " + setup.npc.mcName($tmpGirl) + "... Out in the wastes you push every limit. In here you push mine.",
"Mmmmhh, " + setup.npc.mcName($tmpGirl) + "! You never ask for less than everything out there — good thing I can give it in here too..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Nng, you feeb so goob im my froat, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmmhh, I love taking the whole thing, " + setup.npc.mcName($tmpGirl) + "!",
"Nnghh, yes, pull my hair while you fill my throat, " + setup.npc.mcName($tmpGirl) + "!",
"*unintelligible* Gulck! Mmmphh! Nngh! *gasp!* That's so deep, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(40)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"*sigh* " + setup.npc.mcName($tmpGirl, 1) + "... My husband kisses me like I'm the only thing in the world.",
"Mmmm, " + setup.npc.mcName($tmpGirl) + "... I love you, every time we kiss I'm reminded of that.",
"*moaning softly* " + setup.npc.mcName($tmpGirl, 1) + "... I love belonging to you...",
"Mmmmhh, " + setup.npc.mcName($tmpGirl) + "... I could kiss you forever and never get tired of it.",
"*melting into you* " + setup.npc.mcName($tmpGirl, 1) + "... You make me feel so safe..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.family?.husband && $tmpGirl.family?.husband !== 'mc' && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*whispering* " + setup.npc.mcName($tmpGirl, 1) + "... I shouldn't be kissing you like this...",
"Mmmm, " + setup.npc.mcName($tmpGirl) + "... His kisses never felt like yours do...",
"*melting against you* " + setup.npc.mcName($tmpGirl, 1) + "... Kissing you makes me feel like I belong...",
"*moaning softly* " + setup.npc.mcName($tmpGirl, 1) + "... I feel passion in your lips that I can never find at home...",
"Mmmmhh, " + setup.npc.mcName($tmpGirl) + "... I know it's wrong, but I don't want to stop...",
"*pulling away slightly* ...I'm sorry... *leaning back in* ...no I'm not."
])>>
<</sayNpc>>
<<elseif typeof $player.companions['guest:' + $guestId] !== 'undefined' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*softly* Out there you're the person I trust most. In here... *kissing you again* ...I think that's still true, " + setup.npc.mcName($tmpGirl) + ".",
"Mmmm, " + setup.npc.mcName($tmpGirl) + "... We can never get this close out there. I feel safe with you...",
"*pulling you closer* The wasteland doesn't get everything. Some things are just ours."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'mistress' && setup.percentageChance(35)>>
<<if ($tmpGirl.sub ?? 0) < 20>>
<<sayNpc $tmpGirl>>
<<=either([
"*pulling back slightly* Your Mistress decides when she's kissed, " + setup.npc.mcName($tmpGirl) + "... *leaning back in* ...and right now she decides yes.",
"Mmmhh... *quietly* I allow this... *against your lips* ...don't forget that it is an allowance.",
"*with a small smile* You are the only one in this dungeon who gets this from me, " + setup.npc.mcName($tmpGirl) + "... consider that a title of its own.",
"Ahh... *softly* I command everything down there with this mouth... *quietly* ...and right now I want to do this instead.",
"*gripping your collar lightly* Your Mistress will kiss you now, " + setup.npc.mcName($tmpGirl) + "... *leaning in slowly* ...pay attention."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.sub ?? 0) <= 50>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... *pulling back an inch* I don't do this, " + setup.npc.mcName($tmpGirl) + "... *leaning back in* ...except with you. Don't ask why.",
"*quietly* I give commands with this mouth all day... *against your lips* ...right now I'd rather do this.",
"Ahh... The leather and the whip and the iron fist... *softly* ...and then you walk in and all of that goes quiet.",
"*almost reluctant* You're the only one in this dungeon I'd let this close, " + setup.npc.mcName($tmpGirl) + "... *kissing you again* ...make it count.",
"Mmmhh... *pulling you closer* Nobody downstairs would believe it... *quietly* ...and nobody will know."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... *sighing softly* I am yours, " + setup.npc.mcName($tmpGirl) + "... completely... kiss me as long as you want.",
"*quietly* The iron I carry in that dungeon... *against your lips* ...it dissolves the moment you touch me. I don't mind.",
"Ahh... *leaning into you* Everything I am belongs to you, " + setup.npc.mcName($tmpGirl) + "... my power, my loyalty... this too.",
"*softly* Take your time, " + setup.npc.mcName($tmpGirl) + "... I am not going anywhere... I am exactly where I want to be.",
"Mmmhh... *pulling you closer* My Master... *quietly* ...this is the only command I ever want from you."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'streets' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shivering* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You know you're the only one who gets to kiss me like that..",
"Mmmhh... I love kissing you, " + setup.npc.mcName($tmpGirl) + "... It makes me forget I'm working...",
"*giggling* Careful, " + setup.npc.mcName($tmpGirl) + ", someone might think we're a couple..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'strip_club' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shivering* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You know you're the only one who gets to kiss me like that..",
"Mmmhh... I love kissing you, " + setup.npc.mcName($tmpGirl) + "... It makes me forget I'm working...",
"*giggling* Careful, " + setup.npc.mcName($tmpGirl) + ", someone might think we're a couple..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'nightclub' && setup.percentageChance(70)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... *pulling back slightly* I came for the music, " + setup.npc.mcName($tmpGirl) + "... and you somehow ended up being the best part.",
"*breathless* You taste like the drink you bought me... I want more, " + setup.npc.mcName($tmpGirl) + "...",
"*leaning back in* The bass, the crowd, and this... *against your lips* everything feels right.",
"Ahh... I found you on the dance floor an hour ago, " + setup.npc.mcName($tmpGirl) + "... *quietly* I'm very glad I did.",
"Mmm... *whispering* This is completely reckless... I'm kissing a stranger in a nightclub bathroom... *smiling* worth it."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... *straining softly toward you* ...I can't pull you closer the way I want to... *against your lips* ...so don't you dare pull away...",
"*breathlessly* You always find me... *pressing into the kiss* ...even here, like this... *softly* ...especially here, like this...",
"Ohh, " + setup.npc.mcName($tmpGirl) + "... *exhaling against you* ...a stolen moment in the middle of all of this... *quietly* ...I needed this more than I realized...",
"*softly* Everything else keeps going... *leaning into you* ...but this... this makes it all feel like something else entirely...",
"Mmmhh... *unable to reach back* ...it's cruel, not being able to hold you... *pressing closer* ...just stay right here, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father === 'mc' || ($tmpGirl.family?.siblings ?? []).includes('mc') || ($tmpGirl.family?.kids ?? []).includes('mc') || $player.family?.mother === $tmpGirl.id || $player.family?.father === $tmpGirl.id || ($player.family?.siblings ?? []).includes($tmpGirl.id)) && setup.percentageChance(45)>>
<<if $tmpGirl.family?.father === 'mc'>>
<<sayNpc $tmpGirl>>
<<=either([
"*softly* Only you kiss me like this, " + setup.npc.mcName($tmpGirl) + "... *against your lips* ...the best goodnight kisses ever...",
"Mmmm... You feel like home, " + setup.npc.mcName($tmpGirl) + "... *pulling you closer* ...the only place I ever want to be...",
"*breathing softly* You shouldn't make me feel like this, daddy... *kissing you again* ...I keep coming back anyway, " + setup.npc.mcName($tmpGirl) + "...",
"There's love in this kiss... *whispering* ...the kind I'm not supposed to have for you... *softly* ...and I always want more of it...",
"*against your lips* My own father... *sigh* ...and nobody else will ever make me feel the way you do, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.siblings ?? []).includes('mc') || ($player.family?.siblings ?? []).includes($tmpGirl.id)>>
<<sayNpc $tmpGirl>>
<<=either([
"*quietly* Nobody knows me the way you do, " + setup.npc.mcName($tmpGirl) + "... *against your lips* ...and nobody kisses me the way you do either...",
"Mmmm... It's still love, " + setup.npc.mcName($tmpGirl) + "... *kissing you slowly* ...just more than it used to be...",
"*softly* We share everything... *whispering* ...and I mean everything, " + setup.npc.mcName($tmpGirl) + "...",
"*breathless* We always come back to this... *kissing you again* ...and I never want to stop...",
"*pulling back slightly* We shouldn't... *leaning back in* ...we always do anyway, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*softly* My son... *against your lips* ...the only one who kisses me like I matter completely...",
"Mmmm... I gave you everything from the start, " + setup.npc.mcName($tmpGirl) + "... *kissing you slowly* ...and I keep finding more to give...",
"*breathing softly* I raised you with so much love, " + setup.npc.mcName($tmpGirl) + "... *against your lips* ...and it turns out some of it lives here...",
"*trembling* My boy, grown into a man who knows exactly how to hold me... *softly* ...I'm not sorry, " + setup.npc.mcName($tmpGirl) + "...",
"*pulling you close* This love was always ours, " + setup.npc.mcName($tmpGirl) + "... *quietly* ...it just found a new shape..."
])>>
<</sayNpc>>
<</if>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmhhh, " + setup.npc.mcName($tmpGirl) + "...",
"I love you, " + setup.npc.mcName($tmpGirl) + ".",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ", so sensual...",
"Mmmh, " + setup.npc.mcName($tmpGirl) + ", your lips set me on fire...",
"Mmmmh, " + setup.npc.mcName($tmpGirl) + ", I love kissing you...",
"*moaning into your lips* Oh, " + setup.npc.mcName($tmpGirl) + "...",
"I love your kisses so much, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>><<if $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm... Just your cock through this hole, what a specimen, I could do this all day...",
"*stroking* I'd know this manhood anywhere, " + setup.npc.mcName($tmpGirl) + ", even through a wall, so hard, so thick...",
"Does that feel good through there, " + setup.npc.mcName($tmpGirl) + "? I wish I could see your face right now...",
"*squeezing gently* The way it twitches when I grip it... beautiful..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Does that feel good, " + setup.npc.mcName($tmpGirl) + "..?",
"*bites her lip* Wow...You're so big, " + setup.npc.mcName($tmpGirl) + ". ",
"Mmmh, so hard, and so thick, " + setup.npc.mcName($tmpGirl) + ", I can't get enough of this cock. ",
"Ooh, he jumped. I think he likes me, " + setup.npc.mcName($tmpGirl) + ". ",
"What do you like better, " + setup.npc.mcName($tmpGirl) + ", when I squeeze the tip, or massage the balls..?",
"Do you like it fast, " + setup.npc.mcName($tmpGirl) + ", or nice and slow..?",
"This cock is special, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.virgin ?? false) && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"Oooh, " + setup.npc.mcName($tmpGirl) + ", I love how good you can make me feel, while still saving myself...",
"Do you like my flower, " + setup.npc.mcName($tmpGirl) + "? I keep it pure for you...",
"That feels so good, " + setup.npc.mcName($tmpGirl) + "... Who needs a dick?",
"Mmmmh, " + setup.npc.mcName($tmpGirl) + ".. You make me feel so pure and special..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'kitchen' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I just love being on the menu!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Show me how much you like my cooking...",
"*gasping* I know you wanted a snack, " + setup.npc.mcName($tmpGirl) + ", but I had no idea...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Taste me, devour me!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... *gasping* ...I'm already trembling and now your mouth is right there... *gripping the frame* ...ohh... don't stop...",
"Ohh, " + setup.npc.mcName($tmpGirl, 1) + " I can't move toward you, I can't pull you in... *shaking* ...please just don't stop...",
"*breathless* Already aching, and now your tongue right there and... *gasping* ...I'm going to lose my mind in here...",
"Mmmhh... *quietly* ...the whole long afternoon... and then you come in and do that... *shaking* ...everything else just disappears...",
"Ahh... *gripping the frame above her* ...I can only take what you give me... *barely a whisper* ...and what you're giving me is perfect, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Are you enjoying my peach, " + setup.npc.mcName($tmpGirl) + "?",
setup.npc.mcName($tmpGirl, 1) + ", your tongue gives me the tingles....",
"Ahh! Ahh! Right there, " + setup.npc.mcName($tmpGirl) + "...",
"Ooh, yes, " + setup.npc.mcName($tmpGirl) + ", your tongue feels amazing on my clit!",
"Mmmmh, just like that, " + setup.npc.mcName($tmpGirl) + ". You have the best tongue...",
"Ahh, yes, " + setup.npc.mcName($tmpGirl) + ", wiggle your tongue like that.",
"Do I taste good, " + setup.npc.mcName($tmpGirl) + "?"
])>>
<</sayNpc>>
<</if>><<if setup.percentageChance(50)>>
<<include 'Reactions - bj'>>
<<else>>
<<include 'Reactions - pussy_lick'>>
<</if>><<include 'Reactions - _fisting'>><<include 'Reactions - _fisting'>><<sayNpc $tmpGirl>>
<<=either([
"Nnngh! I can't believe you fit the whole thing, " + setup.npc.mcName($tmpGirl) + "!",
setup.npc.mcName($tmpGirl, 1) + ", that's a really tight fit....",
"Ahh! Ahh! So full, " + setup.npc.mcName($tmpGirl) + "...",
"Now I feel like a puppet, " + setup.npc.mcName($tmpGirl) + ".."
])>>
<</sayNpc>><<if ($tmpGirl.traits ?? []).includes('sadistic') && setup.percentageChance(60)>>
<<sayNpc $tmpGirl>>
<<=either([
"Yeah, take it, " + setup.npc.mcName($tmpGirl) + ". Take it like a bitch!",
"*Spank* Your ass is mine, " + setup.npc.mcName($tmpGirl) + "...",
"*thrusting* You like it rough, " + setup.npc.mcName($tmpGirl) + "? I'll make you beg...",
"Mmm, tight! Just the way I like it, " + setup.npc.mcName($tmpGirl) + "."
])>>
<</sayNpc>>
<<elseif !$tmpGirl.gender>>
<<sayNpc $tmpGirl>>
<<=either([
"Do you like getting pegged, " + setup.npc.mcName($tmpGirl) + "?",
"Mmm, you make me wish I had a real one, " + setup.npc.mcName($tmpGirl) + "...",
"You like switching things up, " + setup.npc.mcName($tmpGirl) + "?"
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, you've got the best ass, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhh, your ass feels so good on my cock, " + setup.npc.mcName($tmpGirl) + "!",
"Nngh, yes! Squeeze my cock with your ass, " + setup.npc.mcName($tmpGirl) + "...",
"Do you like how my cock feels inside you, " + setup.npc.mcName($tmpGirl) + "?",
"Ahh, yes, " + setup.npc.mcName($tmpGirl) + ". I love this ass!",
"Mmm, ahhh, so warm, so tight, " + setup.npc.mcName($tmpGirl) + ".. I love how you feel inside..",
"Mmmm... take it deeper, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.traits ?? []).includes('sadistic') && setup.percentageChance(60)>>
<<sayNpc $tmpGirl>>
<<=either([
"Yeah, suck it, " + setup.npc.mcName($tmpGirl) + ". Suck it like a bitch!",
"Enough talking, " + setup.npc.mcName($tmpGirl) + ". Use that mouth for what it's good for!",
"Mmm, take it, " + setup.npc.mcName($tmpGirl) + "! Take it all the way down your throat...",
"Mmmm, you look so good down on your knees, " + setup.npc.mcName($tmpGirl) + ".."
])>>
<</sayNpc>>
<<elseif !$tmpGirl.gender>>
<<sayNpc $tmpGirl>>
<<=either([
"Get that toy nice and wet, " + setup.npc.mcName($tmpGirl) + "!",
"Damn, this makes me wish I had a real one, " + setup.npc.mcName($tmpGirl) + "...",
"You like that hard rubber in your mouth, " + setup.npc.mcName($tmpGirl) + "?"
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Damn, you've got the best mouth skills, " + setup.npc.mcName($tmpGirl) + "!",
"Yes, your lips feel so good on my cock, " + setup.npc.mcName($tmpGirl) + "!",
"Mmm, yes! Tease my cock with your tongue, " + setup.npc.mcName($tmpGirl) + "...",
"Do you like how my cock tastes, " + setup.npc.mcName($tmpGirl) + "?",
"Ahh, yes. Right there on the tip, " + setup.npc.mcName($tmpGirl) + "... and now suck my balls...",
"Mmm, " + setup.npc.mcName($tmpGirl) + ", does it feel good in your mouth?",
"Mmmm... show me how deep you can take it, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>><<include 'Reactions - _ass_play'>><<include 'Reactions - _ass_play'>><<if $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*wiggle* I can feel your hand reaching through to me, or is it me pushing back to you, either way...",
"Mmm... Reaching through the wall for me like that, " + setup.npc.mcName($tmpGirl) + ", I like where this is going...",
"*gasping* From the other side of this wall, right there, yes..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'massage' && setup.percentageChance(45)>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I didn't think you were going to massage me there..",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You're making me squirm on the table...",
"*gasping* This feels like an advanced technique, " + setup.npc.mcName($tmpGirl) + "... And I love it."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Oh this feels naughty, " + setup.npc.mcName($tmpGirl) + ", but I like it...",
"Oooh, " + setup.npc.mcName($tmpGirl) + ", getting playful back there.",
"Mmmm, I like when you play with my ass, " + setup.npc.mcName($tmpGirl) + ".",
"*ass wiggle* You like how that feels, " + setup.npc.mcName($tmpGirl) + "? Are you looking for more..?"
])>>
<</sayNpc>>
<</if>><<include 'Reactions - _cum_on_body'>><<include 'Reactions - _cum_on_body'>><<include 'Reactions - _cum_on_body'>><<if $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* You shot right through the hole, all over me, I leaned in just for that...",
"Mmmhh... Warm and all over me, " + setup.npc.mcName($tmpGirl) + ", I pressed up against this wall just for a moment like this...",
"*wiping* I had to get close to this hole to get that, and it was absolutely worth it, " + setup.npc.mcName($tmpGirl) + "...",
"*giggles* The things I do pressed up against a wall for you, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'church' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* Warm... all over me... *softly* I receive this anointing with gratitude, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh... *exhaling* Like a baptism. I am marked. I am blessed, " + setup.npc.mcName($tmpGirl) + ".",
"*looking down at herself* You have consecrated me. *quietly* I feel it. Every drop a benediction.",
"Ahh... warm and covering me... our rites speak of being washed by what is given freely... *softly* I understand that now.",
"*holding still* Don't wipe it away yet, " + setup.npc.mcName($tmpGirl) + "... let me wear this blessing a little longer..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*looking down, breathless* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... *softly* ...warm all over me and I can't wipe it away, I can't even move... *quietly* ...I don't want to...",
"Ahh... *shaking slightly* ...still held here, still aching, and now this too... *exhaling* ...you make me feel so completely undone...",
"*softly* I'll wear this for the rest of my time here... *looking up at you* ...and think of nothing but this moment, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh... *trembling, unable to move* ...warm everywhere... *quietly* ...I want you to know I loved every second of it.",
"*exhaling slowly* The barn goes on and I'm just... *softly* ...glowing... *quietly* ...thank you for coming to me here, " + setup.npc.mcName($tmpGirl) + ".",
"*looking down with a soft laugh* The barn makes its cream every day... *touching herself lightly* ...and here's a batch I didn't expect... *quietly* ...this one's mine to keep.",
"*amused, breathless* All day I give what my body makes... *exhaling* ...I love it when you give something back... *softly* ...I like this kind of trade.",
"*quietly* I'm usually producing the milk... *looking down, warmly* ...and now I've got yours all over me... *softly* ...I'm not complaining at all.",
"*softly* The finest cream this barn has seen all day... *exhaling* ...and I get to wear it... *quietly* ...leave it a while, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Do I look pretty, " + setup.npc.mcName($tmpGirl) + "?",
"Mmmmhh, it feels so nice and warm, " + setup.npc.mcName($tmpGirl) + "...",
"Yes, " + setup.npc.mcName($tmpGirl) + ", paint me with your cum...",
"Ooh, " + setup.npc.mcName($tmpGirl) + ", that feels so nice on my skin...",
"Ohh, so much cum, " + setup.npc.mcName($tmpGirl) + ", you're such a stud.",
"I think I'll need another shower after this, " + setup.npc.mcName($tmpGirl) + ".",
"*giggles* It's all over me, " + setup.npc.mcName($tmpGirl) + ". I guess you had a good time.",
"I think you got some in my hair, " + setup.npc.mcName($tmpGirl) + ".",
"Mmm, I hear this is very good for the skin, " + setup.npc.mcName($tmpGirl) + ".",
"You've marked me " + setup.npc.mcName($tmpGirl) + "... I'm all yours..."
])>>
<</sayNpc>>
<</if>><<include 'Reactions - _cum_oral'>><<include 'Reactions - _cum_oral'>><<include 'Reactions - _cum_oral'>><<if $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*swallowing* Mmm... I pressed my lips right to that hole, and you filled my mouth perfectly, " + setup.npc.mcName($tmpGirl) + "...",
"Nghk, mmmf... *gulp*... I can't see you but I can taste you, and you taste incredible...",
"*licking lips* Not a drop wasted, I made sure of that, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh... All of it, right through the hole, right into my mouth, perfect..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'kitchen' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*swallowing* Mmmm, " + setup.npc.mcName($tmpGirl) + "! Only the best cream for this chef...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Nice of you to give the cook a treat...",
"Mmmm, so nice, " + setup.npc.mcName($tmpGirl) + "... You've been eating those berries I gave you...",
"*licking the tip clean* Ahh, " + setup.npc.mcName($tmpGirl) + ", a good cook always cleans up after a meal..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'church' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*swallowing slowly* Mmmhh... Our sacrament is wine. Yours is better, " + setup.npc.mcName($tmpGirl) + ".",
"Nghk, mmmf... *gulp*... *quietly* This is my communion. I receive it with a full and willing heart.",
"*licking lips* Every drop received, " + setup.npc.mcName($tmpGirl) + "... just as we are taught — waste nothing that is given in grace.",
"Mmmhh... *exhaling* The cup is offered and the cup is drunk. *softly* Amen.",
"*looking up* I have taken the sacrament many times, " + setup.npc.mcName($tmpGirl) + "... this vintage is my favorite by far."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*swallowing, eyes closing* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... *softly* ...warm and slow... *exhaling* ...I'd stay here all afternoon for that.",
"*looking up at you* Ahh... *quietly* ...still aching, still here... and then you gave me that... *licking her lips* ...it was worth everything.",
"Mmmhh... *savoring it* ...still so sensitive... and now this warmth... *softly* ...yours is sweeter than anything else in here, " + setup.npc.mcName($tmpGirl) + ".",
"*exhaling slowly* Still here, still aching, and now that warmth... *looking up* ...I feel so satisfied, " + setup.npc.mcName($tmpGirl) + ".",
"*licking her lips, quietly* Mmmhh... *softly* ...stay a little longer... even just like this... *exhaling* ...I don't want you to go yet.",
"*licking her lips slowly* We make milk in here all day... *softly amused* ...but yours is the only batch worth tasting, " + setup.npc.mcName($tmpGirl) + ".",
"*swallowing with a quiet laugh* I'm something of an expert in milk quality... *exhaling* ...and I can tell you, yours is exceptional.",
"*softly* The settlement gets everything I make in here... *licking her lips* ...but this batch... *quietly* ...this one I took for myself.",
"*breathing slowly* The finest thing this barn has produced all day... *looking up* ...and it came from you... *smiling softly* ...no wonder you're the master..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmm.. you taste so good, " + setup.npc.mcName($tmpGirl) + "!",
"Do you want me to swallow, " + setup.npc.mcName($tmpGirl) + "?",
"Nghk, mmmf.. *gulp* Yummy...",
"Mmmm.. yes, " + setup.npc.mcName($tmpGirl) + ", fill my mouth...",
"Mmmmh, " + setup.npc.mcName($tmpGirl) + ", let me lick you clean...",
"*opens mouth* Look, " + setup.npc.mcName($tmpGirl) + ". Now you see it. *swallows* Now you don't!",
"*licking* Mmmm, " + setup.npc.mcName($tmpGirl) + ", I don't want to miss any...",
"Yumm, " + setup.npc.mcName($tmpGirl) + ", I love tasting your cum...",
"*swallows and giggles* Mmmm, no babies this time, " + setup.npc.mcName($tmpGirl) + ".",
"Mmmm " + setup.npc.mcName($tmpGirl) + ", I love your cum..."
])>>
<</sayNpc>>
<</if>><<if $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* Through the wall, deep inside me... I can feel you throbbing, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh... You filled my ass perfectly through this hole, " + setup.npc.mcName($tmpGirl) + ", I can feel every drop...",
"*trembling* The wall between us doesn't stop me from feeling every pulse, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasps* You came so deep inside me, " + setup.npc.mcName($tmpGirl) + "!",
"Mmmmhh, it feels so warm inside my ass " + setup.npc.mcName($tmpGirl) + "...",
"Ahh, I feel your cock throbbing inside me, " + setup.npc.mcName($tmpGirl) + "...",
"Oooh, I feel you cumming so hard in my ass, " + setup.npc.mcName($tmpGirl) + "!",
"Ahh, yes, " + setup.npc.mcName($tmpGirl) + ", your cum feels so good filling my ass.",
"Oh! Mmmm, " + setup.npc.mcName($tmpGirl) + ", so much cum, so deep in belly...",
"Ahh, Ooh! Cumming so hard, " + setup.npc.mcName($tmpGirl) + ". Somebody really likes my ass.",
"Mmmmh, " + setup.npc.mcName($tmpGirl) + ", I love the feeling of your cum in my ass...",
"Mmm, " + setup.npc.mcName($tmpGirl) + ", I love feeling your cock throb against my ring.",
"Oh " + setup.npc.mcName($tmpGirl) + ", I feel it throbbing inside me..."
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.virgin ?? false) && setup.percentageChance(60)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I love how close we get like this... just not all the way...",
"*catching her breath* Oh... " + setup.npc.mcName($tmpGirl) + "... You feel so good against me, right there...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... So close... *exhaling* ...I like that we stop here...",
"Mmmm, " + setup.npc.mcName($tmpGirl) + "... You're so hard against me... this feels amazing without... you know.",
"*whispering* You could just... *gasping* ...no, like this is perfect, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(30)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I love when you tease me like this... my husband knows exactly what he's doing.",
"*sighing* You're so hard against my pussy, " + setup.npc.mcName($tmpGirl) + "... Just slide in, you know I want you to...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... My husband torturing me with his cock... I love it...",
"*grinding back* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You're going to make me beg, aren't you..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.husband && $tmpGirl.family?.husband !== 'mc') && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* He never teases me like this, " + setup.npc.mcName($tmpGirl) + "... You're already making me wetter than he ever does...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Rubbing against me like that... *quietly* ...this is already better than anything he does...",
"*biting her lip* I shouldn't want to pull you inside... *exhaling* ...but I do, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.pregnancy ?? 0) >= 8 && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I love this right now... gentle and close...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... You feel so warm against me... this is perfect for how I am right now.",
"*softly* Yes, " + setup.npc.mcName($tmpGirl) + "... Just like that... your body against mine..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I can feel how hard you are against my pussy... it's driving me crazy.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! You're rubbing right where I want you... please don't stop.",
"*gasping* You're so warm against me, " + setup.npc.mcName($tmpGirl) + "... Just a little further and you'd be inside me...",
"Mmmm, " + setup.npc.mcName($tmpGirl) + "... The way you grind against me... I can feel every inch of you...",
"*hips rolling* Ahh, " + setup.npc.mcName($tmpGirl) + "... Don't tease me like this... *exhaling* ...actually, don't stop...",
"*whimpering* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You feel so good right there... I'm so wet already...",
"*gripping you* Ahh, " + setup.npc.mcName($tmpGirl) + "... You're right there... right against me... you're making me shake...",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "... *rolling her hips* ...this is torture... the best kind of torture..."
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.virgin ?? false) && setup.percentageChance(60)>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling slowly* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Warm on my stomach... I like that you kept your promise.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... *looking down* I can feel how much you wanted to go further...",
"*softly* Mmmm, " + setup.npc.mcName($tmpGirl) + "... That's so warm... thank you for stopping here.",
"*catching her breath* Ohh, " + setup.npc.mcName($tmpGirl) + "... You're so hot against me... *quietly* ...this was enough."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(35)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... All that teasing and then this... you drive me crazy.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! *looking down* Look what you did to me, my husband...",
"*sighing happily* Mmmm, " + setup.npc.mcName($tmpGirl) + "... So warm on my skin... I love every bit of you."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... So warm... *looking down* You were right there and you still pulled back...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! *exhaling* I felt every second of that... the heat of you against me, and then this...",
"*shivering* Ohhh, " + setup.npc.mcName($tmpGirl) + "... Your cum on my stomach... *quietly* ...you had me so close already.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... *running a finger through it* ...so much... all that just from grinding against me?",
"*catching her breath* Ahh, " + setup.npc.mcName($tmpGirl) + "... Warm on my skin... I love when you lose control like that.",
"*softly* Mmmm, " + setup.npc.mcName($tmpGirl) + "... I can feel the heat of it... *exhaling* ...you were right at my entrance the whole time..."
])>>
<</sayNpc>>
<</if>><<sayNpc $tmpGirl>>
<<=either([
"That feels so good, " + setup.npc.mcName($tmpGirl) + "!",
"Don't stop, " + setup.npc.mcName($tmpGirl) + ". Just like that!",
"Oh yes, " + setup.npc.mcName($tmpGirl) + "! More...",
"Yes, right there, " + setup.npc.mcName($tmpGirl) + ". I love that...",
"Mmmh, " + setup.npc.mcName($tmpGirl) + ", that feels so good.",
"Yes! Ahh! Keep going, " + setup.npc.mcName($tmpGirl) + "!",
"Oh I like that, " + setup.npc.mcName($tmpGirl) + ".",
"*panting* Ohhh, " + setup.npc.mcName($tmpGirl) + "...",
"*moaning* Mmmm, " + setup.npc.mcName($tmpGirl) + ", don't ever stop...",
"Mmmmhh... " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>><<if $characters?.dom?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"*shuddering* FREE — I'm cumming completely free and it's everything, " + setup.npc.mcName($tmpGirl) + "...",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "! It's mine. This is MINE to have — YES!",
"*crying out* Nobody owns this anymore. This is just me — just us — I'm CUMMING!",
"*gasping* He can't reach me here. Not ever again. YES, " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* I chose this. I'm cumming because I chose this, " + setup.npc.mcName($tmpGirl) + "...",
"Ohhh... " + setup.npc.mcName($tmpGirl) + "... You make me forget he ever existed. For just a moment. YES.",
"*crying out* I chose you. I'm choosing this. YES — " + setup.npc.mcName($tmpGirl) + "!",
"*shaking* This belongs to me. Right now it is mine and I am CUMMING!"
])>>
<</sayNpc>>
<</if>><<if $characters?.dom?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"*whispering* I get to have this now. I actually get to have this... don't stop, " + setup.npc.mcName($tmpGirl) + "...",
"*tensing* Mine. This feeling is mine. I'm so close — don't stop...",
"*quietly* Free, and close, and yours. Don't stop, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* For once I'm not thinking about him. Just you. Just this. Don't stop, " + setup.npc.mcName($tmpGirl) + "...",
"I know what I want. That's still new. Keep going...",
"*quietly* I'm choosing this. Choosing you. Right now. Don't stop, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>><<if $characters?.dom?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling slowly* He can't reach me here anymore. This is just mine. And yours.",
"Fill me up, " + setup.npc.mcName($tmpGirl) + ". I'm not afraid of that anymore.",
"*quietly* I'm here because I want to be. You have no idea how rare that is.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... You feel chosen. Not claimed. There's a difference."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*quietly* You don't know how rare this is. Feeling like I'm here because I want to be.",
setup.npc.mcName($tmpGirl) + "... I used to think about who held power in moments like this. Right now I'm just here.",
"He takes. You give. *tensing* I notice the difference.",
"You feel... chosen. Not claimed. There's a difference, " + setup.npc.mcName($tmpGirl) + "."
])>>
<</sayNpc>>
<</if>><<sayNpc $tmpGirl>>
<<=either([
"If I say stop, you stop. You always stop. That still matters to me, " + setup.npc.mcName($tmpGirl) + ".",
"I'll tell you if it's too much. *small pause* It's not too much.",
"*exhaling slowly* I'm letting you in. That means something.",
"*tensing* Different hands. I know whose these are. Keep going."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmh... I decide what I do with my mouth now. Currently this.",
"I want to make you feel good, " + setup.npc.mcName($tmpGirl) + ". That's different from having to.",
"I do this because I want to. Does it feel different when you know that?",
"*kissing up slowly* I'm choosing every part of this. Remember that."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*sighing* You give without asking. That used to seem suspicious...",
"Mmmmh, " + setup.npc.mcName($tmpGirl) + "... I'm just going to stop overthinking and feel this.",
"*whispering* This is mine. You're giving this to me. Okay. Yes.",
"*exhaling slowly* Something this good with no conditions attached... still new."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmh... Equal footing. I've always preferred it this way.",
"We're taking care of each other. *pause* I find that unusually comforting.",
"*muffled* You give. I give. No one owes the other. This is how it should work."
])>>
<</sayNpc>><<if $characters?.dom?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"Fill me up. I'm not afraid of that anymore.",
"*inhaling slowly* Warm... " + setup.npc.mcName($tmpGirl) + "... *quietly* Mine.",
"That wasn't his. That was mine. Mine and yours.",
"*quietly* I give this to you freely. Remember what that means."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*inhaling slowly* Inside me. You're choosing to be inside me. I'm choosing to let you.",
"Warm... " + setup.npc.mcName($tmpGirl) + "... *quietly* Mine.",
"*exhaling* That wasn't his. That has never been his.",
"*quietly* I give this to you. Freely. That's still new for me."
])>>
<</sayNpc>>
<</if>><<if $characters?.dom?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"*softly* I've rebuilt so much since then. This is the part I didn't expect to rebuild too.",
"*kissing back slowly* I used to think tenderness was a trick. I'm revising that view.",
"*pulling you close* I'm not counting exits anymore. That's because of you, " + setup.npc.mcName($tmpGirl) + "."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmh... I forget sometimes that a kiss can just be a kiss...",
"You don't take from me when you kiss me. I'm still learning what to do with that.",
"*pulling back slightly* ...I used to count the exits during a kiss. I'm not doing that right now.",
setup.npc.mcName($tmpGirl) + "... *quietly* just don't stop."
])>>
<</sayNpc>>
<</if>><<if $characters?.rodger?.quests?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"*freely* Ohhh, " + setup.npc.mcName($tmpGirl) + "! No shame. No guilt. Just THIS. YES!",
"*crying out* I'm cumming and there is nothing wrong with this. Nothing wrong with this.",
"Ohhh... *shaking* I'm allowed to have this. I'm CUMMING and I'm ALLOWED.",
"*gasping* No confession needed. Just you. Just THIS. " + setup.npc.mcName($tmpGirl) + " — YES!"
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*crying out softly* " + setup.npc.mcName($tmpGirl) + "... There was a word I wasn't allowed to say. This feeling is that word.",
"*gasping* I'll make sense of this later. Right now I'm cumming and it's — *yes* —",
"Ohhh... *shaking* I'm cumming and I don't know what I believe anymore and I don't care — YES!",
"*quietly gasping* " + setup.npc.mcName($tmpGirl) + "... I prayed for less feeling. Right now I'm grateful it didn't work..."
])>>
<</sayNpc>>
<</if>><<if $characters?.rodger?.quests?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"*quietly focused* No confession needed. Just you. Just this. Almost there, " + setup.npc.mcName($tmpGirl) + "...",
"*tensing* I'm allowed to have this. Don't stop. I'm letting myself have this.",
"*whispering* I don't need to push this away anymore. Don't stop..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* I used to push this feeling away. Not today. Not with you, " + setup.npc.mcName($tmpGirl) + "...",
"*quietly focused* Don't stop. I'm letting myself have this. Don't stop.",
"I'll confess to someone else later. Right now — " + setup.npc.mcName($tmpGirl) + " — please don't stop..."
])>>
<</sayNpc>>
<</if>><<if $characters?.rodger?.quests?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"I don't need forgiveness for this. I'm just... feeling it, " + setup.npc.mcName($tmpGirl) + ".",
"*exhaling* The body was never the problem. I know that now.",
"I'm not afraid of this. *softly* Not of you. Not of this.",
setup.npc.mcName($tmpGirl) + "... You feel like something I prayed for before I knew what I was praying for..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*slowly* Every time, I choose this. Deliberately. That matters to me.",
"*whispering* This is the thing I wasn't supposed to want. I want it anyway.",
setup.npc.mcName($tmpGirl) + "... you feel like something I prayed for before I knew what I was praying for...",
"*exhaling* The body was never the problem. I'm starting to understand that."
])>>
<</sayNpc>>
<</if>><<sayNpc $tmpGirl>>
<<=either([
"*quietly* I know what I'm consenting to. That's important to me. Keep going.",
setup.npc.mcName($tmpGirl) + "... I'm learning there are many things I was told were forbidden that simply... aren't.",
"*whispering* I'm choosing this. You're not taking it. I keep needing that to be true.",
"*exhaling slowly* This too. Yes. This too."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmm... I used to not understand why anyone would want this. Now I think I understand.",
"I want to. That's enough reason. *kissing the tip* More than enough.",
"*softly* Let me give you this, " + setup.npc.mcName($tmpGirl) + ". Let me.",
"*muffled* Mmmhh... I spent years ignoring what my body wanted. Right now I am listening."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*sighing slowly* I used to think receiving was selfish. Keep going. I'm revising that.",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... right there... I'm not pushing this away this time...",
"*softly* Yes. Just like that. I'm not going anywhere.",
"*exhaling* You're very patient with me. *quietly* Don't stop."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmhh... Mutual. Yes. This I understand.",
"We're taking care of each other. That's allowed. That's more than allowed.",
"*muffled* Two people giving freely. *pause* I think this is what it's supposed to feel like."
])>>
<</sayNpc>><<if $characters?.rodger?.quests?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling slowly* Inside me, " + setup.npc.mcName($tmpGirl) + "... warm and... yes. I'm allowed this.",
"I get to feel this without guilt. " + setup.npc.mcName($tmpGirl) + "... fill me. I want this.",
"*quietly* I'm not afraid of this. Not of you. Not of this. Fill me.",
"*whispering* This is mine to receive. Freely. Yes."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling slowly* Inside me, " + setup.npc.mcName($tmpGirl) + "... warm and... yes. That's allowed.",
"*whispering* He would say this is the end of innocence. I think it might be the beginning.",
"*quietly* I'm not afraid of this. Not of you. Not of this.",
"Fill me, " + setup.npc.mcName($tmpGirl) + "... I want this. Deliberately."
])>>
<</sayNpc>>
<</if>><<if $characters?.rodger?.quests?.dead>>
<<sayNpc $tmpGirl>>
<<=either([
"*slowly* When I kiss you I'm not betraying anything. That's still strange to realize.",
"*pulling you close* I'm allowed to have this. *kissing you again* I keep having to remind myself.",
setup.npc.mcName($tmpGirl) + "... *softly* I spent years praying for less feeling. Right now I'm grateful it didn't work."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*soft exhale* I spent years treating my lips like something sacred to be protected. Then I met you.",
"Mmmm, " + setup.npc.mcName($tmpGirl) + "... I used to pray for less feeling. Right now I'm grateful for this.",
"*pulling back slightly* ...I used to believe this was wrong. I'm not sure I believe that anymore.",
"*whispering* He would say this is sin. And yet... *kissing you again*"
])>>
<</sayNpc>>
<</if>><<sayNpc $tmpGirl>>
<<=either([
"*sharp exhale* " + setup.npc.mcName($tmpGirl) + " — YES — I didn't know it could still feel like this—",
"*shaking* Ahh... I'm cumming... I forgot what that felt like.",
"*quietly intense* Yes. Yes. *YES.* Okay. Yes.",
"*gasping* " + setup.npc.mcName($tmpGirl) + "— I'm— ahh— YES—"
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*steady breathing* Close. Don't stop, " + setup.npc.mcName($tmpGirl) + ". I trust you. Don't stop.",
"I'm letting myself feel this. That's harder than it sounds. Don't stop.",
"*gripping you* Stay right there. Yes. Right there.",
"*low exhale* Close. Very close. Don't change anything."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*quietly* I'm letting you in. That's not nothing, " + setup.npc.mcName($tmpGirl) + ".",
"Feels good. Really good. *small exhale* Don't stop.",
"I've slept alone for a long time. This is... better.",
"*tensing* " + setup.npc.mcName($tmpGirl) + "... stay. Just — stay."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"If it's too much I'll say so. *quietly* It's not too much.",
"That's — mmph — deeper than I expected. Don't stop.",
"*low exhale* Tell me you've done this before. *pause* Good. Show me.",
"*tensing* Careful. *pause* ...okay. Keep going."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmm... I'm better at this than at talking.",
setup.npc.mcName($tmpGirl) + "... tell me what you like. I pay attention.",
"I want to do this right. *soft kiss* Like that?",
"*muffled* Mmmhh... You taste good. That surprised me."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*exhaling* You're careful. I like careful.",
"Mmmhh... yes... right there... you track well, " + setup.npc.mcName($tmpGirl) + ".",
"*quietly* I don't usually let people this close. You're the exception.",
"*low moan* Stay right there. Don't move."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmm... efficient. I respect efficiency.",
"This works for both of us. *practical exhale* Good.",
"*muffled* Mmmhh... I like this. I really like this."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*catching breath* " + setup.npc.mcName($tmpGirl) + "... warm. I feel you. That's... I wanted to feel that.",
"Inside me. *pause* I'm okay with that. More than okay.",
"Stay a moment. Please. Just — stay.",
"*quietly* That was yours to give. I wanted it."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"Mmm... I don't do this with many people. Probably obvious.",
setup.npc.mcName($tmpGirl) + "... you're patient with me. I notice that.",
"*quietly* I'm not good at... this. But I want to be. With you.",
"Warm. *pause* You're warm."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*crying out* Oh — the sample size on THIS is too small — I need to REPEAT THIS—",
"*shaking* " + setup.npc.mcName($tmpGirl) + " — the data — the data strongly supports — YES—",
"OH. *laughing through it* Well. That's reproducible. Definitely reproducible.",
"*gasping* Every variable is optimal right now and I am CUMMING—"
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*focused* I'm close. Don't you dare introduce a variable now, " + setup.npc.mcName($tmpGirl) + ".",
"The stimulation is — optimal. Maintain current parameters.",
"*gasping despite herself* I didn't schedule this and I don't care. Don't stop.",
"*quietly* I'm close. Very close. Whatever you're doing — don't stop."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"Your presence has a measurable effect on my baseline, " + setup.npc.mcName($tmpGirl) + ". Currently excellent.",
"*slightly breathless* The data suggests I like this. Significantly.",
"I've quantified a lot of sensations. This one still surprises me.",
"*clinical, then not* This is precisely why they call it 'pleasure centers.' ...yes."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"Anatomically sound. And — *pause* — more pleasant than expected.",
"I've read the relevant literature. I'm prepared for this. Proceed.",
"*exhaling* Note to self: revisit experimental parameters. Significantly.",
"More than anticipated. *breathless* Continue."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmm. I approach all problems as puzzles. This one I enjoy solving.",
"Tell me if I'm doing something wrong. I correct for errors.",
"*thoughtfully* Your reaction profile is very helpful feedback, " + setup.npc.mcName($tmpGirl) + ".",
"*muffled* Mmmhh... I'm going to need a larger data set."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*inhaling* Your technique is — empirically — quite good, " + setup.npc.mcName($tmpGirl) + ".",
"Mmmh... I could describe exactly what you're doing wrong. But you're not doing anything wrong.",
"*soft moan* I'm going to study this later. Right now I'm just going to feel it.",
"*losing composure slightly* Keep going. The methodology is sound."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* Simultaneous data collection. Efficient. I approve.",
"Two concurrent experiments. This is the kind of multitasking I support.",
"*muffled* Mmmhh... The interaction effects here are... substantial."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*exhaling* Warm. Pressure. Pulsing. *quietly* Surprisingly good data.",
"I could note this objectively. I choose not to. " + setup.npc.mcName($tmpGirl) + "... stay.",
"*catching breath* Statistically significant. *softly* Also just... nice.",
"*quietly* The experiment concludes satisfactorily. ...run it again."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"Mmm. Physiologically interesting. Also — please don't stop.",
"The endorphin release from this is technically not negligible, " + setup.npc.mcName($tmpGirl) + ".",
"*slightly surprised* I didn't build this into my schedule today. Apparently I should have.",
"Kiss me again. I'm taking notes. Metaphorically. *kissing you back harder*"
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*powerful cry* " + setup.npc.mcName($tmpGirl) + " — HARDER — yes — *YES—*",
"*shaking* The storm breaks. *laughing breathlessly* It always breaks.",
"*gasping* I have tracked every predator in these woods. Nothing hunts like this.",
"*crying out* YES — take it — ALL of it — " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*steady, tightening* Close. Don't retreat now, " + setup.npc.mcName($tmpGirl) + ". Hold your ground.",
"*low growl* The earth does not apologize for the storm. Neither do I. Keep going.",
"*gripping you harder* Stay. With me. Don't stop.",
"*controlled* I am close. Do not stop."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*low sound* You fill me like you belong there.",
"Strength knows strength. *gripping you* I know yours, " + setup.npc.mcName($tmpGirl) + ".",
setup.npc.mcName($tmpGirl) + "... yes. This. This is right.",
"*breathing ragged but controlled* My body says yes. My body is rarely wrong."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"I have survived harder things. *pause* That is not a complaint.",
"*controlled* Deeper. I can take it. Take what's yours.",
"My body holds its ground. So do I. Keep going, " + setup.npc.mcName($tmpGirl) + ".",
"*low exhale* More. I can take more."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mmmh... I track what feeds me. This feeds something.",
"*looking up* My tribe knows I kneel for no one. You are the exception, " + setup.npc.mcName($tmpGirl) + ".",
"I offer this freely. Do not waste it.",
"*muffled* Mmmhh... Give me more. All of it."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*inhaling slowly* You find every trail. Good tracker.",
"*low moan* Mmm... right there... you know the land you're moving through.",
"*quietly intense* Don't stop. I will tell you when to stop. Not yet.",
"*gripping you* There. Stay there. Right there."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*muffled* This is how the pack hunts. Together.",
"Two hunters. One territory. *soft growl* Good.",
"*muffled* Mmmhh... We match well, " + setup.npc.mcName($tmpGirl) + "."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*low, satisfied sound* Yes. Claim this. I give it freely.",
setup.npc.mcName($tmpGirl) + "... warm. *pause* Roots grow deep where rain falls. Let it fall.",
"*quietly* My tribe builds from strength. What you plant here — I will carry well.",
"*exhaling* Inside me. *pause* Good."
])>>
<</sayNpc>><<sayNpc $tmpGirl>>
<<=either([
"*exhaling slowly* You taste like something worth fighting for.",
"Mmmm. " + setup.npc.mcName($tmpGirl) + ". You are... unexpected.",
"*quietly* My people say a kiss is where two spirits meet. I believe it now.",
"*holds your face* Still. I want to remember this."
])>>
<</sayNpc>><<if ($tmpGirl.pregnancy ?? 0) >= 8 && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"YES! I'm cumming, " + setup.npc.mcName($tmpGirl) + "! Oh god, the baby - the baby can feel how good you're making me feel!",
"*shaking* Ahh, " + setup.npc.mcName($tmpGirl) + "! Cumming so hard... I hope that's okay for the little one...",
"Ohhh, " + setup.npc.mcName($tmpGirl) + ", YES! Everything feels twice as intense right now...",
"Hahhh! " + setup.npc.mcName($tmpGirl, 1) + ", my whole body is on fire! Being pregnant makes this so much better...",
"*gasping* Yes, yes, YES, " + setup.npc.mcName($tmpGirl) + "! I'm cumming and I can feel every inch of you..."
])>>
<</sayNpc>>
<<elseif (($tmpGirl.traits ?? []).includes('milker') || ($tmpGirl.pregnancy ?? 0) >= 60) && setup.percentageChance(25)>>
<<sayNpc $tmpGirl>>
<<=either([
"*moaning* " + setup.npc.mcName($tmpGirl, 1) + ", I'm cumming, and I'm... I'm leaking, " + setup.npc.mcName($tmpGirl) + "...",
"Ohhh, YES! " + setup.npc.mcName($tmpGirl, 1) + "! Oh, I'm cumming so hard I'm dripping everywhere...",
"Mmmmhh, " + setup.npc.mcName($tmpGirl) + ", YES! My whole body's letting go, everything's just flowing out of me...",
"*trembling* Ahh, " + setup.npc.mcName($tmpGirl) + "! Cumming and leaking at the same time, I can't help it..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(30)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"YES! " + setup.npc.mcName($tmpGirl, 1) + "! My husband makes me cum better than anyone ever could...",
"*crying out* " + setup.npc.mcName($tmpGirl, 1) + ", I'm yours! Only yours! YES!",
"Ohhh, " + setup.npc.mcName($tmpGirl) + ", I love you so much, I'm cumming, I'm CUMMING!",
"Ahhhh, YES, " + setup.npc.mcName($tmpGirl) + "! This is why I married you...",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "! My husband, my love, YES!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.family?.husband && $tmpGirl.family?.husband !== 'mc' && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* Oh god, " + setup.npc.mcName($tmpGirl) + "! He never makes me cum this hard!",
"YES! YES! " + setup.npc.mcName($tmpGirl, 1) + "! I shouldn't, but I can't stop, I'm cumming!",
"Ahhh, " + setup.npc.mcName($tmpGirl) + "! I'm cumming so hard... I don't even care if it's wrong anymore...",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "! My husband could never, NEVER, do what you do to me!",
"*shuddering* Forget him... forget everything... just YOU, " + setup.npc.mcName($tmpGirl) + "! I'm cumming!"
])>>
<</sayNpc>>
<<elseif typeof $player.companions['guest:' + $guestId] !== 'undefined' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"YES! Oh god, " + setup.npc.mcName($tmpGirl) + "! After everything we've survived out there, YES, we deserve this!",
"*shaking* Yes! Let me feel your power, " + setup.npc.mcName($tmpGirl) + "! Take me to victory!",
"*crying out* Out there I trust you with my life, in here I you make my body sing! YES, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhh, " + setup.npc.mcName($tmpGirl) + "! After everything out in that wasteland, this is what I come back for!",
"*shuddering* Ahhh, YES, " + setup.npc.mcName($tmpGirl) + "! My companion, you know my body like nobody else.."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'kitchen' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*moaning* " + setup.npc.mcName($tmpGirl, 1) + "! AFter this, I'll never be able to cook in here with a straight face again!",
"YES! Right here, " + setup.npc.mcName($tmpGirl) + "! Make me cum right on the kitchen counter!",
"Ahh! Ohhh, I'm cumming, " + setup.npc.mcName($tmpGirl) + "! Gods, you're such a feast of pleasure...",
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! Making me cum in the kitchen like a naughty housewife! YES!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'hospital' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* Mmmmhh, " + setup.npc.mcName($tmpGirl) + ", this is NOT standard medical procedure, I'm CUMMING!",
"YES! Ahh, " + setup.npc.mcName($tmpGirl) + ", I'm cumming! This is the best treatment ever!",
"*shaking* I don't know what you prescribed but it's just what the doctor ordered!",
"Ahhh, " + setup.npc.mcName($tmpGirl) + "! Such a thorough examination... I'm cumming!!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'maid' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* Yes, " + setup.npc.mcName($tmpGirl) + "! Mmmm.. I'm supposed to be making the bed, not making such a mess of it...",
"YES! Ohh, " + setup.npc.mcName($tmpGirl) + "! This feels so much better than tidying up!",
"Haahhh, fuck, YES, " + setup.npc.mcName($tmpGirl) + "! Mmmhh, you can interrupt me at work any time...",
"*crying out* The bedroom was spotless before this, now I don't care, I'm CUMMING, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhh, " + setup.npc.mcName($tmpGirl) + ", I'm cumming so hard! I love working for you!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'church' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*crying out* OH, " + setup.npc.mcName($tmpGirl) + "! THIS is the divine gift — I'm cumming — AMEN!",
"*gasping* The other sisters call this sinful. I call it consecrated. YES, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhhh, " + setup.npc.mcName($tmpGirl) + "! Blessed are those who receive with an open heart — I am RECEIVING — I'm CUMMING!",
"*shaking* My whole body sings right now, " + setup.npc.mcName($tmpGirl) + "... I'm cumming in His house and I have no regrets!",
"YES — oh god — " + setup.npc.mcName($tmpGirl) + " — this is why the flesh is sacred — YES!",
"*whispering* Our scripture says the body is holy... *crying out* I BELIEVE — I'm CUMMING!",
"*shuddering* Every nerve, every pulse — this is prayer, " + setup.npc.mcName($tmpGirl) + " — oh god — YES!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'workout' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*panting* I'm cumming, " + setup.npc.mcName($tmpGirl) + "! You really know how to make me work up a sweat!",
"Ahhh! " + setup.npc.mcName($tmpGirl, 1) + "! The best part of the workout!",
"YES, " + setup.npc.mcName($tmpGirl) + "! My body's already on fire from training, this sends me right over the edge!",
"*crying out* " + setup.npc.mcName($tmpGirl, 1) + "! More of a workout than I bargained for, I'm CUMMING!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'car' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*thrashing* Yes, " + setup.npc.mcName($tmpGirl) + "! Rev my engine!! I'm burning out!!",
"YES! YES, " + setup.npc.mcName($tmpGirl) + "! Right here in the car, I can't believe I'm cumming like this!",
"Ahhh, " + setup.npc.mcName($tmpGirl) + "! Cramped and sweaty and CUMMING, this is insane!",
"*moaning* " + setup.npc.mcName($tmpGirl, 1) + "! If someone walks by right now, I don't even care, I'm cumming!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'forest' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*crying out* " + setup.npc.mcName($tmpGirl, 1) + "! Out here in the open, I'm cumming and I don't care who hears!",
"YES! " + setup.npc.mcName($tmpGirl, 1) + "! The whole forest is going to know what we're doing, I'm CUMMING!",
"Ahhh, Yes, " + setup.npc.mcName($tmpGirl) + "! It feels so good to climax under the sky, in the open air, so raw and natural...",
"*gasping* Anyone could walk by, " + setup.npc.mcName($tmpGirl) + ", but it feels too fucking good, YES!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'shower' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*moaning* " + setup.npc.mcName($tmpGirl, 1) + "! Cumming in the shower, the water, your hands, it's perfect!",
"YES! Ahh, " + setup.npc.mcName($tmpGirl) + "! All wet and cumming, this is the best shower I've ever had!",
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! I'm cumming, the steam, the water, it makes everything feel electric!",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "! You make my legs so weak... don't let me fall.."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'massage' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*moaning* " + setup.npc.mcName($tmpGirl, 1) + "! This is just the happy ending I needed..",
"Ahhh! YES, " + setup.npc.mcName($tmpGirl) + "! Your hands are magic, I'm cumming right here on the table!",
"*gasping* I didn't know a massage could feel this good, " + setup.npc.mcName($tmpGirl, 1) + "! I'm cumming!",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "! From your hands to this, I'm completely falling apart on this table!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'bathhouse' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*moaning* " + setup.npc.mcName($tmpGirl, 1) + "! The sauna heat and this, I'm cumming, my whole body is melting!",
"YES! Ahh, " + setup.npc.mcName($tmpGirl) + ", you give me an even better sweat than the steam!",
"*gasping* The steam, the heat, and you, " + setup.npc.mcName($tmpGirl) + ", I'm cumming so hard!",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "! Everything's so hot and now I'm cumming on top of it, YES!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'school' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*arching* Yes, " + setup.npc.mcName($tmpGirl, 1) + "! Make me cum, right here on the desk!",
"YES! Yes, " + setup.npc.mcName($tmpGirl) + "! I'm cumming right here in the classroom, this is so wrong!",
"Ahhh, I'm cumming, " + setup.npc.mcName($tmpGirl) + "! Gods yes, you get an A+ in anatomy...",
"*moaning* Oh, " + setup.npc.mcName($tmpGirl) + "... You're definitely earning extra credit for this, I'm CUMMING!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'basement' && $tmpGirl.type === 'guest' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*groaning* " + setup.npc.mcName($tmpGirl, 1) + "! Such pain and pleasure! I'm cumming!",
"YES! Being here in the dark with you makes it so intense, " + setup.npc.mcName($tmpGirl) + ", I'm cumming!",
"Ohhh, " + setup.npc.mcName($tmpGirl) + "! The ropes, your power, it feels so good! Yes, YES!",
"*tensing* Nobody can hear me down here, " + setup.npc.mcName($tmpGirl) + "... So I'm going to scream, I'm CUMMING!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'mistress' && setup.percentageChance(35)>>
<<if ($tmpGirl.sub ?? 0) < 20>>
<<sayNpc $tmpGirl>>
<<=either([
"YES! Good... *gasping* ...very good, " + setup.npc.mcName($tmpGirl) + "... you've earned this from your Mistress...",
"*crying out* That's it... you serve your Mistress so well, " + setup.npc.mcName($tmpGirl) + "! YES! I'm CUMMING!",
"*shaking* Even as I cum, I give the orders here... *gasping* ...and I order you not to stop! YES, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhh! My obedient one... feel what you've done to your Mistress... I'm CUMMING, " + setup.npc.mcName($tmpGirl) + "!",
"*clutching you* You please your Mistress so well... *crying out* YES! YES! Don't stop!"
])>>
<</sayNpc>>
<<elseif ($tmpGirl.sub ?? 0) <= 50>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* My whip is right there on the wall and I can't even think about it — you're making me CUM, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhhh, " + setup.npc.mcName($tmpGirl) + "! I spend all day making others lose control... now look at me...",
"*shuddering* The dungeon mistress is CUMMING, " + setup.npc.mcName($tmpGirl) + "... nobody downstairs will ever know this side of me!",
"*gripping you* I don't yield to anyone in this dungeon... *crying out* ...except you, " + setup.npc.mcName($tmpGirl) + "! I'm CUMMING!",
"YES! " + setup.npc.mcName($tmpGirl) + "! I put men on their knees for a living and here you are making me come completely undone!"
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*shuddering* I am yours, " + setup.npc.mcName($tmpGirl) + "... all of the power I hold in this dungeon... it belongs to you... YES!",
"Ahhhh, " + setup.npc.mcName($tmpGirl) + "! You are the true master here... and I cum for you gladly... completely!",
"*trembling* Every chain down there, every prisoner, every role I play... means nothing next to this, " + setup.npc.mcName($tmpGirl) + "... I'm CUMMING!",
"*crying out* Take it, " + setup.npc.mcName($tmpGirl) + "! Take everything — my power, my control, my orgasm — it's all yours!",
"YES, " + setup.npc.mcName($tmpGirl) + "! I submit to you completely... my title, my authority... none of it matters in this moment!"
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'streets' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + ", I'm cumming so hard! You're the best client I've ever had!",
"YES! " + setup.npc.mcName($tmpGirl, 1) + "! This never happens on the job, but you're making me cum!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I'm so used to faking it but this is real, I'm really cumming!",
"*moaning* Oh, " + setup.npc.mcName($tmpGirl, 1) + " that was so good... Please come back tomorrow, I mean it.."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'strip_club' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmm, " + setup.npc.mcName($tmpGirl, 1) + "! I dance for men every night but only you can me cum!",
"YES! " + setup.npc.mcName($tmpGirl, 1) + ", I'm cumming! I've bent the rules before but you make it perfect...",
"Ohhh, " + setup.npc.mcName($tmpGirl) + ", I'm cumming! Mmmmh, you're the best VIP I could ask for...",
"*moaning* " + setup.npc.mcName($tmpGirl, 1) + "... Private show of a lifetime... I'm really cumming for you!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'nightclub' && setup.percentageChance(70)>>
<<sayNpc $tmpGirl>>
<<=either([
"YES! " + setup.npc.mcName($tmpGirl) + "! I didn't even know your name an hour ago and I'm CUMMING in a nightclub bathroom — what a night!",
"*shaking* Oh god, " + setup.npc.mcName($tmpGirl) + "! I can hear the bass through the walls and I'm CUMMING — I can't believe this!",
"Ahhhh, " + setup.npc.mcName($tmpGirl) + "! We snuck in here for ten minutes and now I'm cumming so hard I can barely stand up!",
"*crying out* Everyone out there is dancing and in here I'm cumming for a stranger — yes, " + setup.npc.mcName($tmpGirl) + "! YES!",
"*shuddering* I came here to dance... *gasping* ...this is so much better... I'm cumming, " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shaking* I can feel you throbbing right through this hole, " + setup.npc.mcName($tmpGirl) + ", I'm cumming, I don't even care that I can't see your face!",
"YES! Oh god, YES, all it takes is your perfect cock to make me cum this hard!",
"*gasping* All I have is your cock through this hole, " + setup.npc.mcName($tmpGirl) + ", and it's enough to make me cum so hard...",
"*crying out* I knew it was you the moment I felt it, " + setup.npc.mcName($tmpGirl) + ", and now I'm cumming, oh god!",
"*trembling* I pressed up against this wall and now I'm cumming, just from what's on the other side..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*crying out, shaking against the frame* YES — " + setup.npc.mcName($tmpGirl) + " — I'm CUMMING — I couldn't stop it — I don't want to stop it — YES!",
"Ahh! *pulling against the restraints* YES — everything at once — I'm CUMMING — " + setup.npc.mcName($tmpGirl) + " — please don't stop—!",
"*gasping* YES — oh god — every nerve — held right here — CUMMING — " + setup.npc.mcName($tmpGirl) + " — I'm CUMMING!",
"*shuddering* I've been wound up so long... *crying out* ...and now I'm finally — YES — " + setup.npc.mcName($tmpGirl) + " — YES!",
"*trembling* Ahh... *crying out* YES — right there — I'm CUMMING — don't you dare stop — YES!"
])>>
<</sayNpc>>
<<elseif !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father === 'mc' || ($tmpGirl.family?.siblings ?? []).includes('mc') || ($tmpGirl.family?.kids ?? []).includes('mc')) && setup.percentageChance(45)>>
<<if $tmpGirl.family?.father === 'mc'>>
<<sayNpc $tmpGirl>>
<<=either([
"YES! " + setup.npc.mcName($tmpGirl) + "! I'm cumming for my daddy... I know I shouldn't but I can't stop — I'm CUMMING!",
"*shuddering* Forbidden fruit... *gasping* ...and it makes me CUM so hard, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhh! " + setup.npc.mcName($tmpGirl) + "! The fact that it's you... that's exactly why I'm cumming so hard!",
"*crying out* I was made for you, " + setup.npc.mcName($tmpGirl) + "... *screaming* ...and I'm CUMMING to prove it!",
"*shaking* I know we shouldn't... *gasping* ...but I'm cumming and I can't pretend I care right now, " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.siblings ?? []).includes('mc')>>
<<sayNpc $tmpGirl>>
<<=either([
"YES! " + setup.npc.mcName($tmpGirl) + "! My own brother is making me CUM — and it's the best I've ever had!",
"*shuddering* We're so wrong for this... *gasping* ...and I'm CUMMING so hard, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhh! The best secret we've ever kept, " + setup.npc.mcName($tmpGirl) + "... *crying out* ...I'm CUMMING!",
"*gripping you* You've always known how to push my buttons, " + setup.npc.mcName($tmpGirl) + "... and you're pushing me right over the edge!!",
"*trembling* Forbidden fruit... *screaming* ...mmmhh it feels so good! YES, " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* My own son is making me CUM... *crying out* ...I raised you so well, " + setup.npc.mcName($tmpGirl) + "!",
"*shuddering* I gave you life... *screaming* ...and you give me the best orgasms of my life... YES, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhh! " + setup.npc.mcName($tmpGirl) + "! Every part of me made for you, every part cumming for you — YES!",
"*trembling* The circle of it all... *gasping* ...you came from me and now I'm cumming for you, " + setup.npc.mcName($tmpGirl) + "!",
"*crying out* Forbidden fruit... *shaking* ...I never imagined how sweet it would taste! YES, " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>>
<</if>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"I'm cumming, " + setup.npc.mcName($tmpGirl) + "!",
"YES! YES! YES, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhhh, yesYesYES, " + setup.npc.mcName($tmpGirl) + ", my body is on fire!",
"Mmm, gods yes, " + setup.npc.mcName($tmpGirl) + ", I'm cumming!",
"Oh god! Fuck! Haaahhh!! That was amazing, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmmh, " + setup.npc.mcName($tmpGirl) + ", nobody fucks like you do...",
"Ohh, " + setup.npc.mcName($tmpGirl) + ", I love how you make me feel.",
"*tensing* YES! That's it! That's it, " + setup.npc.mcName($tmpGirl) + "! MMMMmmmhh!!...",
"Ahhh! Oh wow, " + setup.npc.mcName($tmpGirl) + ", I might have trouble walking after this.",
"*shaking* Ahh, mmmmhh, Yes " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.pregnancy ?? 0) >= 8 && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* " + setup.npc.mcName($tmpGirl, 1) + "... Everything feels so much more intense right now, don't stop!",
"Mmmmh, yes, " + setup.npc.mcName($tmpGirl) + "... My body is so sensitive carrying this baby, I'm almost there!",
"Ahh, gods, " + setup.npc.mcName($tmpGirl) + "! I can feel it building, don't stop, please don't stop...",
"*gripping you* " + setup.npc.mcName($tmpGirl, 1) + "... I'm so close, pregnancy makes every touch feel twice as good!"
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.husband === 'mc' && setup.percentageChance(30)) || ($tmpGirl.location === 'wedding' && setup.percentageChance(80))>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* " + setup.npc.mcName($tmpGirl, 1) + "... My husband always knows exactly how to get me there, so close!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Only you do this to me, I'm almost cumming!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I married you for so many reasons, this being one of them, don't stop!",
"*gripping you tightly* " + setup.npc.mcName($tmpGirl, 1) + "... Yes, just like that, your wife is almost there!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.family?.husband && $tmpGirl.family?.husband !== 'mc' && setup.percentageChance(40)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* " + setup.npc.mcName($tmpGirl, 1) + "... He never gets me this close, don't you dare stop!",
"Mmmhh, I know this is wrong, " + setup.npc.mcName($tmpGirl) + ", but I'm so close I don't care!",
"Ahh, keep going, " + setup.npc.mcName($tmpGirl) + "! I'm almost there, I'll deal with the guilt later!",
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... My husband could never, I'm so close, please, don't stop!"
])>>
<</sayNpc>>
<<elseif typeof $player.companions['guest:' + $guestId] !== 'undefined' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* Out there you always have my back, " + setup.npc.mcName($tmpGirl) + ", in here don't you dare stop, I'm almost there!",
"After everything we've been through together... don't stop, " + setup.npc.mcName($tmpGirl) + "... please don't stop...",
"*gripping you* You always push through out there, don't stop now, I'm so close, " + setup.npc.mcName($tmpGirl) + "...",
"*breathless* Gods yes, " + setup.npc.mcName($tmpGirl) + ", be my warrior! Don't stop, I'm almost there..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'kitchen' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*moaning* Mmmm, yes, " + setup.npc.mcName($tmpGirl, 1) + "... Now we're cooking... I'm almost there, don't stop!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Bend me over the counter and take me to the main course!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Keep going, dinner can wait, I'm almost there!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'hospital' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shuddering* Oh, " + setup.npc.mcName($tmpGirl, 1) + "... You are hitting all of your fitness goals!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The treatment is working, I'm so close, please don't stop!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! I don't know what you prescribed but don't ever stop!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'maid' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* " + setup.npc.mcName($tmpGirl, 1) + "... I still have three rooms to clean but I'm almost cumming, so don't stop...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... This is the best job in the house, please don't stop!",
"Ahh, don't stop, " + setup.npc.mcName($tmpGirl) + ", I'm nearly there! I'll finish dusting after.."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'church' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* The Lord provides, " + setup.npc.mcName($tmpGirl) + "... and right now He is providing very generously — don't stop...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Body and soul, offered up... I'm almost there — please don't stop...",
"*breathless* This is devotion. This is worship. " + setup.npc.mcName($tmpGirl) + "... don't stop...",
"*gripping you* Almost there, " + setup.npc.mcName($tmpGirl) + "... every part of me given to this moment — don't stop...",
"Ahh... the scripture says give your whole self... I'm giving it, " + setup.npc.mcName($tmpGirl) + "... I'm so close...",
"*quietly intense* My sisters pray on their knees. So do I. Don't stop, " + setup.npc.mcName($tmpGirl) + "...",
"*whispering* Close... so close... a little longer, " + setup.npc.mcName($tmpGirl) + "... let me feel the grace of this..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'workout' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shaking* My heart was already pounding from the workout, " + setup.npc.mcName($tmpGirl) + "... This is taking me to the next level!",
"Mmmhh, yes, " + setup.npc.mcName($tmpGirl) + ", work me! Take me to the limit!",
"Ahh, this is the best post-workout reward, " + setup.npc.mcName($tmpGirl) + "! Don't stop, I'm almost there..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'car' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* " + setup.npc.mcName($tmpGirl, 1) + "... Someone could walk by any second, but don't stop, I'm almost there!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... So cramped and so close, but don't you dare stop now!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Just the tune-up I need... I'm almost cumming, just a little more!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'forest' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"It feels so good out here in the open, " + setup.npc.mcName($tmpGirl) + "... Don't stop, this is perfect!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The fresh air, the risk, I'm so close!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Anyone could stumble on us, I don't care, I'm almost cumming!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'shower' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* " + setup.npc.mcName($tmpGirl, 1) + "... The hot water and your hands, I'm almost there, don't stop!",
"Mmmhh, I was all wet before, " + setup.npc.mcName($tmpGirl) + ", and you're about to break the floodgates!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The steam, the heat, I feel it building, so close!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'massage' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*sighing* " + setup.npc.mcName($tmpGirl, 1) + "... This is just the massage I needed, please, more!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Your hands know exactly where to go, I'm so close!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The oils, the warmth, and this, I can feel it building, don't stop!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'bathhouse' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*moaning* " + setup.npc.mcName($tmpGirl, 1) + "... The sauna heat is making this so intense, I'm almost there!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... All the heat and steam and your touch, I'm so close!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! The heat has me breathless already, but please don't stop!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'school' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* " + setup.npc.mcName($tmpGirl, 1) + "... I can't believe this is happening at school, I'm almost there!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... The most educational experience of my life, so close!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! You're going to make me cum right here on this desk, aren't you?"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'basement' && $tmpGirl.type === 'guest' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* " + setup.npc.mcName($tmpGirl, 1) + "... You're taking me to the edge of my senses, don't make me beg!",
"Mmmhh, So much pleasure, it's torture, " + setup.npc.mcName($tmpGirl) + "... Please don't ever stop!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Nobody will hear us down here. Make me scream like only you can!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'mistress' && setup.percentageChance(35)>>
<<if ($tmpGirl.sub ?? 0) < 20>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathless* Good... keep going... your Mistress is almost... *gritting her teeth* ...almost there, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh... You serve me well, " + setup.npc.mcName($tmpGirl) + "... and I intend to reward you... but not before I get mine... don't stop...",
"*commanding* Don't you dare stop, " + setup.npc.mcName($tmpGirl) + "... your Mistress is almost there... you finish when I say...",
"Ahh... You think I'd let just anyone do this to me... *tensing* ...you're privileged, " + setup.npc.mcName($tmpGirl) + "... don't stop...",
"*quietly* That's it... right there... your Mistress commands you not to stop, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.sub ?? 0) <= 50>>
<<sayNpc $tmpGirl>>
<<=either([
"*gritting her teeth* I command everyone down there... and I can't command myself right now, " + setup.npc.mcName($tmpGirl) + "... don't stop...",
"Mmmhh, I hate how good this feels, " + setup.npc.mcName($tmpGirl) + "... I'm almost there... don't you dare stop...",
"*quietly* The dungeon mistress doesn't beg... *barely a whisper* ...but I'm asking you not to stop, " + setup.npc.mcName($tmpGirl) + "...",
"*breathless* They call me Mistress down there... up here I'm almost cumming for you, " + setup.npc.mcName($tmpGirl) + "... don't stop...",
"Ahh... I let nobody get this close... *gasping* ...you're different, " + setup.npc.mcName($tmpGirl) + "... I'm almost there, don't stop..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathless* I am yours, " + setup.npc.mcName($tmpGirl) + "... completely yours... please don't stop, I'm almost there...",
"Mmmhh... The dungeon is yours, the power is yours... and I'm almost cumming for you, " + setup.npc.mcName($tmpGirl) + "... please don't stop...",
"*quietly* I give you everything willingly, " + setup.npc.mcName($tmpGirl) + "... my authority, my pride... don't stop... I'm so close...",
"Ahh... My Master... *barely a whisper* ...I'm almost there... please don't stop...",
"*trembling* Everything I am is at your pleasure, " + setup.npc.mcName($tmpGirl) + "... and right now it pleases you to bring me close... don't stop..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'streets' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... It never feels this good on the job, I'm almost cumming!",
"Mmmhh, you're special, " + setup.npc.mcName($tmpGirl) + ", I'm so close, so close!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! You make it worth more than the money, I'm almost cumming for real!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'strip_club' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*grinding* Breaking the rules with you is the best, " + setup.npc.mcName($tmpGirl) + "... I'm almost there, please don't stop!",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... This was supposed to be a dance, and I'm almost cumming!",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! This private show turned very private in the best way, I'm so close!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'nightclub' && setup.percentageChance(70)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gripping the wall* The bass is shaking right through the tiles... and I'm almost cumming... don't stop, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh... I don't even know your last name, " + setup.npc.mcName($tmpGirl) + "... and I'm almost cumming in a nightclub bathroom — don't stop...",
"*whispering* Someone could walk in any second... *gasping* I don't care... I'm so close, " + setup.npc.mcName($tmpGirl) + "...",
"Ahh... I wasn't expecting any of this tonight... but I'm almost there... please don't stop, " + setup.npc.mcName($tmpGirl) + "...",
"*breathless* Just a little more... the crowd out there has no idea... don't stop, " + setup.npc.mcName($tmpGirl) + ", I'm almost there..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'gloryhole' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*tensing* You feel so amazing through this hole. Just a little more, don't you pull away...",
"All I can see is your cock and I'm already so close, keep going, please...",
"*whispering* I know it's you on the other side, " + setup.npc.mcName($tmpGirl) + "... I'm almost there, don't stop...",
"Mmmhh... Through the wall, through the hole, I feel everything, I'm so close, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.location === 'milk_barn' && setup.percentageChance(35)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping, gripping the frame* Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I'm already so wound up... and now this... *shaking* ...I'm so close, please don't stop...",
"Ahh... *straining toward you* ...I want to pull you in, I want to reach you... *breathlessly* ...just keep going, I'm almost there...",
"*trembling* Everything is so much right now... *barely audible* ...don't stop... please... I'm right there, " + setup.npc.mcName($tmpGirl) + "...",
"*gasping* I've been held here so long and your touch just... *shaking* ...I'm so close... please don't stop...",
"Mmmhh... *quietly desperate* ...it's building and I can't move away from it... *gasping* ...I'm almost there, " + setup.npc.mcName($tmpGirl) + ", don't stop..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
setup.npc.mcName($tmpGirl, 1) + ", you're gonna make me cum!",
"Don't stop, " + setup.npc.mcName($tmpGirl) + ". I'm almost there...",
"That's it, " + setup.npc.mcName($tmpGirl) + ", right there, keep going!",
"Oooh, ahhh, " + setup.npc.mcName($tmpGirl) + ", I'm so close!",
"Oh, " + setup.npc.mcName($tmpGirl) + ", it just keeps getting better!",
"Hahh! Yes! Yes! I feel it, " + setup.npc.mcName($tmpGirl) + ", I feel it coming...",
"*tensing* Ahh, mmmh, " + setup.npc.mcName($tmpGirl) + ", d-don't st-stop!",
"*gripping you tightly* Mmmh, yes, " + setup.npc.mcName($tmpGirl) + ", so good! More!",
"Yes, " + setup.npc.mcName($tmpGirl) + ", take me to the peak. Take me to heaven.",
"You know how to make me feel so good, " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>>
<</if>><<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either(
$tmpGirl.horny >= 100 ? [
"lets out a raw, wild cry and shudders violently",
"arches up with a wail of ecstasy, " + setup.pronounceWhos($tmpGirl) + " whole body convulsing",
"claws at your back as waves of pleasure wrack " + setup.pronounceWhos($tmpGirl) + " body",
"bucks and trembles uncontrollably, a broken cry tearing from " + setup.pronounceWhos($tmpGirl) + " throat",
"collapses against you, panting and shivering, a low satisfied growl rumbling in " + setup.pronounceWhos($tmpGirl) + " chest",
"throws " + setup.pronounceWhos($tmpGirl) + " head back with a keening wail, limbs going slack as " + setup.pronounceWhos($tmpGirl) + " body quakes"
] : $tmpGirl.horny >= 80 ? [
"writhes beneath you, breathing ragged, fingers digging in desperately",
"clutches at you with trembling hands, a high urgent whine escaping " + setup.pronounceWhos($tmpGirl) + " lips",
"shudders hard, clawed fingers gripping you tightly as " + setup.pronounceWhos($tmpGirl) + " body tenses",
"arches against you, gasping in sharp, shallow bursts",
"keens sharply, whole body coiling tight like a bowstring",
"presses into you with frantic need, trembling on the edge"
] : $tmpGirl.horny >= 25 ? [
"moans softly in pleasure, pressing closer as " + setup.pronounceWhos($tmpGirl) + " body writhes in growing ecstasy",
"squirms against you with a breathless whimper, pleasure building with each moment",
"presses into you with a low, needful moan, no words needed to show " + setup.pronounceWhos($tmpGirl) + " pleasure",
"gasps and arches " + setup.pronounceWhos($tmpGirl) + " back, eyes half-lidded in mounting ecstasy",
"growls low in " + setup.pronounceWhos($tmpGirl) + " throat, hips rolling instinctively",
"tenses and buries " + setup.pronounceWhos($tmpGirl) + " face, a desperate muffled sound escaping " + setup.pronounceWho($tmpGirl),
"wraps around you tighter, letting out a shivering sigh as " + setup.pronounceWhos($tmpGirl) + " body grows hot with desire"
] : [
"purrs contentedly against you",
"rubs against you sensually, eyes half-closed",
"nuzzles into you with a soft, pleased trill",
"nudges you affectionately, a low rumble in " + setup.pronounceWhos($tmpGirl) + " throat",
"licks your neck softly, then settles close",
"kneads at you gently, a quiet purr vibrating in " + setup.pronounceWhos($tmpGirl) + " chest",
"curls into your warmth with a satisfied murmur"
]
)>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait">
<<include 'NPC visual'>>
</div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name">
<strong><<=setup.displayName($tmpGirl)>></strong>
</div>
<div class="npc-say-text">
<em>*<<= _feralReaction >>*</em>
</div>
</div>
</div>
<<elseif $tmpGirl.horny >= 100 && setup.percentageChance(90)>>
<<set _charPass = 'Reactions - char - ' + ($charId ?? '') + ' - climax'>>
<<if $charId && Story.has(_charPass) && setup.percentageChance(60)>>
<<include _charPass>>
<<else>>
<<include 'Reactions - climax'>>
<</if>>
<<elseif $tmpGirl.horny >= 80 && setup.percentageChance(50) && !$tmpGirl.rape>>
<<set _charPass = 'Reactions - char - ' + ($charId ?? '') + ' - pre-climax'>>
<<if $charId && Story.has(_charPass) && setup.percentageChance(60)>>
<<include _charPass>>
<<else>>
<<include 'Reactions - pre-climax'>>
<</if>>
<<else>>
<<set _reactionPassage = 'Reactions - ' + $sexAction>>
<<set _charPass = 'Reactions - char - ' + ($charId ?? '') + ' - ' + $sexAction>>
<<if $charId && Story.has(_charPass) && setup.percentageChance(60)>>
<<include _charPass>>
<<elseif Story.has(_reactionPassage)>>
<<include _reactionPassage>>
<<else>>
<<include 'Reactions - generic'>>
<</if>>
<</if>><<if $sexAction === 'anal' && _allowLube>>
<<if $backpack.has('lube')>>
<br /><br />
<<linkreplace 'Use lube'>>
<<drop $backpack 'lube' 1>>
<<actionImage $tmpGirl 'anal_lube'>>
<<if !$fuck>>
<<set $fuck = {}>>
<</if>>
<<set $fuck.lubed = true>>
You grabbed lube and squeezed out on <<=setup.pronounceWhos($tmpGirl)>> ass, slowly sliding your dick in. As more and more lube was used you managed to get deeper and deeper into <<=setup.pronounceWhos($tmpGirl)>> ass.
<<set $tmpGirl.anal += 10>>
<br /><br />
<</linkreplace>>
<</if>>
<</if>><<set _canFuck = !setup.perkHas('temp_impotence')>>
<<set _sexActions = {
kissing: {
title: 'Kissing',
minAction: 0,
horny: 1,
maxCorruption: 10,
show: !['gloryhole', 'milk_barn'].includes($tmpGirl.location) && !$tmpGirl.gagBall,
positive: $tmpGirl.relationship > 15,
hornyGive: 2,
maxMcHorny: 20
},
handjob: {
title: 'Handjob',
minAction: 5,
horny: 20,
maxCorruption: 20,
show: $tmpGirl.location != 'milk_barn' && _canFuck,
},
footjob: {
title: 'Footjob',
minAction: 20,
horny: 20,
maxCorruption: 30,
show: !['gloryhole', 'milk_barn'].includes($tmpGirl.location) && _canFuck
},
titjob: {
title: 'Titjob',
minAction: 25,
horny: 20,
maxCorruption: 40,
maxHorny: 70,
positive: $tmpGirl.traits.includes('sensitive_tits'),
hornyGive: 10,
show: [0, 2].includes($tmpGirl.gender) && ['medium', 'big'].includes($tmpGirl.breasts ?? '') && !['gloryhole', 'milk_barn'].includes($tmpGirl.location) && _canFuck
},
nipple_lick: {
title: 'Lick nipples',
minAction: 5,
horny: 1,
maxCorruption: 20,
show: [0, 2].includes($tmpGirl.gender) && !['gloryhole', 'milk_barn'].includes($tmpGirl.location),
positive: true,
hornyGive: $tmpGirl.traits.includes('sensitive_tits') ? 10 : 5,
maxMcHorny: 30
},
bj: {
title: 'Blowjob',
minAction: 30,
show: !$tmpGirl.gagBall,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
stats: 'bj'
},
dp: {
title: 'Deepthroat',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck && !$tmpGirl.gagBall,
positive: (($tmpGirl.traits ?? []).includes('deepthroat') && $tmpGirl.horny <= 79),
orConditionTrue: ($tmpGirl.traits ?? []).includes('deepthroat'),
stats: 'dp'
},
pussy_lick: {
title: 'Lick pussy',
minAction: 30,
horny: 3,
maxCorruption: 40,
show: !$tmpGirl.gender && !$tmpGirl.chastityBelt && !['gloryhole', 'milk_barn'].includes($tmpGirl.location),
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
maxMcHorny: 60
},
sn: {
title: 'Sixty-nine',
minAction: 30,
horny: 20,
maxCorruption: 50,
show: !$tmpGirl.chastityBelt && !['gloryhole', 'milk_barn'].includes($tmpGirl.location) && _canFuck,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
stats: 'bj'
},
pussy_fingering: {
title: 'Finger pussy',
minAction: 5,
horny: 5,
maxCorruption: 25,
show: !$tmpGirl.gender && !['gloryhole', 'milk_barn'].includes($tmpGirl.location) && !$tmpGirl.chastityBelt,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 10 : 2),
maxMcHorny: 60
},
pussy_dildo: {
title: 'Dildo pussy',
minAction: 5,
horny: 10,
maxCorruption: 25,
show: !$tmpGirl.gender && !['gloryhole', 'milk_barn'].includes($tmpGirl.location) && !$tmpGirl.chastityBelt && ($backpack.has('sextoy') || setup.npcInventoryHas($tmpGirl, 'sextoy')),
positive: true,
hornyGive: 20,
},
pussy: {
title: 'Fuck pussy',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: !$tmpGirl.gender && !$tmpGirl.chastityBelt && _canFuck,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'pussy'
},
pussy_fisting: {
title: 'Fist pussy',
minAction: 80,
horny: 10,
maxCorruption: 100,
show: !$tmpGirl.gender && !['gloryhole', 'milk_barn'].includes($tmpGirl.location) && !$tmpGirl.chastityBelt,
positive: $tmpGirl.pussy >= 60,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
maxMcHorny: 70,
stats: 'pussy'
},
anal_fingering: {
title: 'Finger ass',
minAction: 60,
horny: 2,
maxCorruption: 70,
show: $tmpGirl.location != 'gloryhole' && !$tmpGirl.chastityBelt,
positive: $tmpGirl.anal >= 10,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 10 : 2),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
maxMcHorny: 60,
stats: 'anal'
},
grind: {
title: 'Grind',
horny: 10,
minAction: 20,
maxCorruption: 50,
show: !$tmpGirl.gender && !$tmpGirl.chastityBelt && !['gloryhole', 'milk_barn'].includes($tmpGirl.location),
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 8 : 2),
maxMcHorny: 70,
maxHorny: 70
},
assjob: {
title: 'Assjob',
horny: 5,
minAction: 20,
maxCorruption: 50,
show: $tmpGirl.location != 'gloryhole' && !$tmpGirl.chastityBelt,
positive: true,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 10 : 2),
maxMcHorny: 60,
maxHorny: 60
},
ass_eat: {
title: 'Eat ass',
horny: 0,
minAction: 0,
maxCorruption: 50,
show: $tmpGirl.location != 'gloryhole' && !$tmpGirl.chastityBelt,
positive: true,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 10 : 2),
maxMcHorny: 60,
maxHorny: 60
},
anal: {
title: 'Fuck ass',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: $tmpGirl.location != 'gloryhole' && _canFuck && !$tmpGirl.chastityBelt,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal'
},
anal_fisting: {
title: 'Fist asshole',
minAction: 90,
horny: 2,
maxCorruption: 100,
show: $tmpGirl.location != 'gloryhole' && !$tmpGirl.chastityBelt,
positive: (($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 90),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 90,
maxMcHorny: 60,
stats: 'anal'
},
bj_reverse: {
title: 'Give a blowjob',
minAction: 10,
horny: 3,
maxCorruption: 20,
show: ((($tmpGirl.traits ?? []).includes('sadistic') || [1,2].includes($tmpGirl.gender)) && !$tmpGirl.chastityBelt && !['gloryhole', 'milk_barn'].includes($tmpGirl.location) && !($sexForced ?? false)) && (settings.gaysEnabled || settings.transEnabled),
positive: (($tmpGirl.traits ?? []).includes('sadistic') || [1,2].includes($tmpGirl.gender)),
hornyGive: ([1,2].includes($tmpGirl.gender) ? 20 : 2),
maxMcHorny: 60
},
anal_reverse: {
title: 'Get fucked in the ass',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ((($tmpGirl.traits ?? []).includes('sadistic') || [1,2].includes($tmpGirl.gender)) && !$tmpGirl.chastityBelt && !['gloryhole', 'milk_barn'].includes($tmpGirl.location) && !($sexForced ?? false)) && (settings.gaysEnabled || settings.transEnabled),
positive: (($tmpGirl.traits ?? []).includes('sadistic') || [1,2].includes($tmpGirl.gender)),
hornyGive: ([1,2].includes($tmpGirl.gender) ? 20 : 5)
},
cum_on_face: {
show: false,
minAction: 35
},
cum_in_mouth: {
show: false,
minAction: 45,
positive: (($tmpGirl.traits ?? []).includes('cumslut') && $tmpGirl.horny <= 79)
},
cum_in_throat: {
show: false,
minAction: 50,
positive: ($tmpGirl.traits ?? []).includes('cumslut') || ($tmpGirl.traits ?? []).includes('deepthroat')
},
cum_in_pussy: {
show: false,
positive: true,
hornyGive: $tmpGirl.traits.includes('cumslut') || $tmpGirl.traits.includes('breeder') ? 30 : 10
}
}>>
/* Pre-compute once here so both top and bottom button renders see the same value */
<<if ($sexForced ?? false) || ($tmpGirl.traits ?? []).includes('nymphomaniac')>>
<<set _actionMax = 100>>
<<elseif $tmpGirl.likesGuys>>
<<set _actionMax = Math.max($tmpGirl.relationship, $tmpGirl.horny)>>
<<set _actionMax = Math.min(_actionMax, $tmpGirl.corruption)>>
<<set _actionMax = Math.max(_actionMax, $tmpGirl.sub, $tmpGirl.drunk ?? 0)>>
<<else>>
<<set _actionMax = Math.floor(Math.max($tmpGirl.sub, $tmpGirl.drunk ?? 0)/2)>>
<</if>><<if $tmpGirl.anal < 20 && !$fuck?.lubed && !$tmpGirl.traits.includes('analslut')>>
<center>
<<actionImage $tmpGirl 'no_anal'>>
</center>
<br />
You tried to fuck <<=setup.pronounceWho($tmpGirl)>> in the ass but your dick is too big for <<=setup.pronounceWho($tmpGirl)>> and <<=setup.pronounceWhat($tmpGirl)>> can't relax.
<br />
<<if !$tmpGirl.traits.includes('masochist')>>
<<=setup.pronounceWhat($tmpGirl, true)>> can't take it in <<=setup.pronounceWhos($tmpGirl)>> ass and begs you to stop.<strong> (Submission + 1, Happy / Relationship - 1)</strong>
<br />
<<set
$tmpGirl.sub = Math.min($tmpGirl.sub + 1, 100),
$tmpGirl.relationship = Math.max($tmpGirl.relationship - 1, -100),
$tmpGirl.happy = Math.max($tmpGirl.happy - 1, -100)
>>
<<set _showSex = false>>
<<else>>
<<=setup.pronounceWhat($tmpGirl, true)>> seems to enjoy the pain you are causing her.<strong> (Submission / Happy / Relationship + 1)</strong>
<br />
<<set
$tmpGirl.sub = Math.min($tmpGirl.sub + 1, 100),
$tmpGirl.relationship = Math.min($tmpGirl.relationship + 1, 100),
$tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100)
>>
<</if>>
<br />
<<set _allowLube = true>>
<<elseif !$fuck.anal>>
<center>
<<actionImage $tmpGirl 'anal_insert'>>
</center>
<br /><br />
You slowly slid your hard dick into <<=setup.displayName($tmpGirl)>>'s asshole.
<br /><br />
<<set $fuck.anal = true>>
<</if>><<if !$sexForced && $sexAction === 'pussy' && typeof $tmpGirl.pregnancy === 'undefined'>>
<<if ($tmpGirl.traits ?? []).includes('feral') && (($tmpGirl.traits ?? []).includes('breeder') || ($tmpGirl.relationship >= 70 && setup.percentageChance(30)))>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either([
"presses her hips flush against yours and holds them there, a slow, deliberate pressure — not letting you go anywhere",
"lets out a low, rhythmic panting sound of need, body warm and flushed",
"wraps her legs around you from behind, locking her ankles, grip tightening to keep you inside her",
"arches her body against you to angle herself open, a breathless, insistent sound escaping her",
"drags your hand to her lower abdomen and holds it there, hot skin under your palm, gaze direct and unblinking",
"looks into your eyes, her body open and pressed tight against you, offering to be bred",
"shudders as her inner muscles tighten and pull at your shaft, her body milking you for what it craves"
])>>
<br />
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<br />
<<set _askedToCumInside = true>>
<<elseif ($tmpGirl.traits ?? []).includes('breeder')>>
<br />
<<sayNpc $tmpGirl>>
<<=either([
"Please, cum inside me. I need it.",
"Don't you dare pull out — fill me up!",
"I want your baby. Cum inside me.",
"Please, I'm begging you — cum inside me."
])>>
<</sayNpc>>
<br />
<<set _askedToCumInside = true>>
<<elseif $tmpGirl.relationship >= 70 && setup.percentageChance(30)>>
<br />
<<sayNpc $tmpGirl>>
<<=either([
'Oh yes! Cum inside me!',
"Don't pull out! I want you inside me!",
"Fill me up! I want your baby!"
])>>
<</sayNpc>>
<br />
<<set _askedToCumInside = true>>
<</if>>
<</if>><<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<set _feralReaction = either(
$tmpGirl.horny >= 100 ? [
"shudders violently, a raw cry torn from " + setup.pronounceWhos($tmpGirl) + " throat despite " + setup.pronounceWho($tmpGirl) + "self",
"convulses with a strangled wail, claws raking your back as " + setup.pronounceWhos($tmpGirl) + " body gives in",
"bucks and spasms, a furious helpless sound escaping " + setup.pronounceWho($tmpGirl) + " as " + setup.pronounceWhat($tmpGirl) + " peaks",
"throws " + setup.pronounceWhos($tmpGirl) + " head back with an involuntary cry, trembling with rage and release",
"collapses panting, a low frustrated growl vibrating in " + setup.pronounceWhos($tmpGirl) + " chest",
"climaxes with a sharp unwilling scream, nails drawing blood"
] : $tmpGirl.horny >= 80 ? [
"claws at you weakly, whole body shaking with reluctant need",
"lets out a frustrated whimper, hips rolling instinctively against you",
"snarls through clenched teeth, teetering on the edge despite " + setup.pronounceWho($tmpGirl) + "self",
"grips you hard — half fighting, half pulling closer — trembling and tense",
"arches against you with a desperate sound, fury and ecstasy warring on " + setup.pronounceWhos($tmpGirl) + " face",
"keens sharply, nails digging in, " + setup.pronounceWhos($tmpGirl) + " body tightening around you against " + setup.pronounceWhos($tmpGirl) + " will"
] : $tmpGirl.horny >= 25 ? [
"growls in frustration, body betraying " + setup.pronounceWho($tmpGirl) + " with an unwilling shiver",
"hisses and pulls away, though " + setup.pronounceWhos($tmpGirl) + " hips jerk forward against " + setup.pronounceWhos($tmpGirl) + " will",
"snarls, digging " + setup.pronounceWhos($tmpGirl) + " claws in, even as a low moan escapes " + setup.pronounceWhos($tmpGirl) + " throat",
"struggles against you, teeth clenched, a reluctant tremor running through " + setup.pronounceWho($tmpGirl),
"snaps at you irritably, flushed and tense, arousal warring with resistance",
"struggles with a sharp whine, " + setup.pronounceWhos($tmpGirl) + " breath coming faster despite " + setup.pronounceWho($tmpGirl) + "self"
] : [
"snarls and snaps at you, clawing at you in futility",
"hisses sharply, thrashing pointlessly to pull free",
"lunges with teeth bared, powerless to do more than threaten",
"growls low and dangerous, body rigid with resistance",
"twists violently, powerless to escape your grasp",
"lets out a sharp hostile hiss and writhes like a trapped animal"
]
)>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait">
<<include 'NPC visual'>>
</div>
<<else>>
<<include 'NPC visual'>>
<</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name">
<strong><<=setup.displayName($tmpGirl)>></strong>
</div>
<div class="npc-say-text">
<em>*<<= _feralReaction >>*</em>
</div>
</div>
</div>
<<if !setup.perkHas('bleeding') && setup.percentageChance(10)>>
<br />
<<if either(true, false)>>
In the struggle, <<=setup.displayName($tmpGirl)>> gets teeth into you — a sharp, tearing bite that draws blood.
<<else>>
<<=setup.displayName($tmpGirl)>> rakes claws across your chest and arms, leaving deep, bleeding furrows.
<</if>>
<<perkAdd 'bleeding'>>
<</if>>
<<elseif $tmpGirl.horny >= 100 && setup.percentageChance(50) >>
<<sayNpc $tmpGirl>>
<<=either([
"I'm cumming, but not because I like it!",
"Nnngh! NO! FUCK! You made me cum!",
"*pant* *pant* Damnit, " + setup.npc.mcName($tmpGirl) + ". At least it's over."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing' >>
<<sayNpc $tmpGirl>>
<<=either([
"Ewww, " + setup.npc.mcName($tmpGirl) + ", get off of me!",
"Yuck, " + setup.npc.mcName($tmpGirl) + ", this is not romantic.",
"MMMF! No, " + setup.npc.mcName($tmpGirl) + ", stop it."
])>>
<</sayNpc>>
<<elseif $sexAction === 'handjob' >>
<<sayNpc $tmpGirl>>
<<=either([
"Don't make me touch it, " + setup.npc.mcName($tmpGirl) + "..?",
"Eew, it's so big and veiny, " + setup.npc.mcName($tmpGirl) + ". ",
"Okay, fine, " + setup.npc.mcName($tmpGirl) + ", just don't put it in me..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'sn' >>
<<sayNpc $tmpGirl>>
<<=either([
"Uckk, get it out of my mouth, " + setup.npc.mcName($tmpGirl) + ".",
"MMMPH! *gag* Stop it, " + setup.npc.mcName($tmpGirl) + ". I don't wa-mmphmmph!!",
"Nnffh, *hurk* No, please don't cum in my mouth, " + setup.npc.mcName($tmpGirl) + "!",
"*muffled* Let me go-mmph! NO, sto-MFF!"
])>>
<</sayNpc>>
<<elseif $sexAction === 'dp' >>
<<sayNpc $tmpGirl>>
<<=either([
"*gagging* Hnnck! Gllckk! *wretch*",
"*muffled screaming* HMMMPHH!!! STO-MMPF! NO-FFMMCK!!",
"MMnnff! *choking* Please, " + setup.npc.mcName($tmpGirl) + ", I can't brea-MMphh!!",
"*unintelligible* Gluck! Urgh! Hnnff! *gasp!* Please, " + setup.npc.mcName($tmpGirl) + ", No mo-UNGFF..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_fisting' || $sexAction === 'anal_fisting' >>
<<sayNpc $tmpGirl>>
<<=either([
"Nnngh! Fuck! That's too big, " + setup.npc.mcName($tmpGirl) + "!",
"Ahh! Ow! Too much, " + setup.npc.mcName($tmpGirl) + "...",
"Oww, get it out of me, " + setup.npc.mcName($tmpGirl) + ".."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_reverse' || $sexAction === 'bj_reverse' >>
<<sayNpc $tmpGirl>>
<<=either([
"I guess, if this is what you want, " + setup.npc.mcName($tmpGirl) + "...",
"Okay, fine, if you want to take it, " + setup.npc.mcName($tmpGirl) + "!",
"It's not like I'm enjoying this, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' >>
<<sayNpc $tmpGirl>>
<<=either([
"Just don't cum inside me, " + setup.npc.mcName($tmpGirl) + "!",
"No, please, take it out, " + setup.npc.mcName($tmpGirl) + "...",
"No! Please stop, " + setup.npc.mcName($tmpGirl) + "!",
"*sobbing* No, " + setup.npc.mcName($tmpGirl) + ", stop, please. Someone help me!",
"Please stop, " + setup.npc.mcName($tmpGirl) + ". I'll be good...",
"*crying* Stop, no, " + setup.npc.mcName($tmpGirl) + ", not like this...",
"*screaming* NO! Somebody please help me!"
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal' && $tmpGirl.anal >= 20 >>
<<sayNpc $tmpGirl>>
<<=either([
"Ughh, oof, get out of my ass, " + setup.npc.mcName($tmpGirl) + "!",
"Not my ass! Stop, " + setup.npc.mcName($tmpGirl) + ", please!",
"No, not there, " + setup.npc.mcName($tmpGirl) + "! NNGH!!"
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal' && $tmpGirl.anal < 20 >>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh! Ungh! " + setup.npc.mcName($tmpGirl,1) + ", it hurts, it hurts! Please stop!",
"Ow! It's too tight, " + setup.npc.mcName($tmpGirl) + "! No more...",
"Mmph! Oof! Stop, please, " + setup.npc.mcName($tmpGirl) + "! It's too much!",
"*crying* Please, " + setup.npc.mcName($tmpGirl) + ", it hurts so much..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_back' >>
<<sayNpc $tmpGirl>>
<<=either([
"Eww, gross, " + setup.npc.mcName($tmpGirl) + ". It's all over me.",
"Oh yuck, " + setup.npc.mcName($tmpGirl) + ", this is so degrading...",
"Ugh, " + setup.npc.mcName($tmpGirl) + ", are you happy..?",
"Ick, " + setup.npc.mcName($tmpGirl) + "... Well at least it's not inside me."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_mouth' || $sexAction === 'cum_in_throat' || $sexAction === 'cum_throat' >>
<<sayNpc $tmpGirl>>
<<=either([
"*GAG* Eww, disgusting, " + setup.npc.mcName($tmpGirl) + "!",
"Please don't make me swallow, " + setup.npc.mcName($tmpGirl) + "..",
"Nghk, mmmf.. *gulp* Gross...",
"Eww, " + setup.npc.mcName($tmpGirl) + ", it's in my mouth!"
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' >>
<<sayNpc $tmpGirl>>
<<=either([
"Fuck! No, you came inside me " + setup.npc.mcName($tmpGirl) + "!",
"Nonono, not inside me, " + setup.npc.mcName($tmpGirl) + "!",
"*sobbing* No... please, not inside me, " + setup.npc.mcName($tmpGirl) + "...",
"Oh god, please don't get me pregnant, " + setup.npc.mcName($tmpGirl) + "...",
"Ugh, damnit, " + setup.npc.mcName($tmpGirl) + ". At least it's over..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_ass' >>
<<sayNpc $tmpGirl>>
<<=either([
"Ngh, I can feel it inside me, " + setup.npc.mcName($tmpGirl) + "!",
"I feel so violated, " + setup.npc.mcName($tmpGirl) + "...",
"Ugh, damnit, " + setup.npc.mcName($tmpGirl) + ". At least it's over..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.sub <= 15 >>
<<sayNpc $tmpGirl>>
<<=either([
"FUCK! Get off of me, " + setup.npc.mcName($tmpGirl) + "!",
"*fighting* Stop! No, " + setup.npc.mcName($tmpGirl) + "! Someone help!!",
"I hate you, " + setup.npc.mcName($tmpGirl) + "! STOP IT!!",
"*struggling* No! NO!! Let me go, " + setup.npc.mcName($tmpGirl) + "!",
"Fuck you, " + setup.npc.mcName($tmpGirl) + "! You monster..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"No! Stop, please, " + setup.npc.mcName($tmpGirl) + "!",
"N-no, please, " + setup.npc.mcName($tmpGirl) + ". I.. I can't take anymore..",
"*sobbing* No, " + setup.npc.mcName($tmpGirl) + ", please no. Why won't anyone help me?",
"Please stop, " + setup.npc.mcName($tmpGirl) + ". I'll be good, I promise..",
"*crying* Stop, please, " + setup.npc.mcName($tmpGirl) + "! No more...",
"*screaming* NO! Somebody help me, please!"
])>>
<</sayNpc>>
<</if>><<if $player.horny >= 100 && typeof $sexAction !== 'undefined'>>
<<if $sexAction == 'handjob'>>
<<link 'Handjob cum'>>
<<set $sexAction = 'handjob_cum'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction == 'grind'>>
<<link 'Cum on pussy'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_pussy'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on stomach'>>
<<horny_reset>>
<<set $sexAction = 'grind_cum'>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction == 'assjob'>>
<<link 'Cum'>>
<<set $sexAction = 'assjob_cum'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction == 'footjob'>>
<<link 'Footjob cum'>>
<<set $sexAction = 'footjob_cum'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction == 'titjob'>>
<<link 'Cum on tits'>>
<<set $sexAction = 'cum_on_tits'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction == 'pussy'>>
<<link 'Cum in pussy'>>
<<horny_reset>>
<<if _askedToCumInside>>
<<set _relIncrease = randomInteger(5, 10)>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + _relIncrease, 100)>>
<<set $tmpGirl.happy += randomInteger(5, 10)>>
<</if>>
<<set $sexAction = 'cum_in_pussy'>>
<<goto `passage()`>>
<</link>>
<<if $tmpGirl.location !== 'gloryhole'>>
<<link 'Cum on pussy'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_pussy'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on stomach'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_stomach'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<elseif $sexAction == 'anal'>>
<<link 'Cum in ass'>>
<<horny_reset>>
<<set $sexAction = 'cum_in_ass'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on back'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_back'>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction === 'dp'>>
<<link 'Cum in throat'>>
<<horny_reset>>
<<set $sexAction = 'cum_throat'>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction === 'anal_reverse'>>
<<link 'Cum while being fucked'>>
<<horny_reset>>
<<set $sexAction = 'anal_reverse_cum'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<link 'Cum on face'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_face'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum in mouth'>>
<<horny_reset>>
<<set $sexAction = 'cum_in_mouth'>>
<<goto `passage()`>>
<</link>>
<<else>>
<<if $player.energy >= 5>>
<div id="action-buttons">
<<set _sexOptionHidden = false>>
<<for _sexActionKey, _sexAction range _sexActions>>
<<capture _sexActionKey, _sexAction>>
<<if (_sexAction.show ?? true) && (_actionMax >= _sexAction.minAction || _sexAction.orConditionTrue)>>
<<set _linkName = '<span data-balloon-length="medium" data-balloon-pos="up-left" aria-label="' + _sexAction.title + '">[img[setup.ImagePath+"game/misc/actions/"+_sexActionKey+".png"]]</span>'>>
<<link _linkName>>
<<set $sexAction = _sexActionKey>>
<<goto `passage()`>>
<</link>>
<<elseif (_sexAction.show ?? true)>>
<<set _sexOptionHidden = true>>
<</if>>
<</capture>>
<</for>>
</div>
<br />
<<if !($sexForced ?? false) && _actionMax < 70 && _sexOptionHidden && ($sexCanForce ?? true)>>
<<link 'Force more'>>
<<set $sexForced = true>>
<<unset $sexAction>>
<<goto `passage()`>>
<</link>>
<</if>>
<</if>>
<<link 'End'>>
<<unset $sexAction, $sexForced>>
<<if $oldTmpGirlLocation>>
<<set $tmpGirl.location = $oldTmpGirlLocation>>
<<unset $oldTmpGirlLocation>>
<</if>>
<<if $tmpGirlViewBack && !tags($tmpGirlViewBack).includes('girlview')>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<unset $slaveId>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $guestId>>
<<elseif typeof $charId !== 'undefined'>>
<<set $characters[$charId] = $tmpGirl>>
<<unset $charId>>
<</if>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto 'NPC view'>>
<</if>>
<<else>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto 'NPC view'>>
<</if>>
<</if>>
<</link>>
<</if>><<if setup.pregnancyChance($tmpGirl)>>
<<set $tmpGirl.pregnancy_father = 'mc'>>
<<set $tmpGirl.pregnancy = 0>>
<<statsAdd 'girls_impregnated'>>
/* One-off girls who don't live in the settlement can come back later (Event - Stranger returns) */
<<if $tmpGirl.id && !setup.getNpcById($tmpGirl.id)>>
<<set $tmpGirl.pregnancy_encounter_day = $game.day>>
<<if !$tmpGirl.pregnancy_encounter_place>>
<<set _cipBack = String($tmpGirlBack ?? '')>>
<<set $tmpGirl.pregnancy_encounter_place = (_cipBack.includes('Nightclub') ? 'club' : (_cipBack.startsWith('Bar') ? 'bar' : 'unknown'))>>
<</if>>
<<run ($pregnantStrangers ??= []).push(clone($tmpGirl))>>
<</if>>
<</if>>
<<set $tmpGirl.virgin = false>>
<<set $tmpGirl.sexStats ??= {}>>
<<set $tmpGirl.sexStats.creampies ??= 0>>
<<set $tmpGirl.sexStats.creampies++>>
<<if $tmpGirl.corruption < 70>>
<<set $tmpGirl.corruption = Math.min($tmpGirl.corruption + 1, 70)>>
<</if>><center>
<<actionImage $tmpGirl 'flaccid'>>
</center>
<br />
<<=setup.pronounceWho($tmpGirl)>> tries to wake up your dick but without any success. You just can't get it up. <<=setup.pronounceWhat($tmpGirl, true)>> looks a bit disappointed.
<br />
<<set _showSex = false>><<if setup.percentageChance(setup.sexChance($tmpGirl))>>
<center>
<<image 'game/misc/angry_undress.webp'>>
</center>
<br /><br />
Something about the anger between you and your ex transforms into desire, fast and electric, neither of you quite sure when the line got crossed.
<br /><br />
<<set _exDialog = {
highHigh: [
{ first: 'mc', mc: "God, I hate how much I still want you.", npc: "Then stop talking and do something about it, %mcname%." },
{ first: 'mc', mc: "You drive me crazy, you know that?", npc: "Good. I'd hate to be the only one losing my mind here." },
{ first: 'mc', mc: "There's a reason our marriage ended. We shouldn't be doing this.", npc: "Tell that to the part of you that's already got my dress in his hands, %mcname%." },
{ first: 'mc', mc: "I forgot how much I missed this.", npc: "Don't talk. Just don't stop." },
{ first: 'mc', mc: "Every time I see you angry, I just want you more.", npc: "Careful what you wish for, %mcname%. I'm furious right now." },
{ first: 'npc', mc: "Wasn't planning on it.", npc: "You think you can just look at me like that and walk away, %mcname%?" },
{ first: 'npc', mc: "Go ahead. I'll take whatever you give me.", npc: "I should slap you for what you just said." },
{ first: 'npc', mc: "Then let's stop dreaming.", npc: "I still dream about this, you bastard." },
{ first: 'npc', mc: "You won't have to finish that sentence.", npc: "%McName%, if you don't touch me right now I swear—" },
{ first: 'npc', mc: "The worst. Get on the bed.", npc: "This is a terrible idea." }
],
highLow: [
{ first: 'mc', mc: "You know you don't actually want to stay mad at me.", npc: "Don't push your luck, %mcname%... Fine, you can push it a little." },
{ first: 'mc', mc: "I always did like that fire in your eyes when you're angry.", npc: "That's not the compliment you think it is, %mcname%. But I can't resist those eyes..." },
{ first: 'mc', mc: "Tell me you don't still want me, and I'll walk away right now.", npc: "...You know I can't say that." },
{ first: 'mc', mc: "You're not even mad anymore. You're just stalling so you don't have to admit it.", npc: "Admit what, exactly? That I still want you?" },
{ first: 'mc', mc: "Come on. You missed this. Missed me.", npc: "Don't sound so pleased with yourself, %mcname%. Even if you're right..." },
{ first: 'npc', mc: "Come over here and make me.", npc: "Wipe that smug look off your face." },
{ first: 'npc', mc: "You don't look angry. You look like you're losing an argument with yourself.", npc: "I am still angry with you, you know." },
{ first: 'npc', mc: "Didn't ask you to. Just asked you to stop fighting it.", npc: "%McName%, this doesn't mean I've forgiven you." },
{ first: 'npc', mc: "Worked when we were married, didn't it?", npc: "Don't think charm gets you out of everything, %mcname%." },
{ first: 'npc', mc: "I always do, with you.", npc: "Fine. You win. This time." }
],
lowLow: [
{ first: 'mc', mc: "Scared?", npc: "Of you? Don't flatter yourself, %mcname%." },
{ first: 'mc', mc: "Bet you can't even remember how to enjoy this with me.", npc: "Bet I remember better than you'd like." },
{ first: 'mc', mc: "Last chance to walk away.", npc: "From you? Please. The only thing I regret is how good you still make me feel." },
{ first: 'mc', mc: "This doesn't mean anything.", npc: "Good. Let's just enjoy hating each other, then." },
{ first: 'mc', mc: "Prove you're not still hung up on me.", npc: "Watch me ride this hate all the way to the end, %mcname%." },
{ first: 'npc', mc: "I think you talk a lot for someone halfway out of her clothes.", npc: "You think I can't go through with this?" },
{ first: 'npc', mc: "Wouldn't dream of it. Just take your clothes off.", npc: "Don't think this changes anything between us, %mcname%." },
{ first: 'npc', mc: "Funny way of proving it, climbing on top of me.", npc: "I just want to prove I don't feel a damn thing for you anymore, %mcname%." },
{ first: 'npc', mc: "Fine by me. Let's see who scores harder.", npc: "This is purely to settle the score." },
{ first: 'npc', mc: "Get over here and get on your knees, then.", npc: "Neither of us is backing down first, %mcname%, so let's just get it over with." }
],
lowHigh: [
{ first: 'mc', mc: "I can't stand how hot you are.", npc: "Mutual. Now shut up and get over here." },
{ first: 'mc', mc: "Why does wanting you feel like losing?", npc: "Because it is. Doesn't stop me from soaking myself every time you look at me like that, %mcname%." },
{ first: 'mc', mc: "Why do I keep ending up back here, when it always ends the same?", npc: "Because you know I'm the best you've ever had, %mcname%." },
{ first: 'mc', mc: "This is insane. We can't even be in the same room without getting into a screaming match.", npc: "Then get over here and put my mouth to better use." },
{ first: 'mc', mc: "I thought you couldn't stand the sight of me.", npc: "I can't. But my body still remembers exactly what yours feels like, and it's begging." },
{ first: 'mc', mc: "You make me so furious I could scream.", npc: "Funny. I thought you love the way I make you scream, %mcname%." },
{ first: 'npc', mc: "Well get over here and let me show you why...", npc: "I hate that my body still reacts like this around you, %mcname%." },
{ first: 'npc', mc: "Fine. Now bend over and let me remember why I keep coming back.", npc: "If you tell anyone about this, I'll deny it happened." },
{ first: 'npc', mc: "Same page, for once.", npc: "I don't even like you, but god, %mcname%, I need you inside me right now." },
{ first: 'npc', mc: "Didn't say it was, but I'm already hard thinking about it.", npc: "Whatever this is, it's not because I missed you." },
{ first: 'npc', mc: "Then let's be very, very good at it.", npc: "There's something wrong with us, %mcname%, that this is the only thing we're still good at." }
]
}>>
<<set _relHigh = $tmpGirl.relationship >= 50>>
<<set _hornyHigh = $tmpGirl.horny >= 50>>
<<set _exQuadrant = _relHigh ? (_hornyHigh ? 'highHigh' : 'highLow') : (_hornyHigh ? 'lowHigh' : 'lowLow')>>
<<set _exPair = either(_exDialog[_exQuadrant])>>
<<set _exMcLine = _exPair.mc>>
<<set _exNpcLine = _exPair.npc.replace('%McName%', setup.npc.mcName($tmpGirl, true)).replace('%mcname%', setup.npc.mcName($tmpGirl, false))>>
<<if _exPair.first === 'mc'>>
<<you>>
<<=_exMcLine>>
<</you>>
<br />
<<sayNpc $tmpGirl>>
<<=_exNpcLine>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=_exNpcLine>>
<</sayNpc>>
<br />
<<you>>
<<=_exMcLine>>
<</you>>
<</if>>
<br /><br />
<<link 'Continue'>>
<<fuck $tmpGirl>>
<</link>>
<<else>>
<center>
<<if [1,3].includes($tmpGirl.gender)>>
[img[setup.ImagePath+'game/misc/no_fuck_guy.webp']]
<<else>>
[img[setup.ImagePath+'game/misc/no_fuck.webp']]
<</if>>
</center>
<br /><br />
<<=setup.displayName($tmpGirl)>> reminds you that she isn't married to you anymore, and she's not interested.
<br /><br />
<<link 'Leave'>>
<<if $oldTmpGirlLocation>>
<<set $tmpGirl.location = $oldTmpGirlLocation>>
<<unset $oldTmpGirlLocation>>
<</if>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto [[NPC view]]>>
<</if>>
<</link>>
<</if>><center>
<<if [1,3].includes($tmpGirl.gender)>>
[img[setup.ImagePath+'game/misc/no_fuck_guy.webp']]
<<else>>
[img[setup.ImagePath+'game/misc/no_fuck.webp']]
<</if>>
</center>
<br /><br />
<<if $player?.baseManagement?.noIncest && setup.family.getRelationToMC($tmpGirl)>>
<<set _mcRelFromNpc = ({'daughter':'father','son':'father','mother':'son','father':'son','sister':'brother','brother':'brother','granddaughter':'grandfather','grandson':'grandfather'})[setup.family.getRelationToMC($tmpGirl)] ?? setup.family.getRelationToMC($tmpGirl)>>
No, you're my <<=_mcRelFromNpc>>, sex with family members is forbidden.
<br /><br />
<strong>Incest is prohibited by settlement policy</strong>
<<elseif $tmpGirl.likesGuys>>
<<if $tmpGirl.married && $tmpGirl.family && $tmpGirl.family.husband !== 'mc'>>
You know that I am married to someone else. I don't want to do it.
<<else>>
<<=setup.displayName($tmpGirl)>> tells you that <<=setup.pronounceWhat($tmpGirl)>>'s not in the mood right now and just wants to be alone.
<</if>>
<br /><br />
<strong>Not enough relationship or <<=setup.pronounceWhat($tmpGirl)>>'s not in the mood</strong>
<<else>>
<<=setup.displayName($tmpGirl)>> tells you that you are not <<=setup.pronounceWhos($tmpGirl)>> type and hopes you understand.
<br /><br />
<strong><<=setup.displayName($tmpGirl)>> is not attracted to men</strong>
<</if>>
<br /><br />
<<if setup.percentageChance(setup.sexChance($tmpGirl))>>
<<=setup.displayName($tmpGirl)>> notices your boner and suggestions that maybe you want a quick blowjob to calm it down.
<br /><br />
<<if [1,3].includes($tmpGirl.gender)>>
<<set _anon = '/people/anonguy.png'>>
<<else>>
<<set _anon = '/people/anongirl.png'>>
<</if>>
<<say $tmpGirl.name setup.ImagePath+_anon>>
I am really not in the mood right now but how about I just give you a quick head?
<</say>>
<br /><br />
<<linkreplace 'Accept blowjob'>>
<<run $('#option2').hide()>>
<center>
<<if [1,3].includes($tmpGirl.gender)>>
[img[setup.ImagePath+'places/cabin/fuck_no_blowjob_guy.webp']]
<<else>>
[img[setup.ImagePath+'places/cabin/fuck_no_blowjob.webp']]
<</if>>
</center>
Without taking of <<=setup.pronounceWhos($tmpGirl)>> clothes, <<=setup.displayName($tmpGirl)>> drops on <<=setup.pronounceWhos($tmpGirl)>> knees, unzips your pants and pulls out your already hard dick. As <<=setup.pronounceWhat($tmpGirl)>> wants to end it fast, <<=setup.pronounceWhat($tmpGirl)>> immediately starts sucking and jerking together. After few minutes you cum and <<=setup.pronounceWhat($tmpGirl)>> gets up and continues to do whatever <<=setup.pronounceWhat($tmpGirl)>> did before that.
<br /><br />
<<horny_reset>>
<</linkreplace>>
<</if>>
<div id="option2">
<<set _linkName = 'Force ' + setup.pronounceWho($tmpGirl)>>
<<link `_linkName`>>
<<set $sexForced = true>>
<<fuck $tmpGirl>>
<<set $wasRaped = true>>
<</link>>
</div>
<<link 'Leave'>>
<<if $oldTmpGirlLocation>>
<<set $tmpGirl.location = $oldTmpGirlLocation>>
<<unset $oldTmpGirlLocation>>
<</if>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto [[NPC view]]>>
<</if>>
<</link>><<if $tiredNoTime>>
You feel too tired to continue, it has been a long day.
<<else>>
You have run out of stamina and need a little rest.
<</if>>
<br /><br />
<<link 'Back'>>
<<unset $tiredNoTime>>>
<<if typeof $tmpGirl2 !== 'undefined'>>
<<if typeof $slaveId2 !== 'undefined'>>
<<set $slaves[$slaveId2] = $tmpGirl2>>
<<elseif typeof $guestId2 !== 'undefined'>>
<<set $guests[$guestId2] = $tmpGirl2>>
<<elseif typeof $charId2 !== 'undefined'>>
<<set $characters[$charId2] = $tmpGirl2>>
<</if>>
<</if>>
<<unset $slaveId2, $guestId2, $charId2, $tmpGirl2>>
<<unset $sexAction, $sexForced>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<<elseif typeof $charId !== 'undefined'>>
<<set $characters[$charId] = $tmpGirl>>
<</if>>
<<if $oldTmpGirlLocation>>
<<set $tmpGirl.location = $oldTmpGirlLocation>>
<<unset $oldTmpGirlLocation>>
<</if>>
<<if $tmpGirlBack>>
<<goto $tmpGirlBack>>
<<else>>
<<goto 'NPC view'>>
<</if>>
<</link>><<include 'Mc fuck actions'>>
<div id="action-scene">
<<if typeof $sexAction !== 'undefined'>>
<<set $tmpGirl.quests ??= {}>>
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<<addmins 5>>
<<energy -5>>
<<if setup.perkHas('drunk')>>
<<energy -5>>
<</if>>
<<set _hornyGained = (_sexActions[$sexAction]?.horny ?? 0)>>
<<if !_canFuck>>
<<set _hornyGained = 0>>
<</if>>
<<set _maxMcHorny = (_sexActions[$sexAction]?.maxMcHorny ?? null)>>
<<if (_maxMcHorny === null || $player.horny < _maxMcHorny)>>
<<set _hornyIncrease = setup.sex.calcHornyIncrease($tmpGirl, _hornyGained, $sexAction)>>
<<horny _hornyIncrease>>
<</if>>
<<set _showSex = true>>
/* Call once so both top and bottom button renders see the same _askedToCumInside value */
<<if $player.horny >= 100 && !$tmpGirl.gender>>
<<include 'asks to cum inside'>>
<</if>>
/* History: first intimate moment with player (one-time, deduped in helper) */
<<run setup.npc.addHistory($tmpGirl, 'first_sex_mc', { with: 'mc' })>>
<<if $sexAction === 'anal'>>
<<include 'Mc fuck anal'>>
<</if>>
<<if $sexAction === 'pussy'>>
<<include 'Mc fuck pussy'>>
<</if>>
<<if !_canFuck && ['bj','handjob'].includes($sexAction)>>
<<include 'MC fuck flaccid'>>
<</if>>
<<if _showSex>>
<<if settings.buttons_on_top>>
<<include 'Mc fuck buttons'>>
<</if>>
<<actionImage $tmpGirl $sexAction>>
<br />
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive>>
<<set _npcHornyGained = setup.sex.calcNpcHornyIncrease($tmpGirl, (_sexActions[$sexAction].hornyGive ?? 20), $sexAction)>>
<<set _maxNpcHorny = (_sexActions[$sexAction]?.maxHorny ?? null)>>
<<if (_maxNpcHorny === null || $tmpGirl.horny < _maxNpcHorny)>>
<<set _npcHornyIncreased = true>>
<<set $tmpGirl.horny = Math.min($tmpGirl.horny + _npcHornyGained, 100)>>
<</if>>
<</if>>
<<set _npcHorny = clone($tmpGirl.horny)>>
<<showmeter '$npcHornyBar' '_npcHorny / 100'>>
<<updatemeter '$npcHornyBar' `_npcHorny / 100`>>
<br />
<<if $sexForced && !$tmpGirl.traits.includes('masochist')>>
<<set $tmpGirl.sub = Math.min($tmpGirl.sub + 2, 100)>>
<<if !($tmpGirl.basementVoluntary ?? false)>>
<<set
$tmpGirl.relationship = Math.max($tmpGirl.relationship - 5, -100),
$tmpGirl.happy = Math.max($tmpGirl.happy - 5, -100)
>>
<<=setup.pronounceWhat($tmpGirl, true)>> asks you to leave <<=setup.pronounceWho($tmpGirl)>> alone!<strong> (Submission + 2, Happy / Relationship - 5)</strong>
<<else>>
<<=setup.pronounceWhat($tmpGirl, true)>> goes along with it.<strong> (Submission + 2)</strong>
<</if>>
<<else>>
<<set
$tmpGirl.relationship = Math.min($tmpGirl.relationship + 1, 100),
$tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100)
>>
<<if ($tmpGirl.basementVoluntary ?? false)>>
<<set $tmpGirl.sub = Math.min(($tmpGirl.sub ?? 0) + 1, 100)>>
<<=setup.pronounceWhat($tmpGirl, true)>> welcomes the attention.<strong> (Happy / Relationship + 1, Submission + 1)</strong>
<<else>>
<<=setup.pronounceWhat($tmpGirl, true)>> welcomes the attention.<strong> (Happy / Relationship + 1)</strong>
<</if>>
<</if>>
<br />
<</if>>
<<if (_sexActions[$sexAction] ?? false) && $tmpGirl.corruption < _sexActions[$sexAction].maxCorruption>>
<<set $tmpGirl.corruption = Math.min($tmpGirl.corruption + 1, 100)>>
<<=setup.pronounceWhat($tmpGirl, true)>> is getting more corrupted.<strong> (Corruption + 1)</strong>
<br />
<</if>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive && _npcHornyIncreased>>
<<=setup.pronounceWhos($tmpGirl, true)>> body reacts positively to you. <strong>(Horny + <<=_npcHornyGained>>)</strong>
<br />
<</if>>
<<if $tmpGirl.horny >= 100>>
<<include 'Mc fuck orgasm'>>
<<=setup.displayName($tmpGirl, true)>> has an orgasm!<strong> (Happy / Relationship + 5)</strong>
<br />
<<set
$tmpGirl.relationship = Math.min($tmpGirl.relationship + 5, 100),
$tmpGirl.happy = Math.min($tmpGirl.happy + 5, 100)>>
<<set $tmpGirl.orgasms ??= 0>>
<<set $tmpGirl.orgasms++>>
<<run setup.sex.giveAfterglow($tmpGirl)>>
<</if>>
<<if (SugarCube?.settings?.sexReactions ?? true) && !$sexForced && ($tmpGirl.relationship >= 40 || $tmpGirl.location === 'nightclub') && setup.percentageChance(30) && _showSex>>
<br />
<<include 'Reactions'>>
<br />
<<elseif (SugarCube?.settings?.sexReactions ?? true) && $sexForced && setup.percentageChance(25) && _showSex>>
<br />
<<include 'badReactions'>>
<br />
<</if>>
<<if _sexActions[$sexAction]?.stats>>
<<if setup.percentageChance(70)>>
<<set $tmpGirl[_sexActions[$sexAction].stats]++>>
<</if>>
<<if typeof $sexStats[$sexAction] === 'undefined'>>
<<set
$tmpGirl.statsSex ??= {},
$tmpGirl.statsSex[$sexAction] ??= 0,
$tmpGirl.statsSex[$sexAction]++,
$sexStats[$sexAction] = true
>>
<</if>>
<</if>>
<<if $sexAction === 'pussy' || $sexAction === 'pussy_fisting'>>
<<if $tmpGirl.virgin>>
<<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl.sub = Math.min(Math.max($tmpGirl.sub ?? 0, 40), 100)>>
<<set $tmpGirl.corruption = Math.min(($tmpGirl.corruption ?? 0) + 20, 100)>>
<</if>>
<<set $tmpGirl.virgin = false>>
<</if>>
<<include 'Mc fuck traits'>>
<<if $sexAction == 'cum_in_pussy'>>
<<include 'Mc fuck cum in pussy'>>
<</if>>
<<if ($sexAction == 'cum_on_face' || $sexAction == 'cum_in_mouth') && setup.percentageChance(30) && !$sexForced>>
<<include 'Mc fuck cum on face'>>
<</if>>
<<include 'Mc fuck - use lube'>>
<<if $tmpGirl.horny >= 100>>
<<script>>
setTimeout(function () {
variables().tmpGirl.horny = 0;
}, 400);
<</script>>
<</if>>
<</if>>
/* Once per render, not per button include: the buttons passage is included twice when buttons_on_top is on */
<<if $player.horny >= 100 && typeof $sexAction !== 'undefined'>>
<<energy +5>>
<<set $player.sexp++>>
<</if>>
<br />
<<include 'Mc fuck buttons'>>
</div><br />
<<if $tmpGirl.gender == 0>>
<<if ($tmpGirl.traits ?? []).includes('squirter')>>
<<if $sexAction == 'pussy'>>
<<actionImage $tmpGirl 'squirt'>>
<<elseif $sexAction == 'anal'>>
<<actionImage $tmpGirl 'squirt_anal'>>
<<elseif $sexAction == 'anal_fingering'>>
<<actionImage $tmpGirl 'squirt_anal_fingering'>>
<<elseif $sexAction == 'pussy_lick'>>
<<actionImage $tmpGirl 'squirt_lick'>>
<<elseif $sexAction == 'pussy_fingering'>>
<<actionImage $tmpGirl 'squirt_fingering'>>
<</if>>
<<else>>
<<if $sexAction == 'pussy'>>
<<actionImage $tmpGirl 'orgasm_pussy'>>
<<elseif $sexAction == 'sn'>>
<<actionImage $tmpGirl 'sn_orgasm'>>
<<elseif $sexAction == 'pussy_lick'>>
<<actionImage $tmpGirl 'orgasm_pussy_lick'>>
<<elseif $sexAction == 'anal'>>
<<actionImage $tmpGirl 'orgasm_anal'>>
<<elseif $sexAction == 'pussy_fingering'>>
<<actionImage $tmpGirl 'fingering_orgasm'>>
<</if>>
<</if>>
<<elseif $tmpGirl.gender == 1>>
<<if $sexAction == 'anal'>>
<<actionImage $tmpGirl 'anal_reverse_cum' 'no-text'>>
<<elseif $sexAction == 'anal_reverse'>>
<<actionImage $tmpGirl 'cum_in_ass' 'no-text'>>
<<elseif $sexAction == 'bj_reverse'>>
<<actionImage $tmpGirl 'cum_on_face' 'no-text'>>
<</if>>
<<elseif $tmpGirl.gender == 2>>
<<if $sexAction == 'anal'>>
<<actionImage $tmpGirl 'orgasm_anal'>>
<<elseif $sexAction == 'anal_reverse'>>
<<actionImage $tmpGirl 'orgasm_anal_reverse'>>
<<elseif $sexAction == 'bj_reverse'>>
<<actionImage $tmpGirl 'orgasm_bj_reverse'>>
<</if>>
<</if>>
<br /><<if !$fuck.pussy>>
<center>
<<actionImage $tmpGirl 'pussy_insert'>>
</center>
<br /><br />
You slowly slid your hard dick into <<=setup.displayName($tmpGirl)>>'s pussy.
<br /><br />
<<set $fuck.pussy = true>>
<</if>><<if typeof $tmpGirl.traitsLocked === 'undefined'>>
<<set $tmpGirl.traitsLocked = setup.getRandomTraits($tmpGirl, 2, $tmpGirl.traits ?? [])>>
<</if>>
<<if $sexAction == 'anal' && $tmpGirl.anal >= 100 && !$tmpGirl.traits.includes('analslut') && setup.percentageChance(5) && !$tmpGirl.traitsLocked.includes('analslut')>>
<<run $tmpGirl.traits.push('analslut')>>
<strong><<= setup.displayName($tmpGirl)>> got anal slut trait!</strong>
<br />
<<elseif $sexAction == 'bj' && $tmpGirl.bj >= 100 && !$tmpGirl.traits.includes('cumslut') && setup.percentageChance(5) && !$tmpGirl.traitsLocked.includes('cumslut')>>
<<run $tmpGirl.traits.push('cumslut')>>
<strong><<= setup.displayName($tmpGirl)>> got cum slut trait!</strong>
<br />
<<elseif $sexAction == 'dp' && $tmpGirl.dp >= 100 && !$tmpGirl.traits.includes('deepthroat') && setup.percentageChance(5) && !$tmpGirl.traitsLocked.includes('deepthroat')>>
<<run $tmpGirl.traits.push('deepthroat')>>
<strong><<= setup.displayName($tmpGirl)>> got deepthroat trait!</strong>
<br />
<<elseif $sexAction == 'pussy' && $tmpGirl.pussy >= 100 && !$tmpGirl.traits.includes('nymphomaniac') && setup.percentageChance(5) && !$tmpGirl.traitsLocked.includes('nymphomaniac')>>
<<run $tmpGirl.traits.push('nymphomaniac')>>
<strong><<= setup.displayName($tmpGirl)>> got nymphomaniac trait!</strong>
<br />
<</if>><<set _p2 = ($tmpGirl2.nickName ?? '') !== '' ? $tmpGirl2.nickName : $tmpGirl2.name>>
<<set _p3 = ($tmpGirl3.nickName ?? '') !== '' ? $tmpGirl3.nickName : $tmpGirl3.name>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<if $tmpGirl.horny >= 100 && setup.percentageChance(90)>>
<<set _feralReaction = either([
"shudders with a sharp, animal cry, bucking helplessly",
"grabs " + _p2 + " by the wrist as the orgasm tears through " + setup.pronounceWho($tmpGirl) + ", making a raw, keening sound",
"collapses forward, gasping in tight, broken breaths, not making words",
"presses " + setup.pronounceWhos($tmpGirl) + " face into " + _p2 + "'s shoulder and howls through gritted teeth",
"releases a long, desperate wail and grips onto " + _p2 + " and " + _p3 + " at once, shaking so hard " + setup.pronounceWhat($tmpGirl) + " can't hold still"
])>>
<<elseif $tmpGirl.horny >= 80 && setup.percentageChance(50)>>
<<set _feralReaction = either([
"arches back with a sharp, hungry gasp, hips rolling hard",
"makes a low, insistent sound and grinds faster, jaw clenched",
"hooks a hand in " + _p2 + "'s direction with a short, pleading whine",
"glances between " + _p2 + " and " + _p3 + " with glazed, unfocused eyes, rocking faster",
"presses into " + _p2 + " with a breathless, urgent sound, body coiled tight"
])>>
<<elseif $tmpGirl.horny >= 25>>
<<set _feralReaction = either([
"rolls " + setup.pronounceWhos($tmpGirl) + " hips into the rhythm with a low, climbing moan — body getting louder and less careful",
"reaches back to grab at whoever is closest, grinding against them",
"turns to " + _p2 + " with flushed cheeks and a sharp, breathy sound, panting heavily in growing pleasure",
"makes a rising string of sounds, each one a beat higher than the last, pushing back harder into every movement",
"grabs at " + _p2 + " and " + _p3 + " in turn, pulling them closer — " + setup.pronounceWhat($tmpGirl) + " does not want any of this to slow down"
])>>
<<else>>
<<set _feralReaction = either([
"makes a small, startled sound as the sensation registers — then presses in closer, wanting more of it",
"exhales in a slow, drawn-out breath, shoulders dropping, body already starting to warm and loosen",
"reaches for " + _p2 + " on instinct, drawn by the heat, a quiet, pleased sound in " + setup.pronounceWhos($tmpGirl) + " throat",
"tips " + setup.pronounceWhos($tmpGirl) + " chin up and makes a short, open-mouthed sound, lighting up at the touch",
"flicks " + setup.pronounceWhos($tmpGirl) + " gaze between " + _p2 + " and " + _p3 + " — something hungry starting behind " + setup.pronounceWhos($tmpGirl) + " eyes"
])>>
<</if>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<<elseif $tmpGirl.horny >= 80 && $tmpGirl.horny < 100 && setup.percentageChance(50)>>
<<sayNpc $tmpGirl>>
<<=either([
setup.npc.mcName($tmpGirl, 1) + ", " + _p2 + ", " + _p3 + " — you're gonna make me cum!",
"Don't stop, " + setup.npc.mcName($tmpGirl) + ". I'm almost there...",
"All three of us at once, " + setup.npc.mcName($tmpGirl) + "... gods, you're incredible!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 100 && setup.percentageChance(90)>>
<<sayNpc $tmpGirl>>
<<=either([
"I'm cumming, " + setup.npc.mcName($tmpGirl) + "!",
"YES! YES! " + setup.npc.mcName($tmpGirl, 1) + " — I'm cumming!",
setup.npc.mcName($tmpGirl, 1) + "! " + _p2 + ", " + _p3 + "... I'm — I'm cumming!!",
"*back arching* Nnghh, he's making me cum so hard!!",
"*shaking* Ahh, yes " + setup.npc.mcName($tmpGirl) + "!"
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmhhh... who's the better kisser, " + _p2 + " or " + _p3 + "?",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ", " + _p2 + ", " + _p3 + "... I love all of you...",
"Share him, girls. There's enough of " + setup.npc.mcName($tmpGirl) + " for all of us."
])>>
<</sayNpc>>
<<elseif $sexAction === 'nipple_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + setup.npc.mcName($tmpGirl) + ", don't forget " + _p2 + " and " + _p3 + " have nipples too...",
"*arching back* Oh yes, right there, " + setup.npc.mcName($tmpGirl) + "...",
"Ahh, " + _p2 + ", his tongue feels incredible. You'll want a turn.",
"Mmmm... " + setup.npc.mcName($tmpGirl) + ", you make me feel so good..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_fingering'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... right there...",
"Ahh! " + _p2 + ", " + _p3 + " — feel how wet he makes me!",
"Oooh, " + setup.npc.mcName($tmpGirl) + ", those fingers... don't stop.",
"*rocking hips* Mmmm, " + setup.npc.mcName($tmpGirl) + ", so good..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_fingering'>>
<<sayNpc $tmpGirl>>
<<=either([
"Oh, that's naughty, " + setup.npc.mcName($tmpGirl) + "... but I like it.",
"Mmmm, " + setup.npc.mcName($tmpGirl) + ", I like when you play back there.",
"*wiggling* " + _p2 + ", " + _p3 + "... are you watching this?"
])>>
<</sayNpc>>
<<elseif $sexAction === 'dp'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Nng, you feel so good in my throat, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmmhh, I love taking the whole thing! " + _p2 + ", " + _p3 + " — your turn next.",
"Nnghh, yes, pull my hair while you fill my throat, " + setup.npc.mcName($tmpGirl) + "!",
"*gasping* That's so deep... " + _p2 + "... he's incredible..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Six hands feel better than two, don't you think, " + setup.npc.mcName($tmpGirl) + "?",
"*bites her lip* Look how hard we've made him, " + _p2 + "...",
"Do our hands feel good, " + setup.npc.mcName($tmpGirl) + "? All three of us working together..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmh.. let us all have a taste, " + setup.npc.mcName($tmpGirl) + "...",
"Move over, " + _p2 + ". My turn...",
"Do you like three mouths on you, " + setup.npc.mcName($tmpGirl) + "?",
"Mmmm, " + _p3 + ", look how deep I can take him..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
setup.npc.mcName($tmpGirl, 1) + ", " + _p2 + " — your tongues feel amazing!",
"Ahh! Right there, " + setup.npc.mcName($tmpGirl) + "...",
"Do I taste good, " + setup.npc.mcName($tmpGirl) + "? Tell " + _p2 + " and " + _p3 + " while you're at it."
])>>
<</sayNpc>>
<<elseif $sexAction === 'sn'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmph... " + _p2 + ", " + _p3 + ", you should try this...",
"Ahh! " + setup.npc.mcName($tmpGirl) + "'s tongue and his cock at the same time...",
"Mmh, " + _p3 + ", come here and let me show you what he does to me..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy'>>
<<if !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father ?? '') === 'mc' && setup.percentageChance(30)>>
<<sayNpc $tmpGirl>>
<<=either([
"I know it's wrong, " + _p2 + "... but daddy feels so right...",
"Do you like watching daddy fuck me, " + _p2 + ", " + _p3 + "?"
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + _p2 + ", " + _p3 + " — you should feel how good " + setup.npc.mcName($tmpGirl) + "'s cock feels.",
"Yes, " + setup.npc.mcName($tmpGirl) + ", take all three of us, you stallion!",
"Your turn next, " + _p2 + ". He feels so much better than a toy.",
"Mmmm... deeper, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>>
<<elseif $sexAction === 'anal' && $tmpGirl.anal >= 20>>
<<sayNpc $tmpGirl>>
<<=either([
"You feel so good in my ass, " + setup.npc.mcName($tmpGirl) + "!",
"It's so big... I don't know if " + _p2 + " and " + _p3 + " can take it like I do.",
"Mmph... gods, " + _p2 + ", you should feel how deep " + setup.npc.mcName($tmpGirl) + " fills me..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal' && $tmpGirl.anal < 20 && ($tmpGirl.traits ?? []).includes('masochist')>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh! Ungh! " + setup.npc.mcName($tmpGirl, 1) + ", it hurts — but don't stop!",
"Ow! It's too tight, " + setup.npc.mcName($tmpGirl) + "! Give me more...",
"Mmph! Keep going! " + _p2 + ", " + _p3 + " — watch me take it...",
"Hahh, stretch me out, " + setup.npc.mcName($tmpGirl) + ". I deserve it."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, warm... " + _p2 + ", " + _p3 + ", look what he did to me.",
"Yes, " + setup.npc.mcName($tmpGirl) + ", cover my chest... I earned it.",
"*giggles* All three of us should take turns getting this treatment.",
"Ooh, " + setup.npc.mcName($tmpGirl) + ", so much... you really liked these, didn't you?"
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_pussy' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmhh, it feels so nice and warm, doesn't it " + _p2 + "...",
"Yes, " + setup.npc.mcName($tmpGirl) + ", mark all three of us...",
"*giggles* I think I need a bath — again. " + _p3 + ", your turn next.",
"You've marked us, " + setup.npc.mcName($tmpGirl) + "... we're all yours..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'triple_facial'>>
<<sayNpc $tmpGirl>>
<<=either([
"Do we look pretty, " + setup.npc.mcName($tmpGirl) + "? All three of us?",
"Mmmmhh, it feels so nice and warm, doesn't it " + _p2 + "...",
"Yes, " + setup.npc.mcName($tmpGirl) + ", paint all three of us with your cum...",
"You've marked us, " + setup.npc.mcName($tmpGirl) + "... we're all yours..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_mouth'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmm... doesn't " + setup.npc.mcName($tmpGirl) + " taste so good, " + _p2 + "?",
"Do you want me to swallow, " + setup.npc.mcName($tmpGirl) + ", or share it with " + _p2 + " and " + _p3 + "?",
"Mmmh, " + _p2 + ", " + _p3 + " — share it with me..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy'>>
<<if !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father ?? '') === 'mc' && setup.percentageChance(30)>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasps* " + _p2 + ", " + _p3 + " — daddy just came inside me! He's so naughty...",
"Daddy! You like letting them watch you breed your girl...?"
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + _p2 + ", " + _p3 + " — he's cumming! Mmmmh, " + setup.npc.mcName($tmpGirl) + ", it feels so warm filling me...",
"Sorry, girls. It's my turn to feel " + setup.npc.mcName($tmpGirl) + "'s heat inside me.",
"Oh, he's cumming so hard. It feels amazing!"
])>>
<</sayNpc>>
<</if>>
<<elseif $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasps* " + _p2 + ", " + _p3 + " — he's cumming so deep inside me!",
"Mmmmhh, " + _p2 + ", you should feel how good " + setup.npc.mcName($tmpGirl) + " feels pumping into my ass...",
"Oh " + setup.npc.mcName($tmpGirl) + ", I feel it throbbing so strong inside me..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "... mmmh, " + _p2 + ", " + _p3 + "... yes...",
"Don't stop, " + setup.npc.mcName($tmpGirl) + ". All three of us love it like this!",
"Oh yes, " + setup.npc.mcName($tmpGirl) + "! Give us more...",
"Mmmmhh... " + setup.npc.mcName($tmpGirl) + ", " + _p2 + ", " + _p3 + "... you're all so good..."
])>>
<</sayNpc>>
<</if>><<set _canFuck = !setup.perkHas('temp_impotence')>>
/* foursome_ff_ = MC + 3 females. Future: foursome_fm_ (MC+2F+1M), foursome_mm_ (MC+1F+2M), foursome_fff_ (4F, MC watches) */
<<set _prefix = 'foursome_ff_'>>
<<set _sexActions = {
kissing: {
title: 'Kissing',
minAction: 0,
horny: 1,
maxCorruption: 10,
positive: $tmpGirl.relationship > 15,
hornyGive: 2,
positive2: $tmpGirl2.relationship > 15,
hornyGive2: 2,
positive3: $tmpGirl3.relationship > 15,
hornyGive3: 2,
maxMcHorny: 20
},
nipple_lick: {
title: 'Lick nipples',
minAction: 5,
horny: 1,
maxCorruption: 20,
positive: true,
hornyGive: ($tmpGirl.traits ?? []).includes('sensitive_tits') ? 15 : 7,
maxMcHorny: 30
},
pussy_fingering: {
title: 'Finger pussy',
minAction: 5,
horny: 5,
maxCorruption: 25,
show: !$tmpGirl.chastityBelt,
positive: true,
hornyGive: ($tmpGirl.traits ?? []).includes('analslut') ? 5 : 20,
positive2: true,
hornyGive2: ($tmpGirl2.traits ?? []).includes('analslut') ? 5 : 10,
positive3: true,
hornyGive3: ($tmpGirl3.traits ?? []).includes('analslut') ? 5 : 10,
maxMcHorny: 60
},
handjob: {
title: 'Handjob',
minAction: 5,
horny: 20,
maxCorruption: 20
},
footjob: {
title: 'Footjob',
minAction: 20,
horny: 20,
maxCorruption: 30
},
titjob: {
title: 'Titjob',
minAction: 25,
horny: 20,
maxCorruption: 40,
positive: ($tmpGirl.traits ?? []).includes('sensitive_tits'),
hornyGive: 10,
show: [0, 2].includes($tmpGirl.gender) && ['medium', 'big'].includes($tmpGirl.breasts ?? '')
},
bj: {
title: 'Blowjob',
minAction: 30,
horny: 25,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut') || ($tmpGirl2.traits ?? []).includes('cumslut') || ($tmpGirl3.traits ?? []).includes('cumslut'),
stats: 'bj',
stats2: 'bj',
stats3: 'bj'
},
dp: {
title: 'Deepthroat',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: ($tmpGirl.traits ?? []).includes('deepthroat') && $tmpGirl.horny <= 79,
orConditionTrue: ($tmpGirl.traits ?? []).includes('deepthroat'),
stats: 'dp'
},
cum_throat: {
title: 'Cum in throat',
show: false,
positive: ($tmpGirl.traits ?? []).includes('cumslut') || ($tmpGirl.traits ?? []).includes('deepthroat')
},
pussy_lick: {
title: 'Lick pussy',
minAction: 30,
horny: 3,
maxCorruption: 40,
positive: true,
hornyGive: ($tmpGirl.traits ?? []).includes('analslut') ? 5 : 20,
positive2: true,
hornyGive2: ($tmpGirl2.traits ?? []).includes('analslut') ? 5 : 15,
maxMcHorny: 60
},
sn: {
title: 'Sixty-nine',
minAction: 30,
horny: 20,
maxCorruption: 50,
show: _canFuck,
positive: true,
hornyGive: ($tmpGirl.traits ?? []).includes('analslut') ? 5 : 20,
positive2: true,
hornyGive2: ($tmpGirl2.traits ?? []).includes('analslut') ? 5 : 20,
positive3: true,
hornyGive3: ($tmpGirl3.traits ?? []).includes('analslut') ? 5 : 15,
orConditionTrue: ($tmpGirl2.traits ?? []).includes('cumslut'),
stats2: 'bj'
},
anal_fingering: {
title: 'Finger ass',
minAction: 60,
horny: 2,
maxCorruption: 70,
positive: $tmpGirl.anal >= 10,
hornyGive: ($tmpGirl.traits ?? []).includes('analslut') ? 10 : 2,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
maxMcHorny: 60,
stats: 'anal'
},
pussy: {
title: 'Fuck pussy',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: !$tmpGirl.virgin,
hornyGive: ($tmpGirl.traits ?? []).includes('analslut') ? 5 : 20,
positive2: true,
hornyGive2: ($tmpGirl2.traits ?? []).includes('analslut') ? 5 : 15,
positive3: true,
hornyGive3: ($tmpGirl3.traits ?? []).includes('analslut') ? 5 : 10,
stats: 'pussy'
},
anal: {
title: 'Fuck ass',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: ($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal'
},
/* cumshots */
cum_on_face: {
title: 'Cum on face',
show: false
},
cum_in_mouth: {
title: 'Cum in mouth',
show: false
},
cum_in_pussy: {
title: 'Cum in pussy',
show: false,
positive: true,
stats: 'pussy'
},
cum_on_tits: {
title: 'Cum on tits',
show: false
},
cum_on_stomach: {
title: 'Cum on stomach',
show: false
},
cum_on_pussy: {
title: 'Cum on pussy',
show: false
},
cum_on_ass: {
title: 'Cum on ass',
show: false
},
cum_on_back: {
title: 'Cum on back',
show: false
},
cum_in_ass: {
title: 'Cum in ass',
show: false
},
triple_facial: {
title: 'Triple facial',
show: false
},
handjob_cum: {
title: 'Handjob cum',
show: false
},
footjob_cum: {
title: 'Footjob cum',
show: false
}
}>><<set $sexForced = false>>
<<if ($tmpGirl.traits ?? []).includes('nymphomaniac')>>
<<set _actionMax = 100>>
<<else>>
<<set _actionMax = Math.max($tmpGirl.relationship, $tmpGirl.horny)>>
<<set _actionMax = Math.min(_actionMax, $tmpGirl.corruption)>>
<<set _actionMax = Math.max(_actionMax, $tmpGirl.sub, $tmpGirl.drunk ?? 0)>>
<</if>>
<<if ($tmpGirl2.traits ?? []).includes('nymphomaniac')>>
<<set _actionMax2 = 100>>
<<else>>
<<set _actionMax2 = Math.max($tmpGirl2.relationship, $tmpGirl2.horny)>>
<<set _actionMax2 = Math.min(_actionMax2, $tmpGirl2.corruption)>>
<<set _actionMax2 = Math.max(_actionMax2, $tmpGirl2.sub, $tmpGirl2.drunk ?? 0)>>
<</if>>
<<if ($tmpGirl3.traits ?? []).includes('nymphomaniac')>>
<<set _actionMax3 = 100>>
<<else>>
<<set _actionMax3 = Math.max($tmpGirl3.relationship, $tmpGirl3.horny)>>
<<set _actionMax3 = Math.min(_actionMax3, $tmpGirl3.corruption)>>
<<set _actionMax3 = Math.max(_actionMax3, $tmpGirl3.sub, $tmpGirl3.drunk ?? 0)>>
<</if>>
<<set _actionMax = Math.min(_actionMax, _actionMax2, _actionMax3)>>
<<if $player.horny >= 100 && typeof $sexAction !== 'undefined'>>
<<if ['handjob'].includes($sexAction)>>
<<link 'Handjob cum'>>
<<set $sexAction = 'handjob_cum'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction === 'footjob'>>
<<link 'Footjob cum'>>
<<set $sexAction = 'footjob_cum'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction === 'titjob'>>
<<link 'Cum on tits'>>
<<set $sexAction = 'cum_on_tits'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction === 'dp'>>
<<link 'Cum in throat'>>
<<horny_reset>>
<<set $sexAction = 'cum_throat'>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction === 'pussy'>>
<<link 'Cum in pussy'>>
<<horny_reset>>
<<set $sexAction = 'cum_in_pussy'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on pussy'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_pussy'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on stomach'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_stomach'>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction === 'anal'>>
<<link 'Cum in ass'>>
<<horny_reset>>
<<set $sexAction = 'cum_in_ass'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on ass'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_ass'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on back'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_back'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<link 'Cum on face'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_face'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum in mouth'>>
<<horny_reset>>
<<set $sexAction = 'cum_in_mouth'>>
<<goto `passage()`>>
<</link>>
<<link 'Triple facial'>>
<<horny_reset>>
<<set $sexAction = 'triple_facial'>>
<<goto `passage()`>>
<</link>>
<<else>>
<<if $player.energy >= 5>>
<div id="action-buttons">
<<for _sexActionKey, _sexAction range _sexActions>>
<<capture _sexActionKey, _sexAction>>
<<if (_sexAction.show ?? true) && (_actionMax >= _sexAction.minAction || _sexAction.orConditionTrue)>>
<<set _linkName = '<span data-balloon-length="medium" data-balloon-pos="up-left" aria-label="' + _sexAction.title + '">[img[setup.ImagePath+"game/misc/actions/"+_sexActionKey+".png"]]</span>'>>
<<link _linkName>>
<<set $sexAction = _sexActionKey>>
<<goto `passage()`>>
<</link>>
<</if>>
<</capture>>
<</for>>
</div>
<br />
<</if>>
/* Focus on Girl 2 */
<<set _focusLink2 = 'Focus on ' + $tmpGirl2.name>>
<<link `_focusLink2`>>
<<set _saveGirl = $tmpGirl, _saveId1Type = typeof $slaveId !== 'undefined' ? 'slave' : typeof $charId !== 'undefined' ? 'char' : 'guest'>>
<<set _saveId1 = $slaveId ?? $charId ?? $guestId>>
<<set _saveId2Type = typeof $slaveId2 !== 'undefined' ? 'slave' : typeof $charId2 !== 'undefined' ? 'char' : 'guest'>>
<<set _saveId2 = $slaveId2 ?? $charId2 ?? $guestId2>>
/* save both back */
<<if _saveId1Type === 'slave'>><<set $slaves[$slaveId] = $tmpGirl>><<elseif _saveId1Type === 'char'>><<set $characters[$charId] = $tmpGirl>><<else>><<set $guests[$guestId] = $tmpGirl>><</if>>
<<if _saveId2Type === 'slave'>><<set $slaves[$slaveId2] = $tmpGirl2>><<elseif _saveId2Type === 'char'>><<set $characters[$charId2] = $tmpGirl2>><<else>><<set $guests[$guestId2] = $tmpGirl2>><</if>>
/* reassign IDs: slot1 gets old slot2 ID, slot2 gets old slot1 ID */
<<unset $slaveId, $guestId, $charId, $slaveId2, $guestId2, $charId2>>
<<if _saveId2Type === 'slave'>><<set $slaveId = _saveId2>><<elseif _saveId2Type === 'char'>><<set $charId = _saveId2>><<else>><<set $guestId = _saveId2>><</if>>
<<if _saveId1Type === 'slave'>><<set $slaveId2 = _saveId1>><<elseif _saveId1Type === 'char'>><<set $charId2 = _saveId1>><<else>><<set $guestId2 = _saveId1>><</if>>
<<set $tmpGirl = $tmpGirl2, $tmpGirl2 = _saveGirl>>
<<unset $sexAction>>
<<goto `passage()`>>
<</link>>
/* Focus on Girl 3 */
<<set _focusLink3 = 'Focus on ' + $tmpGirl3.name>>
<<link `_focusLink3`>>
<<set _saveGirl = $tmpGirl, _saveId1Type = typeof $slaveId !== 'undefined' ? 'slave' : typeof $charId !== 'undefined' ? 'char' : 'guest'>>
<<set _saveId1 = $slaveId ?? $charId ?? $guestId>>
<<set _saveId3Type = typeof $slaveId3 !== 'undefined' ? 'slave' : typeof $charId3 !== 'undefined' ? 'char' : 'guest'>>
<<set _saveId3 = $slaveId3 ?? $charId3 ?? $guestId3>>
/* save both back */
<<if _saveId1Type === 'slave'>><<set $slaves[$slaveId] = $tmpGirl>><<elseif _saveId1Type === 'char'>><<set $characters[$charId] = $tmpGirl>><<else>><<set $guests[$guestId] = $tmpGirl>><</if>>
<<if _saveId3Type === 'slave'>><<set $slaves[$slaveId3] = $tmpGirl3>><<elseif _saveId3Type === 'char'>><<set $characters[$charId3] = $tmpGirl3>><<else>><<set $guests[$guestId3] = $tmpGirl3>><</if>>
/* reassign IDs: slot1 gets old slot3 ID, slot3 gets old slot1 ID */
<<unset $slaveId, $guestId, $charId, $slaveId3, $guestId3, $charId3>>
<<if _saveId3Type === 'slave'>><<set $slaveId = _saveId3>><<elseif _saveId3Type === 'char'>><<set $charId = _saveId3>><<else>><<set $guestId = _saveId3>><</if>>
<<if _saveId1Type === 'slave'>><<set $slaveId3 = _saveId1>><<elseif _saveId1Type === 'char'>><<set $charId3 = _saveId1>><<else>><<set $guestId3 = _saveId1>><</if>>
<<set $tmpGirl = $tmpGirl3, $tmpGirl3 = _saveGirl>>
<<unset $sexAction>>
<<goto `passage()`>>
<</link>>
<<link 'End'>>
<<unset $sexAction>>
/* save all three girls back */
<<if typeof $tmpGirl2 !== 'undefined'>>
<<if typeof $slaveId2 !== 'undefined'>><<set $slaves[$slaveId2] = $tmpGirl2>>
<<elseif typeof $guestId2 !== 'undefined'>><<set $guests[$guestId2] = $tmpGirl2>>
<<elseif typeof $charId2 !== 'undefined'>><<set $characters[$charId2] = $tmpGirl2>>
<</if>>
<</if>>
<<if typeof $tmpGirl3 !== 'undefined'>>
<<if typeof $slaveId3 !== 'undefined'>><<set $slaves[$slaveId3] = $tmpGirl3>>
<<elseif typeof $guestId3 !== 'undefined'>><<set $guests[$guestId3] = $tmpGirl3>>
<<elseif typeof $charId3 !== 'undefined'>><<set $characters[$charId3] = $tmpGirl3>>
<</if>>
<</if>>
<<unset $slaveId2, $guestId2, $charId2, $tmpGirl2>>
<<unset $slaveId3, $guestId3, $charId3, $tmpGirl3>>
<<if $oldTmpGirlLocation>>
<<set $tmpGirl.location = $oldTmpGirlLocation>>
<<unset $oldTmpGirlLocation>>
<</if>>
<<if $tmpGirlViewBack && !tags($tmpGirlViewBack).includes('girlview')>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<unset $slaveId>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $guestId>>
<<elseif typeof $charId !== 'undefined'>>
<<set $characters[$charId] = $tmpGirl>>
<<unset $charId>>
<</if>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto 'NPC view'>>
<</if>>
<<else>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto 'NPC view'>>
<</if>>
<</if>>
<</link>>
<</if>><<include 'Mc foursome actions'>>
<div id="action-scene">
<<if typeof $sexAction !== 'undefined'>>
<<set $tmpGirl.quests ??= {}>>
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<<addmins 5>>
<<energy -5>>
<<if setup.perkHas('drunk')>>
<<energy -5>>
<</if>>
<<set _hornyGained = (_sexActions[$sexAction]?.horny ?? 0)>>
<<if !_canFuck>>
<<set _hornyGained = 0>>
<</if>>
<<set _maxMcHorny = (_sexActions[$sexAction]?.maxMcHorny ?? null)>>
<<if (_maxMcHorny === null || $player.horny < _maxMcHorny)>>
<<horny _hornyGained>>
<</if>>
<<set _showSex = true>>
<<if ['anal'].includes($sexAction)>>
<<include 'Mc fuck anal'>>
<</if>>
<<if !_canFuck && ['bj','handjob'].includes($sexAction)>>
<<include 'MC fuck flaccid'>>
<</if>>
<<if $sexAction === 'cum_in_pussy' && ($tmpGirl.traits ?? []).includes('breeder') && (_sexActions[$sexAction]?.positive ?? false)>>
<<set $tmpGirl.horny += 30>>
<</if>>
<<if _showSex>>
<<if settings.buttons_on_top>>
<<include 'Mc foursome buttons'>>
<</if>>
<<set _sexActionLong = _prefix + $sexAction>>
<<actionImage $tmpGirl _sexActionLong>>
/* virginity checks */
<<if $tmpGirl.virgin && (_sexActions[$sexAction]?.stats === 'pussy' || (Array.isArray(_sexActions[$sexAction]?.stats) && _sexActions[$sexAction].stats.includes('pussy')))>>
<<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl.virgin = false>>
<<=setup.displayName($tmpGirl, true)>> seems tense, a bit of <strong>blood</strong> trickles from her newly <strong>deflowered</strong> pussy.
<br />
<</if>>
<<if $tmpGirl2.virgin && _sexActions[$sexAction]?.stats2 === 'pussy'>>
<<run setup.npc.addHistory($tmpGirl2, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl2.virgin = false>>
<<=setup.displayName($tmpGirl2, true)>> seems tense, a bit of <strong>blood</strong> trickles from her newly <strong>deflowered</strong> pussy.
<br />
<</if>>
<<if $tmpGirl3.virgin && _sexActions[$sexAction]?.stats3 === 'pussy'>>
<<run setup.npc.addHistory($tmpGirl3, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl3.virgin = false>>
<<=setup.displayName($tmpGirl3, true)>> seems tense, a bit of <strong>blood</strong> trickles from her newly <strong>deflowered</strong> pussy.
<br />
<</if>>
<br />
/* horny gains */
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive>>
<<set $tmpGirl.horny = Math.min($tmpGirl.horny + setup.sex.calcNpcHornyIncrease($tmpGirl, (_sexActions[$sexAction].hornyGive ?? 20), $sexAction), 100)>>
<</if>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive2>>
<<set $tmpGirl2.horny = Math.min($tmpGirl2.horny + setup.sex.calcNpcHornyIncrease($tmpGirl2, (_sexActions[$sexAction].hornyGive2 ?? 20), $sexAction), 100)>>
<</if>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive3>>
<<set $tmpGirl3.horny = Math.min($tmpGirl3.horny + setup.sex.calcNpcHornyIncrease($tmpGirl3, (_sexActions[$sexAction].hornyGive3 ?? 20), $sexAction), 100)>>
<</if>>
<<set _npcHorny = clone($tmpGirl.horny)>>
<<showmeter '$npcHornyBar' '_npcHorny / 100'>>
<<updatemeter '$npcHornyBar' `_npcHorny / 100`>>
<br />
/* relationship + happy for all 3 */
<<set
$tmpGirl.relationship = Math.min($tmpGirl.relationship + 1, 100),
$tmpGirl2.relationship = Math.min($tmpGirl2.relationship + 1, 100),
$tmpGirl3.relationship = Math.min($tmpGirl3.relationship + 1, 100),
$tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100),
$tmpGirl2.happy = Math.min($tmpGirl2.happy + 1, 100),
$tmpGirl3.happy = Math.min($tmpGirl3.happy + 1, 100)
>>
<<=setup.displayName($tmpGirl, true)>>, <<=setup.displayName($tmpGirl2, true)>> and <<=setup.displayName($tmpGirl3, true)>> are enjoying themselves. <strong>(Happy / Relationship +1)</strong>
<br />
/* corruption for all 3 */
<<if (_sexActions[$sexAction] ?? false)>>
<<set _mc = _sexActions[$sexAction].maxCorruption>>
<<if $tmpGirl.corruption < _mc>><<set $tmpGirl.corruption = Math.min($tmpGirl.corruption + 1, 100)>><</if>>
<<if $tmpGirl2.corruption < _mc>><<set $tmpGirl2.corruption = Math.min($tmpGirl2.corruption + 1, 100)>><</if>>
<<if $tmpGirl3.corruption < _mc>><<set $tmpGirl3.corruption = Math.min($tmpGirl3.corruption + 1, 100)>><</if>>
<</if>>
/* horny feedback + orgasms */
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive>>
<<if $tmpGirl.horny >= 100>>
<<include 'Mc fuck orgasm'>>
<<=setup.displayName($tmpGirl, true)>> has an orgasm! <strong>(Happy / Relationship +5)</strong>
<br />
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + 5, 100)>>
<<set $tmpGirl.happy = Math.min($tmpGirl.happy + 5, 100)>>
<<set $tmpGirl.orgasms ??= 0>>
<<set $tmpGirl.orgasms++>>
<<run setup.sex.giveAfterglow($tmpGirl)>>
<<else>>
<<=setup.displayName($tmpGirl, true)>>'s body reacts positively. <strong>(Horny +<<=_sexActions[$sexAction].hornyGive ?? 20>>)</strong>
<br />
<</if>>
<</if>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive2>>
<<if $tmpGirl2.horny >= 100>>
<<set $tmpGirl2.horny -= 20>>
<<=setup.displayName($tmpGirl2, true)>> is getting impatient. <strong>(Horny -20)</strong>
<<else>>
<<=setup.displayName($tmpGirl2, true)>> is getting hornier. <strong>(Horny +<<=_sexActions[$sexAction].hornyGive2 ?? 20>>)</strong>
<</if>>
<br />
<</if>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive3>>
<<if $tmpGirl3.horny >= 100>>
<<set $tmpGirl3.horny -= 20>>
<<=setup.displayName($tmpGirl3, true)>> is getting impatient. <strong>(Horny -20)</strong>
<<else>>
<<=setup.displayName($tmpGirl3, true)>> is getting hornier. <strong>(Horny +<<=_sexActions[$sexAction].hornyGive3 ?? 20>>)</strong>
<</if>>
<br />
<</if>>
/* stats for girl 1 */
<<if _sexActions[$sexAction]?.stats>>
<<if Array.isArray(_sexActions[$sexAction].stats)>>
<<set _sexStats = _sexActions[$sexAction].stats>>
<<else>>
<<set _sexStats = [_sexActions[$sexAction].stats]>>
<</if>>
<<for _sexStat range _sexStats>>
<<set $tmpGirl[_sexStat]++>>
<<if typeof $sexStats[_sexStat] === 'undefined'>>
<<set
$tmpGirl.statsSex ??= {},
$tmpGirl.statsSex[_sexStat] ??= 0,
$tmpGirl.statsSex[_sexStat]++,
$sexStats[_sexStat] = true
>>
<</if>>
<</for>>
<</if>>
/* stats for girl 2 */
<<if _sexActions[$sexAction]?.stats2>>
<<set _stat2 = _sexActions[$sexAction].stats2>>
<<set $tmpGirl2[_stat2]++>>
<<if typeof $sexStats[_stat2 + '2'] === 'undefined'>>
<<set
$tmpGirl2.statsSex ??= {},
$tmpGirl2.statsSex[_stat2] ??= 0,
$tmpGirl2.statsSex[_stat2]++,
$sexStats[_stat2 + '2'] = true
>>
<</if>>
<</if>>
/* stats for girl 3 */
<<if _sexActions[$sexAction]?.stats3>>
<<set _stat3 = _sexActions[$sexAction].stats3>>
<<set $tmpGirl3[_stat3]++>>
<<if typeof $sexStats[_stat3 + '3'] === 'undefined'>>
<<set
$tmpGirl3.statsSex ??= {},
$tmpGirl3.statsSex[_stat3] ??= 0,
$tmpGirl3.statsSex[_stat3]++,
$sexStats[_stat3 + '3'] = true
>>
<</if>>
<</if>>
<<if (SugarCube?.settings?.sexReactions ?? true) && !$sexForced && $tmpGirl.relationship >= 40 && setup.percentageChance(25)>>
<br />
<<include 'Fouractions'>>
<br />
<</if>>
<<include 'Mc fuck traits'>>
<<if $sexAction === 'cum_in_pussy'>>
<<include 'Mc fuck cum in pussy'>>
<</if>>
<<if $tmpGirl.horny >= 100>>
<<script>>
setTimeout(function () {
variables().tmpGirl.horny = 0;
}, 400);
<</script>>
<</if>>
<</if>>
<</if>>
/* Once per render, not per button include: the buttons passage is included twice when buttons_on_top is on */
<<if $player.horny >= 100 && typeof $sexAction !== 'undefined'>>
<<energy +5>>
<<set $player.sexp++>>
<</if>>
<br />
<<include 'Mc foursome buttons'>>
</div><<if !$player?.baseManagement?.noIncest && $tmpGirl.family?.hasOwnProperty('mother') && $tmpGirl.family?.mother === $tmpGirl2.id>>
<<set _partnerName = 'mom'>>
<<elseif !$player?.baseManagement?.noIncest && $tmpGirl.family?.hasOwnProperty('father') && $tmpGirl.family?.father === $tmpGirl2.id>>
<<set _partnerName = 'dad'>>
<<elseif ($tmpGirl2.nickName ?? '' ) !== ''>>
<<set _partnerName = $tmpGirl2.nickName>>
<<elseif !$player?.baseManagement?.noIncest && $tmpGirl.family?.hasOwnProperty('kids') && $tmpGirl.family?.kids.includes($tmpGirl2.id)>>
<<set _partnerName = 'sweetie'>>
<<else>>
<<set _partnerName = $tmpGirl2.name>>
<</if>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
<<set _girlVisual = $tmpGirl>>
<<if $tmpGirl.horny >= 100 && setup.percentageChance(90)>>
<<set _feralReaction = either([
"shudders through an orgasm with a raw, animal cry",
"grabs " + _partnerName + " by the wrist as the climax hits, making a desperate, keening sound",
"collapses forward, gasping in short, broken bursts, whole body shaking",
"presses into " + _partnerName + " with " + setup.pronounceWhos($tmpGirl) + " face and lets out a long, helpless wail",
"shudders and goes rigid, a high, overwhelmed sound escaping " + setup.pronounceWho($tmpGirl) + " before " + setup.pronounceWhat($tmpGirl) + " dissolves"
])>>
<<elseif $tmpGirl.horny >= 80 && setup.percentageChance(50)>>
<<set _feralReaction = either([
"arches back with a sharp, hungry sound, hips rolling hard",
"makes a low, insistent sound and rocks faster, jaw tight",
"reaches for " + _partnerName + " with a short, pleading whine",
"pushes back hard, breath coming fast and shallow, mouth open",
"presses into " + _partnerName + " with a breathless, urgent sound"
])>>
<<elseif $tmpGirl.horny >= 25>>
<<set _feralReaction = either([
"rolls " + setup.pronounceWhos($tmpGirl) + " hips into the rhythm with a low, climbing moan — body getting louder and less controlled",
"grabs on and pulls in close, breath coming faster, " + setup.pronounceWhos($tmpGirl) + " body telling you how good this feels",
"grinds against " + _partnerName + " with flushed cheeks and an urgent, breathless sound",
"makes a climbing run of sharp, pleasured yelps, pushing back harder into every movement",
"looks at " + _partnerName + " with glazed, urgent eyes, then back at you, mounting pleasure evident in " + setup.pronounceWhos($tmpGirl) + " gaze"
])>>
<<else>>
<<set _feralReaction = either([
"makes a small, surprised sound as sensation catches " + setup.pronounceWho($tmpGirl) + " — and immediately leans in to get more of it",
"breathes out slowly and deep, body warming fast, already starting to shift toward you",
"reaches for " + _partnerName + " with a soft, instinctive sound, drawn in by the warmth",
"tips " + setup.pronounceWhos($tmpGirl) + " head back at a touch and lets out a quiet, moaning sound, something lighting up behind " + setup.pronounceWhos($tmpGirl) + " eyes",
"looks at " + _partnerName + " with eyes starting to go dark, then back at you with growing desire"
])>>
<</if>>
<div class="say npcsay">
<div class="npc-say-visual" @data-id="$tmpGirl.id">
<div class="girl_info_picture">
<<if _girlVisual.portrait>>
<div class="say_custom_portrait"><<include 'NPC visual'>></div>
<<else>><<include 'NPC visual'>><</if>>
</div>
</div>
<div class="npc-say-container">
<div class="npc-say-name"><strong><<=setup.displayName($tmpGirl)>></strong></div>
<div class="npc-say-text"><em>*<<= _feralReaction >>*</em></div>
</div>
</div>
<<elseif $tmpGirl.assignedTo === 'attendant' && $tmpGirl2.assignedTo === 'mistress' && setup.isAtWork($tmpGirl, $weather) && setup.isAtWork($tmpGirl2, $weather) && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"Oh! " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... I'm cumming! I never... ahh!!",
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... I'm cumming... Gods it feels good being taken care of...",
"Ahhh! " + _partnerName + ", watch me... " + setup.npc.mcName($tmpGirl) + ", yes... yes, right there...",
"*shaking* I'm cumming, " + setup.npc.mcName($tmpGirl) + "! It feels so much better when you're not the one doing the work...",
"Oh gods... " + _partnerName + "... I can feel it everywhere... " + setup.npc.mcName($tmpGirl) + "... don't stop..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* Gods, I almost never get treated like this... " + _partnerName + ", " + setup.npc.mcName($tmpGirl) + ", don't you dare stop...",
"I spend all day taking care of everyone else and this feels... it feels incredible...",
"Is this what they feel when I take care of them? Mmmh, " + setup.npc.mcName($tmpGirl) + "... It's nice being on the receiving end...",
"*shivering* " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... you're both making me lose my mind...",
"Nngh... I could get very used to being on this side of things..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mm... " + _partnerName + ", your lips are so much gentler than I expected. I'll admit I was a little intimidated.",
"I've been a bit afraid of you, " + _partnerName + ". But I just love this softer side of you.",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... now " + _partnerName + "... I didn't expect today to go quite like this.",
"Kissing you feels different than I imagined, " + _partnerName + ". So much more tender than I expected.",
"*softly* I keep waiting for the other shoe to drop, " + _partnerName + ". But you're just... really, really nice to kiss."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh... I spend all day touching people and nobody ever... " + setup.npc.mcName($tmpGirl) + "... don't stop, please...",
"*breathless* I never get to be on this side of it. And now both of you... right there, gods...",
"*gripping tight* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s eyes on me while you do that... I can't even think...",
"So this is how they feel. " + _partnerName + ", your presence alone makes everything feel ten times more intense.",
"Ahhh, I spend all day making people feel good and... mmh, " + setup.npc.mcName($tmpGirl) + "... I forget I need this too..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
setup.npc.mcName($tmpGirl, 1) + "! Yes... and having " + _partnerName + " watching makes every nerve feel completely electric.",
"Mmh, " + setup.npc.mcName($tmpGirl) + "... I keep glancing at " + _partnerName + " and I can't tell if she's pleased. It makes me want to be better.",
"Gods, " + setup.npc.mcName($tmpGirl) + "... is this what you feel, " + _partnerName + "? Because I think I understand you so much better now.",
"*breathless* I can feel " + _partnerName + "'s eyes on me... " + setup.npc.mcName($tmpGirl) + "... it's a lot. A very good a lot.",
"Mmm... being watched by someone like " + _partnerName + " while you take me, " + setup.npc.mcName($tmpGirl) + "... I didn't expect to love it this much..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* You taste wonderful, Mistress... I want to make you feel as good as you've made me feel.",
"Nngh, " + setup.npc.mcName($tmpGirl) + " inside me while I take care of you, Mistress... I didn't know it could feel like this...",
"Mmhh, Mistress... taking care of you is different when you're not giving the orders. I kind of love it.",
"This is what I want. Let me show you what I know, Mistress...",
"Mmmh... " + setup.npc.mcName($tmpGirl, 1) + "... I'm not just here to serve, Mistress. I'm here because I want to."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm, I spend all my days cleaning and washing, " + setup.npc.mcName($tmpGirl) + ", but I know how to take care of what matters.",
"Do we feel good, " + setup.npc.mcName($tmpGirl) + "? Mistress and I make a good team, don't we...",
"*looking up* I love taking care of you, " + setup.npc.mcName($tmpGirl) + ". You and Mistress are worth every bit of it.",
"Mmmh... there's something different about doing this with Mistress here. More real somehow.",
"You're in such good hands, " + setup.npc.mcName($tmpGirl) + "... or should I say good mouths..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " is filling me... it feels so warm...",
"Ahh! Oh, " + _partnerName + ", he's cumming inside me... " + setup.npc.mcName($tmpGirl) + "...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... I can feel every pulse... " + _partnerName + ", I really understand why they moan so much...",
"Oh gods... I've watched so many of them get to feel this and now it's mine...",
"*shaking* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " feels incredible inside me... I don't want it to stop..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathless* " + _partnerName + "... look at us. I've made messes like this for others. It's rather different being the one covered.",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", I hope you're not judging my technique for staying clean...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... we're both going to need a rinse and I don't mind one bit.",
"Do we look pretty, " + setup.npc.mcName($tmpGirl) + "? Because I feel pretty right now.",
"Mmm... " + _partnerName + ", this never happens in the bathhouse. I could get used to exceptions..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I had no idea it could feel like this...",
"I spend so long taking care of everyone else. Thank you for taking care of me, " + _partnerName + "...",
"Mmh, " + setup.npc.mcName($tmpGirl) + "... having " + _partnerName + " here makes everything feel more real.",
"You're both extraordinary. " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "...",
"*softly* I never expected today to feel this good..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.assignedTo === 'mistress' && $tmpGirl2.assignedTo === 'attendant' && setup.isAtWork($tmpGirl, $weather) && setup.isAtWork($tmpGirl2, $weather) && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... this is... I'm cumming!",
"Mmmmhh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I almost forgot what this felt like. Gods...",
"Ahh!! " + setup.npc.mcName($tmpGirl, 1) + "... none of those waifs in the cells could ever do what you two just did to me...",
"*shaking* " + _partnerName + "... thank you... both of you... this was everything...",
"Oh gods... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I needed this so much more than I realized..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is so much better than breaking someone down...",
"*breathless* You two are in a different league entirely. I had almost forgotten this feeling...",
"Nnngh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... do you know how long it's been since someone made me feel this good?",
"This is what I don't get from the cells. Not ever. " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... don't you dare hold back now..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmm... " + _partnerName + ", I can share so much more warmth with you than the girls in the cells. It's refreshing.",
"Mmh, " + setup.npc.mcName($tmpGirl) + "... having " + _partnerName + " here changes the whole feeling. Makes it easier.",
"*softly* You're not afraid of me, are you " + _partnerName + "? Good. That's exactly how I want you.",
"I don't need fear right now. Just this. " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "...",
"Mmm... you and " + _partnerName + " are exactly what I needed today, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + _partnerName + "... your technique is... where did you learn that? Don't answer. Just keep going.",
"Mmhhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... you two working together is something else entirely.",
"*gripping tight* The girls in the cells have no idea what they're missing. " + _partnerName + ", right there...",
"Oh gods... someone who actually knows what they're doing. " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... yes...",
"Mmmm... I forgot pleasure is supposed to feel like this. Not forced. Just good. Keep going, " + _partnerName + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", isn't he so much better when it's actually about pleasure?",
"Gods, " + setup.npc.mcName($tmpGirl) + "... none of those girls in the cells could appreciate you the way " + _partnerName + " and I do.",
"*deep breath* I spend my days making others break. Right now I just want to feel good. Don't stop, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmm... " + _partnerName + ", remind me why I ever bother with torture when this exists.",
"This is what I let myself have when I deserve it. And today, " + setup.npc.mcName($tmpGirl) + "... we both deserve it."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmhh, " + _partnerName + ", don't hold back... I'm not asking for gentleness right now.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + "'s tongue... both of you at once is almost too much.",
"*barely holding together* " + _partnerName + "... right there... " + setup.npc.mcName($tmpGirl) + " inside me... this is perfect...",
"Ahh, " + _partnerName + ", you're thorough. I respect that. " + setup.npc.mcName($tmpGirl) + "...",
"Mmmm... taking and giving at the same time. " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... this is balance..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm, " + _partnerName + ", let me show you how the strong take care of those who take care of them.",
"Do we feel good, " + setup.npc.mcName($tmpGirl) + "? Because this is something I actually want to give.",
"There's no performance here, " + setup.npc.mcName($tmpGirl) + ". I'm not doing this because I have to. I love feeling this hard cock get excited for me.",
"Mmmhh, " + _partnerName + ", isn't it something different, giving instead of taking for once?",
"You've more than earned this, " + setup.npc.mcName($tmpGirl) + ". And so has " + _partnerName + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I almost never let myself feel like this.",
"Mmmmhh, " + setup.npc.mcName($tmpGirl) + "... the warmth of your pleasure... " + _partnerName + ", this can be so much better than dominating.",
"Ahh! " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I needed this so much more than I realized...",
"Gods... none of those girls could ever give me this. " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "...",
"*shaking* That was everything. " + setup.npc.mcName($tmpGirl) + ", " + _partnerName + ", you can have the next load.",
setup.npc.mcName($tmpGirl, 1) + "... my body is yours... I do not give this lightly, " + _partnerName + ", not many get to witness this.",
"*quietly* I've claimed a great deal in those cells. Being claimed in return, " + setup.npc.mcName($tmpGirl) + "... *exhaling* ...that's something else entirely.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + ", I feel you claiming me so deeply... *blushing* And in front of " + _partnerName + " no less...",
"*very quietly* I never expect being claimed to feel this good, " + setup.npc.mcName($tmpGirl) + "... This is a special honor, " + _partnerName + ", tell no one.",
"*whispering to " + _partnerName + "* ...between you and me, it feels good to let myself be his vessel..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"Do we look pretty, " + setup.npc.mcName($tmpGirl) + "? Good. We earned that.",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... we're both marked. I like that.",
"*exhaling slowly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + ", the two of you are worth every moment.",
"Mmm, " + _partnerName + "... doesn't it feel warm? Maybe you can clean me off after...",
"Mmmh... sharing this with " + _partnerName + " instead of forcing it out of someone... this can be just as fun.",
_partnerName + ", being painted beside the Mistress by " + setup.npc.mcName($tmpGirl) + "... He truly honors you to mark us both together.",
"Mmmh... " + setup.npc.mcName($tmpGirl, 1) + ", your brand feels so warm on my skin. *notices " + _partnerName + " watching and brings a finger to their lips* Just between us.",
"*looking at the cum marking them both* " + _partnerName + ", we look the same with his seed painting our skin... But we're still different *looking up at you* Right?",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "... I enjoy leaving my mark on those beneath me. It's different being the receiver...",
"*grinning as the cum covers their skin* Well, " + _partnerName + ", getting him off was my talent. Cleaning it up is your specialty."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is better than anything I do with those girls downstairs.",
"*exhaling slowly* I almost forgot what it feels like when both partners actually want to be here.",
"You and " + _partnerName + " are something rare, " + setup.npc.mcName($tmpGirl) + ". I appreciate it more than I'll probably admit.",
"Mmmm... sharing pleasure instead of watching someone suffer. This is the better choice today.",
"There's no weakness in this, " + _partnerName + ". I'm choosing it. That's a different thing entirely."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.assignedTo === 'attendant' && $tmpGirl2.assignedTo === 'attendant' && setup.isAtWork($tmpGirl, $weather) && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"Oh! " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I'm cumming! Don't stop!",
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + ", I'm right there... mmmhh, yes...",
"Ahhh!! Yes! " + _partnerName + ", " + setup.npc.mcName($tmpGirl) + "... together like this... I'm cumming...",
"*grabbing " + _partnerName + "* Nngh, " + setup.npc.mcName($tmpGirl) + "... I'm... ahh!!",
"Oh gods, " + _partnerName + "... watching you while " + setup.npc.mcName($tmpGirl) + " does this to me... I can't hold back anymore..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I'm almost there... please...",
"Ahhh, this is nothing like our usual work. Being the one cared for is... " + setup.npc.mcName($tmpGirl) + "... it's so good...",
"Mmh, " + _partnerName + "... your hands felt wonderful in the shower but this is absolutely something else...",
"*gripping " + _partnerName + "* I spend all day making people feel this way and now I... gods, don't stop...",
"Nnngh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I'm almost there and I don't want it to end..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm, " + _partnerName + ", you're a better kisser than I expected. Should I be jealous?",
"Mmh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + "... I can't tell who I prefer right now. That's a good problem.",
"*smiling into the kiss* We should do this more often, " + _partnerName + "...",
"Mmm, " + _partnerName + ", your lips are so soft. I'm starting to think all those long shifts were just leading here.",
"Honestly, " + _partnerName + ", I thought I knew what your hands felt like. Your lips are a whole other story..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh... " + _partnerName + "... you know exactly where to touch. All those hours together in the showers and you learned me perfectly.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s tongue is... is this what it feels like when you tease the girls?",
"Mmmm, being on this end for once... " + _partnerName + ", don't you dare stop...",
"You know all my best spots from work, " + _partnerName + ". That feels deeply unfair right now and I love it.",
"Ahhhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " is just as good at this as she is at everything else..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + " filling me while " + _partnerName + " watches... I want to be every bit as good for you as I am in the bathhouse.",
"Gods, " + setup.npc.mcName($tmpGirl) + "... do I ever get this deep in the bath? I know which one I'd choose now.",
"*breathless* " + _partnerName + "... he feels so good... I want you to feel this next...",
"Mmh, " + setup.npc.mcName($tmpGirl) + "... we work so hard taking care of your girls, and right now I feel like we've earned every single moment...",
"I've spent so long helping everyone else feel good, " + setup.npc.mcName($tmpGirl) + "... taking " + _partnerName + "'s hand right now feels exactly right..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmhh, " + setup.npc.mcName($tmpGirl) + " filling me while I take care of you, " + _partnerName + "... we really do make an excellent team.",
"*muffled* Does that feel good, " + _partnerName + "? Because I intend to be just as thorough here as I am in the showers.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " tastes incredible. Some things really can't be learned from work.",
"Nngh, " + setup.npc.mcName($tmpGirl) + " inside me while you writhe on my tongue, " + _partnerName + "... this is a very good shift.",
"Mmmh... When I watch you bathing, I've wondered how good you'd feel on my tongue, " + _partnerName + ", and you're just perfect..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm, " + _partnerName + ", we clean him up all day. I think we've earned the right to make a little mess.",
"*glancing at " + _partnerName + "* Do we feel as good on your cock together as we do separately, " + setup.npc.mcName($tmpGirl) + "?",
"Mmmhh, taking care of you is our favorite part of the job, " + setup.npc.mcName($tmpGirl) + "... isn't it, " + _partnerName + "?",
"There's something thrilling about sharing " + setup.npc.mcName($tmpGirl) + " with you, " + _partnerName + ". Like a secret that's just between us.",
"We make such a good team, " + _partnerName + ". I think " + setup.npc.mcName($tmpGirl) + " would agree..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " is filling me... it feels so warm...",
"Ahh! " + _partnerName + ", he's cumming inside me... " + setup.npc.mcName($tmpGirl, 1) + "... I feel every single pulse...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is so much better than watching others receive this.",
"Oh gods... I've watched so many of them feel this and now it's mine. " + _partnerName + ", I understand everything now.",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + " feels incredible... " + _partnerName + ", hold me... I'm feeling everything right now..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmhh, " + _partnerName + "... look at us. We're going to need a bath of our own after this and I am completely okay with that.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... we took such good care of you today.",
"Mmmm... we help clean everyone else up around here. " + setup.npc.mcName($tmpGirl) + ", this is not our usual method and I don't mind at all.",
"Share it with me, " + _partnerName + "... we always end up sharing everything anyway.",
"*laughing softly* " + _partnerName + ", we are going to need the shower. Fortunately we know exactly where it is..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... between the two of us we have very good hands.",
"Mmm... taking care of each other is different from taking care of everyone else. Better. " + _partnerName + ", isn't this better?",
"*warmly* " + _partnerName + ", all those hours in the bathhouse together and I never knew you'd feel like this.",
"We are very good at our jobs, " + _partnerName + ". Apparently at this too.",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " and I make a very good team, don't we..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.assignedTo === 'attendant' && typeof $slaveId2 !== 'undefined' && setup.isAtWork($tmpGirl, $weather) && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"Oh! " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... Yes! It's my turn to cum! Nnnngh, YES!!",
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I've been needing this for so long...",
"Ahhh!! Yes! " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + ", hold me... I'm cumming so hard right now...",
"Oh gods, yes, I'm done being professional... " + setup.npc.mcName($tmpGirl, 1) + "... I'm cumming!",
"*shaking* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I'm letting go... I deserve this..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I'm so close. Don't stop.",
"I've spent so many shifts holding back and now... gods, I'm not holding back anymore...",
"Ahhh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... all those moments in the shower were nothing compared to this...",
"Mmhh, I can feel you both at once... I'm going to cum, don't you dare stop...",
"*gripping " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + "... I've been wanting this for such a long time..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm, " + _partnerName + "... you have such beautiful lips. I've noticed it every time I've worked on you.",
"*softly* I've thought about this when I was cleaning you, " + _partnerName + ". Kissing you properly. It feels exactly like I imagined.",
"Mmhh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + "... the two of you are going to ruin me for regular work.",
"All those times washing your hair, " + _partnerName + ", and I never once got to do this. What a waste.",
"Mmmm... you taste clean and warm, " + _partnerName + ". Like you just stepped out of a bath. " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh... " + setup.npc.mcName($tmpGirl, 1) + "... and " + _partnerName + " right here watching... gods, this feels incredible.",
"*melting* I spend all my time running hands over beautiful bodies, " + setup.npc.mcName($tmpGirl) + ". Being touched back like this is everything.",
"Mmhh, " + _partnerName + ", isn't he good? I've been waiting for my turn for longer than I should admit.",
"I've taken care of so many people and I forget that I need this too... " + setup.npc.mcName($tmpGirl) + "... right there...",
"Ahhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", I hope you're watching, you could learn from the master..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + " right here with me... this is everything I wanted.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... all day I handle " + _partnerName + "'s beautiful body so carefully. Right now all I can think about is how good you feel...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Yes... " + _partnerName + ", grab my hand... I want to share this feeling...",
"Gods, " + setup.npc.mcName($tmpGirl) + "... I finally understand why " + _partnerName + " looks so spent after nights like this...",
"Mmm... I think about this after every shift, " + setup.npc.mcName($tmpGirl) + "... and right now it's even better than I pictured..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* I've been so careful with you in the shower, " + _partnerName + ". Here I don't have to hold back anymore.",
"Nngh, " + setup.npc.mcName($tmpGirl) + " inside me while I finally taste you properly, " + _partnerName + "... this is so much better than just using my hands.",
"Mmmh, I've spent weeks learning every curve of your body, " + _partnerName + "... finally getting to do this right...",
"All those careful professional touches, " + _partnerName + ", were me being good at my job. This right here is what I actually wanted.",
"Mmph... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", I'm done being professional. I'm going to enjoy this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... I spend all day caring for this place. Let me show you what I save for you.",
"*looking up* " + setup.npc.mcName($tmpGirl, 1) + "... doesn't it feel better when someone surrenders to you by choice?",
"Mmm, " + _partnerName + ", we make such a good team taking care of him, don't we...",
"There's nothing professional about this, " + setup.npc.mcName($tmpGirl) + ". This is just for you. And a little bit for me.",
"Mmmhh, I'm much more thorough when I'm not on the clock, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! Oh... " + _partnerName + "... he's cumming inside me... it's so warm...",
"Ahh, " + _partnerName + ", he's filling me up... " + setup.npc.mcName($tmpGirl) + "... I feel every pulse...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... this is so much better than anything that happens in the showers...",
"*shaking* Oh gods... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", hold me... I'm feeling everything right now...",
"All those nights wondering what this felt like... " + setup.npc.mcName($tmpGirl) + "... now I know. " + _partnerName + ", isn't this perfect?"
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmhh, " + _partnerName + "... look at us. We're going to need a bath after this and I'm very okay with that.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... we earned every bit of that.",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", don't you dare wash that off yet...",
"You know exactly what you're doing, " + setup.npc.mcName($tmpGirl) + ". All I can do is appreciate the view.",
"Mmmhh... we spend all day cleaning up after everyone. " + _partnerName + ", for once I don't mind being the one who needs a rinse..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I've thought about this so many times in the showers.",
"Mmm... all those careful professional touches and now we finally get to be something else entirely.",
"Mmmhh, " + _partnerName + ", isn't it different when nobody's watching how proper you're being? I think I prefer this.",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "... I take care of so many people. Being taken care of feels really good.",
"You're so lovely to play with, " + _partnerName + ". In and out of the bathhouse."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.assignedTo === 'mistress' && typeof $slaveId2 !== 'undefined' && setup.isAtWork($tmpGirl, $weather) && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... yes... " + _partnerName + ", you may watch. I'm cumming.",
"Ohh, " + setup.npc.mcName($tmpGirl) + "... I almost forgot what this felt like... don't you dare stop...",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + ", you're extraordinary... " + _partnerName + ", take note...",
"Ahhh! " + setup.npc.mcName($tmpGirl, 1) + "! I spend my days making others feel this way... *breathless* ...now it's mine...",
"*gripping tight* " + setup.npc.mcName($tmpGirl, 1) + "... I'm coming undone... " + _partnerName + ", watch closely. This is what real pleasure looks like.",
setup.npc.mcName($tmpGirl, 1) + "! Gods... " + _partnerName + ", this is the mercy I rarely show. Witness it.",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... I'm... " + _partnerName + ", don't look away... ahh...",
"Ohh, " + setup.npc.mcName($tmpGirl) + "... letting go like this... I earn it by never letting anyone else see me... except you...",
"Ahh... finally... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + ", you're lucky to witness this...",
"*barely audible* " + setup.npc.mcName($tmpGirl, 1) + "... yes... this is exactly what I needed..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* " + setup.npc.mcName($tmpGirl, 1) + "... harder... " + _partnerName + ", remember this face.",
"Mmmh, " + setup.npc.mcName($tmpGirl) + ", don't you dare slow down... " + _partnerName + ", stay where you are.",
"I'm so close, " + setup.npc.mcName($tmpGirl) + "... and having " + _partnerName + " watch makes it even more intense.",
"Nnngh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", if you know what's good for you, don't move.",
"*gripping tightly* " + setup.npc.mcName($tmpGirl, 1) + "... yes, just like that... " + _partnerName + ", pay attention."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm, " + setup.npc.mcName($tmpGirl) + "... and you, " + _partnerName + "... come here. Let me assess your technique.",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + ", your kisses are a reward I don't regret earning... " + _partnerName + ", watch and learn.",
"This is a mercy, " + _partnerName + ". A very selective one. Thank " + setup.npc.mcName($tmpGirl) + " for including you.",
"I give this freely to " + setup.npc.mcName($tmpGirl) + "... *a cooler look at " + _partnerName + "* ...and you receive it by my grace alone.",
"Mmmm, " + setup.npc.mcName($tmpGirl) + "... *turning to " + _partnerName + "* ...you've been watching well. I'll permit you to participate."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "... I spend all day making people helpless. Right now that's my job... " + _partnerName + ", hold still.",
"*barely controlled* " + _partnerName + ", you will wait your turn. " + setup.npc.mcName($tmpGirl) + "... gods, right there...",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... I allow very few people to see me like this... " + _partnerName + ", count yourself fortunate.",
"Oh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + ", you're witnessing a privilege most will never know. Be grateful.",
"*gripping the sheets* " + setup.npc.mcName($tmpGirl, 1) + "... I almost never let go like this... " + _partnerName + ", watch and learn what proper devotion looks like."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
setup.npc.mcName($tmpGirl, 1) + ", yes... " + _partnerName + ", stay right there and watch what you enabled. This is your doing.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I feel everything... " + _partnerName + ", you should be grateful you're allowed to see this.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... deeper... " + _partnerName + ", take note. This is what he gives those who are worthy.",
"I don't surrender easily, " + setup.npc.mcName($tmpGirl) + "... but you've earned every bit of this... " + _partnerName + ", that's a lesson for you.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... the cells are the furthest thing from my mind right now... " + _partnerName + ", don't let that comfort you."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"You're very fortunate, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + " is the reason I'm feeling generous right now.",
"*muffled* Don't mistake this for softness, " + _partnerName + "... it's a reward, not a right... " + setup.npc.mcName($tmpGirl) + "... more...",
"Mmh... " + _partnerName + ", you get this because " + setup.npc.mcName($tmpGirl) + " has earned my good mood... be very, very grateful.",
"Consider this a gift from " + setup.npc.mcName($tmpGirl) + " through me, " + _partnerName + "... Mmmhh... " + setup.npc.mcName($tmpGirl) + "...",
"A taste of something you'll have to earn more properly next time, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + " inside me makes me generous."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm, " + setup.npc.mcName($tmpGirl) + "... giving pleasure is so much better than forcing it out of someone... this is the version I choose.",
"*looking up* I choose to be here, " + setup.npc.mcName($tmpGirl) + "... that makes all the difference... " + _partnerName + ", this is freely given.",
"Mmmhh... I spend my days with pain. This is what the other side feels like. " + setup.npc.mcName($tmpGirl) + "... it suits me.",
"There's no punishment in this, " + _partnerName + ". Only pleasure. " + setup.npc.mcName($tmpGirl) + "... you bring out a different side of me.",
"*softly* Sharing pleasure instead of extracting pain... " + setup.npc.mcName($tmpGirl) + "... I'd forgotten how much I prefer this."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl) + "... yes... " + _partnerName + ", he's filling me... remember that I let you see this.",
"Mmhh, " + setup.npc.mcName($tmpGirl) + "... the warmth of you... " + _partnerName + ", take very careful note of what gratitude looks like.",
"*exhaling* " + setup.npc.mcName($tmpGirl) + "... that was extraordinary... " + _partnerName + ", you may exhale too. You've done well today.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... I almost never allow this feeling... " + _partnerName + ", you've witnessed something rare. Treasure it.",
"*shaking slightly* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I feel human right now. That happens very rarely.",
setup.npc.mcName($tmpGirl, 1) + "... my body is yours... I do not give this lightly, " + _partnerName + ", not many get to witness this.",
"*quietly* You claim me with no effort, " + setup.npc.mcName($tmpGirl) + "...like I'm one of your... *blushes deeply and trails off*",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + ", I feel you claiming me so deeply... *glancing apprehensively at " + _partnerName + "* Claiming, not owning...",
"*very quietly* I never expect being claimed to feel this good, " + setup.npc.mcName($tmpGirl) + "... You get to watch, " + _partnerName + ", but remember who holds the whip...",
"*whispering to " + _partnerName + "* ... I can see why you and your kind enjoy being his vessel, it's so freeing...",
"*very quietly* Don't mistake what you're seeing for weakness, " + _partnerName + ". *to " + setup.npc.mcName($tmpGirl) + "* ...but it feels so good to let you claim me..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"*exhaling slowly* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", we're both marked now. Different reasons. Same result.",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", you're seeing me in a way most never do. Remember that.",
"*coolly satisfied* We're both marked by " + setup.npc.mcName($tmpGirl) + " now, " + _partnerName + ". An unexpected equality.",
"Mmmhh... " + _partnerName + ", I should be stern about this and I find I'm not. Today was an exception.",
setup.npc.mcName($tmpGirl, 1) + "... *to " + _partnerName + ", quieter* ...today you witnessed what privilege looks like. Don't forget.",
"Mmmh... " + setup.npc.mcName($tmpGirl) + ", your seed feels so warm on my flesh. *notices " + _partnerName + " watching and glares at them sternly* Avert your eyes, plaything.",
"*looking at the cum marking them both* " + _partnerName + ", we look so alike covered in his seed... That's the closest you'll ever be to being like me..",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "... I enjoy leaving my mark on those beneath me. It's different sharing it, " + _partnerName + ", consider yourself lucky...",
"*grinning as the cum covers their skin* Well, " + _partnerName + ", getting him off was my talent. You can lick it off, toy."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... " + setup.npc.mcName($tmpGirl) + ", having " + _partnerName + " here doesn't diminish this. If anything...",
"*quietly* " + _partnerName + ", you're permitted here because " + setup.npc.mcName($tmpGirl) + " allows it. And because today I choose this.",
"This is pleasure shared freely, " + _partnerName + ". Not forced. Note the difference.",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", consider yourself educated today.",
"*exhaling* " + _partnerName + ", this is what restraint allows when you've actually earned release."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl2.assignedTo === 'mistress' && typeof $slaveId !== 'undefined' && setup.isAtWork($tmpGirl2, $weather) && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! I'm cumming... my Mistress is watching... I can't stop...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Please, Mistress, may I cum... I'm so close... I can't hold back...",
"*shaking* Oh gods, " + setup.npc.mcName($tmpGirl) + "... Mistress, is it allowed? I'm going to... ahh...",
setup.npc.mcName($tmpGirl, 1) + "! I'm cumming! Mistress... please... I can't hold it...",
"*crying out* " + setup.npc.mcName($tmpGirl, 1) + "... this is so different from pain... Mistress, is this what you give the favored ones?",
"Ahhh! " + setup.npc.mcName($tmpGirl, 1) + "! Mistress... I never knew it could be like this...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... I'm cumming... Mistress, thank you for letting me have this...",
"Oh! " + setup.npc.mcName($tmpGirl, 1) + "! Mistress... I'm... everything at once... please don't make it stop...",
"*grabbing the sheets* " + setup.npc.mcName($tmpGirl, 1) + "... Mistress... I'm cumming and I don't know whether to beg forgiveness or more...",
"Ahhh!! " + setup.npc.mcName($tmpGirl, 1) + ", yes! Mistress... this feels nothing like what I deserve... and it's everything..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* " + setup.npc.mcName($tmpGirl, 1) + "... Mistress, I'm getting close... may I?",
"Nngh... " + setup.npc.mcName($tmpGirl) + "... my Mistress is watching and I'm almost there... please...",
"I shouldn't want this so much... Mistress... " + setup.npc.mcName($tmpGirl, 1) + "... I can't help it...",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... Mistress, I won't look away. I want you to see me like this.",
"*shivering* " + setup.npc.mcName($tmpGirl, 1) + "... almost there... Mistress is watching... that only makes it better..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmh, " + setup.npc.mcName($tmpGirl) + "... Mistress... being allowed to be touched like this feels like a gift I don't deserve.",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "'s lips... and Mistress watching... I keep waiting to be pulled back and I don't want to be.",
"Mmmh... Mistress, thank you for allowing me to have this. " + setup.npc.mcName($tmpGirl) + "... you're so warm.",
"I spend so much time afraid of what her lips can say... " + setup.npc.mcName($tmpGirl) + "... this is so much better.",
"*in awe* " + setup.npc.mcName($tmpGirl, 1) + "... my Mistress is watching and somehow that makes this feel even more precious.",
"Mmmm... " + setup.npc.mcName($tmpGirl) + "... Mistress, am I doing this right? I want to be good for both of you.",
"All the pain she gives me... and now Mistress allows me this. I want to earn it, " + setup.npc.mcName($tmpGirl) + ".",
"*trembling slightly* " + setup.npc.mcName($tmpGirl, 1) + "... Mistress... I feel so small and so safe at the same time.",
"Mmh, " + setup.npc.mcName($tmpGirl) + "... please let me be good for you... Mistress, am I allowed to want this much?",
"*barely daring* " + setup.npc.mcName($tmpGirl, 1) + "... Mistress... I didn't know it could feel like this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... Mistress usually uses her hands to inflict pain. Not like this. This is... gods...",
"Ahh... " + setup.npc.mcName($tmpGirl) + "... knowing what Mistress can do and having her allow this instead makes every sensation double.",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... Mistress is watching me get taken care of for once. I don't know what I did right.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... every touch from you feels like the opposite of what my Mistress usually gives me... in the best way.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... Mistress, do you see? This is what happens when he's gentle with me..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
setup.npc.mcName($tmpGirl, 1) + ", yes... Mistress watches when I'm used. It's different when I'm being treasured.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... filling me like this... Mistress, this is what you give to those who've earned it?",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I come from pain and I understand now why the favored ones cry when this ends.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... Mistress, every time you look at me I want to be worthy of continuing.",
"*gripping the sheets* " + setup.npc.mcName($tmpGirl, 1) + "... Mistress... I'm trying so hard to be good right now..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* Mistress... am I pleasing you? Tell me when I've earned more...",
"Nngh, " + setup.npc.mcName($tmpGirl) + " inside me while I serve my Mistress... I would ask for no other arrangement.",
"*muffled* Mistress, I want to be perfect for you... " + setup.npc.mcName($tmpGirl) + "... please don't stop... I need to focus.",
"Mmmh, my Mistress's pleasure comes first... " + setup.npc.mcName($tmpGirl) + " makes it so hard to keep my mind on the task...",
"*muffled* Please, Mistress... let me know if I'm doing well... I need to hear it..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... Mistress, am I doing this right? He deserves this kind of attention...",
"*looking up* " + setup.npc.mcName($tmpGirl, 1) + "... you're so much more than anyone I've served before. Mistress, isn't he remarkable?",
"Mmm... " + setup.npc.mcName($tmpGirl) + "... I want to make you feel as good as you've made me feel. Mistress, isn't he perfect?",
"*in awe* Mistress, I understand now why he walks freely. " + setup.npc.mcName($tmpGirl) + "... gods, you're magnificent.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I hope I'm earning this. Mistress, are you proud of me?"
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! Oh... Mistress, he's filling me... I didn't know warmth could feel like this.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... Mistress... his warmth is so different from what I usually feel in these walls.",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... Mistress... this is what you've given me today. I won't forget it.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... Mistress, does he fill everyone like this? Or am I lucky?",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... I feel all of you... Mistress, I want to deserve this every single time."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... Mistress, look at me. He marked me. Am I allowed to be proud?",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... Mistress... I want to be beautiful for both of you.",
"Mmmm... " + setup.npc.mcName($tmpGirl) + "... Mistress, I'll wear this until you say otherwise.",
"*quietly* " + setup.npc.mcName($tmpGirl, 1) + "... Mistress, is this what being chosen feels like? I think I understand now.",
"Ahh... " + setup.npc.mcName($tmpGirl) + "... Mistress... I didn't know pleasure could look like this on me."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... Mistress... I'm trying to be exactly what you both need right now.",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "... my Mistress is watching and I want to be perfect for her. For you. For both of you.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... Mistress, tell me when I've done enough. I'll keep going until then.",
"*breathless* Pain I understand. This... " + setup.npc.mcName($tmpGirl) + "... this is something new. Mistress, I'm grateful.",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... Mistress... being seen like this by both of you makes me want to give everything I have."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl2.assignedTo === 'attendant' && typeof $slaveId !== 'undefined' && setup.isAtWork($tmpGirl2, $weather) && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... I'm cumming! Both of you together are too much for me to hold back...",
"Ahh! " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "'s touch on top of yours... I'm cumming so hard right now...",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... every nerve is on fire... I'm cumming and I don't want to stop...",
"Mmmhh! Yes! " + setup.npc.mcName($tmpGirl) + ", yes!... " + _partnerName + ", don't let go of me... I'm coming undone...",
"*crying out* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " has me so worked up... together with you... ahh, yes!"
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s hands and yours together... I'm almost there, don't stop...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " touching me while you... gods, I'm so close I can barely think...",
"Mmmhh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... you both make me feel so cared for. And so close.",
"Nngh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " never touched me quite like this in the bathhouse... I need more...",
"*gripping " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + "... yes, please... I'm almost there..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", you're so soft with me. It's so different from how I'm usually touched.",
"*melting* " + setup.npc.mcName($tmpGirl, 1) + "... and " + _partnerName + "'s lips... I'm surrounded by warmth I'm not used to.",
"Mmmm, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I forget sometimes that touch can feel like this.",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " takes such good care of me. You're doing the same. It's a lot.",
"Mmh... " + _partnerName + ", you've washed my hair and rubbed my shoulders and now this... " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + "'s hands on me while you do this... the contrast with my usual days is almost too much.",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " knows every sensitive spot from the bathhouse. This is very unfair. In the best way.",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", keep touching me like that... between you both I can't track what feels best.",
"Ahh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " learned my body in the showers and now she's using every bit of that knowledge.",
"*gasping* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... all this attention on me at once... I rarely get touched gently even once."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + "'s hands keeping me grounded... this is so much more than I expected.",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", hold me... he feels incredible and I want to share this feeling with you.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s touch makes every sensation sharper. You fill me so perfectly.",
setup.npc.mcName($tmpGirl, 1) + "... I think about days like this in the cells. " + _partnerName + " and I wondered about you. We talked about it.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " cared for my body and now you're taking it. Both of you make me feel so alive."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + _partnerName + "... you've done so much for me. Let me give something back... Nngh, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmh... " + _partnerName + ", all those hands and towels and care... this feels like the right way to say thank you.",
"*muffled* " + _partnerName + ", you washed me and dressed me and now I get to do this for you... " + setup.npc.mcName($tmpGirl) + "... keep going...",
"Nngh, " + setup.npc.mcName($tmpGirl) + " inside me while I finally return what " + _partnerName + " has given me... this is the best arrangement.",
"*muffled* " + _partnerName + "... I hope this feels as good as your touch always does to me... " + setup.npc.mcName($tmpGirl) + ", please don't stop..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " made me beautiful for you today. I want to be worth it.",
"*looking up* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " spent all morning making me presentable. Now let me show you what she wrapped so carefully.",
"Mmm, " + _partnerName + " bathed me, combed my hair, made me feel clean and soft... " + setup.npc.mcName($tmpGirl) + ", I'm all yours.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " prepares these hands to care for others every day. Right now they're just for you.",
"*softly to " + _partnerName + "* You made me this... *looking up at " + setup.npc.mcName($tmpGirl) + "* ...and now you get to have it."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl) + "! Oh... " + _partnerName + "... he's filling me... it's so warm...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", hold my hand... he's cumming inside me and it's everything...",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is so much better than anything that happens in the cells.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", you made this possible. Thank you. Both of you.",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... every pulse... " + _partnerName + ", I want you to feel this next."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmhh, " + _partnerName + "... look at us. We're both going to need a bath and I'm completely okay with that.",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... we earned every bit of that.",
"Mmm, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", don't you dare wash that off yet.",
"You know exactly what you're doing, " + setup.npc.mcName($tmpGirl) + ". All I can do is appreciate how good it feels.",
"Mmmhh... " + _partnerName + " cleans everyone else up around here. For once I don't mind being the one who needs a rinse."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... being treated gently from both directions is something I never knew I needed.",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " cared for me all day and now you're completing it. Thank you both.",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I forget sometimes that I'm allowed to feel this good.",
"Mmm, " + _partnerName + ", you made me feel safe. " + setup.npc.mcName($tmpGirl) + ", you make me feel wanted. Today has everything.",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I just want to give you both everything I have right now."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'bathhouse' && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the heat had me close already and both of you together finished what the sauna started... I'm cumming...",
"Ahhh! " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... between the steam and both of you I never stood a chance... I'm cumming...",
"*shaking* The sauna already had every nerve lit and then you both... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I'm coming apart completely...",
"Nngh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I can't separate the heat from the sensation and I don't care... I'm cumming...",
"*barely audible over the steam* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the sauna can't compete with this warmth... I'm cumming...",
"Ahh... " + _partnerName + ", " + setup.npc.mcName($tmpGirl) + "... my whole body was already on fire and now it's burning in a completely different way...",
"*clinging to " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + "... the steam already had me trembling... you two finished what the heat started..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* The heat strips away every defense I have... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... and now I'm barely holding on...",
"Mmmhh, I can't separate the steam from the sensation anymore, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I'm so close...",
"Nngh... the sauna already has my pulse racing... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... you two together are more than I can take much longer...",
"*breathless* Lightheaded from the heat... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... almost there... the room is spinning in the best possible way...",
"In here everything is intensity... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the heat opens me up and both of you fill the space perfectly...",
"*gripping the bench* Every muscle already soft from the steam... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... so close... don't stop...",
"Ahhh... the sauna has me primed... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... don't make me wait much longer..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... the steam makes every kiss feel slower, heavier... I could dissolve in here...",
"The heat has me so relaxed... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "'s lips feel like just another layer of warmth I want to melt into...",
"*softly* My skin is already flushed from the sauna... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... kissing you both adds a heat of a very different kind...",
"Mmmh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... the steam between us makes every breath feel shared...",
"*melting* Everything in here is already warm and slow and close... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... you two fit this place perfectly...",
"Mmm, it's almost too much... the sauna heat on my skin and your lips, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I can barely tell one warmth from another...",
"*quietly* The steam makes everything move like honey... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... your kisses are the only thing that feels sharp right now..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... between the steam and your tongue I can't hold a single thought... gods, right there...",
"*breathless* The heat already has me slick and trembling... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s hands on me while you do this... I can't hold on...",
"Mmmh, everything in here is already wet and warm... " + setup.npc.mcName($tmpGirl, 1) + "... you just become another kind of heat and I can't get enough...",
"*gripping the bench* The sauna had me breathing hard enough already... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... your tongue makes the whole room disappear...",
"Ahhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the steam melts me from the outside and you melt me from within... I am completely undone...",
"*barely holding together* The heat loosens everything and you tighten it all back up again, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... don't stop...",
"Mmmhh... the cedar and steam and your tongue, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is the best thing that has ever happened in a sauna..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... I'm melting from the heat, and you feel perfect inside me... " + _partnerName + "... don't look away...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... the steam has every muscle soft and loose and you feel so... gods... " + _partnerName + "... he fills me so perfectly in here...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Every sensation in here is doubled by the heat... " + _partnerName + "... I'm barely holding myself together...",
"*clinging to " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + "... the sauna was already making me dizzy... you inside me makes everything spin in the best way...",
"Mmmh... everything is heat and pressure and you, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", I don't know where the sauna ends and you begin...",
"The wooden bench is warm against my back, " + _partnerName + "... and " + setup.npc.mcName($tmpGirl, 1) + " is warm everywhere else... I am not complaining...",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "... the steam strips away every pretense... and right now all I am is this... " + _partnerName + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + _partnerName + "... you taste like heat... " + setup.npc.mcName($tmpGirl) + " inside me and you on my tongue... the sauna has nothing on this...",
"Nngh, " + setup.npc.mcName($tmpGirl) + " filling me while I tend to you, " + _partnerName + "... the steam makes everything feel more urgent somehow...",
"*muffled* The whole room is hot and wet and " + _partnerName + " you are the sweetest part of it... " + setup.npc.mcName($tmpGirl, 1) + ", keep going...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + " inside me and " + _partnerName + " on my tongue... I've given up choosing which sensation to chase and I'm chasing both...",
"*breathless between tastes* " + _partnerName + "... the sauna sharpens every sense... you on my tongue in here is extraordinary... " + setup.npc.mcName($tmpGirl) + "...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "... every thrust pushes me deeper into " + _partnerName + "... the heat and steam make this feel like it could go on forever...",
"*muffled* " + _partnerName + "... in here this feels like just another kind of bathing... and I intend to be very thorough..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... the heat has my lips soft and my hands warm... " + _partnerName + " and I are perfectly prepared for this...",
"*looking up through the steam* The sauna does wonderful things for patience, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " and I have been waiting for exactly the right moment...",
"Mmm, " + _partnerName + ", isn't there something natural about this in here? Everything is already warm and giving... " + setup.npc.mcName($tmpGirl) + "...",
"*softly* The steam has me so relaxed it all feels like slow motion, " + setup.npc.mcName($tmpGirl) + "... I want to make this last as long as the sauna does...",
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... you're so hard and this room is already so hot... this feels like the most natural thing in the world right now...",
"*glancing at " + _partnerName + " through the steam* We should do this every time, " + setup.npc.mcName($tmpGirl) + "... the heat makes us both so generous...",
"Mmm... the sauna always makes me want to give something back... " + _partnerName + ", I think " + setup.npc.mcName($tmpGirl) + " agrees with my instincts entirely..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... the room already burns and now this warmth inside me... I feel every single pulse...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... filling me here feels like being claimed by fire from the inside... in the best way...",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... the steam makes everything vivid and real... and this is the most real thing I've felt today...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " warming me from within... the sauna had me warm already... this is something else entirely...",
"*breathless* The heat of this room was already too much... and now " + setup.npc.mcName($tmpGirl, 1) + " filling me... " + _partnerName + "... I am completely undone...",
"Ahh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I came here for the steam but this warmth inside me is so much better...",
"*clinging* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " feels so warm... sauna heat on the outside and him within... I am absolutely lost..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathless* " + _partnerName + "... look at us... already glistening from the steam and now this... we are a beautiful mess...",
"Mmmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the cedar and the heat and now this... some things just belong together...",
"*laughing softly* The sauna is supposed to cleanse, " + _partnerName + "... we seem to be going in the opposite direction entirely... I have no complaints...",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... we came here to sweat and it seems we've done that in every possible sense...",
"*glowing* " + _partnerName + ", the heat of the room makes it feel even warmer on the skin... " + setup.npc.mcName($tmpGirl, 1) + "... it really does...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the steam already had me flushed everywhere and now this... I cannot tell where the sauna ends...",
"*softly* In here everything steams eventually... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... we are going to need actual water after this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_b_pussy' || $sexAction === 'bj_b_anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled around you, " + setup.npc.mcName($tmpGirl) + "* " + _partnerName + "'s rhythm behind me keeps sending me deeper onto you... the heat in here makes everything so much better...",
"Nngh, " + _partnerName + "'s strapon driving into me while the steam fills the room... and you fill my mouth, " + setup.npc.mcName($tmpGirl) + "... I am completely surrounded and I love it...",
"*pulling back briefly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " inside me just makes me want you deeper... the sauna already had me halfway there...",
"*muffled* The heat and " + _partnerName + " and you, " + setup.npc.mcName($tmpGirl) + "... this sauna session has exceeded every expectation I had for today...",
"*breathless between strokes* " + _partnerName + "'s hips and your hands and the steam on my skin, " + setup.npc.mcName($tmpGirl) + "... I came here to relax and I have never been less relaxed and loved it more..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + " inside me while you tend to " + _partnerName + "... the steam makes every sensation feel twice as long... take your time with both of us...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... don't stop what you're doing to " + _partnerName + "... the sounds she makes while you're inside me at the same time... gods...",
"Mmmh... " + setup.npc.mcName($tmpGirl, 1) + " inside me and " + _partnerName + " on your tongue... the sauna has every sense heightened and all of this is too much to track at once...",
"*gripping the bench* " + setup.npc.mcName($tmpGirl) + "... watching you with " + _partnerName + " while you're still inside me... the steam and this... I'm going to need to come back to this sauna regularly...",
"Oh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " watching you tend to her while you fill me... the heat is blurring everything together in the best possible way..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_sn'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + setup.npc.mcName($tmpGirl, 1) + "... the steam is making " + _partnerName + " taste incredible and you feel incredible... I want both of you everywhere...",
"Nngh, " + setup.npc.mcName($tmpGirl) + " filling me while " + _partnerName + "'s tongue is right here... in a sauna... the heat already had every nerve on fire and you two finished the job...",
"*muffled* " + _partnerName + "... the steam and " + setup.npc.mcName($tmpGirl) + "'s cock and your tongue... I came here for the heat and found something so much better than that...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s hips on my face while you fill me... the sauna heat and both of you is absolutely more than I deserve...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... I have to keep choosing between " + _partnerName + "'s taste and how you feel inside me... the steam makes both feel twice as intense and I refuse to choose..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + " as well... the steam has everything so open and yielding... being filled like this in here is absolutely extraordinary...",
"*breathless* Both of you... the heat of the room and both of you at once... " + setup.npc.mcName($tmpGirl) + "... I am not sure where one sensation ends and another begins and I don't care...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... the sauna already has my whole body soft and ready and now both of you at the same time... I am completely yours...",
"*gripping " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + "... and " + _partnerName + " together... the steam makes every nerve feel exposed and it's perfect...",
"Mmmhh... the wooden bench, the heat, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I could live in this sauna if it always felt like this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_b_anal' || $sexAction === 'anal_b_pussy'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... watching " + _partnerName + " take it while you fill me... the steam and this arrangement... this sauna is absolutely perfect...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s face right there when you're inside me... the heat has us both so undone... she looks exactly how I feel...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + " and I, both of us filled at once... the steam has everything so sensitive... her sounds and your hands and I'm barely holding together...",
"*gripping the bench* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " taking what's hers while you take me... the heat makes sharing like this feel entirely natural...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + " filled beside me... the heat and both of you... I came here to sweat and I am sweating for very different reasons now..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_b_bj'>>
<<sayNpc $tmpGirl>>
<<=either([
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + " in my ass while " + _partnerName + " tends to that strapon... the steam has everything heightened and I love every second of this arrangement...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... watching " + _partnerName + " work while you're deep in my ass... the heat of the room and all of this... everything is perfect right now...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + " on her knees in the steam while you fill me from behind... the sauna makes this feel obscenely comfortable and I want it to never end...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... and " + _partnerName + " using that beautiful mouth... the heat has me so soft and open... take everything you want, " + setup.npc.mcName($tmpGirl) + "...",
"*gripping the boards* The bench is warm under my hands, the steam on my back, " + _partnerName + " is there and " + setup.npc.mcName($tmpGirl, 1) + " is here... I am so content right now..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'handjob_anal_reverse' || $sexAction === 'bj_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Nngh, " + _partnerName + "'s strapon in my ass while I take care of you, " + setup.npc.mcName($tmpGirl) + "... the steam makes every sensation so much bigger... I can't decide what to focus on and I don't want to...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " behind me, driving me forward toward you... the heat has everything so ready and I am very motivated right now...",
"Mmmhh, " + _partnerName + "'s rhythm guides everything I'm doing for you, " + setup.npc.mcName($tmpGirl) + "... the steam, the bench, all of this... I had no idea the sauna could be this productive...",
"*breathless* " + _partnerName + " inside me and you right here, " + setup.npc.mcName($tmpGirl) + "... the heat has stripped away every thought I had and replaced them with both of you...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... every thrust from behind pushes me closer to you... the steam just makes it all feel endless and I refuse to hurry..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'nipple_lick_anal_reverse' || $sexAction === 'pussy_lick_anal_reverse' || $sexAction === 'sn_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + _partnerName + "'s strapon in my ass while I give to you, " + setup.npc.mcName($tmpGirl) + "... the steam and the sensation and both of you at once... this is completely overwhelming and I am asking for more...",
"Nngh, " + _partnerName + " driving into me from behind while I focus on you, " + setup.npc.mcName($tmpGirl) + "... the heat makes concentration very difficult and I do not mind at all...",
"Mmmhh... " + _partnerName + "'s hands on my hips while I take care of you, " + setup.npc.mcName($tmpGirl) + "... the sauna heat and all of this... I am thoroughly undone...",
"*breathless* Every time " + _partnerName + " pushes deeper the heat seems to rise another degree, " + setup.npc.mcName($tmpGirl, 1) + "... I am not complaining about any part of this...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the steam and the bench and you right here and " + _partnerName + " behind me... I came here for the sauna and found something so much better..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... feeling " + _partnerName + " push you deeper into me with every thrust... the heat in here makes everything more intense... gods...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... every time " + _partnerName + " drives into you it sends you right where I need you... the steam and this arrangement is absolutely perfect...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + "'s rhythm moves all three of us at once... in a sauna with both of you this way... I had no idea this is what I was missing...",
"Nngh, " + _partnerName + " pushing you into me from behind, " + setup.npc.mcName($tmpGirl) + "... the heat already has every nerve primed... you feel so deep like this...",
"*gripping " + setup.npc.mcName($tmpGirl) + "* The steam, " + _partnerName + "'s hands on your hips, and you inside me... if this is what the sauna is for I will be here every single day..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... kneeling there in the steam for me... " + _partnerName + " watching us both... the heat makes this feel like the most natural thing in the world...",
"*looking down through the steam* " + setup.npc.mcName($tmpGirl) + "... your eyes on me while you do this... " + _partnerName + " right there... the sauna strips away every last inhibition, doesn't it...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... the steam rising around us and you on your knees for me... and " + _partnerName + " watching... this is exactly what this sauna is for...",
"*running fingers through " + setup.npc.mcName($tmpGirl) + "'s hair* The heat has us both flushed and slick and you look so good down there... " + _partnerName + ", doesn't " + setup.npc.mcName($tmpGirl) + " look perfect...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the steam and you on your knees and both of you here with me... I will never think of this sauna the same way again..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " watching me take you like this... the heat has us both glistening and this is a very good use of the sauna...",
"*pressing forward* " + setup.npc.mcName($tmpGirl, 1) + "... the steam makes everything slick and yielding and you take me so beautifully... " + _partnerName + " is watching every second of this...",
"Nngh, " + setup.npc.mcName($tmpGirl) + "... the wooden bench, the heat, " + _partnerName + "'s eyes on both of us... taking you in a sauna was not on my agenda and it is all I want now...",
"*breathless with each thrust* " + setup.npc.mcName($tmpGirl, 1) + "... the steam loosens everything and you take me so well... " + _partnerName + "... doesn't " + setup.npc.mcName($tmpGirl) + " look perfect like this...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the heat rising with each thrust and you giving yourself to me in here... the sauna has never felt this good..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_reverse_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + " on your knees for my strapon while " + _partnerName + " claims you from behind... the steam and this view... I am keeping this sauna for exactly this...",
"*watching through the steam* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " driving you deeper onto me... the heat makes everything feel inevitable and I love every second...",
"Nngh, " + _partnerName + "'s rhythm sends " + setup.npc.mcName($tmpGirl) + " deeper and the steam has my whole body on fire... this is better than any sauna I have ever been in...",
"*fingers in " + setup.npc.mcName($tmpGirl) + "'s hair* " + _partnerName + " behind you, me in front... the heat of this room and both of us claiming you right now... you look perfect...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the steam and both of us claiming you in here... the sauna truly does strip away every pretense..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... the heat of this sauna and both of you at once... I was absolutely not prepared for this...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the steam strips away everything and leaves only sensation...",
"*softly* I come here to sweat out the day... and today I'm losing something far more interesting than tension...",
"The sauna makes everything slower and more vivid... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I feel every second of this...",
"Mmmh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... the heat and both of you... I'm melting and I have no desire to stop...",
"*breathless* The cedar, the steam, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... all of it together feels like a dream I refuse to wake from...",
"Mmmhh... " + _partnerName + "... I never knew this place could feel like this... " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'church' && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is as close to the divine as I have ever come... I'm cumming... I'm cumming...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... if ecstasy is sacred then I am the most devout person in this building right now...",
"*shaking* The altar is right there... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... and my body is giving everything it has...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... our faith says the highest devotion is complete surrender... I surrender... completely...",
"*barely audible* " + setup.npc.mcName($tmpGirl, 1) + "... in this sacred space... " + _partnerName + "... cumming feels like being seen by something vast and forgiving...",
"Ahhh! In a church... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I believe the divine approves... every pulse of this feels like grace...",
"*gripping " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + "... stone walls, candlelight, both of you... cumming here feels like the most honest prayer I've ever made..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... our faith says hold nothing back that is given freely... and I am barely holding on...",
"Mmmhh... in this place everything feels like prayer... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... and I am praying I don't have to stop...",
"Nngh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the stones have absorbed every whispered devotion in this room... I'm about to add one more...",
"*breathless* The body and spirit are not separate in our faith... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I understand that completely right now...",
"Mmmh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the sacred silence only makes every sound I'm making more honest...",
"*quietly* I have prayed for many things within these walls... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... this is the first prayer that has felt answered...",
"Ahh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I'm so close and inside this place I feel no shame in it at all..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... every kiss inside these walls feels like a vow...",
"*softly* I love how we express our devotion... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "'s lips feel sacred...",
"Mmmhh... our faith holds nothing more holy than offering yourself completely... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I offer willingly...",
"In this silence... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... a kiss could echo off the stone forever...",
"*melting* Candlelight on both of you... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the intimacy feels sacred...",
"Mmm, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... you are truly my confession...",
"*barely breathing* Prayer is meant to empty you of yourself... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... your kiss fills me with holy spirit..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... we offer the whole self in this faith... and I am offering every part of mine right now...",
"*breathless* The spirit asks for complete surrender... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I surrender every last defense I have...",
"Mmmh, " + setup.npc.mcName($tmpGirl, 1) + "... they say there are no secrets before the divine... " + _partnerName + "... I have none right now. None at all.",
"*gripping the pew* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I have loved this place my whole life and never like this... never this reverent...",
"Ahhh... the echo of these walls... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... every sound I make in here feels like an offering...",
"*shivering* Some devotions demand stillness... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is not one of them. Don't stop.",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... in a house of prayer, being completely laid bare is the most honest thing I know..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... filling me here... " + _partnerName + "... the sacred and the carnal are one thing in our faith and right now I believe it completely...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the body is a temple and you are a very welcome presence in mine...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! In this holy place... " + _partnerName + "... there is nothing impure in this... only joy and devotion...",
"*gripping the stone* " + setup.npc.mcName($tmpGirl, 1) + "... these walls have stood for years... " + _partnerName + "... right now they're holding me together too...",
"Mmmh... the altar candles flicker... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... and I am more honest in this moment than I have ever been in this building...",
"Physical union is the highest form of devotion... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I am very devout right now...",
"*quietly* The spirit and the body are not separate, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I feel you filling me in both..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + _partnerName + "... to give and receive at once... " + setup.npc.mcName($tmpGirl) + " inside me while I offer you this... it feels like perfect worship...",
"Nngh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... our faith says the highest gift is yourself entire... right now I give every part...",
"*muffled* " + _partnerName + "... every offering should be made with full attention... I intend to be very thorough... " + setup.npc.mcName($tmpGirl, 1) + "...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + " inside me as I tend to you, " + _partnerName + "... giving and receiving folded into one... in a church this feels exactly right...",
"*breathless between devotions* " + _partnerName + "... you taste like a blessing... " + setup.npc.mcName($tmpGirl, 1) + "... don't stop...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "... every thrust is a reminder I can't ignore... " + _partnerName + ", I'm trying to focus... you deserve my full devotion...",
"*muffled* " + _partnerName + "... in this sacred space, tending to you feels like tending to something holy... " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... to give pleasure freely and without fear is what our faith asks... I am very willing...",
"*looking up* " + setup.npc.mcName($tmpGirl, 1) + "... they say we kneel to honor what is worthy... " + _partnerName + "... I have never kneeled more sincerely...",
"Mmm, " + _partnerName + ", isn't there something fitting about this in a church? Generous hands, devoted attention... " + setup.npc.mcName($tmpGirl) + "...",
"*softly* The scripture says to give of yourself in service... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I am a very faithful servant right now...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the whole church could be watching and I would not pause... this is its own form of worship...",
"*glancing at " + _partnerName + "* " + setup.npc.mcName($tmpGirl) + "... something about this place makes me want to give everything... I believe " + _partnerName + " agrees...",
"Mmm... " + _partnerName + "... the purest offering comes from the heart, they say... " + setup.npc.mcName($tmpGirl, 1) + "... what we offer comes from somewhere else, but it's no less genuine..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... filling me in this sacred place... it feels like being consecrated...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... the warmth of you inside me in a house of prayer... I feel blessed in the most literal sense...",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... our faith says to receive wholly is a form of grace... " + _partnerName + "... I receive this very graciously...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " filling me here... if there is a heaven, I believe this is what it feels like...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... I have made offerings in this place my whole life... " + _partnerName + "... this is the first time an offering has been made back...",
"Ahh... " + setup.npc.mcName($tmpGirl, 1) + "... the candles, the stone, the warmth of you, " + _partnerName + "... I never knew devotion could feel exactly like this...",
"*quietly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... being filled in a holy place... I feel no irreverence in this. Only gratitude..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathless* " + _partnerName + "... look at us... candlelight on both of us, marked by " + setup.npc.mcName($tmpGirl) + "... baptized together in the most perfect way...",
"Mmmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... consecrated in the best way...",
"*softly* The congregation brings offerings to this altar... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... and this is ours...",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... we came to offer ourselves completely... " + setup.npc.mcName($tmpGirl, 1) + " has marked the offering...",
"*gazing upward* " + _partnerName + "... I used to wonder what my highest devotion looked like... " + setup.npc.mcName($tmpGirl, 1) + "... I think this is it...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the sacred and the scandalous are closer than most people ever admit...",
"*with quiet reverence* " + _partnerName + "... in this building I have offered praise from my knees... and now, from " + setup.npc.mcName($tmpGirl, 1) + ", on our knees we receive..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_mouth' || $sexAction === 'cum_in_throat'>>
<<sayNpc $tmpGirl>>
<<=either([
"*swallowing* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... they speak of receiving grace in this place... I've received something very close to it...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... in a house of offering, I have taken everything...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the congregation kneels to receive... I understand now more than I ever did...",
"Mmm... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the sacred texts speak of being filled with the divine... this is not quite what they meant...",
"*quietly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... they say the act of receiving is its own devotion... I am very devoted right now...",
"*looking up through the candlelight* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I have offered prayers in this place my whole life... kneeling for this feels like so familiar...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I did not know receiving could feel like this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_b_pussy' || $sexAction === 'bj_b_anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " filling me from behind while I offer this to you... my sacred act of devotion..",
"Nngh, " + _partnerName + "'s strapon and your hands and the candlelight on all of us...",
"*muffled around you, " + setup.npc.mcName($tmpGirl) + "* " + _partnerName + " driving into me sends me deeper onto you... I give myself over completely...",
"*breathless between strokes* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " behind me in a place of worship... the echo of every sound in here makes nothing feel small...",
"*pulling back briefly* The church asks us to open ourselves wholly... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I am fulfilling that with great devotion..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + " inside me while you attend to " + _partnerName + "... the candlelight on all three of us...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... the sounds " + _partnerName + " makes while you tend to her and fill me at the same time... the stone walls carry every one of them...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + " inside me and " + _partnerName + " on your tongue... in a building made for selfless giving, you are excelling at it...",
"*gripping the pew* " + setup.npc.mcName($tmpGirl) + "... watching you give to " + _partnerName + " while you're still inside me... if this place is holy, so is what you're doing...",
"Oh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "'s voice in this chamber and your body in mine... the echo makes everything feel like it's meant to be heard..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_sn'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + setup.npc.mcName($tmpGirl, 1) + "... the candles, " + _partnerName + "'s tongue, and you inside me at once... an answer to my prayers...",
"Nngh, " + setup.npc.mcName($tmpGirl) + " filling me while " + _partnerName + " is right there... I cannot decide which sensation to follow...",
"*muffled* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "'s cock and your tongue and this sacred air...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s hips on my face and you inside me... I am lost in the divine...",
"*breathless between them* " + setup.npc.mcName($tmpGirl) + "... I refuse to choose between " + _partnerName + "'s taste and how you feel inside me..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + " at the same time... in a house of worship... the body is a temple and both of you are worshipping very thoroughly...",
"*breathless* Both of you... the candlelight steady overhead and both of you surrounding me like this... " + setup.npc.mcName($tmpGirl) + "... I cannot tell which blessing is greater...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... the church asks for complete surrender and I have always been willing... you have both made it very easy...",
"*gripping " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + " and " + _partnerName + " at once... the echo of this place holds every sound I make... none of them are quiet right now...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... filled by both of you in a sacred space... the body is holy scripture and the two of you are reading it fluently..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_b_anal' || $sexAction === 'anal_b_pussy'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... watching " + _partnerName + " receive while you fill me... devotion takes many forms and I find this one very moving...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " right beside me in this holy place, both of us offered up...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + " and I together, both filled in a church... these candles have stood witness to such sights...",
"*quietly, between breaths* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s expression says everything I feel... my deepest confession...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " beside me, both of us claimed here, in the name of something beyond holy..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_b_bj'>>
<<sayNpc $tmpGirl>>
<<=either([
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + " in my ass while " + _partnerName + " kneels there with her mouth... everyone here is on their knees for something...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... watching " + _partnerName + " devoted and kneeling while you fill me... this is its own liturgy...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + " on her knees in candlelight while you take me....",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... and " + _partnerName + " so devoted and present... in a place of offering...",
"*gripping the pew* " + setup.npc.mcName($tmpGirl, 1) + " taking me, " + _partnerName + " tending in candlelight..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'handjob_anal_reverse' || $sexAction === 'bj_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Nngh, " + _partnerName + "'s strapon in my ass while I give this to you, " + setup.npc.mcName($tmpGirl) + "... the echo in these walls makes every sound a confession... I have nothing left to hide...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " behind me in this sacred place, driving me forward toward you...",
"Mmmhh, " + _partnerName + "'s rhythm guides everything I give to you, " + setup.npc.mcName($tmpGirl) + "... in a church dedicated to surrender, I have surrendered completely...",
"*breathless* " + _partnerName + " inside me and you right here, " + setup.npc.mcName($tmpGirl) + "... I am giving and receiving in equal measure and this feels like grace...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... every thrust in the silence of this building makes the next breath feel like a prayer..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'nipple_lick_anal_reverse' || $sexAction === 'pussy_lick_anal_reverse' || $sexAction === 'sn_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + _partnerName + "'s strapon in my ass while I tend to you, " + setup.npc.mcName($tmpGirl) + "... I offer myself wholly and the church is my witness...",
"Nngh, " + _partnerName + " behind me in this sacred space, driving me toward you, " + setup.npc.mcName($tmpGirl) + "... the stone walls hold every sound...",
"Mmmhh... " + _partnerName + "'s hands on my hips while I give to you, " + setup.npc.mcName($tmpGirl) + "... in a house of worship, I have found something worth worshipping...",
"*breathless* Every time " + _partnerName + " pushes deeper the candles seem to flicker, " + setup.npc.mcName($tmpGirl, 1) + "...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the echo of this place and both of you at once... I have found the devotion I seek..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... feeling " + _partnerName + " push you deeper into me with every thrust... this feels inevitable...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... every time " + _partnerName + " drives into you, you come exactly where I need you... the echo in here makes everything feel consecrated...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + "'s rhythm moves all three of us at once... we have come for complete surrender, and we have answered fully...",
"Nngh, " + _partnerName + " pushing you into me, " + setup.npc.mcName($tmpGirl) + "... the stone holds the silence and we fill it with something so much better... you feel so deep...",
"*gripping " + setup.npc.mcName($tmpGirl) + "* The candles, " + _partnerName + "'s hands on your hips, and you inside me... if the divine is presence, I am filled with divinity..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... on your knees for me in a church... " + _partnerName + " watching both of us... kneeling has always meant devotion. You have understood that perfectly...",
"*looking down at " + setup.npc.mcName($tmpGirl) + "* " + _partnerName + "... the candlelight on your face as you give this to me in a sacred space... the building asks for surrender and you have answered...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... the stone walls and the quiet and you kneeling for me in candlelight... " + _partnerName + " watching... this is a form of worship I deeply endorse...",
"*running fingers through " + setup.npc.mcName($tmpGirl) + "'s hair* The church has always asked its followers to kneel... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + " is its most sincere practitioner today...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... you on your knees before me in this sacred place... I have never received an offering half this generous..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " watching me claim you like this in a house of worship... the candles hold their light and I hold nothing back...",
"*pressing forward* " + setup.npc.mcName($tmpGirl, 1) + "... the stone and the silence and you taking me so beautifully... " + _partnerName + " watching every moment... this is its own consecration...",
"Nngh, " + setup.npc.mcName($tmpGirl) + "... the pew beneath us, the candlelight overhead, " + _partnerName + "'s eyes on both of us... taking you in a sacred space was not something I planned and it is everything I want...",
"*breathless with each thrust* " + setup.npc.mcName($tmpGirl, 1) + "... the echo of this church carries every sound we make... " + _partnerName + "... doesn't " + setup.npc.mcName($tmpGirl) + " look like a true believer...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the building was made for devotion and you are giving me all of yours... I receive it with complete gratitude..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_reverse_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + " on your knees for my strapon while " + _partnerName + " claims you from behind... in a church... kneeling and surrender are the highest virtues here and you embody both...",
"*watching through the candlelight* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " driving you deeper onto me... the echo of this sacred space holds every sound and I want to hear all of them...",
"Nngh, " + _partnerName + "'s rhythm sends " + setup.npc.mcName($tmpGirl) + " deeper and the stone walls hold our sounds like a reliquary... this place was built for exactly this kind of surrender...",
"*fingers in " + setup.npc.mcName($tmpGirl) + "'s hair* " + _partnerName + " behind you, me in front... the candlelight steady above us and both of us claiming you completely... you look beatific...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the sacred texts say to give yourself over without reservation... both of us are asking that of you right now and you are answering beautifully..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... between the two of you and this sacred space... I am practicing a form of devotion I was never taught...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... our faith says the body is holy... I believe it more deeply right now than I ever have...",
"*softly* The candles don't judge what we do in their light... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... and neither do I...",
"Mmm, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... everything in here asks you to surrender completely... I never needed much encouragement...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... in a place built for the spirit, we are being very attentive to the flesh...",
"*breathless* The echo of these stones makes every sound feel larger... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... every sound I make right now is very honest...",
"*quietly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... some people find the divine in silence. Today I find it quite differently..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'hospital' && $tmpGirl.assignedTo === 'hospital' && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is not in any training I've had and I am absolutely cumming...",
"Ahh! I've maintained composure through everything this hospital has asked of me... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... not this. Not right now.",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I know exactly what my body is doing and that knowledge is completely useless... I'm cumming...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... I've stayed professional through so much in this building... this one I cannot... ahh...",
"*barely controlling herself* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the ward is right there and I do not care at all... I'm cumming...",
"Ahhh! " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I have stood at bedsides keeping every part of me clinical... not today... not right now...",
"*gripping " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + "... the ward can wait... " + _partnerName + "... I am cumming and for once in this building, it's for me..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* I spend every shift focused entirely on others... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is very difficult to focus through...",
"Mmmhh, the ward is just through that door and I genuinely do not care... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I'm almost there...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I've kept everything clinical in this building until you two walked in... don't stop...",
"*breathless* My hands are usually for healing... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... right now they want something entirely different...",
"Mmmh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I know exactly how close I am and knowing it does not help me hold on...",
"*quietly urgent* Nobody else in this hospital gets to see me like this... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I'm so close...",
"Ahh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... when I'm not the one tending to someone else I forget how much I need this too..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I'm trained to keep steady in any situation... your kiss makes that very difficult...",
"*softly* I hold this building's composure together every day... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "'s kiss is undoing a full shift's worth of that...",
"Mmmhh... I've looked after so many people in this place... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... being kissed like this is the most care I've received all week...",
"In a hospital everything is measured and precise... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... your kiss makes me forget every measurement I know...",
"*melting* The ward just outside and both of you in here... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is the best thing I've prescribed myself in a long time...",
"Mmm, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I spend my days with hands-on care and this is still so much better than I expected...",
"*barely breathing* A doctor should always remain calm under pressure... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I am not calm right now..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I have a clinical understanding of the body that is completely failing me right now...",
"*breathless* I know exactly what's happening physiologically and that knowledge is absolutely no help... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... don't stop...",
"Mmmh, " + setup.npc.mcName($tmpGirl, 1) + "... I've told patients to breathe through sensation... " + _partnerName + "... I finally understand why they always looked at me like that...",
"*gripping the table* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I have kept every nerve in this body professional for so long... right here it ends...",
"Ahhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I care for bodies every day and none of it prepared me for someone caring for mine like this...",
"*barely controlled* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I know the precise clinical term for this feeling and I refuse to think of it right now...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the best treatment I've received in this building and it is not in any handbook..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I know this building better than anyone and right now I cannot find a single professional thought...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... the bed is for patients and nothing about what I'm feeling right now is clinical...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + "... I have observed so much in this place and nothing has ever made me feel like this...",
"*gripping " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + "... the ward is just there and I am absolutely not thinking about it...",
"Mmmh... in this hospital I am always composed and careful... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I am neither of those things right now...",
"I'm trained to be the calm person in the room, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... you've both successfully ended that...",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I tend to everyone else in this building... it feels remarkable to be tended to for once..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + _partnerName + "... I've run examinations in this room and nothing prepared me for this one... " + setup.npc.mcName($tmpGirl, 1) + "...",
"Nngh, " + setup.npc.mcName($tmpGirl) + " inside me while I tend to you, " + _partnerName + "... I'm supposed to be the caregiver here and I am losing all professional authority...",
"*muffled* " + _partnerName + "... a thorough assessment covers everything... I intend to be completely thorough... " + setup.npc.mcName($tmpGirl, 1) + "...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + " filling me while I take care of you, " + _partnerName + "... healing and being filled at once... unprecedented in my practice...",
"*breathless between breaths* " + _partnerName + "... you taste like exactly what I needed today... " + setup.npc.mcName($tmpGirl, 1) + "... don't stop...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "... every thrust makes it harder to focus on " + _partnerName + "... and I am still focusing... dedication to care runs very deep...",
"*muffled* " + _partnerName + "... the best physicians treat the whole person... I intend to be very thorough... " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... these hands handle delicate work all day... they are very capable of this too...",
"*looking up* " + setup.npc.mcName($tmpGirl, 1) + "... they train us to be steady under pressure... " + _partnerName + "... I am being very steady right now...",
"Mmm, " + _partnerName + "... I've administered care in many forms in this building... " + setup.npc.mcName($tmpGirl) + "... this is the one I've never put in a chart...",
"*softly* The best bedside manner I know, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... is making sure the patient feels entirely attended to...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I could diagnose you both right now but that is not what any of us need...",
"*glancing at " + _partnerName + "* " + setup.npc.mcName($tmpGirl) + "... the hospital teaches you to put the patient first... " + _partnerName + " and I take that very seriously...",
"Mmm... " + _partnerName + "... some treatments require patience and thorough application... " + setup.npc.mcName($tmpGirl, 1) + "... I have both in abundance right now..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... filling me in this hospital... I know exactly what you're doing to my body and it is exactly what I want...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... the warmth of you... I've described this sensation to patients and I was not doing it justice...",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... I have maintained composure through everything this building has asked... " + _partnerName + "... not this. Not right now.",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " filling me here... they don't teach you in medical training that the hospital bed can feel like this...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... I tend to everyone else in these wards... " + _partnerName + "... being filled like this might be the first time I've truly been cared for in here...",
"Ahh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I know what's happening physiologically and knowing it makes it better, not worse...",
"*quietly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... in this hospital I give care. Right now someone is giving it back. I had forgotten what that felt like..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathless* " + _partnerName + "... the uniform is going to need attention and I do not care at all right now...",
"Mmmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I prescribe thorough cleaning immediately after this... I'm in no rush...",
"*softly* I've cleaned up after all manner of things in this building... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... this is the first time I've minded the wait...",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... marked in my own hospital... this is going in no official record...",
"*laughing softly* " + _partnerName + ", we both know I'm the one who cleans up in here... " + setup.npc.mcName($tmpGirl, 1) + "... for once I'll let someone else handle it...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... in this building I see to every need... today I'm the one who needed this...",
"*with professional composure barely maintained* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I'll need fresh scrubs and I am absolutely worth it..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_mouth' || $sexAction === 'cum_in_throat'>>
<<sayNpc $tmpGirl>>
<<=either([
"*swallowing* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the clinical part of me knows exactly what just happened... the rest of me very much enjoyed it...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the ward is right through that door and I'm on my knees in my own hospital... I have no regrets...",
"*looking up at " + setup.npc.mcName($tmpGirl) + "* " + _partnerName + "... I spend every day giving care... right now I received something and I want more of it...",
"Mmm... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I know the body's every response and mine is telling me that was exactly what I needed...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the composure is entirely gone... I'm on my knees in my own ward and I don't care even slightly...",
"*wiping the corner of her mouth* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... in a building where I keep everything clinical... this is the most honest I've been all day...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... for once the care runs the other way... I could get used to this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_b_pussy' || $sexAction === 'bj_b_anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + _partnerName + " behind me drives me deeper onto you, " + setup.npc.mcName($tmpGirl) + "... I can't think straight...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s strapon and your cock at the same time... all day I've held it together... not anymore...",
"*muffled* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " filling me from behind in my own ward... gods...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... for once I'm the one being taken care of... I want every bit of it...",
"*pulling back* " + _partnerName + " drives me deeper onto you every time, " + setup.npc.mcName($tmpGirl) + "... don't stop..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + " inside me while you give to " + _partnerName + "... her sounds are doing nothing for my composure...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + " inside me and " + _partnerName + " on your tongue... I can't focus on anything but this...",
"Oh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "'s sounds in my ear while you're inside me... I know exactly what's happening and it isn't helping...",
"*gripping the frame* " + setup.npc.mcName($tmpGirl) + "... tending to " + _partnerName + " while you're still inside me... every bit of me is yours right now...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " inside me and your mouth on her... the ward can wait..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_sn'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + setup.npc.mcName($tmpGirl, 1) + "... you inside me and " + _partnerName + "'s tongue right here... I'm not going to last...",
"Nngh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " on my face while you fill me... I've got nowhere else to be...",
"*muffled* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "'s cock and your tongue at the same time... I can't choose and I won't...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s hips right there and you inside me... gods...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... I know exactly what's happening to me right now... knowing it isn't slowing anything down..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + " at the same time... I need both of you and I need all of it...",
"*breathless* Both of you at once... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I know exactly what my body is doing and I don't want it to stop...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I'm not going to be able to keep quiet...",
"*gripping " + _partnerName + "* " + setup.npc.mcName($tmpGirl, 1) + " and " + _partnerName + " at once... gods... I can feel everything...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... filled by both of you in my own hospital... I'm not complaining..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_b_anal' || $sexAction === 'anal_b_pussy'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " beside me, both of us filled... her sounds and yours and the ward right there and I don't care...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " taking hers while you take me... I've never felt less professional and I've never wanted to less...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + "'s face right now... she feels exactly how I do... don't stop...",
"*between breaths* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " beside me... I'm done keeping anything together...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " and I, both of us... for once the caring goes both ways..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_b_bj'>>
<<sayNpc $tmpGirl>>
<<=either([
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + " in my ass while " + _partnerName + " is right there... gods... don't stop...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... watching " + _partnerName + " work while you're deep inside me... I'm completely undone...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + " so devoted and you so deep... I'm not going to last...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " right there... you inside me... it's too much and I want more...",
"*gripping* " + setup.npc.mcName($tmpGirl, 1) + " taking me, " + _partnerName + " beside me... I've held myself together all day and it is completely gone..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'handjob_anal_reverse' || $sexAction === 'bj_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Nngh, " + _partnerName + "'s strapon in my ass while I take care of you, " + setup.npc.mcName($tmpGirl) + "... it's all I can do to focus...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " behind me and you right here... the ward doesn't exist right now...",
"Mmmhh, " + _partnerName + "'s rhythm and you right in front of me, " + setup.npc.mcName($tmpGirl) + "... I'm holding nothing back...",
"*breathless* " + _partnerName + " driving me toward you, " + setup.npc.mcName($tmpGirl) + "... gods... the composure is gone and I don't want it back...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... every thrust brings me closer... keep going..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'nipple_lick_anal_reverse' || $sexAction === 'pussy_lick_anal_reverse' || $sexAction === 'sn_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + _partnerName + " in my ass and you right here, " + setup.npc.mcName($tmpGirl) + "... I'm giving everything I have...",
"Nngh, " + _partnerName + " behind me driving me toward you, " + setup.npc.mcName($tmpGirl) + "... the composure is gone... all of it...",
"Mmmhh... " + _partnerName + "'s hands on my hips, yours right here, " + setup.npc.mcName($tmpGirl) + "... I can't keep still...",
"*breathless* Every thrust from " + _partnerName + " and I lose another bit of control, " + setup.npc.mcName($tmpGirl, 1) + "... I'm not trying to get it back...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... both of you right now... I keep every part of myself clinical in this building except this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " pushing you deeper into me with every thrust... gods...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... every time " + _partnerName + " drives into you it sends you right where I need you... don't stop...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + "'s rhythm, all three of us together... it's perfect...",
"Nngh, " + _partnerName + " and you and me, " + setup.npc.mcName($tmpGirl) + "... the ward can hear and I don't care...",
"*gripping " + setup.npc.mcName($tmpGirl) + "* " + _partnerName + "'s hands on your hips and you inside me... I'm staying right here..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... on your knees for me in my own ward... " + _partnerName + " watching... I've never wanted this more...",
"*looking down* " + setup.npc.mcName($tmpGirl) + "... your mouth right here while " + _partnerName + " watches... don't you dare stop...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... on your knees for me in this building... " + _partnerName + "... gods...",
"*fingers in your hair* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " right there... all day I give care and right now both of you are giving it back...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... you giving this to me here... I'm keeping this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " watching me take you in my own ward... gods...",
"*pressing forward* " + setup.npc.mcName($tmpGirl, 1) + "... you taking me so beautifully... " + _partnerName + " watching every second... I've wanted this all day...",
"Nngh, " + setup.npc.mcName($tmpGirl) + "... taking you in my ward while " + _partnerName + " watches... this is what I needed...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... you give yourself so perfectly... I'm not going to last...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the professional part of me has completely left for the day..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_reverse_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + " on your knees for me while " + _partnerName + " takes you from behind... gods... perfect...",
"*watching* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " driving you deeper onto me... I need all of this...",
"Nngh, " + _partnerName + "'s rhythm sends " + setup.npc.mcName($tmpGirl) + " deeper... in my own ward... I have completely checked out...",
"*fingers in your hair* " + _partnerName + " behind you, me in front... both of us claiming you, " + setup.npc.mcName($tmpGirl) + "... don't you dare stop...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... both of you right here... this is better than anything this building has ever asked of me..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I have cared for others in this building every single day and I had forgotten what it feels like to receive it...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the hospital asks everything of me and for once I'm keeping something just for myself...",
"*softly* Every nerve I've been keeping clinical all day... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... they're not clinical anymore...",
"Mmm, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I know this building's every sound... right now I want to add a few of my own...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... even in a hospital, some things cannot be kept professional. This is one of them.",
"*breathless* The wards, the rounds, the endless composure... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... not right now. None of it right now.",
"*quietly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I chose this work because I wanted to heal people. Today, both of you have healed something in me..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.location === 'hospital' && typeof $tmpGirl.sick !== 'undefined' && setup.percentageChance(45)>>
<<if $tmpGirl.horny >= 100>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I completely forgot about the injury... I'm cumming... I can't even tell where the ache was...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... they said keep still and rest... I think this counts as therapeutic... I'm cumming...",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... there was something wrong with me when I came in and right now I cannot remember what it was... ahh...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... the ache is completely gone... this is the most pain-free I have felt since the injury... I'm cumming...",
"*barely holding on* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... careful of my wrist... but don't you dare stop... I'm so close...",
"Ahhh! " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the pain was all I could think about when I came in here and now it is absolutely nowhere in my thoughts...",
"*clinging to " + _partnerName + " with her good hand* " + setup.npc.mcName($tmpGirl, 1) + "... the injury doesn't matter right now... nothing does... I'm cumming..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 80>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathing hard* I came in here because of the injury... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I have genuinely forgotten it exists...",
"Mmmhh, the hospital bed is so much better with you two in it... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I'm almost there... so close...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... they said rest the ankle and don't move around... I'm finding that very difficult right now...",
"*breathless* I was so focused on the pain when I arrived... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... right now I feel nothing but this...",
"Mmmh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the injury aches a little but everything else feels so much better than that ache... I'm almost there...",
"*quietly urgent* Nobody in the ward knows I'm doing this and I don't care at all... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... don't stop...",
"Ahh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... they prescribed rest... I think I'll need a very different kind of recovery after this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I've had clinical hands on me all day... your kiss is the first touch that's felt warm...",
"*softly* The hospital is so cold... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "'s lips are the warmest thing in this room right now...",
"Mmmhh... stuck here because of the injury and both of you visiting like this... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... the hospital has never felt anything like this...",
"*melting* I've been lying here staring at that ceiling for hours... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is so much better than the ceiling...",
"Mmm... I keep forgetting not to move my wrist too much... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... you two make it very hard to stay still...",
"Mmm, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... they gave me something for the pain but this works so much better...",
"*barely breathing* I came here hoping someone would take care of me... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... this is far more than I hoped for..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the injury had all my attention when I came in... this is the first thing that's pulled it away completely...",
"*breathless* The staff have been very attentive about the sprain... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... none of them did this...",
"Mmmh, " + setup.npc.mcName($tmpGirl, 1) + "... lying still for hours makes you so aware of your body... " + _partnerName + "... your tongue right now is almost more than I can bear...",
"*gripping the sheets carefully* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I've been so aware of the injury all day and right now every nerve has somewhere better to be...",
"Ahhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I cannot feel the ache at all anymore... you've completely replaced it with something better...",
"*barely controlled* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I told them I was fine when I came in... this is what fine actually feels like...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the best thing that's happened in this bed and it has nothing to do with medicine..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy' || $sexAction === 'anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... careful of the ankle... but don't stop... please don't stop...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... I'm supposed to keep still... " + _partnerName + "... I'm trying... gods I'm trying...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + "... I came in here with a sprained wrist and I've completely forgotten which one it was...",
"*gripping " + _partnerName + " with her good hand* " + setup.npc.mcName($tmpGirl, 1) + "... the ache is gone... just you... you two are the best treatment I've had...",
"Mmmh... they told me not to put weight on it and right now that instruction is very difficult to follow... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "...",
"The doctors said rest... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I'll tell them the recovery is going extremely well...",
"*softly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I came in here because something hurt... right now nothing hurts at all..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + _partnerName + "... I've been looked after all day... let me give something back... " + setup.npc.mcName($tmpGirl, 1) + ", don't stop...",
"Nngh, " + setup.npc.mcName($tmpGirl) + " inside me while I tend to you, " + _partnerName + "... a sprained ankle doesn't stop me from taking care of someone...",
"*muffled* " + _partnerName + "... I came in here in pain and all I feel right now is you and " + setup.npc.mcName($tmpGirl, 1) + " inside me... the ache is completely gone...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + " filling me while I give to you, " + _partnerName + "... giving and receiving at once is so much better than lying still and waiting...",
"*breathless between breaths* " + _partnerName + "... you taste like exactly what I needed today... " + setup.npc.mcName($tmpGirl, 1) + "... don't stop...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "... every pulse of you reminds me " + _partnerName + " is still waiting... a little injury is not going to stop me being thorough...",
"*muffled* " + _partnerName + "... I've been the one being tended all day... this feels like the most capable I've been since I came in..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' || $sexAction === 'handjob'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I've been attended to by everyone in this place... I want to attend to you for once...",
"*looking up* " + setup.npc.mcName($tmpGirl, 1) + "... they say the best recovery comes when you feel useful again... " + _partnerName + "... I feel very useful right now...",
"Mmm, " + _partnerName + "... I've spent all day being the one who can't do anything... " + setup.npc.mcName($tmpGirl) + "... this is so much better than lying there waiting...",
"*softly* One sprained wrist and they act like I can't do anything... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I still have one very good hand...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I've been so bored in that bed. I am not bored now. Not even slightly.",
"*glancing at " + _partnerName + "* " + setup.npc.mcName($tmpGirl) + "... the nurses keep checking on the ankle... you two are the only visit that's actually helped...",
"Mmm... " + _partnerName + "... they said gentle movement is good for recovery... " + setup.npc.mcName($tmpGirl, 1) + "... I'm interpreting that very generously..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' || $sexAction === 'cum_in_ass'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + setup.npc.mcName($tmpGirl, 1) + "! " + _partnerName + "... filling me in a hospital ward... I feel nothing like a patient right now...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... the warmth of you inside me... the most warm I have felt in this cold building...",
"*shaking* " + setup.npc.mcName($tmpGirl, 1) + "... I came in here because something hurt... and you fill me and nothing hurts anymore... " + _partnerName + "...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " inside me in a hospital... the doctors wanted me to feel better... I do...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... they've been treating the injury all day... " + _partnerName + "... none of them managed what you two just did...",
"Ahh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I've been lying in that bed unable to think about anything else... you two have given me something else entirely...",
"*quietly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the warmth of him inside me is the only thing I can feel right now... the injury is completely gone..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits'>>
<<sayNpc $tmpGirl>>
<<=either([
"*breathless* " + _partnerName + "... the nurses are going to have questions about the state of these sheets... " + setup.npc.mcName($tmpGirl, 1) + "... I have no regrets...",
"Mmmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the hospital gown was already a casualty... this only improves the situation...",
"*softly* Having to stay still all day makes you so aware of your skin... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... this warmth is the best thing I've felt all day...",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... marked in the hospital ward... at least something memorable happened during my stay...",
"*laughing softly* " + _partnerName + "... the hospital is supposed to be the place where things get cleaned up... " + setup.npc.mcName($tmpGirl, 1) + "... apparently not today...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I've been lying here in that gown feeling so undignified... at least now there's a reason for it...",
"*quietly glowing* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I'll need new sheets and I do not care at all..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_mouth' || $sexAction === 'cum_in_throat'>>
<<sayNpc $tmpGirl>>
<<=either([
"*swallowing* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I came in here for painkillers... this works so much better...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the ankle aches and I genuinely don't care... I want every drop...",
"*looking up, bracing on her good hand* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... they said stay still and rest... I am very still right now...",
"Mmm... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... they prescribe all sorts of things in this hospital... none of it feels like this...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I've been in this bed all day and this is the first moment I couldn't care less about the injury...",
"*wiping her lip* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... I'll need a new gown... and I am absolutely worth it...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... the wrist throbs a little and everything else is perfect... bed rest has never felt like this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_b_pussy' || $sexAction === 'bj_b_anal'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + _partnerName + " behind me drives me deeper onto you, " + setup.npc.mcName($tmpGirl) + "... the wrist, the bed, all of it... gone...",
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s strapon and your cock at the same time... I came in here hurting and I've completely forgotten what for...",
"*muffled* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " fills me from behind and I can't keep still... careful of the wrist but gods don't stop...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " behind me in this room... the injury is nowhere. None of it is anywhere...",
"*pulling back* " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I'm not feeling anything but this right now..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_pussy_lick'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + " inside me while you give to " + _partnerName + "... I've been lying here all day... gods, this is better...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + " inside me and " + _partnerName + " on your tongue... I'll need a longer recovery...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + " inside me and " + _partnerName + "'s sounds in my ear... careful of the wrist... don't stop anything else...",
"*gripping the rail with her good hand* " + setup.npc.mcName($tmpGirl) + "... giving to " + _partnerName + " while you're still inside me... the ankle is the last thing on my mind...",
"Oh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "'s sounds and your body in mine... I am so glad I twisted this ankle..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_sn'>>
<<sayNpc $tmpGirl>>
<<=either([
"*muffled* " + setup.npc.mcName($tmpGirl, 1) + "... you inside me and " + _partnerName + "'s tongue here... bed rest has never, ever felt like this...",
"Nngh, " + setup.npc.mcName($tmpGirl) + " filling me while " + _partnerName + " is right there... the ankle is gone... all of it is gone...",
"*muffled* " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + " inside me and your tongue... I'm not going to keep still much longer...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "'s hips and you inside me... I can't tell which part of me was hurt...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " and both of you at once... the doctors prescribed rest. I disagree."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... and " + _partnerName + " at the same time... in this bed... I've never been happier about a sprained ankle...",
"*breathless* Both of you... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I came in here in pain and right now I feel extraordinary...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... filled by both of you... I can't remember which wrist it was...",
"*gripping " + _partnerName + " with her good hand* " + setup.npc.mcName($tmpGirl, 1) + " and " + _partnerName + " at once in this bed... gods...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... both of you right now... I'm not leaving until I have to..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_b_anal' || $sexAction === 'anal_b_pussy'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " beside me, both of us filled... her face right now... she feels exactly how I do...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " taking hers while you take me... we came in hurt and we are very much not hurting now...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + " and I together... the injury is nowhere in my thoughts... gods...",
"*between breaths* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " beside me... the ankle brought me here and I owe it everything...",
"Mmmhh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " and I, both of us in this bed... I am extending my stay..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_b_bj'>>
<<sayNpc $tmpGirl>>
<<=either([
"Nngh, " + setup.npc.mcName($tmpGirl, 1) + " in my ass and " + _partnerName + " right there... I've been here all day and this is all I want...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... watching " + _partnerName + " work while you're deep inside me... the ankle is miles away...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + " so devoted and you so deep... they said keep the ankle up... I am keeping various things up right now...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " right there... you inside me... I have been waiting for this moment all day...",
"*gripping the rail with her good hand* " + setup.npc.mcName($tmpGirl, 1) + " taking me, " + _partnerName + " beside me... the injury was the best thing that happened to me today..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'handjob_anal_reverse' || $sexAction === 'bj_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Nngh, " + _partnerName + " in my ass while I take care of you, " + setup.npc.mcName($tmpGirl) + "... careful of the wrist... but don't you dare stop...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " behind me and you right here... I came in here miserable and I feel incredible...",
"Mmmhh, " + _partnerName + "'s rhythm drives me toward you, " + setup.npc.mcName($tmpGirl) + "... bed rest is not what this is... and I prefer this...",
"*breathless* " + _partnerName + " filling me from behind and you right here, " + setup.npc.mcName($tmpGirl) + "... the ankle is completely forgotten...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... every thrust and I lose track of the injury entirely... keep going..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'nipple_lick_anal_reverse' || $sexAction === 'pussy_lick_anal_reverse' || $sexAction === 'sn_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* " + _partnerName + " in my ass and you right here, " + setup.npc.mcName($tmpGirl) + "... careful with the wrist... nothing else needs to be careful...",
"Nngh, " + _partnerName + " behind me in this bed, " + setup.npc.mcName($tmpGirl) + "... the injury, the boredom... gone...",
"Mmmhh... " + _partnerName + "'s hands on my hips and yours right here, " + setup.npc.mcName($tmpGirl) + "... I cannot keep still...",
"*breathless* Every time " + _partnerName + " pushes deeper I forget everything that hurt, " + setup.npc.mcName($tmpGirl, 1) + "... don't stop...",
"Ahh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... both of you right now... the doctors said rest and I am resting nothing..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " pushing you deeper into me... gods... don't stop...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... every thrust from " + _partnerName + " sends you right where I need you... I can't feel the ankle at all...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! " + _partnerName + "'s rhythm, all three of us together... I couldn't care less what's outside this room...",
"Nngh, " + _partnerName + " pushing you into me, " + setup.npc.mcName($tmpGirl) + "... I genuinely can't remember which limb was hurt...",
"*gripping " + setup.npc.mcName($tmpGirl) + " with her good hand* " + _partnerName + "'s hands on your hips and you inside me... gentle activity aids recovery. This counts."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + "... kneeling for me in this room... " + _partnerName + " watching... the ankle brought me here and I'm keeping you...",
"*from the bed* " + setup.npc.mcName($tmpGirl) + "... your mouth right here while " + _partnerName + " watches... the wrist aches and I don't care...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... you kneeling for me while I lie here... " + _partnerName + "... this is the only bed rest I want...",
"*fingers in your hair with her good hand* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " watching both of us... I've been here all day for this moment...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... you giving this to me in a hospital bed... the injury was worth it..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + " watching you take me in this bed... gods...",
"*pressing forward* " + setup.npc.mcName($tmpGirl, 1) + "... you take me so beautifully... " + _partnerName + " watching every second... the ankle can wait...",
"Nngh, " + setup.npc.mcName($tmpGirl) + "... taking you in this bed while " + _partnerName + " watches... this is better than anything outside that door...",
"*breathless* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... you give yourself so perfectly... I came in hurting and right now I feel everything but that...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... taking you here while the ward is right there... I am so glad they made me stay..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_reverse_anal_reverse'>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmhh, " + setup.npc.mcName($tmpGirl) + " on your knees for me while " + _partnerName + " takes you... from a hospital bed... gods...",
"*watching from the bed* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " driving you deeper onto me... I was counting ceiling tiles this morning...",
"Nngh, " + _partnerName + "'s rhythm sends " + setup.npc.mcName($tmpGirl) + " deeper... I came in with a sprain and I'm leaving with something much better...",
"*fingers in your hair with her good hand* " + _partnerName + " behind you, me in front... both of us claiming you, " + setup.npc.mcName($tmpGirl) + "... don't you dare stop...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... both of you and this bed... I owe this ankle everything..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahhh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I came in here because something hurt and both of you have completely replaced the pain...",
"Mmmhh... " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... I keep remembering I'm supposed to keep still and then forgetting again immediately...",
"*softly* I've been lying here staring at the ceiling waiting to feel like myself... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I feel more than myself right now...",
"Mmm, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... even laid up with the injury, some things the body doesn't forget... mine hasn't forgotten either of you...",
"Mmmhh... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... the ward is quiet and both of you are here and the ankle is the last thing on my mind...",
"*breathless* The injury, the boredom, the endless waiting... " + _partnerName + "... " + setup.npc.mcName($tmpGirl, 1) + "... none of it is anywhere in my thoughts right now.",
"*quietly* " + setup.npc.mcName($tmpGirl, 1) + "... " + _partnerName + "... they wanted me to get better... I don't think they imagined it quite like this..."
])>>
<</sayNpc>>
<</if>>
<<elseif $tmpGirl.horny >= 80 && $tmpGirl.horny < 100 && setup.percentageChance(50) >>
<<sayNpc $tmpGirl>>
<<=either([
setup.npc.mcName($tmpGirl, 1) + ", " + _partnerName + ", you're gonna make me cum!",
"Don't stop, " + setup.npc.mcName($tmpGirl) + ". I'm almost there...",
"You make us feel so good, " + setup.npc.mcName($tmpGirl) + "!",
"*breathless* " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... keep going, I'm so close...",
"Nngh, you two together are too much... don't you dare stop..."
])>>
<</sayNpc>>
<<elseif $tmpGirl.horny >= 100 && setup.percentageChance(90) >>
<<sayNpc $tmpGirl>>
<<=either([
"I'm cumming, " + setup.npc.mcName($tmpGirl) + "!",
"YES! YES! YES, " + setup.npc.mcName($tmpGirl) + "!",
"Mmm, gods yes, " + setup.npc.mcName($tmpGirl) + ", I'm cumming!",
setup.npc.mcName($tmpGirl, 1) + "! MMMhhh, " + _partnerName + ", that's it! I'm-I'm cumming!!",
"Ahhh, " + _partnerName + "!! " + setup.npc.mcName($tmpGirl, 1) + " feels so fucking good!!!",
"*back arching* Nnghh, " + _partnerName + ", he's making me cum so hard!!",
"*shaking* Ahh, mmmmhh, Yes " + setup.npc.mcName($tmpGirl) + "!",
"Oh gods, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I can't hold back... I'm cumming!",
"*grabbing " + _partnerName + "* I'm cumming, " + setup.npc.mcName($tmpGirl) + "! I can't stop it!",
"Ahhhh!! " + _partnerName + ", watch me cum for him... " + setup.npc.mcName($tmpGirl) + ", don't stop..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'kissing' >>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmmhhh, " + setup.npc.mcName($tmpGirl) + "...",
"Hmm, who's the better kisser, " + setup.npc.mcName($tmpGirl) + ", " + _partnerName + " or me...?",
"Mmmm " + setup.npc.mcName($tmpGirl) + ", " + _partnerName + ", I love you...",
"We love your kisses so much, " + setup.npc.mcName($tmpGirl) + "...",
"*sighing softly* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I never want this to stop...",
"Mmm, " + _partnerName + ", he tastes just as good as he looks, doesn't he...",
"Your lips are so warm, " + setup.npc.mcName($tmpGirl) + ". I could do this all day...",
"*breathless* Come here, " + _partnerName + "... let me show you how good his kisses are...",
"Mmh, " + setup.npc.mcName($tmpGirl) + "... you make me forget to breathe...",
"I want both of you, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... every single inch of you..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'handjob' >>
<<sayNpc $tmpGirl>>
<<=either([
"Do our hands feel good, " + setup.npc.mcName($tmpGirl) + "..?",
"*bites her lip* Wow... Isn't " + setup.npc.mcName($tmpGirl) + " big, " + _partnerName + "? ",
"Which do you like better, " + _partnerName + ", " + setup.npc.mcName($tmpGirl) + "'s shaft, or his balls?",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... I can feel how much you want us...",
"*whispering to " + _partnerName + "* Look how hard he is... that's for both of us..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj' >>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh.. you taste so good, " + setup.npc.mcName($tmpGirl) + "...",
"Mmmm, I'll suck on " + setup.npc.mcName($tmpGirl) + "'s head " + _partnerName + ", while you work his balls...",
"Do you like when we do this with our tongues, " + setup.npc.mcName($tmpGirl) + "?",
"*muffled* Are we doing it right, " + setup.npc.mcName($tmpGirl) + "?",
"*looking up at " + setup.npc.mcName($tmpGirl) + "* Mmmh... " + _partnerName + " and I want to taste every bit of you..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_lick' >>
<<sayNpc $tmpGirl>>
<<=either([
setup.npc.mcName($tmpGirl, 1) + ", " + _partnerName + ", your tongues feel amazing!",
"Ahh! Ahh! Right there, " + setup.npc.mcName($tmpGirl) + "...",
"Do I taste good, " + setup.npc.mcName($tmpGirl) + "?",
"Mmmh, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... I can't decide which feels better...",
"*gripping " + _partnerName + "* Don't stop, " + setup.npc.mcName($tmpGirl) + "... right there..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_fisting' || $sexAction === 'anal_fisting' >>
<<sayNpc $tmpGirl>>
<<=either([
"Nnngh! I can't believe you fit the whole thing, " + setup.npc.mcName($tmpGirl) + "!",
setup.npc.mcName($tmpGirl, 1) + ", that's a really tight fit...",
"Ahh! Ahh! So full, " + setup.npc.mcName($tmpGirl) + "...",
"Nngh, " + _partnerName + "... watch me take it... all of it...",
"*gasping* I've never felt so stretched... " + setup.npc.mcName($tmpGirl) + "... keep going..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_reverse' >>
<<if ($tmpGirl.traits ?? []).includes('sadistic') && setup.percentageChance(60)>>
<<sayNpc $tmpGirl>>
<<=either([
"Yeah, take it, " + setup.npc.mcName($tmpGirl) + ". Take it like a bitch!",
"*Spank* Your ass is mine, " + setup.npc.mcName($tmpGirl) + "...",
"Mmm, tight! Just the way I like it, " + setup.npc.mcName($tmpGirl) + ".",
"Deeper, " + setup.npc.mcName($tmpGirl) + ". Show " + _partnerName + " you can take it.",
"*pulling " + setup.npc.mcName($tmpGirl) + " back by the hair* That's it. Every inch."
])>>
<</sayNpc>>
<<elseif !$tmpGirl.gender >>
<<sayNpc $tmpGirl>>
<<=either([
"Like getting pegged, " + setup.npc.mcName($tmpGirl) + "?",
"Mmm, you make me wish I had a real one, " + setup.npc.mcName($tmpGirl) + "...",
"You like switching things up, " + setup.npc.mcName($tmpGirl) + "?",
"Isn't he cute taking it like that, " + _partnerName + "?",
"*grinning* Tell me how it feels, " + setup.npc.mcName($tmpGirl) + "... I want to know everything..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, you've got the best ass, " + setup.npc.mcName($tmpGirl) + "!",
"Ahhh, " + setup.npc.mcName($tmpGirl) + "'s ass feels so good on my cock, " + _partnerName + ".",
"Nngh, yes! Squeeze my cock with your ass, " + setup.npc.mcName($tmpGirl) + "...",
"Mmm, " + _partnerName + ", do you like how " + setup.npc.mcName($tmpGirl) + "'s ass looks on my cock?",
"Yess... take it deeper, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>>
<<elseif $sexAction === 'bj_reverse' >>
<<if ($tmpGirl.traits ?? []).includes('sadistic') && setup.percentageChance(60)>>
<<sayNpc $tmpGirl>>
<<=either([
"Yeah, suck it, " + setup.npc.mcName($tmpGirl) + ". Suck it like a bitch!",
"Enough talking, " + setup.npc.mcName($tmpGirl) + ". Use that mouth for what it's good for!",
"Mmmm, you look so good down on your knees, " + setup.npc.mcName($tmpGirl) + "..",
"Take it deeper, " + setup.npc.mcName($tmpGirl) + ". Don't disappoint " + _partnerName + ".",
"*grabbing his hair* All the way. Show me what that mouth can do."
])>>
<</sayNpc>>
<<elseif !$tmpGirl.gender >>
<<sayNpc $tmpGirl>>
<<=either([
"Get that toy nice and wet, " + setup.npc.mcName($tmpGirl) + "!",
"Damn, this makes me wish I had a real one, " + setup.npc.mcName($tmpGirl) + "...",
"You like that hard rubber in your mouth, " + setup.npc.mcName($tmpGirl) + "?",
"You look so good down there, " + setup.npc.mcName($tmpGirl) + "... doesn't he, " + _partnerName + "?",
"*softly* I love watching you worship it, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Damn, you've got the best mouth skills, " + setup.npc.mcName($tmpGirl) + "!",
"Mmmh, " + _partnerName + ", " + setup.npc.mcName($tmpGirl) + "'s lips feel so good on my cock!",
"Mmm, doesn't " + setup.npc.mcName($tmpGirl) + "'s mouth look so sexy on my cock, " + _partnerName + "...",
"Do you like how my cock tastes, " + setup.npc.mcName($tmpGirl) + "?",
"Mmmm... show me how deep you can take it, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>>
<<elseif $sexAction === 'pussy' >>
<<if !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father === 'mc' || ($tmpGirl.family?.siblings ?? []).includes('mc') || ($tmpGirl.family?.kids ?? []).includes('mc') || $player.family?.mother === $tmpGirl.id || $player.family?.father === $tmpGirl.id || ($player.family?.siblings ?? []).includes($tmpGirl.id)) && setup.percentageChance(30)>>
<<if $tmpGirl.family?.father === 'mc'>>
<<sayNpc $tmpGirl>>
<<=either([
"I know it's wrong, " + _partnerName + ".. but daddy feels so right....",
"Mmmm, don't judge me " + _partnerName + ", Daddy feels so amazing...",
"Do you like watching daddy fuck me, " + _partnerName + "?",
"*whispering* It's so wrong, " + _partnerName + "... so why does daddy feel so perfect...",
"Ahh, daddy... " + _partnerName + ", he goes so deep... I can't help how good it feels...",
"Don't look away, " + _partnerName + "... I want you to see how much I love this...",
"*breathless* Daddy... " + _partnerName + "... having you both here feels like a dream...",
"Mmmh, " + _partnerName + ", nobody fills me like daddy does... nobody...",
"Daddy, don't slow down just because " + _partnerName + " is watching... especially not because of that...",
"*shaking* " + _partnerName + "... I know I shouldn't want this so much... but I do..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.siblings ?? []).includes('mc') || ($player.family?.siblings ?? []).includes($tmpGirl.id)>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm... don't look shocked, " + _partnerName + "... my own brother fills me better than anyone I've ever been with...",
"We grew up in the same house, " + _partnerName + "... *breathless* ...and now look at us...",
"I know it's wrong, " + _partnerName + "... the fact that it's " + setup.npc.mcName($tmpGirl) + " makes it feel so much better...",
"*gasping* We share everything, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... even this...",
"Don't judge us, " + _partnerName + "... you can't look away either, can you...",
"Forbidden fruit, " + _partnerName + "... and my own blood is the most forbidden of all...",
"*breathless* " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + " knows me better than anyone... every part of me...",
"Nobody else gets this from me, " + _partnerName + "... only " + setup.npc.mcName($tmpGirl) + "... only ever him...",
"*shivering* I always knew we'd end up here, " + _partnerName + "... watching him take me just proves it...",
"Our secret, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... some things stay between family..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"My own son inside me, " + _partnerName + "... *breathless* ...I raised him for this, it seems...",
"I gave him life, " + _partnerName + "... and he gives me this... I'd call that a fair exchange...",
"*gasping* He fits perfectly, " + _partnerName + "... like I was made for him...",
"Don't look so surprised, " + _partnerName + "... you have no idea how long I've wanted this...",
"*moaning* You grew into such a man, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", isn't he magnificent...",
"Nobody knows him better than I do, " + _partnerName + "... and right now he knows every part of me...",
"*breathless* I should be ashamed, " + _partnerName + "... I'm not... not even a little...",
"He came from me once, " + _partnerName + "... and now he comes back to me like this... full circle...",
"*shaking* " + _partnerName + "... my own son is making me lose my mind...",
"Forbidden, " + _partnerName + "... and yet nothing has ever felt more right..."
])>>
<</sayNpc>>
<</if>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmh, " + _partnerName + ", you should feel how good " + setup.npc.mcName($tmpGirl) + "'s cock feels.",
"You're the perfect fit, " + setup.npc.mcName($tmpGirl) + "...",
"Yes, " + setup.npc.mcName($tmpGirl) + ", take us both, you stallion!",
"Oh " + _partnerName + ", " + setup.npc.mcName($tmpGirl) + " feels so much better than a toy.",
"Mmmm... Deeper, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<</if>>
<<elseif $sexAction === 'anal' && $tmpGirl.anal >= 20 >>
<<if !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father === 'mc' || ($tmpGirl.family?.siblings ?? []).includes('mc') || ($tmpGirl.family?.kids ?? []).includes('mc') || $player.family?.mother === $tmpGirl.id || $player.family?.father === $tmpGirl.id || ($player.family?.siblings ?? []).includes($tmpGirl.id)) && setup.percentageChance(30)>>
<<if $tmpGirl.family?.father === 'mc'>>
<<sayNpc $tmpGirl>>
<<=either([
"I know it's so naughty, " + _partnerName + " but you know how good daddy feels....",
"Do you like watching me take daddy in my ass, " + _partnerName + "?",
"*gasping* Daddy fills me so deep back there... " + _partnerName + ", do you have any idea how good this feels?",
"It's wrong, I know, " + _partnerName + "... but when daddy's inside me like this, I can't bring myself to care...",
"Mmmh, daddy... " + _partnerName + ", touch me while he does this... please...",
"Ahh, daddy... you always know exactly how I need it... " + _partnerName + ", don't look away...",
"I've never let anyone else do this to me, " + _partnerName + "... only daddy...",
"*breathless* Daddy... tell me you love me while " + _partnerName + " watches... please...",
"Nngh, he goes so deep in my ass, " + _partnerName + "... I've never felt anything like it...",
"It's our secret, " + _partnerName + "... the way only daddy can take me like this..."
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.siblings ?? []).includes('mc') || ($player.family?.siblings ?? []).includes($tmpGirl.id)>>
<<sayNpc $tmpGirl>>
<<=either([
"We share everything, " + _partnerName + "... *breathless* ...I mean everything...",
"*gasping* My own brother back there... " + _partnerName + ", isn't that the most forbidden thing you've ever seen...",
"Don't look shocked, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + " knows exactly how I like it...",
"I've never let anyone else do this, " + _partnerName + "... only " + setup.npc.mcName($tmpGirl) + "... only him...",
"*breathless* We grew up together, " + _partnerName + "... and now this... it's the best secret we have...",
"Forbidden fruit hits different when it's your own blood, " + _partnerName + "...",
"My own brother in my ass, " + _partnerName + "... *whispering* ...and I wouldn't change a thing...",
"*gasping* " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + " and I have always been close... this close...",
"You can watch, " + _partnerName + "... but you'll never understand what we have, " + setup.npc.mcName($tmpGirl) + "...",
"Wrong doesn't begin to cover it, " + _partnerName + "... *breathless* ...which is exactly why it feels this good..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"My own son taking me there, " + _partnerName + "... *breathless* ...he's grown into quite the man...",
"I gave him everything when he was little, " + _partnerName + "... *gasping* ...I'm still giving...",
"You belong to me more than anyone, " + setup.npc.mcName($tmpGirl) + "... *quietly* ...so I belong to you too...",
"*breathless* Don't judge, " + _partnerName + "... you don't know what we share...",
"Every part of me was always his, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + " knows that...",
"My body made his, " + _partnerName + "... *gasping* ...and now his claims mine...",
"Forbidden... perhaps, " + _partnerName + "... *breathless* ...but I raised a man who takes what he wants, and I admire it...",
"Mmm, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + " certainly knows how to handle his mother...",
"*shaking* My son going so deep, " + _partnerName + "... I've never felt so claimed...",
"He learned from me, " + _partnerName + "... *gasping* ...and used every lesson to undo me..."
])>>
<</sayNpc>>
<</if>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"You feel so good in my ass, " + setup.npc.mcName($tmpGirl) + "!",
"It's so big, " + setup.npc.mcName($tmpGirl) + "... I don't know if " + _partnerName + " can take it like I do.",
"Mmph.. gods " + _partnerName + ", you should feel how deep " + setup.npc.mcName($tmpGirl) + " fills me...",
"*gripping the sheets* Nngh, " + setup.npc.mcName($tmpGirl) + "... so deep... " + _partnerName + "... watch me take it...",
"Ahh, " + setup.npc.mcName($tmpGirl) + "! Right there... " + _partnerName + ", he feels incredible back there..."
])>>
<</sayNpc>>
<</if>>
<<elseif $sexAction === 'anal' && $tmpGirl.anal < 20 && ($tmpGirl.traits ?? []).includes('masochist') >>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh! Ungh! " + setup.npc.mcName($tmpGirl,1) + ", it hurts, but don't stop!",
"Ow! It's too tight, " + setup.npc.mcName($tmpGirl) + "! Give me more...",
"Mmph! Keep going, " + setup.npc.mcName($tmpGirl) + "! I like it rough...",
"Hahh, " + setup.npc.mcName($tmpGirl) + ", keep going. Stretch me out like I deserve...",
"*tears in her eyes* " + _partnerName + "... it hurts so good... " + setup.npc.mcName($tmpGirl) + ", don't you dare be gentle..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_on_face' || $sexAction === 'cum_on_back' || $sexAction === 'cum_on_stomach' || $sexAction === 'cum_on_tits' >>
<<sayNpc $tmpGirl>>
<<=either([
"Do we look pretty, " + setup.npc.mcName($tmpGirl) + "?",
"Mmmmhh, it feels so nice and warm, doesn't it " + _partnerName + "...",
"Yes, " + setup.npc.mcName($tmpGirl) + ", paint us with your cum...",
"You've marked us " + setup.npc.mcName($tmpGirl) + "... We're all yours...",
"Mmmh, " + _partnerName + "... we did that together... look at us..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_mouth' || $sexAction === 'cum_in_throat' >>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmm.. doesn't " + setup.npc.mcName($tmpGirl) + " taste so good, " + _partnerName + "?",
"Do you want me to swallow, " + setup.npc.mcName($tmpGirl) + ", or share it with " + _partnerName + "?",
"Mmmh, " + _partnerName + ", share it with me...",
"Mmmm yes, " + _partnerName + ", I love the taste of " + setup.npc.mcName($tmpGirl) + "'s cum on your lips...",
"*swallowing slowly* Mmmh... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", you have to taste this..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'cum_in_pussy' >>
<<if !$player?.baseManagement?.noIncest && ($tmpGirl.family?.father === 'mc' || ($tmpGirl.family?.siblings ?? []).includes('mc') || ($tmpGirl.family?.kids ?? []).includes('mc') || $player.family?.mother === $tmpGirl.id || $player.family?.father === $tmpGirl.id || ($player.family?.siblings ?? []).includes($tmpGirl.id)) && setup.percentageChance(30)>>
<<if $tmpGirl.family?.father === 'mc'>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasps* " + _partnerName + ", daddy just came inside me! He's so naughty..",
"Mmmmh, " + _partnerName + ", do you like watching daddy plant his seed inside me?",
"Daddy! You like letting " + _partnerName + " watch you breed your girl...?",
"*shaking* Daddy... I can feel every pulse inside me... " + _partnerName + ", don't look away...",
"Oh daddy... " + _partnerName + ", he's so warm inside me... it feels like it's just for me...",
"Mmmmh, daddy just filled me up, " + _partnerName + "... can you feel how he's still throbbing?",
"Daddy... " + _partnerName + "... I've wanted this for so long and now it's really happening...",
"*breathless* I love you, daddy... " + _partnerName + ", you saw that, right? He chose me...",
"Mmmh... his cum is so warm inside me, " + _partnerName + "... I never want it to leave...",
"*eyes closed* Daddy... breed me... " + _partnerName + ", isn't that exactly what I deserve?"
])>>
<</sayNpc>>
<<elseif ($tmpGirl.family?.siblings ?? []).includes('mc') || ($player.family?.siblings ?? []).includes($tmpGirl.id)>>
<<sayNpc $tmpGirl>>
<<=either([
"*shivering* He came inside his own sister, " + _partnerName + "... we are absolutely terrible.. in the best way...",
"Siblings who share everything, " + _partnerName + "... *gasping* ...and I mean everything...",
"What would people say, " + _partnerName + "... *softly* ...I honestly don't care right now...",
"His seed inside his sister, " + _partnerName + "... forbidden fruit at its finest...",
"You know this makes us even closer, " + setup.npc.mcName($tmpGirl) + "... *quietly* ..." + _partnerName + ", if that was even possible...",
"I always knew we'd end up here, " + _partnerName + "... and it was worth every second of the wait...",
"So wrong, " + _partnerName + "... *exhaling* ...so, so right...",
"*breathless* " + _partnerName + "... he filled his own sister... and it felt perfect...",
"Our best secret, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... some things stay between family...",
"*shaking* " + _partnerName + "... I can feel every pulse of him inside me... my own brother..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"*gasping* He came inside his own mother, " + _partnerName + "... *softly* ...and I'm not the least bit sorry...",
"He came from me once, " + _partnerName + "... *exhaling* ...and now he comes back inside me... full circle...",
"I gave him life, " + _partnerName + "... *quietly* ...and right now I'd give him anything...",
"So naughty, my son, " + _partnerName + "... *breathless* ...so very naughty... and I'll take some credit for that...",
"His seed where it all began, " + _partnerName + "... *softly* ...I can't think of a better place for it...",
"What will the family tree look like, " + _partnerName + "... *quietly* ...I suppose we'll find out...",
"Your mother receives you completely, " + setup.npc.mcName($tmpGirl) + "... *softly* ..." + _partnerName + "... as she always has...",
"*shaking* " + _partnerName + "... my own son filling me... it's so warm...",
"I'd give him anything, " + _partnerName + "... *breathless* ...I always have...",
"The warmth of him inside me, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... this is the most complete I've ever felt..."
])>>
<</sayNpc>>
<</if>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + _partnerName + ", he's cumming! Mmmmh, " + setup.npc.mcName($tmpGirl) + ", it feels so warm filling me...",
"Sorry, " + _partnerName + ", it's my turn to feel " + setup.npc.mcName($tmpGirl) + "'s heat inside me.",
"Mmm, it feels so good when you throb inside me, " + setup.npc.mcName($tmpGirl) + "...",
"Oh " + _partnerName + ", he's cumming so hard. It feels amazing!",
"*gasping* " + setup.npc.mcName($tmpGirl) + "... I can feel every pulse of you inside me... " + _partnerName + "..."
])>>
<</sayNpc>>
<</if>>
<<elseif $sexAction === 'cum_in_ass' >>
<<sayNpc $tmpGirl>>
<<=either([
"*gasps* " + _partnerName + ", he's cumming so deep inside me!",
"Mmmmhh, " + _partnerName + ", you should feel how good " + setup.npc.mcName($tmpGirl) + " feels pumping into my ass...",
"Oh " + setup.npc.mcName($tmpGirl) + ", I feel it throbbing so strong inside me...",
"*shaking* Ahh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + ", he fills my ass so perfectly...",
"Mmmh, the warmth of it... " + _partnerName + ", I want you to feel this next..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_b_pussy' || $sexAction === 'bj_b_anal' >>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmph, " + setup.npc.mcName($tmpGirl) + ", " + _partnerName + ", I love feeling you in both ends!",
"Mmmmhh, you taste so nice, " + setup.npc.mcName($tmpGirl) + ", and " + _partnerName + " feels so good inside me...",
"Nngh, " + _partnerName + " inside me while I taste you, " + setup.npc.mcName($tmpGirl) + "... I can't decide which I love more...",
"*muffled* " + _partnerName + "... don't stop... " + setup.npc.mcName($tmpGirl) + "... I need both of you...",
"Taking you in my mouth while " + _partnerName + " fills me... " + setup.npc.mcName($tmpGirl) + "... this is everything..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_pussy_lick' >>
<<sayNpc $tmpGirl>>
<<=either([
"Oh yes, " + _partnerName + ", let's ride " + setup.npc.mcName($tmpGirl) + " together!",
"Mmmmhh, " + _partnerName + ", his cock feels so good. Tell me how his tongue feels...",
"Yes " + setup.npc.mcName($tmpGirl) + ", eat " + _partnerName + "'s pussy while I ride you.",
"Mmmh, " + _partnerName + "... you look so good on his tongue... does he feel as good there as inside me?",
"Oh gods, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... having you both like this at once is too much..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy_lick' || $sexAction === 'anal_a_pussy_lick' >>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, yes " + setup.npc.mcName($tmpGirl) + ", make me moan into " + _partnerName + "'s pussy!",
"Does you like my tongue on your clit, " + _partnerName + "? I hope it's as amazing as " + setup.npc.mcName($tmpGirl) + "'s cock feels...",
"Mmmmhh, you taste so nice, " + _partnerName + ", and " + setup.npc.mcName($tmpGirl) + " feels so good inside me...",
"*muffled* " + _partnerName + "... Mmmh... and " + setup.npc.mcName($tmpGirl) + " inside me... I can't hold on...",
"Nngh, " + setup.npc.mcName($tmpGirl) + "... make me do this right... " + _partnerName + " deserves everything..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_sn' >>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + _partnerName + ", lick his balls while he fills my pussy!",
"Mmmmhh, " + _partnerName + ", do you like watching " + setup.npc.mcName($tmpGirl) + " slide into me?",
"Oh " + _partnerName + ", lick my clit while " + setup.npc.mcName($tmpGirl) + " is inside me.",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "'s tongue on me while you fill me is... gods...",
"Mmmh, I can feel both of you at once... " + _partnerName + ", " + setup.npc.mcName($tmpGirl) + "... don't stop..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_a_pussy' >>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm, harder, " + setup.npc.mcName($tmpGirl) + ", I want " + _partnerName + " to feel you thrusting inside me.",
"Mmmmhh, I love being in a " + _partnerName + " and " + setup.npc.mcName($tmpGirl) + " sandwich.",
"Oh " + setup.npc.mcName($tmpGirl) + ", " + _partnerName + ", we move so well together...",
"*gasping* Nngh, you're both so deep... " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "...",
"This is everything, " + _partnerName + "... tell me how good he feels inside you..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_b_anal' || $sexAction === 'anal_b_pussy' >>
<<sayNpc $tmpGirl>>
<<=either([
"Oh gods, " + _partnerName + ", " + setup.npc.mcName($tmpGirl) + " you're both filling me so deep!",
"Mmmmhh, I love being in a " + _partnerName + " and " + setup.npc.mcName($tmpGirl) + " sandwich.",
"Nnngh, you both feel so good inside me...",
"*shaking* " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... having you both at once is too much... don't stop...",
"Ahh, I've never felt so full... " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... you're perfect together..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'anal_b_bj' >>
<<sayNpc $tmpGirl>>
<<=either([
"Mmmph, " + setup.npc.mcName($tmpGirl) + ", " + _partnerName + ", I love feeling you in both ends!",
"Mmmmhh, you feel so good in my mouth, " + _partnerName + ", and " + setup.npc.mcName($tmpGirl) + " feels so good inside me...",
"*muffled* " + _partnerName + " in my mouth while " + setup.npc.mcName($tmpGirl) + " fills my ass... gods, it's so much...",
"Nngh, " + setup.npc.mcName($tmpGirl) + "... every thrust pushes " + _partnerName + " deeper into my throat...",
"I want to swallow you whole, " + _partnerName + "... " + setup.npc.mcName($tmpGirl) + "... fill me everywhere..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'handjob_anal_reverse' || $sexAction === 'bj_anal_reverse' >>
<<sayNpc $tmpGirl>>
<<=either([
"Oh wow, " + setup.npc.mcName($tmpGirl) + ", you get so hard when you have a cock in your ass!",
"Mmmmhh, " + setup.npc.mcName($tmpGirl) + ", I can feel you throbbing every time " + _partnerName + " fills your ass...",
"Keep thrusting like that, " + _partnerName + ". I can feel how much " + setup.npc.mcName($tmpGirl) + " likes it.",
"Mmmh, " + setup.npc.mcName($tmpGirl) + "... doesn't it feel better when you can't control yourself?",
"*whispering to " + _partnerName + "* Go deeper... I want to feel him go completely undone..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'nipple_lick_anal_reverse' || $sexAction === 'pussy_lick_anal_reverse' || $sexAction === 'sn_anal_reverse' >>
<<sayNpc $tmpGirl>>
<<=either([
"Gods, " + setup.npc.mcName($tmpGirl) + ", you look so hot with a cock in your ass!",
"Mmmmhh, " + setup.npc.mcName($tmpGirl) + ", you look so good with " + _partnerName + " in your ass...",
"Oh " + setup.npc.mcName($tmpGirl) + ", it's such a turn on seeing you take " + _partnerName + "'s cock so deep.",
"That's it " + setup.npc.mcName($tmpGirl) + ", take " + _partnerName + "'s cock nice and deep.",
"*breathless* The way you tremble when " + _partnerName + " goes deep, " + setup.npc.mcName($tmpGirl) + "... I can't look away..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'pussy_anal_reverse' >>
<<sayNpc $tmpGirl>>
<<=either([
"Mmm, harder, " + _partnerName + ", I want to feel you thrusting inside " + setup.npc.mcName($tmpGirl) + "!",
"Yess, " + setup.npc.mcName($tmpGirl) + ", I can feel you throbbing every time " + _partnerName + " fills your ass...",
"Mmmmhh, " + _partnerName + ", I love making a " + setup.npc.mcName($tmpGirl) + " sandwich with you.",
"Keep thrusting like that, " + _partnerName + ". I can feel how much " + setup.npc.mcName($tmpGirl) + " likes it.",
"*gasping* Nngh, " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + " going deep in your ass makes you feel incredible inside me..."
])>>
<</sayNpc>>
<<elseif $sexAction === 'bj_reverse_anal_reverse' >>
<<sayNpc $tmpGirl>>
<<=either([
"Gods, " + setup.npc.mcName($tmpGirl) + ", you look so hot with a cock in your mouth and ass!",
"Ahhh, " + setup.npc.mcName($tmpGirl) + ", we love taking you in both ends!",
"Mmmm, " + _partnerName + ", doesn't " + setup.npc.mcName($tmpGirl) + " make a good finger-trap?",
"Mmmmhh, " + _partnerName + ", I wonder if " + setup.npc.mcName($tmpGirl) + "'s mouth feels as good as his ass...",
"*watching " + setup.npc.mcName($tmpGirl) + " intently* The sounds you make with a cock at both ends are my favorite, " + setup.npc.mcName($tmpGirl) + "..."
])>>
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
<<=either([
"Ahh, " + setup.npc.mcName($tmpGirl) + ".. mmmh, " + _partnerName + "... yess...",
"Don't stop, " + setup.npc.mcName($tmpGirl) + ". We like it like that!",
"Oh yes, " + setup.npc.mcName($tmpGirl) + "! Give us more...",
"Mmmmhh.." + setup.npc.mcName($tmpGirl) + ", " + _partnerName + ", you're both so good...",
"*breathless* " + setup.npc.mcName($tmpGirl) + "... " + _partnerName + "... I love every second of this..."
])>>
<</sayNpc>>
<</if>><<set _canFuck = !setup.perkHas('temp_impotence')>>
<<if $tmpGirl.gender === 0 && $tmpGirl2.gender === 0>>
<<set _prefix = 'threesome_f_'>>
<<set _sexActions = {
kissing: {
title: 'Kissing',
minAction: 0,
horny: 1,
maxCorruption: 10,
positive: $tmpGirl.relationship > 15,
hornyGive: 2,
positive2: $tmpGirl2.relationship > 15,
hornyGive2: 2,
maxMcHorny: 20
},
handjob: {
title: 'Handjob',
minAction: 5,
horny: 20,
maxCorruption: 20
},
footjob: {
title: 'Footjob',
minAction: 20,
horny: 20,
maxCorruption: 30,
show: _canFuck
},
titjob: {
title: 'Titjob',
minAction: 25,
horny: 20,
maxCorruption: 40,
positive: $tmpGirl.traits.includes('sensitive_tits'),
hornyGive: $tmpGirl.traits.includes('sensitive_tits') ? 15 : 7,
show: _canFuck && ['medium', 'big'].includes($tmpGirl.breasts ?? '')
},
nipple_lick: {
title: 'Lick nipples',
minAction: 5,
horny: 1,
maxCorruption: 20,
positive: true,
hornyGive: $tmpGirl.traits.includes('sensitive_tits') ? 15 : 7,
maxMcHorny: 30
},
bj: {
title: 'Blowjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
stats: 'bj'
},
dp: {
title: 'Deepthroat',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: (($tmpGirl.traits ?? []).includes('deepthroat') && $tmpGirl.horny <= 79),
orConditionTrue: ($tmpGirl.traits ?? []).includes('deepthroat'),
stats: 'dp'
},
pussy_lick: {
title: 'Lick pussy',
minAction: 30,
horny: 3,
maxCorruption: 40,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
maxMcHorny: 60
},
sn: {
title: 'Sixty-nine',
minAction: 30,
horny: 20,
maxCorruption: 50,
show: _canFuck,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl2.traits ?? []).includes('cumslut'),
stats2: 'bj'
},
pussy_fingering: {
title: 'Finger pussy',
minAction: 5,
horny: 5,
maxCorruption: 25,
show: !$tmpGirl.chastityBelt,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
maxMcHorny: 60
},
pussy: {
title: 'Fuck pussy',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'pussy'
},
anal_fingering: {
title: 'Finger ass',
minAction: 60,
horny: 2,
maxCorruption: 70,
positive: $tmpGirl.anal >= 10,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 10 : 2),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
maxMcHorny: 60,
stats: 'anal'
},
anal: {
title: 'Fuck ass',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal'
},
anal_fisting: {
title: 'Fist asshole',
minAction: 90,
horny: 2,
maxCorruption: 100,
positive: (($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 90),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 90,
maxMcHorny: 60,
stats: 'anal'
},
bj_b_pussy: {
title: 'Blowjob + girl pussy fucked',
minAction: 40,
horny: 20,
maxCorruption: 60,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
stats: ['pussy', 'bj']
},
bj_b_anal: {
title: 'Blowjob + girl ass fucked',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut') && ($tmpGirl.traits ?? []).includes('cumslut'),
stats: ['anal', 'bj']
},
pussy_pussy_lick: {
title: 'Fuck pussy & lick pussy',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'pussy'
},
pussy_a_pussy_lick: {
title: 'Fuck pussy + girl licks pussy',
minAction: 40,
horny: 20,
maxCorruption: 60,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'pussy'
},
pussy_a_sn: {
title: 'Fuck pussy + girls sixty-nine',
minAction: 40,
horny: 20,
maxCorruption: 60,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'pussy'
},
pussy_a_pussy: {
title: 'Fuck pussy + girl fucks pussy',
minAction: 40,
horny: 20,
maxCorruption: 60,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: !$tmpGirl2.virgin,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'pussy',
stats2: 'pussy'
},
pussy_b_anal: {
title: 'Fuck pussy + girl ass fucked',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck && $tmpGirl.anal >= 20,
positive: !$tmpGirl.virgin && $tmpGirl.anal >= 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: ['pussy', 'anal']
},
anal_b_pussy: {
title: 'Fuck ass + girl pussy fucked',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: !$tmpGirl.virgin && $tmpGirl.anal >= 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: ['pussy', 'anal']
},
anal_a_pussy_lick: {
title: 'Fuck ass + girl licks pussy',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'anal'
},
anal_b_bj: {
title: 'Fuck ass + girl blows strapon',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: ['anal', 'bj']
},
handjob_anal_reverse: {
title: 'Handjob & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: 'anal'
},
nipple_lick_anal_reverse: {
title: 'Lick tits & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: true,
hornyGive: 5,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: 'anal'
},
bj_anal_reverse: {
title: 'Blowjob & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: ['bj', 'anal']
},
pussy_lick_anal_reverse: {
title: 'Lick pussy & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: 'anal'
},
sn_anal_reverse: {
title: 'Blowjob, lick pussy & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: 'bj'
},
pussy_anal_reverse: {
title: 'Fuck pussy & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: 'pussy'
},
bj_reverse: {
title: 'Give a blowjob',
minAction: 10,
horny: 3,
maxCorruption: 20,
show: ($tmpGirl.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: ($tmpGirl.traits ?? []).includes('sadistic'),
hornyGive: 2,
maxMcHorny: 60
},
anal_reverse: {
title: 'Get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: ($tmpGirl.traits ?? []).includes('sadistic'),
hornyGive: 5
},
bj_reverse_anal_reverse: {
title: 'Give a blowjob & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl.traits ?? []).includes('sadistic') && ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: ($tmpGirl.traits ?? []).includes('sadistic'),
hornyGive: 2,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5
},
cum_on_face: {
show: false,
minAction: 35
},
cum_in_mouth: {
show: false,
minAction: 45,
positive: (($tmpGirl.traits ?? []).includes('cumslut') && $tmpGirl.horny <= 79)
},
cum_in_pussy: {
show: false,
positive: ($tmpGirl.relationship > 70)
},
cum_throat: {
show: false,
minAction: 50,
positive: ($tmpGirl.traits ?? []).includes('cumslut') || ($tmpGirl.traits ?? []).includes('deepthroat')
}
}>>
<<elseif $tmpGirl.gender === 0 && $tmpGirl2.gender === 1>>
<<set _prefix = 'threesome_m_'>>
<<set _sexActions = {
kissing: {
title: 'Kissing',
minAction: 0,
horny: 1,
maxCorruption: 10,
positive: $tmpGirl.relationship > 15,
hornyGive: 2,
positive2: true,
hornyGive2: 2,
maxMcHorny: 20
},
handjob: {
title: 'Handjob',
minAction: 5,
horny: 20,
positive2: true,
hornyGive2: 20,
maxCorruption: 20
},
titjob: {
title: 'Titjob',
minAction: 25,
horny: 20,
maxCorruption: 40,
positive2: true,
hornyGive2: 20,
show: _canFuck && ['medium', 'big'].includes($tmpGirl.breasts ?? '')
},
nipple_lick: {
title: 'Lick nipples',
minAction: 5,
horny: 1,
maxCorruption: 20,
positive: true,
hornyGive: 5,
positive2: true,
hornyGive2: 1,
maxMcHorny: 30
},
bj: {
title: 'Blowjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive2: true,
hornyGive2: 20,
stats: 'bj'
},
bj_b_pussy_lick: {
title: 'Blowjob + girl pussy licked',
minAction: 40,
horny: 20,
maxCorruption: 60,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
stats: 'bj'
},
pussy_lick: {
title: 'Lick pussy',
minAction: 30,
horny: 3,
maxCorruption: 40,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
maxMcHorny: 60
},
pussy_fingering: {
title: 'Finger pussy',
minAction: 5,
horny: 5,
maxCorruption: 25,
show: !$tmpGirl.chastityBelt,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
maxMcHorny: 60
},
pussy: {
title: 'Fuck pussy',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'pussy'
},
pussy_b_handjob: {
title: 'Fuck pussy + girl gives handjob',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: !$tmpGirl.virgin,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
pussy_b_bj: {
title: 'Fuck pussy + girl gives blowjob',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: !$tmpGirl.virgin,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
pussy_b_anal: {
title: 'Fuck pussy + girl ass fucked',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck && $tmpGirl.anal >= 20,
positive: !$tmpGirl.virgin && $tmpGirl.anal >= 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
pussy_b_pussy: {
title: 'Double pussy fucked',
minAction: 80,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.pussy >= 60,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
anal_fingering: {
title: 'Finger ass',
minAction: 60,
horny: 2,
maxCorruption: 70,
positive: $tmpGirl.anal >= 10,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 10 : 2),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
maxMcHorny: 60,
stats: 'anal'
},
anal: {
title: 'Fuck ass',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal'
},
anal_b_handjob: {
title: 'Fuck ass + girl gives handjob',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'anal'
},
anal_b_bj: {
title: 'Fuck ass + girl gives blowjob',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'anal'
},
anal_b_pussy: {
title: 'Fuck ass + girl pussy fucked',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: !$tmpGirl.virgin && $tmpGirl.anal >= 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
anal_b_anal: {
title: 'Double ass fucked',
minAction: 90,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 90,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'anal'
},
anal_fisting: {
title: 'Fist asshole',
minAction: 90,
horny: 2,
maxCorruption: 100,
positive: (($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 90),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 90,
maxMcHorny: 60,
stats: 'anal'
},
cum_on_face: {
show: false,
minAction: 35
},
cum_in_mouth: {
show: false,
minAction: 45,
positive: (($tmpGirl.traits ?? []).includes('cumslut') && $tmpGirl.horny <= 79)
},
cum_throat: {
show: false,
minAction: 50,
positive: ($tmpGirl.traits ?? []).includes('cumslut') || ($tmpGirl.traits ?? []).includes('deepthroat')
}
}>>
<<elseif $tmpGirl.gender === 0 && $tmpGirl2.gender === 2>>
<<set _prefix = 'threesome_t_'>>
<<set _sexActions = {
kissing: {
title: 'Kissing',
minAction: 0,
horny: 1,
maxCorruption: 10,
positive: $tmpGirl.relationship > 15,
hornyGive: 2,
positive2: $tmpGirl2.relationship > 15,
hornyGive2: 2,
maxMcHorny: 20
},
nipple_lick: {
title: 'Lick nipples',
minAction: 5,
horny: 1,
maxCorruption: 20,
positive: true,
hornyGive: 5,
maxMcHorny: 30
},
nipple_lick_b_anal: {
title: 'Lick nipples + girl ass fucked',
minAction: 50,
horny: 1,
maxMcHorny: 30,
maxCorruption: 100,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal'
},
handjob: {
title: 'Handjob',
minAction: 5,
horny: 20,
maxCorruption: 20
},
handjob_a_anal: {
title: 'Handjob + tgirl gets fucked',
minAction: 5,
horny: 20,
positive: ($tmpGirl.traits ?? []).includes('sadistic'),
hornyGive: 5,
positive2: $tmpGirl2.anal >= 20,
hornyGive2: 20,
maxCorruption: 20,
stats2: 'anal'
},
handjob_b_bj: {
title: 'Handjob + tgirl gets a blowjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive2: true,
hornyGive2: 20,
stats: 'bj'
},
handjob_b_pussy: {
title: 'Handjob + girl pussy fucked',
minAction: 40,
horny: 20,
maxCorruption: 60,
positive: !$tmpGirl.virgin,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
bj: {
title: 'Blowjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
stats: 'bj'
},
bj_b_bj: {
title: 'Blowjob + girl gives blowjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive2: true,
hornyGive2: 20,
stats: 'bj'
},
bj_a_anal: {
title: 'Blowjob + tgirl gets fucked',
minAction: 70,
horny: 20,
positive: ($tmpGirl.traits ?? []).includes('sadistic'),
hornyGive: 5,
positive2: $tmpGirl2.anal >= 20,
hornyGive2: 20,
maxCorruption: 100,
stats: 'bj',
stats2: 'anal'
},
bj_b_handjob: {
title: 'Blowjob + tgirl gets handjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive2: true,
hornyGive2: 20,
stats: 'bj'
},
bj_b_pussy: {
title: 'Blowjob + girl pussy fucked',
minAction: 40,
horny: 20,
maxCorruption: 60,
positive: !$tmpGirl.virgin,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
bj_b_anal: {
title: 'Blowjob + girl ass fucked',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut') && ($tmpGirl.traits ?? []).includes('cumslut'),
stats: ['anal', 'bj']
},
dp: {
title: 'Deepthroat',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck && !$tmpGirl.gagBall,
positive: (($tmpGirl.traits ?? []).includes('deepthroat') && $tmpGirl.horny <= 79),
orConditionTrue: ($tmpGirl.traits ?? []).includes('deepthroat'),
stats: 'dp'
},
pussy_lick: {
title: 'Lick pussy',
minAction: 30,
horny: 3,
maxCorruption: 40,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
maxMcHorny: 60
},
pussy_lick_b_bj: {
title: 'Lick pussy + girl gives blowjob',
minAction: 30,
horny: 3,
maxCorruption: 40,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: 20,
maxMcHorny: 60,
stats: 'bj'
},
pussy: {
title: 'Fuck pussy',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: !$tmpGirl.gender && !$tmpGirl.chastityBelt && _canFuck,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'pussy'
},
pussy_b_handjob: {
title: 'Fuck pussy + girl gives handjob',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: !$tmpGirl.virgin,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
pussy_b_bj: {
title: 'Fuck pussy + girl gives blowjob',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
pussy_b_anal: {
title: 'Fuck pussy + girl ass fucked',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck && $tmpGirl.anal >= 20,
positive: !$tmpGirl.virgin && $tmpGirl.anal >= 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
anal: {
title: 'Fuck ass',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal'
},
anal_b_bj: {
title: 'Fuck ass + tgirl gets blowjob',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'anal'
},
anal_b_pussy: {
title: 'Fuck ass + girl pussy fucked',
minAction: 70,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'anal'
},
bj_reverse: {
title: 'Give a blowjob',
minAction: 10,
horny: 3,
maxCorruption: 20,
show: ($tmpGirl.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: ($tmpGirl.traits ?? []).includes('sadistic'),
hornyGive: 2,
maxMcHorny: 60
},
bj_bj_reverse: {
title: 'Blowjob & give a blowjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
show: settings.gaysEnabled,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive2: true,
hornyGive2: 20,
stats: 'bj'
},
pussy_bj_reverse: {
title: 'Fuck pussy & give a blowjob',
minAction: 40,
horny: 20,
maxCorruption: 60,
show: _canFuck && settings.gaysEnabled,
positive: !$tmpGirl.virgin,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
anal_reverse: {
title: 'Get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: ($tmpGirl.traits ?? []).includes('sadistic'),
hornyGive: 5
},
nipple_lick_anal_reverse: {
title: 'Lick tits & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: true,
hornyGive: 5,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: 'anal'
},
handjob_anal_reverse: {
title: 'Handjob & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: true,
hornyGive: 20,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5
},
bj_anal_reverse: {
title: 'Blowjob & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: settings.gaysEnabled,
positive2: true,
hornyGive2: 20,
stats: 'bj'
},
pussy_lick_anal_reverse: {
title: 'Lick pussy & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: settings.gaysEnabled,
positive: true,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: 20
},
pussy_anal_reverse: {
title: 'Fuck pussy & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: settings.gaysEnabled,
positive: !$tmpGirl.virgin,
hornyGive: (!($tmpGirl.traits ?? []).includes('analslut') ? 20 : 5),
positive2: true,
hornyGive2: 20,
stats: 'pussy'
},
bj_reverse_anal_reverse: {
title: 'Give a blowjob & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: ($tmpGirl.traits ?? []).includes('sadistic'),
hornyGive: 2,
positive2: true,
hornyGive2: 20
},
cum_on_face: {
show: false,
minAction: 35
},
cum_in_mouth: {
show: false,
minAction: 45,
positive: (($tmpGirl.traits ?? []).includes('cumslut') && $tmpGirl.horny <= 79)
}
}>>
<<elseif $tmpGirl.gender === 2 && $tmpGirl2.gender === 0>>
<<set _prefix = 'threesome_f_'>>
<<set _sexActions = {
kissing: {
title: 'Kissing',
minAction: 0,
horny: 1,
maxCorruption: 10,
positive: $tmpGirl.relationship > 15,
hornyGive: 2,
positive2: $tmpGirl2.relationship > 15,
hornyGive2: 2,
maxMcHorny: 20
},
nipple_lick: {
title: 'Lick nipples',
minAction: 5,
horny: 1,
maxCorruption: 20,
positive: true,
hornyGive: 5,
maxMcHorny: 30
},
nipple_lick_a_bj: {
title: 'Lick nipples + tgirl gets a blowjob',
minAction: 30,
horny: 1,
maxCorruption: 20,
positive: true,
hornyGive: 5,
maxMcHorny: 30,
orConditionTrue: ($tmpGirl2.traits ?? []).includes('cumslut'),
stats2: 'bj'
},
nipple_lick_b_anal: {
title: 'Lick nipples + tgirl gets fucked',
minAction: 50,
horny: 1,
maxMcHorny: 30,
maxCorruption: 100,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal'
},
handjob: {
title: 'Handjob',
minAction: 5,
horny: 20,
maxCorruption: 20
},
bj: {
title: 'Blowjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
stats: 'bj'
},
bj_pussy_lick: {
title: 'Blowjob & lick pussy',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive2: true,
hornyGive2: 20,
stats: 'bj'
},
bj_a_handjob: {
title: 'Blowjob + tgirl gets a handjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive: true,
hornyGive: 20,
stats: 'bj'
},
bj_a_bj: {
title: 'Blowjob + tgirl gets a blowjob',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive: true,
hornyGive: 20,
stats: 'bj',
stats2: 'bj'
},
bj_a_pussy: {
title: 'Blowjob + tgirl fucks pussy',
minAction: 30,
horny: 20,
maxCorruption: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive: true,
hornyGive: 20,
stats: 'bj',
stats2: 'pussy'
},
bj_b_anal: {
title: 'Blowjob + tgirl gets fucked',
minAction: 40,
horny: 20,
maxCorruption: 60,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 2,
stats: 'bj'
},
anal_fingering: {
title: 'Finger ass',
minAction: 60,
horny: 2,
maxCorruption: 70,
positive: $tmpGirl.anal >= 10,
hornyGive: (($tmpGirl.traits ?? []).includes('analslut') ? 10 : 2),
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
maxMcHorny: 60,
stats: 'anal'
},
anal: {
title: 'Fuck ass',
minAction: 50,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal'
},
anal_pussy_lick: {
title: 'Fuck ass & lick pussy',
minAction: 50,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'anal'
},
anal_a_pussy_lick: {
title: 'Fuck ass + tgirl licks pussy',
minAction: 50,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'anal'
},
anal_a_handjob: {
title: 'Fuck ass + tgirl gets a handjob',
minAction: 50,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal'
},
anal_a_bj: {
title: 'Fuck ass + tgirl gets a blowjob',
minAction: 50,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
stats: 'anal',
stats2: 'bj'
},
anal_a_pussy: {
title: 'Fuck ass + tgirl fucks pussy',
minAction: 50,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: true,
hornyGive2: (!($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'anal',
stats2: 'pussy'
},
anal_a_anal: {
title: 'Fuck ass + tgirl fucks ass',
minAction: 50,
horny: 20,
maxCorruption: 100,
show: _canFuck,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
positive2: $tmpGirl2.anal >= 20,
hornyGive2: (($tmpGirl2.traits ?? []).includes('analslut') ? 20 : 5),
stats: 'anal',
stats2: 'anal'
},
bj_reverse: {
title: 'Give a blowjob',
minAction: 10,
horny: 3,
maxCorruption: 20,
show: settings.gaysEnabled,
positive: true,
hornyGive: 20,
maxMcHorny: 60
},
bj_reverse_a_pussy_lick: {
title: 'Give a blowjob + tgirl licks pussy',
minAction: 10,
horny: 3,
maxCorruption: 20,
show: settings.gaysEnabled,
positive: true,
hornyGive: 20,
positive2: true,
hornyGive2: 20,
maxMcHorny: 60
},
bj_reverse_b_anal: {
title: 'Give a blowjob + tgirl gets fucked',
minAction: 10,
horny: 3,
maxCorruption: 20,
show: settings.gaysEnabled,
positive: true,
hornyGive: 20,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
maxMcHorny: 60,
stats: 'anal'
},
handjob_anal_reverse: {
title: 'Handjob & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: true,
hornyGive: 20,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5
},
bj_anal_reverse: {
title: 'Blowjob & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: 'bj'
},
anal_anal_reverse: {
title: 'Fuck ass & get ass fucked',
minAction: 50,
horny: 20,
maxCorruption: 100,
show: _canFuck && ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: $tmpGirl.anal >= 20,
hornyGive: 20,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: 'anal'
},
bj_reverse_anal_reverse: {
title: 'Give a blowjob & get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: ($tmpGirl2.traits ?? []).includes('sadistic') && settings.gaysEnabled,
positive: true,
hornyGive: 20,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5
},
anal_reverse: {
title: 'Get ass fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: settings.gaysEnabled,
positive: true,
hornyGive: 20
},
anal_reverse_b_anal: {
title: 'Get ass fucked + tgirl gets fucked',
minAction: 30,
horny: 20,
maxCorruption: 100,
show: settings.gaysEnabled,
positive: true,
hornyGive: 20,
positive2: ($tmpGirl2.traits ?? []).includes('sadistic'),
hornyGive2: 5,
stats: 'anal'
},
cum_on_face: {
show: false,
minAction: 35
}
}>>
<</if>><<set $sexForced = false>>
<<if ($tmpGirl.traits ?? []).includes('nymphomaniac') >>
<<set _actionMax = 100>>
<<else>>
<<set _actionMax = Math.max($tmpGirl.relationship, $tmpGirl.horny)>>
<<set _actionMax = Math.min(_actionMax, $tmpGirl.corruption)>>
<<set _actionMax = Math.max(_actionMax, $tmpGirl.sub, $tmpGirl.drunk ?? 0)>>
<</if>>
<<if ($tmpGirl2.traits ?? []).includes('nymphomaniac') >>
<<set _actionMax2 = 100>>
<<else>>
<<set _actionMax2 = Math.max($tmpGirl2.relationship, $tmpGirl2.horny)>>
<<set _actionMax2 = Math.min(_actionMax2, $tmpGirl2.corruption)>>
<<set _actionMax2 = Math.max(_actionMax2, $tmpGirl2.sub, $tmpGirl2.drunk ?? 0)>>
<</if>>
<<set _actionMax = Math.min(_actionMax, _actionMax2)>>
<<if $player.horny >= 100 && typeof $sexAction !== 'undefined'>>
<<if ['handjob','handjob_anal_reverse'].includes($sexAction)>>
<<link 'Handjob cum'>>
<<set $sexAction = 'handjob_cum'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction == 'footjob'>>
<<link 'Footjob cum'>>
<<set $sexAction = 'footjob_cum'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction == 'titjob'>>
<<link 'Cum on tits'>>
<<set $sexAction = 'cum_on_tits'>>
<<horny_reset>>
<<goto `passage()`>>
<</link>>
<<elseif $sexAction === 'dp'>>
<<link 'Cum in throat'>>
<<horny_reset>>
<<set $sexAction = 'cum_throat'>>
<<goto `passage()`>>
<</link>>
<<elseif ['pussy','pussy_pussy_lick','pussy_a_pussy_lick','pussy_a_sn','pussy_a_pussy','pussy_b_anal','pussy_b_bj','pussy_b_handjob','pussy_b_pussy','pussy_anal_reverse'].includes($sexAction)>>
<<link 'Cum in pussy'>>
<<horny_reset>>
<<if _askedToCumInside>>
<<set _relIncrease = randomInteger(5, 10)>>
<<set $tmpGirl.relationship = Math.min($tmpGirl.relationship + _relIncrease, 100)>>
<<set $tmpGirl.happy += randomInteger(5, 10)>>
<</if>>
<<set $sexAction = 'cum_in_pussy'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on pussy'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_pussy'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on stomach'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_stomach'>>
<<goto `passage()`>>
<</link>>
<<elseif ['anal','anal_a_pussy_lick','anal_b_bj','anal_b_handjob','anal_b_pussy', 'anal_b_anal'].includes($sexAction)>>
<<link 'Cum in ass'>>
<<horny_reset>>
<<set $sexAction = 'cum_in_ass'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on ass'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_ass'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum on back'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_back'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<if ['pussy_b_anal'].includes($sexAction) && $tmpGirl2.gender === 1>>
<<link 'Double cum'>>
<<horny_reset>>
<<set $sexAction = 'double_cum'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<if $sexAction.includes('anal_reverse') >>
<<link 'Cum while being fucked'>>
<<horny_reset>>
<<set $sexAction = 'anal_reverse_cum'>>
<<goto `passage()`>>
<</link>>
<</if>>
<<link 'Cum on face'>>
<<horny_reset>>
<<set $sexAction = 'cum_on_face'>>
<<goto `passage()`>>
<</link>>
<<link 'Cum in mouth'>>
<<horny_reset>>
<<set $sexAction = 'cum_in_mouth'>>
<<goto `passage()`>>
<</link>>
<<else>>
<<if $player.energy >= 5>>
<div id="action-buttons">
<<set _sexOptionHidden = false>>
<<for _sexActionKey, _sexAction range _sexActions>>
<<capture _sexActionKey, _sexAction>>
<<if (_sexAction.show ?? true) && (_actionMax >= _sexAction.minAction || _sexAction.orConditionTrue)>>
<<set _linkName = '<span data-balloon-length="medium" data-balloon-pos="up-left" aria-label="' + _sexAction.title + '">[img[setup.ImagePath+"game/misc/actions/"+_sexActionKey+".png"]]</span>'>>
<<link _linkName>>
<<set $sexAction = _sexActionKey>>
<<goto `passage()`>>
<</link>>
<<elseif (_sexAction.show ?? true)>>
<<set _sexOptionHidden = true>>
<</if>>
<</capture>>
<</for>>
</div>
<br />
<</if>>
<<if $tmpGirl.gender === $tmpGirl2.gender || ($tmpGirl.gender === 0 && $tmpGirl2.gender === 2) || ($tmpGirl.gender === 2 && $tmpGirl2.gender === 0) >>
<<set _linkName = 'Focus on ' + $tmpGirl2.name>>
<<link `_linkName`>>
/* save both back before swap */
<<if typeof $slaveId !== 'undefined'>><<set $slaves[$slaveId] = $tmpGirl>>
<<elseif typeof $guestId !== 'undefined'>><<set $guests[$guestId] = $tmpGirl>>
<<elseif typeof $charId !== 'undefined'>><<set $characters[$charId] = $tmpGirl>>
<</if>>
<<if typeof $slaveId2 !== 'undefined'>><<set $slaves[$slaveId2] = $tmpGirl2>>
<<elseif typeof $guestId2 !== 'undefined'>><<set $guests[$guestId2] = $tmpGirl2>>
<<elseif typeof $charId2 !== 'undefined'>><<set $characters[$charId2] = $tmpGirl2>>
<</if>>
/* remember which type/id each slot is, then swap */
<<set _type1 = typeof $slaveId !== 'undefined' ? 'slave' : typeof $guestId !== 'undefined' ? 'guest' : 'char'>>
<<set _id1 = $slaveId ?? $guestId ?? $charId>>
<<set _type2 = typeof $slaveId2 !== 'undefined' ? 'slave' : typeof $guestId2 !== 'undefined' ? 'guest' : 'char'>>
<<set _id2 = $slaveId2 ?? $guestId2 ?? $charId2>>
<<unset $slaveId, $guestId, $charId, $slaveId2, $guestId2, $charId2>>
<<if _type2 === 'slave'>><<set $slaveId = _id2>><<elseif _type2 === 'char'>><<set $charId = _id2>><<else>><<set $guestId = _id2>><</if>>
<<if _type1 === 'slave'>><<set $slaveId2 = _id1>><<elseif _type1 === 'char'>><<set $charId2 = _id1>><<else>><<set $guestId2 = _id1>><</if>>
<<set _tmpGirl0 = $tmpGirl, $tmpGirl = $tmpGirl2, $tmpGirl2 = _tmpGirl0>>
<<unset $sexAction>>
<<goto `passage()`>>
<</link>>
<</if>>
<<link 'End'>>
<<unset $sexAction>>
<<if typeof $tmpGirl2 !== 'undefined'>>
<<if typeof $slaveId2 !== 'undefined'>><<set $slaves[$slaveId2] = $tmpGirl2>>
<<elseif typeof $guestId2 !== 'undefined'>><<set $guests[$guestId2] = $tmpGirl2>>
<<elseif typeof $charId2 !== 'undefined'>><<set $characters[$charId2] = $tmpGirl2>>
<</if>>
<</if>>
<<unset $slaveId2, $guestId2, $charId2, $tmpGirl2>>
<<if $oldTmpGirlLocation>>
<<set $tmpGirl.location = $oldTmpGirlLocation>>
<<unset $oldTmpGirlLocation>>
<</if>>
<<if $tmpGirlViewBack && !tags($tmpGirlViewBack).includes('girlview')>>
<<if typeof $slaveId !== 'undefined'>>
<<set $slaves[$slaveId] = $tmpGirl>>
<<unset $slaveId>>
<<elseif typeof $guestId !== 'undefined'>>
<<set $guests[$guestId] = $tmpGirl>>
<<unset $guestId>>
<<elseif typeof $charId !== 'undefined'>>
<<set $characters[$charId] = $tmpGirl>>
<<unset $charId>>
<</if>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto 'NPC view'>>
<</if>>
<<else>>
<<if $tmpGirlViewBack>>
<<goto $tmpGirlViewBack>>
<<else>>
<<goto 'NPC view'>>
<</if>>
<</if>>
<</link>>
<</if>><<include 'Mc threesome actions'>>
<div id="action-scene">
<<if typeof $sexAction !== 'undefined'>>
<<set $tmpGirl.quests ??= {}>>
<<set $tmpGirl.quests.lastInteractionDay = $game.day>>
<<addmins 5>>
<<energy -5>>
<<if setup.perkHas('drunk')>>
<<energy -5>>
<</if>>
<<set _hornyGained = (_sexActions[$sexAction]?.horny ?? 0)>>
<<if !_canFuck>>
<<set _hornyGained = 0>>
<</if>>
<<set _maxMcHorny = (_sexActions[$sexAction]?.maxMcHorny ?? null)>>
<<if (_maxMcHorny === null || $player.horny < _maxMcHorny)>>
<<horny _hornyGained>>
<</if>>
<<set _showSex = true>>
<<if ['anal','anal_b_pussy','anal_a_pussy_lick','anal_b_bj'].includes($sexAction) >>
<<include 'Mc fuck anal'>>
<</if>>
<<if !_canFuck && ['bj','handjob'].includes($sexAction)>>
<<include 'MC fuck flaccid'>>
<</if>>
<<if ['cum_in_pussy', 'double_cum'].includes($sexAction) && $tmpGirl.traits.includes('breeder') && _sexActions[$sexAction]?.positive>>
<<set $tmpGirl.horny += 30>>
<</if>>
<<if _showSex>>
<<if settings.buttons_on_top>>
<<include 'Mc threesome buttons'>>
<</if>>
<<set _sexActionLong = _prefix + $sexAction>>
<<actionImage $tmpGirl _sexActionLong>>
<<if $tmpGirl.virgin && _sexActions[$sexAction]?.stats=='pussy' || Array.isArray(_sexActions[$sexAction]?.stats) && ['pussy'].includes(_sexActions[$sexAction]?.stats)>>
<<run setup.npc.addHistory($tmpGirl, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl.virgin = false>>
<<=setup.displayName($tmpGirl, true)>> seems tense, a bit of <strong>blood</strong> trickles out of her newly <strong>deflowered</strong> pussy.
<br />
<</if>>
<<if $tmpGirl2.virgin && _sexActions[$sexAction]?.stats2=='pussy'>>
<<run setup.npc.addHistory($tmpGirl2, 'virgin_lost', { with: 'mc' })>>
<<set $tmpGirl2.virgin = false>>
<<=setup.displayName($tmpGirl2, true)>> seems tense, a bit of <strong>blood</strong> trickles out of her newly <strong>deflowered</strong> pussy.
<br />
<</if>>
<br />
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive>>
<<set _npcHornyGained = setup.sex.calcNpcHornyIncrease($tmpGirl, (_sexActions[$sexAction].hornyGive ?? 20), $sexAction)>>
<<set $tmpGirl.horny = Math.min($tmpGirl.horny + _npcHornyGained, 100)>>
<</if>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive2>>
<<set _npcHornyGained2 = setup.sex.calcNpcHornyIncrease($tmpGirl2, (_sexActions[$sexAction].hornyGive2 ?? 20), $sexAction)>>
<<set $tmpGirl2.horny = Math.min($tmpGirl2.horny + _npcHornyGained2, 100)>>
<</if>>
<<set _npcHorny = clone($tmpGirl.horny)>>
<<showmeter '$npcHornyBar' '_npcHorny / 100'>>
<<updatemeter '$npcHornyBar' `_npcHorny / 100`>>
<br />
<<set
$tmpGirl.relationship = Math.min($tmpGirl.relationship + 1, 100),
$tmpGirl2.relationship = Math.min($tmpGirl2.relationship + 1, 100),
$tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100),
$tmpGirl2.happy = Math.min($tmpGirl2.happy + 1, 100)
>>
<<=setup.displayName($tmpGirl, true)>> and <<=setup.displayName($tmpGirl2, true)>> are enjoying themselves.<strong> (Happy / Relationship + 1)</strong>
<br />
<<if (_sexActions[$sexAction] ?? false) && $tmpGirl.corruption < _sexActions[$sexAction].maxCorruption && $tmpGirl2.corruption < _sexActions[$sexAction].maxCorruption>>
<<set $tmpGirl.corruption = Math.min($tmpGirl.corruption + 1, 100)>>
<<set $tmpGirl2.corruption = Math.min($tmpGirl2.corruption + 1, 100)>>
<<=setup.displayName($tmpGirl, true)>> and <<=setup.displayName($tmpGirl2, true)>> are getting more corrupted.<strong> (Corruption + 1)</strong>
<br />
<<elseif (_sexActions[$sexAction] ?? false) && $tmpGirl.corruption < _sexActions[$sexAction].maxCorruption>>
<<set $tmpGirl.corruption = Math.min($tmpGirl.corruption + 1, 100)>>
<<=setup.displayName($tmpGirl, true)>> is getting more corrupted.<strong> (Corruption + 1)</strong>
<br />
<<elseif (_sexActions[$sexAction] ?? false) && $tmpGirl2.corruption < _sexActions[$sexAction].maxCorruption>>
<<set $tmpGirl2.corruption = Math.min($tmpGirl2.corruption + 1, 100)>>
<<=setup.displayName($tmpGirl2, true)>> is getting more corrupted.<strong> (Corruption + 1)</strong>
<br />
<</if>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive && _sexActions[$sexAction].positive2 && $tmpGirl.horny < 100 && $tmpGirl2.horny < 100>>
<<=setup.displayName($tmpGirl, true)>> and <<=setup.displayName($tmpGirl2, true)>> are getting hornier and hornier. <strong>(Horny +<<=_npcHornyGained>> / +<<=_npcHornyGained2>>)</strong>
<br />
<<else>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive>>
<<if $tmpGirl.horny >= 100>>
<<include 'Mc fuck orgasm'>>
<<=setup.displayName($tmpGirl, true)>> has an orgasm!<strong> (Happy / Relationship + 5)</strong>
<br />
<<set
$tmpGirl.relationship = Math.min($tmpGirl.relationship + 5, 100),
$tmpGirl.happy = Math.min($tmpGirl.happy + 5, 100)>>
<<set $tmpGirl.orgasms ??= 0>>
<<set $tmpGirl.orgasms++>>
<<run setup.sex.giveAfterglow($tmpGirl)>>
<<else>>
<<=setup.displayName($tmpGirl, true)>>'s body reacts positively to you. <strong>(Horny + <<=_npcHornyGained>>)</strong>
<br />
<</if>>
<</if>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive2>>
<<if $tmpGirl2.horny >= 100>>
<<set $tmpGirl2.horny -= 20>>
<<=setup.displayName($tmpGirl2, true)>> is getting impatient. <strong>(Horny - 20)</strong>
<<else>>
<<=setup.displayName($tmpGirl2, true)>> is getting hornier and hornier. <strong>(Horny + <<=_npcHornyGained2>>)</strong>
<</if>>
<br />
<</if>>
<</if>>
<<if _sexActions[$sexAction]?.stats>>
<<if Array.isArray(_sexActions[$sexAction]?.stats)>>
<<set _sexStats = _sexActions[$sexAction]?.stats>>
<<else>>
<<set _sexStats = [_sexActions[$sexAction]?.stats]>>
<</if>>
<<for _sexStat range _sexStats>>
<<set $tmpGirl[_sexStat]++>>
<<if typeof $sexStats[_sexStat] === 'undefined'>>
<<set
$tmpGirl.statsSex ??= {},
$tmpGirl.statsSex[_sexStat] ??= 0,
$tmpGirl.statsSex[_sexStat]++,
$sexStats[_sexStat] = true
>>
<</if>>
<</for>>
<</if>>
<<if _sexActions[$sexAction]?.stats2>>
<<set $tmpGirl2[_sexActions[$sexAction].stats2]++>>
<<if typeof $sexStats[_sexActions[$sexAction].stats2] === 'undefined'>>
<<set
$tmpGirl2.statsSex ??= {},
$tmpGirl2.statsSex[_sexActions[$sexAction].stats2] ??= 0,
$tmpGirl2.statsSex[_sexActions[$sexAction].stats2]++,
$sexStats[_sexActions[$sexAction].stats2] = true
>>
<</if>>
<</if>>
<<if (SugarCube?.settings?.sexReactions ?? true) && !$sexForced && $tmpGirl.relationship >= 40 && setup.percentageChance(35)>>
<br />
<<include 'Threeactions'>>
<br />
<</if>>
<<include 'Mc fuck traits'>>
<<if ['cum_in_pussy', 'double_cum'].includes($sexAction)>>
<<include 'Mc fuck cum in pussy'>>
<</if>>
<<if $tmpGirl.horny >= 100>>
<<script>>
setTimeout(function () {
variables().tmpGirl.horny = 0;
}, 400);
<</script>>
<</if>>
<</if>>
<</if>>
/* Once per render, not per button include: the buttons passage is included twice when buttons_on_top is on */
<<if $player.horny >= 100 && typeof $sexAction !== 'undefined'>>
<<energy +5>>
<<set $player.sexp++>>
<</if>>
<br />
<<include 'Mc threesome buttons'>>
</div><<if $tmpGirl.anal < 20>>
<<set $sexAction = 'mistress_no_anal'>>
The mistress tried to fuck <<=setup.pronounceWho($tmpGirl)>> in the ass but <<=setup.pronounceWhos($tmpGirl)>> anus won't relax.
<br />
<<if !$tmpGirl.traits.includes('masochist')>>
<<=setup.pronounceWhat($tmpGirl, true)>> can't take it in <<=setup.pronounceWhos($tmpGirl)>> ass and begs for mercy.<strong> (Submission + 1, Happy / Relationship - 1)</strong>
<br />
<<set
$tmpGirl.sub = Math.min($tmpGirl.sub + 1, 100),
$tmpGirl.relationship = Math.max($tmpGirl.relationship - 1, -100),
$tmpGirl.happy = Math.max($tmpGirl.happy - 1, -100)
>>
<<else>>
<<=setup.pronounceWhat($tmpGirl, true)>> seems to enjoy the pain caused.<strong> (Submission / Happy / Relationship + 1)</strong>
<br />
<<set
$tmpGirl.sub = Math.min($tmpGirl.sub + 1, 100),
$tmpGirl.relationship = Math.min($tmpGirl.relationship + 1, 100),
$tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100)
>>
<</if>>
<</if>><<if ($sexForced ?? false) || ($tmpGirl.traits ?? []).includes('nymphomaniac')>>
<<set _actionMax = 100>>
<<elseif setup.likesGender($tmpGirl, $guests[_girlGuest[0]].gender)>>
<<set _actionMax = Math.max($tmpGirl.relationship, $tmpGirl.horny)>>
<<set _actionMax = Math.min(_actionMax, $tmpGirl.corruption)>>
<<set _actionMax = Math.max(_actionMax, $tmpGirl.sub, $tmpGirl.drunk ?? 0)>>
<<else>>
<<set _actionMax = Math.floor(Math.max($tmpGirl.sub, $tmpGirl.drunk ?? 0)/2)>>
<</if>>
<<if $player.horny >= 100>>
<br />
<div id="choices">
<<link "Cum">>
<<replace "#choices">>
<center>
[img[setup.ImagePath+'game/misc/cum.webp']]
</center>
<br />
<<link 'Continue'>>
<<unset $sexAction>>
<<goto `passage()`>>
<</link>>
<</replace>>
<</link>>
<<link "Cum with help from mistress">>
<<replace "#choices">>
<<actionImage $guests[_girlGuest[0]] handjob_cum>>
<br />
<<link 'Continue'>>
<<unset $sexAction>>
<<goto `passage()`>>
<</link>>
<</replace>>
<</link>>
</div>
<<horny_reset>>
<<set $player.sexp++>>
<<else>>
<<if $player.energy >= 3>>
<div id="action-buttons">
<<for _sexActionKey, _sexAction range _sexActions>>
<<capture _sexActionKey, _sexAction>>
<<if (_sexAction.show ?? true)>>
<<set _linkName = '<span data-balloon-length="medium" data-balloon-pos="up-left" aria-label="' + _sexAction.title + '">[img[setup.ImagePath+"game/misc/actions/"+_sexActionKey.replace("mistress_", "")+".png"]]</span>'>>
<<link _linkName>>
<<if !($tmpGirl.traits ?? []).includes('nymphomaniac')>>
<<set $sexForced = true>>
<</if>>
<<set $sexAction = _sexActionKey>>
<<goto `passage()`>>
<</link>>
<</if>>
<</capture>>
<</for>>
</div>
<br />
<</if>>
<</if>>
<<link 'Take over'>>
<<unset $sexAction, $sexForced>>
<<set $tmpGirl.location = 'basement'>>
<<fuck $tmpGirl>>
<</link>>
<<link 'End'>>
<<unset $sexAction, $sexForced>>
<<set $tmpGirl.location = 'basement'>>
<<goto 'NPC view'>>
<</link>><<set _girlGuest = setup.getPersonsForLocation($guests, 'mistress')>>
<<set $guests[_girlGuest[0]].location = 'mistress'>>
<<set $tmpGirl.location = 'basement-mistress.' + setup.genderPath($guests[_girlGuest[0]])>>
<<set _npcMistress = $guests[_girlGuest[0]]>>
<<set _sexActions = {
mistress_handjob: {
title: 'Handjob',
minAction: 10,
show: [1,2].includes($guests[_girlGuest[0]].gender) && !_npcMistress.chastityBelt,
maxCorruption: 20
},
mistress_footjob: {
title: 'Footjob',
minAction: 20,
show: [1,2].includes($guests[_girlGuest[0]].gender) && !_npcMistress.chastityBelt,
maxCorruption: 30
},
mistress_titjob: {
title: 'Titjob',
minAction: 30,
show: [1,2].includes($guests[_girlGuest[0]].gender) && ['medium', 'big'].includes($tmpGirl.breasts ?? '') && !_npcMistress.chastityBelt,
maxCorruption: 40
},
mistress_face_strapon: {
title: 'Face strapon',
minAction: 30,
show: $guests[_girlGuest[0]].gender == 0 && $tmpGirl.gender == 1,
maxCorruption: 40
},
mistress_pussy_lick: {
title: 'Lick pussy',
minAction: 30,
show: !$tmpGirl.gender,
maxCorruption: 40,
positive: true
},
mistress_licked: {
title: 'Sit on face',
minAction: 40,
show: $guests[_girlGuest[0]].gender == 0 && !_npcMistress.chastityBelt,
maxCorruption: 50
},
mistress_bj: {
title: 'Blowjob',
show: !_npcMistress.gender || !_npcMistress.chastityBelt,
minAction: 40,
orConditionTrue: ($tmpGirl.traits ?? []).includes('cumslut'),
maxCorruption: 50,
stats: 'bj'
},
mistress_rimjob: {
title: 'Rimjob',
minAction: 40,
maxCorruption: 50
},
mistress_dp: {
title: 'Deepthroat',
minAction: 50,
orConditionTrue: ($tmpGirl.traits ?? []).includes('deepthroat'),
maxCorruption: 60,
positive: (($tmpGirl.traits ?? []).includes('deepthroat') && $tmpGirl.horny <= 79),
show: !_npcMistress.gender || !_npcMistress.chastityBelt,
stats: 'dp'
},
mistress_pussy: {
title: 'Fuck pussy',
minAction: 50,
show: typeof $tmpGirl.pussy !== 'undefined' && (!_npcMistress.gender || !_npcMistress.chastityBelt),
maxCorruption: 60,
positive: (!($tmpGirl.traits ?? []).includes('analslut') && !$tmpGirl.virgin),
stats: 'pussy'
},
mistress_anal_fingering: {
title: 'Finger ass',
minAction: 60,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
maxCorruption: 70,
positive: (($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 10),
stats: 'anal'
},
mistress_anal: {
title: 'Fuck ass',
minAction: 70,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut'),
maxCorruption: 90,
positive: (($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 20),
stats: 'anal'
},
mistress_anal_fisting: {
title: 'Fist asshole',
minAction: 90,
orConditionTrue: ($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 90,
maxCorruption: 100,
positive: (($tmpGirl.traits ?? []).includes('analslut') && $tmpGirl.anal >= 90),
stats: 'anal'
}
}>>
<<if typeof $sexAction !== 'undefined'>>
<<addmins 5>>
<<energy -3>>
<<set _hornyGained = 10>>
<<horny _hornyGained>>
<<set _showSex = true>>
<<if $sexAction === 'mistress_anal'>>
<<include 'Mistress fuck anal'>>
<br />
<</if>>
<<if _showSex>>
<<if settings.buttons_on_top>>
<<include 'Mistress fuck buttons'>>
<</if>>
<<actionImage $tmpGirl $sexAction>>
<br />
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive>>
<<set $tmpGirl.horny = Math.min($tmpGirl.horny + setup.sex.calcNpcHornyIncrease($tmpGirl, 20, $sexAction), 100)>>
<</if>>
<<set _npcHorny = clone($tmpGirl.horny)>>
<<showmeter '$npcHornyBar' '_npcHorny / 100'>>
<<updatemeter '$npcHornyBar' `_npcHorny / 100`>>
<br />
<<if $sexForced && !$tmpGirl.traits.includes('masochist') && $tmpGirl.sub !== 100>>
<<set
$tmpGirl.sub = Math.min($tmpGirl.sub + 2, 100),
$tmpGirl.relationship = Math.max($tmpGirl.relationship - 5, -100),
$tmpGirl.happy = Math.max($tmpGirl.happy - 5, -100)
>>
<<=setup.pronounceWhat($tmpGirl, true)>> asks for mercy!<strong> (Submission + 2, Happy / Relationship - 5)</strong>
<<else>>
<<set
$tmpGirl.relationship = Math.min($tmpGirl.relationship + 1, 100),
$tmpGirl.happy = Math.min($tmpGirl.happy + 1, 100)
>>
<<=setup.pronounceWhat($tmpGirl, true)>> welcomes the attention.<strong> (Happy / Relationship + 1)</strong>
<</if>>
<br />
<</if>>
<<if (_sexActions[$sexAction] ?? false) && $tmpGirl.corruption < (_sexActions[$sexAction].maxCorruption2 ?? 100)>>
<<set $tmpGirl.corruption = Math.min($tmpGirl.corruption + 1, 100)>>
<<=setup.pronounceWhat($tmpGirl, true)>> is getting more corrupted.<strong> (Corruption + 1)</strong>
<br />
<</if>>
<<if (_sexActions[$sexAction] ?? false) && _sexActions[$sexAction].positive>>
<<=setup.pronounceWhos($tmpGirl, true)>> body reacts positively. <strong>(Horny + 20)</strong>
<br />
<<if $tmpGirl.horny >= 100>>
<<include 'Mistress fuck squirt'>>
<<=setup.displayName($tmpGirl, true)>> has an orgasm!<strong> (Happy / Relationship + 5)</strong>
<br />
<<set
$tmpGirl.relationship = Math.min($tmpGirl.relationship + 5, 100),
$tmpGirl.happy = Math.min($tmpGirl.happy + 5, 100)>>
<<if typeof $tmpGirl.orgasms !== 'undefined'>>
<<set $tmpGirl.orgasms++>>
<</if>>
<<run setup.sex.giveAfterglow($tmpGirl)>>
<</if>>
<</if>>
<<if _sexActions[$sexAction]?.stats>>
<<set $tmpGirl[_sexActions[$sexAction].stats]++>>
<</if>>
<<if $sexAction === 'mistress_pussy'>>
<<set $tmpGirl.virgin = false>>
<</if>>
<<include 'Mistress fuck traits'>>
<<if $tmpGirl.horny >= 100>>
<<script>>
setTimeout(function () {
variables().tmpGirl.horny = 0;
}, 400);
<</script>>
<</if>>
<</if>>
<br />
<<include 'Mistress fuck buttons'>><<if ($tmpGirl.traits ?? []).includes('squirter')>>
<br />
<<if $sexAction == 'mistress_pussy'>>
<<actionImage $tmpGirl mistress_squirt>>
<<elseif $sexAction == 'mistress_anal'>>
<<actionImage $tmpGirl mistress_squirt_anal>>
<<elseif $sexAction == 'mistress_anal_fingering'>>
<<actionImage $tmpGirl mistress_squirt_anal_fingering>>
<<elseif $sexAction == 'mistress_pussy_lick'>>
<<actionImage $tmpGirl mistress_squirt_lick>>
<</if>>
<br />
<</if>><<if typeof $tmpGirl.traitsLocked === 'undefined'>>
<<set $tmpGirl.traitsLocked = setup.getRandomTraits($tmpGirl, 3, $tmpGirl.traits ?? [])>>
<</if>>
<<if $sexAction == 'mistress_anal' && $tmpGirl.anal >= 100 && !$tmpGirl.traits.includes('analslut') && setup.percentageChance(5) && !$tmpGirl.traitsLocked.includes('analslut')>>
<<run $tmpGirl.traits.push('analslut')>>
<strong><<= setup.displayName($tmpGirl)>> got anal slut trait!</strong>
<br />
<<elseif $sexAction == 'mistress_bj' && $tmpGirl.bj >= 100 && !$tmpGirl.traits.includes('cumslut') && setup.percentageChance(5) && !$tmpGirl.traitsLocked.includes('cumslut')>>
<<run $tmpGirl.traits.push('cumslut')>>
<strong><<= setup.displayName($tmpGirl)>> got cum slut trait!</strong>
<br />
<<elseif $sexAction == 'mistress_dp' && $tmpGirl.dp >= 100 && !$tmpGirl.traits.includes('deepthroat') && setup.percentageChance(5) && !$tmpGirl.traitsLocked.includes('deepthroat')>>
<<run $tmpGirl.traits.push('deepthroat')>>
<strong><<= setup.displayName($tmpGirl)>> got deepthroat trait!</strong>
<br />
<<elseif $sexAction == 'mistress_pussy' && $tmpGirl.pussy >= 100 && !$tmpGirl.traits.includes('nymphomaniac') && setup.percentageChance(5) && !$tmpGirl.traitsLocked.includes('nymphomaniac')>>
<<run $tmpGirl.traits.push('nymphomaniac')>>
<strong><<= setup.displayName($tmpGirl)>> got nymphomaniac trait!</strong>
<br />
<</if>>/* using $tmpgirl */
<<if ['streets', 'nightclub', 'milk_barn'].includes($tmpGirl.assignedTo)>>
<<set _isRest = (typeof $tmpGirl.rest !== 'undefined')>>
<<if _isRest>>
<<set _restDisplay='block', _workDisplay='none'>>
<<else>>
<<set _restDisplay='none', _workDisplay='block'>>
<</if>>
<div id="optrest" @style="'display:' + _restDisplay">
<<link 'Enough rest! - Back to work'>>
<<run delete $tmpGirl.rest>>
<<run $('#optrest').hide()>>
<<run $('#optwork').show()>>
<</link>>
</div>
<div id="optwork" @style="'display:' + _workDisplay">
<<link 'Hard work? - Take a day off'>>
<<set $tmpGirl.rest = {
days: setup.getNpcHappyLevel($tmpGirl) === 'very_sad' ? 3 : 2,
desc: 'Day off resting',
id: 'resting'
}>>
<<run $('#optrest').show()>>
<<run $('#optwork').hide()>>
<</link>>
</div>
<</if>><!-- #### npc_leave_husband.jpg | two people in a quiet post-apocalyptic cabin room, intimate conversation, warm dim light, serious mood --ar 4:2 --p -->
<center>
<<actionImage $tmpGirl approach>>
</center>
<br />
<<set _rel = $tmpGirl.relationship ?? 0>>
<<set _corruption = $tmpGirl.corruption ?? 0>>
<<set _husbandName = setup.getNpcById($tmpGirl.family.husband)?.name ?? 'her husband'>>
<<set _relToHusband = $tmpGirl.relationshipBetween?.stats?.[$tmpGirl.family.husband] ?? 0>>
You steered the conversation toward <<=_husbandName>>. Not accusingly — just asking how things really were between them. Whether she was happy.
<br /><br />
<<if _rel >= 80>>
She was quiet for a moment. Something shifted in her expression.
<br /><br />
<<if _relToHusband >= 60>>
<<sayNpc $tmpGirl>>
Things are good between us. Better than I expected, honestly. I'm not going to pretend otherwise.
<</sayNpc>>
<<elseif _rel >= 90 || _corruption >= 50>>
<<sayNpc $tmpGirl>>
Honestly? It's not what I thought it would be. I don't know anymore.
<</sayNpc>>
<<else>>
<<sayNpc $tmpGirl>>
That's... a complicated question.
<</sayNpc>>
<</if>>
<br />
She didn't walk away.
<br /><br />
<div id="lh_push">
<<linkreplace 'Tell her you want her for yourself'>>
<<run $('#lh_leave').hide()>>
You said it plainly — that you wanted her here, with you. Not just as a guest passing through.
<br /><br />
<<set _leaveChance = Math.min(Math.max(_rel - 40 + Math.floor(_corruption / 2) - Math.floor(_relToHusband / 2), 0), 90)>>
<<if setup.percentageChance(_leaveChance)>>
She looked at you for a long moment. Then something in her settled.
<br /><br />
<<sayNpc $tmpGirl>>
I've been telling myself it's fine. It's not fine. I'll end it with him.
<</sayNpc>>
<br />
She said it quietly, like a decision she'd already been building to.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<set $guests[$guestId] = $tmpGirl>>
<strong>(Marriage ended)</strong>
<<else>>
She looked at you. Then at the floor.
<br /><br />
<<sayNpc $tmpGirl>>
I... I can't. It's not that simple. I'm sorry.
<</sayNpc>>
<br />
She seemed genuinely torn about it, which was something.
<br /><br />
<<set $tmpGirl.relationship = Math.max(_rel - 3, -100)>>
<<set $guests[$guestId] = $tmpGirl>>
<strong>(Relationship − 3)</strong>
<</if>>
<br /><br />
<<link 'Back'>>
<<if $tmpGirlViewBack>><<goto $tmpGirlViewBack>><<else>><<goto 'NPC view - guest'>><</if>>
<</link>>
<</linkreplace>>
</div>
<div id="lh_leave">
<<link 'Leave it alone'>>
<<if $tmpGirlViewBack>><<goto $tmpGirlViewBack>><<else>><<goto 'NPC view - guest'>><</if>>
<</link>>
</div>
<<else>>
<<sayNpc $tmpGirl>>
My marriage is my business. But... thank you for asking.
<</sayNpc>>
<br />
She wasn't offended. If anything, she seemed a little flattered that someone cared enough to ask.
<br /><br />
<<set $tmpGirl.happy = Math.min(($tmpGirl.happy ?? 0) + 2, 100)>>
<<set $guests[$guestId] = $tmpGirl>>
<strong>(Happy + 2)</strong>
<br /><br />
<<link 'Back'>>
<<if $tmpGirlViewBack>><<goto $tmpGirlViewBack>><<else>><<goto 'NPC view - guest'>><</if>>
<</link>>
<</if>><<set _npc1.married = true>>
<<set _npc2.married = true>>
<<set _npc1.family ??= {}>>
<<set _npc1.family.wives ??= []>>
<<if !(_npc1.family.wives.includes(_npc2.id))>><<set _npc1.family.wives.push(_npc2.id)>><</if>>
<<set _npc2.family ??= {}>>
<<set _npc2.family.husband = _npc1.id>>
<<run setup.npc.addHistory(_npc1, 'married', { with: _npc2.id })>>
<<run setup.npc.addHistory(_npc2, 'married', { with: _npc1.id })>>
<<set _priorWives = (_npc1.family.wives ?? []).filter(id => id !== _npc2.id).map(id => setup.getNpcById(id)).filter(w => w != null)>>
In a blur of motion, word spreads across the settlement like wildfire, and within minutes, a small crowd gathers around a makeshift altar set up under an old tattered awning in the square. A few of the townsfolk bring scavenged candles and an assortment of wildflowers, doing their best to give the moment a touch of beauty amidst the rugged surroundings. Someone hands you a glass bottle of homemade spirits, and you lift it, taking a sip as you watch <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> stand side by side, faces glowing with a rare light in these dark times.
<<if _priorWives.length === 1>>
<<set _pw1 = _priorWives[0]>>
<<set _pw1KidCount = (_pw1.family?.kids ?? []).length>>
<br /><br />
Among those who gather, <<=setup.displayName(_pw1)>> stands close to the front<<if _pw1KidCount > 0>>, her <<if _pw1KidCount === 1>>child<<else>>children<</if>> by her side<</if>>, watching with quiet warmth as her husband takes a new bride.
<<elseif _priorWives.length >= 2>>
<<set _pwParts = []>>
<<for _pwI = 0; _pwI < _priorWives.length; _pwI++>>
<<set _pw = _priorWives[_pwI]>>
<<set _pwKidCount = (_pw.family?.kids ?? []).length>>
<<set _pwPart = setup.displayName(_pw)>>
<<if _pwKidCount > 0>><<set _pwPart += ', her ' + (_pwKidCount === 1 ? 'child' : 'children') + ' close by'>><</if>>
<<run _pwParts.push(_pwPart)>>
<</for>>
<<if _priorWives.length === 2>>
<<set _pwList = _pwParts[0] + ' and ' + _pwParts[1]>>
<<else>>
<<set _pwList = _pwParts.slice(0, -1).join(', ') + ', and ' + _pwParts[_pwParts.length - 1]>>
<</if>>
<br /><br />
<<=_pwList>> stand together among the gathered crowd, watching with quiet warmth as their husband takes another bride.
<</if>>
<br /><br />
<center>
<<actionImage _npc1 wedding>>
</center>
The ceremony is simple but heartfelt.
A few people murmur blessings for the new couple, and someone strums a melody on an old guitar.
As <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> exchange their vows, the crowd lets out quiet cheers and claps, honoring a rare moment of love and unity in a world that has otherwise forgotten such warmth. They share a kiss, and the gathered settlers break out into applause, some whooping and whistling.
<br /><br />
After the ceremony, the square transforms into an impromptu celebration. People pass around bits of bread and a precious few sips of wine, some sharing old songs and tales of happier days. A couple of settlers start a lively dance, pulling others in and laughing together under the dim glow of lanterns. It's a night of rare joy, a momentary escape from the constant grind of survival.
<<if _priorWives.length > 0>>
<<set _sw1 = _priorWives[0]>>
<<set _sw2 = _priorWives.length >= 2 ? _priorWives[random(1, _priorWives.length - 1)] : null>>
<br /><br />
At some point during the celebration, <<if _sw2 === null>><<=setup.displayName(_sw1)>> finds a quiet moment to take <<=setup.displayName(_npc2)>> aside<<else>><<=setup.displayName(_sw1)>> and <<=setup.displayName(_sw2)>> find a quiet moment to take <<=setup.displayName(_npc2)>> aside<</if>>.
<br /><br />
<<sayNpc _sw1>>
Welcome to the family. Truly.
<</sayNpc>>
<<if _sw2 !== null>>
<br />
<<sayNpc _sw2>>
We look after our own here. You're one of us now.
<</sayNpc>>
<</if>>
<</if>>
<br /><br />
As the crowd starts to thin, you catch sight of <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> slipping away, hand in hand, disappearing behind one of the doors leading to a small room they had decorated with whatever scraps they could find.
<br /><br />
<<linkreplace 'Knock on the door'>>
<center>
<<actionImage _npc1 room>>
</center>
There's a brief shuffling sound from inside, and then <<=setup.displayName(_npc1)>> opens the door, looking a little flustered.
His shirt is already halfway unbuttoned, and traces of <<=setup.displayName(_npc2)>>'s lipstick are smeared across the fabric.
He glances at you, a bit embarrassed but beaming.
<br /><br />
<<sayNpc _npc1>>
Can I, uh… help you with something?
<</sayNpc>>
<br />
<<linkreplace 'Enter room'>>
<center>
<<actionImage _npc2 room_waiting>>
</center>
<<sayNpc _npc2>>
Is… everything alright?
<</sayNpc>>
<br />
<<linkreplace 'In this settlement, the leader goes first'>>
<<sayNpc _npc1>>
Please… this night… it's supposed to be ours. You arranged this.
<</sayNpc>>
<br />
You pause, letting the weight of your words settle uncomfortably. Finally, a small smile breaks the tension, and you shake your head, softening your gaze.
<br /><br />
<<set _linkName = 'Turn ' + _npc2.name + ' around'>>
<<linkreplace _linkName>>
<<video 'cabin/npc_wedding1'>>
<br /><br />
You slowly turn <<=setup.displayName(_npc2)>> around and grab her ass squeezing it while <<=setup.displayName(_npc1)>> sits down on the chair next to you two.
<br />
<<sayNpc _npc1>>
Please don't!
<</sayNpc>>
<<set _npc1.happy -= 20>>
<<set _npc2.happy -= 10>>
<br />
<<linkreplace 'Lift her dress'>>
<<video 'cabin/npc_wedding2'>>
<br /><br />
You slowly pull up her dress, revealing her white panties. Soon enough you grab them and pull them down revealing her clean shaved pussy.
<br /><br />
<<sayNpc _npc1>>
Please!
<</sayNpc>>
<br />
<<sayNpc _npc2>>
It will be okay! It's fine.
<</sayNpc>>
<br />
<<linkreplace 'Fuck her'>>
<<set _npc1.happy -= 20>>
<<set _npc2.happy -= 10>>
<<video 'cabin/npc_wedding3'>>
<br /><br />
As she bends over the couch, you pull out your hard dick and place it on her ass. As you rub it between her asscheeks, she grabs <<=setup.displayName(_npc1)>>'s hand and holds it.
<br /><br />
You slowly place your dick against her pussy and grab her ass ready to adjust her position.
<br /><br />
<<video 'cabin/npc_wedding4'>>
<br /><br />
You slowly slide your dick into <<=setup.displayName(_npc2)>>'s pussy. She clearly holds and tries to resist not to let out a moan as she clinches into her new husband's hand.
<br /><br />
<<sayNpc _npc1>>
I can't...
<</sayNpc>>
<br />
<<linkreplace 'Fuck her harder'>>
<<video 'cabin/npc_wedding5'>>
<br /><br />
With each thrust you increase the speed and you manage to force her to let out a moan as she looks over her shoulder right into your eyes.
<br /><br />
As you kept pounding her pussy her moans started to get louder and louder when in the end she let out a loud moan that filled the quiet room.
<br /><br />
<<video 'cabin/npc_wedding6'>>
<br /><br />
<<=setup.displayName(_npc2)>> grabbed <<=setup.displayName(_npc1)>>'s shoulder and held him down firmly as by the look she enjoyed the moment more and more.
<br />
Meanwhile <<=setup.displayName(_npc1)>> couldn't look at you two at all.
<br /><br />
<<=setup.displayName(_npc2)>> locked her eyes with yours once again.
<br /><br />
<<video 'cabin/npc_wedding7'>>
<br /><br />
Her pussy was so wet that your dick almost slipped out as you slowed down a bit. In that moment you overhear <<=setup.displayName(_npc1)>> whisper to himself something.
<br /><br />
<<sayNpc _npc1>>
Bastard...
<</sayNpc>>
<br />
<<linkreplace 'Cum inside her'>>
<<set _npc1.happy -= 40>>
<center>
<<actionImage _npc2 room_cum_pussy>>
</center>
<br />
With a last final thrust you shove your dick deep into her and cum.
<br />
You fill up her pussy and some of your sperm drips out on the ground right next to <<=setup.displayName(_npc1)>>'s shoe.
<br /><br />
<<sayNpc _npc1>>
What was that?! Was it necessary?
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> meanwhile is already off you, laying in the bed as she tries to push out as much cum as she can while you slowly look toward the doors.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _wife = $tmpGirl>>
<<set _husband = setup.getNpcById($tmpGirl.family.husband)>>
<<set _husbandToWife = _husband.relationshipBetween?.stats?.[_wife.id] ?? 0>>
<<set _wifeToHusband = _wife.relationshipBetween?.stats?.[_husband.id] ?? 0>>
<<set _relBetween = (_husbandToWife + _wifeToHusband) / 2>>
<<set _husbandHappy = _husband.happy > 0>>
<<set _wifeHappy = _wife.happy > 0>>
<<set _wifeIsPregnant = (_wife.pregnancy ?? 0) > 0 && _wife.pregnancy_father === _husband.id>>
<<set _sharedKidsCount = (_wife.family?.kids ?? []).filter(id => setup.getNpcById(id)?.family?.father === _husband.id).length>>
<<set _hasSharedKidsOrPregnant = _wifeIsPregnant || _sharedKidsCount > 0>>
<<set _sharedKidsIsPlural = _sharedKidsCount > 1 || (_sharedKidsCount > 0 && _wifeIsPregnant)>>
<<set _sharedKidsVerb = _sharedKidsIsPlural ? 'need' : 'needs'>>
<<set _sharedKidsPhrase = ''>>
<<if _sharedKidsCount > 0 && _wifeIsPregnant>>
<<set _sharedKidsPhrase = (_sharedKidsCount > 1 ? 'our children' : 'our child') + ' and the baby on the way'>>
<<elseif _sharedKidsCount > 0>>
<<set _sharedKidsPhrase = _sharedKidsCount > 1 ? 'our children' : 'our child'>>
<<elseif _wifeIsPregnant>>
<<set _sharedKidsPhrase = 'our unborn child'>>
<</if>>
<<if (_wife.traits ?? []).includes('feral') || (_husband.traits ?? []).includes('feral')>>
<<set _feralOne = (_wife.traits ?? []).includes('feral') ? _wife : _husband>>
<<set _otherOne = (_wife.traits ?? []).includes('feral') ? _husband : _wife>>
You ask <<=setup.displayName(_otherOne)>> to meet you privately, away from the others.
<br /><br />
<center>
<<actionImage _otherOne approach>>
</center>
<br />
You lay it out plainly: <<=setup.displayName(_feralOne)>> can't communicate consent. Can't understand what a marriage is, let alone agree to one. Keeping this on the books isn't right for either of them.
<br /><br />
<<=setup.displayName(_otherOne)>> is quiet for a long moment. Then, slowly, nods.
<br /><br />
<<sayNpc _otherOne>>
I knew something wasn't right. I just didn't know how to say it.
<</sayNpc>>
<br />
There's relief in it, and something heavier too. But it's the right call.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<else>>
You send word for <<=setup.displayName(_wife)>> and <<=setup.displayName(_husband)>> to meet you. They arrive together, exchanging a glance that tells you they already suspect this isn't a routine summons.
<br /><br />
<center>
<<actionImage _wife approach>>
</center>
<br />
<<if _relBetween <= 20>>
<<you>>
I've noticed things between you two have seemed... rocky, lately. I think it's best we end this marriage.
<</you>>
<<elseif _relBetween <= 50>>
<<you>>
I expected the two of you to have grown closer by now. Since you haven't, I think it's best we end this marriage.
<</you>>
<<else>>
<<you>>
I'm sorry. I know things are good between you, but this marriage doesn't fit with my plans for the settlement anymore. I need to end it.
<</you>>
<</if>>
<br /><br />
<<if _relBetween <= 20>>
<<if !_husbandHappy && !_wifeHappy>>
<<=setup.displayName(_husband)>> and <<=setup.displayName(_wife)>> trade a brief glance, and something like relief passes between them.
<br /><br />
<<sayNpc _husband>>
Honestly? I think that's for the best.
<</sayNpc>>
<br />
<<sayNpc _wife>>
Couldn't agree more, <<=setup.npc.mcName(_wife, false)>>. We're both glad to be rid of each other, if I'm being honest.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _husband>>
We'll still figure out <<=_sharedKidsPhrase>> together, though. That much doesn't have to change.
<</sayNpc>>
<</if>>
<br /><br />
<<set _husband.happy = Math.min(100, _husband.happy + 20)>>
<<set _husband.relationship = Math.min(100, _husband.relationship + 10)>>
<<set _wife.happy = Math.min(100, _wife.happy + 20)>>
<<set _wife.relationship = Math.min(100, _wife.relationship + 10)>>
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<elseif _husbandHappy !== _wifeHappy>>
<<set _happyOne = _husbandHappy ? _husband : _wife>>
<<set _unhappyOne = _husbandHappy ? _wife : _husband>>
<<=setup.displayName(_happyOne)>> looks between you and <<=setup.displayName(_unhappyOne)>>, clearly caught off guard.
<br /><br />
<<sayNpc _happyOne>>
Wait, really? I thought things were fine between us. I'd like to keep trying, if that's alright.
<</sayNpc>>
<br />
<<sayNpc _unhappyOne>>
...I think I'm ready to move on, honestly. But whatever you decide, <<=setup.npc.mcName(_unhappyOne, false)>>, I'll accept it.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _happyOne>>
<<=_sharedKidsPhrase>> still <<=_sharedKidsVerb>> you too, you know. I just don't want them losing a parent over this.
<</sayNpc>>
<</if>>
<br /><br />
<div id="option_keep_lowmix">
<<linkreplace 'Keep them married'>>
<<run $('#option_end_lowmix').hide()>>
<<you>>
Then stay married. I won't force this.
<</you>>
<br />
<<=setup.displayName(_unhappyOne)>> gives a small shrug, accepting your decision without complaint. <<=setup.displayName(_happyOne)>> looks relieved.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<div id="option_end_lowmix">
<<linkreplace 'End their marriage'>>
<<run $('#option_keep_lowmix').hide()>>
<<you>>
No. I think it's best we end it here.
<</you>>
<br />
<<=setup.displayName(_happyOne)>> looks disappointed but doesn't argue. <<=setup.displayName(_unhappyOne)>> simply nods, accepting it without complaint.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<<=setup.displayName(_husband)>> and <<=setup.displayName(_wife)>> exchange a look, equal parts confused and accepting.
<br /><br />
<<sayNpc _husband>>
If that's what you think is best, <<=setup.npc.mcName(_husband, false)>>... we won't fight you on it. We can still be friends.
<</sayNpc>>
<br />
<<sayNpc _wife>>
We'll be alright. It's not like the world's giving anyone guarantees these days.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _husband>>
And we'll sort out <<=_sharedKidsPhrase>> between us. That's not in question.
<</sayNpc>>
<</if>>
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<<elseif _relBetween <= 50>>
<<if !_husbandHappy && !_wifeHappy>>
<<set _protestChance = _relBetween>>
<<if setup.percentageChance(_protestChance)>>
<<sayNpc _husband>>
We... we'd like to try and make this work. If not for each other, then for the good of the settlement.
<</sayNpc>>
<br />
<<sayNpc _wife>>
It hasn't been easy, but maybe it doesn't have to end here.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _husband>>
<<=_sharedKidsPhrase>> <<=_sharedKidsVerb>> both of us, <<=setup.npc.mcName(_husband, false)>>. Please, think about that.
<</sayNpc>>
<</if>>
<br /><br />
<div id="option_keep_medboth_un">
<<linkreplace 'Give them another chance'>>
<<run $('#option_end_medboth_un').hide()>>
<<you>>
...Alright. I won't force this.
<</you>>
<br />
Both of them look relieved, even if neither looks entirely convinced things will get easier.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<div id="option_end_medboth_un">
<<linkreplace 'Insist on the divorce'>>
<<run $('#option_keep_medboth_un').hide()>>
<<you>>
No. My mind's made up.
<</you>>
<br />
<<set _husband.happy -= 5>>
<<set _husband.relationship -= 5>>
<<set _wife.happy -= 5>>
<<set _wife.relationship -= 5>>
<<adjustRelationshipBetween _husband _wife -10>>
Neither of them argues further. Whatever they had left to give each other, it clearly wasn't enough.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<<sayNpc _husband>>
We gave it what we could, <<=setup.npc.mcName(_husband, false)>>. This world doesn't make it easy to hold onto something like that.
<</sayNpc>>
<br />
<<sayNpc _wife>>
He's right. Maybe in another life.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _husband>>
We'll figure out <<=_sharedKidsPhrase>> somehow. Don't really see another option, not in this world.
<</sayNpc>>
<</if>>
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<<elseif _husbandHappy !== _wifeHappy>>
<<set _happyOne = _husbandHappy ? _husband : _wife>>
<<set _unhappyOne = _husbandHappy ? _wife : _husband>>
<<sayNpc _happyOne>>
I think we can make this work, <<=setup.npc.mcName(_happyOne, false)>>. I'd like the chance to try.
<</sayNpc>>
<br />
<<sayNpc _unhappyOne>>
I'm tired of putting in effort that doesn't seem to go anywhere. I think we both know how I feel.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _happyOne>>
<<=_sharedKidsPhrase>> <<=_sharedKidsVerb>> you in their life. Doesn't that count for anything?
<</sayNpc>>
<</if>>
<br /><br />
<div id="option_keep_medmix">
<<linkreplace 'Keep them married'>>
<<run $('#option_end_medmix').hide()>>
<<you>>
Then stay married.
<</you>>
<br />
<<set _happyOne.happy = Math.min(100, _happyOne.happy + 10)>>
<<set _happyOne.relationship = Math.min(100, _happyOne.relationship + 10)>>
<<set _unhappyOne.happy -= 10>>
<<set _unhappyOne.relationship -= 10>>
<<=setup.displayName(_happyOne)>> brightens at the decision. <<=setup.displayName(_unhappyOne)>> says nothing, but the disappointment is plain on their face.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<div id="option_end_medmix">
<<linkreplace 'End their marriage'>>
<<run $('#option_keep_medmix').hide()>>
<<you>>
No. I think it's best we end it here.
<</you>>
<br />
<<set _unhappyOne.happy = Math.min(100, _unhappyOne.happy + 10)>>
<<set _unhappyOne.relationship = Math.min(100, _unhappyOne.relationship + 10)>>
<<set _happyOne.happy -= 10>>
<<set _happyOne.relationship -= 10>>
<<=setup.displayName(_unhappyOne)>> lets out a breath, something between relief and resignation. <<=setup.displayName(_happyOne)>> looks away, clearly stung by the decision.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<<set _protestChance = Math.min(100, _relBetween * 2)>>
<<if setup.percentageChance(_protestChance)>>
<<sayNpc _husband>>
I don't understand. Things are good between us, <<=setup.npc.mcName(_husband, false)>>. Why end it now?
<</sayNpc>>
<br />
<<sayNpc _wife>>
Please, reconsider. We're happy together.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _husband>>
<<=_sharedKidsPhrase>> <<=_sharedKidsVerb>> two parents in the house, <<=setup.npc.mcName(_husband, false)>>. That's not something you get to just decide away.
<</sayNpc>>
<</if>>
<br /><br />
<div id="option_keep_medboth_hap">
<<linkreplace 'Give them another chance'>>
<<run $('#option_end_medboth_hap').hide()>>
<<you>>
...Alright. I won't force this.
<</you>>
<br />
Relief washes over both of them in equal measure.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<div id="option_end_medboth_hap">
<<linkreplace 'Insist on the divorce'>>
<<run $('#option_keep_medboth_hap').hide()>>
<<you>>
No. My mind's made up.
<</you>>
<br />
<<set _husband.happy -= 20>>
<<set _husband.relationship -= 20>>
<<set _wife.happy -= 20>>
<<set _wife.relationship -= 20>>
Neither of them argues further, though the confusion and hurt on their faces is plain to see.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<<sayNpc _husband>>
I don't really understand, <<=setup.npc.mcName(_husband, false)>>... but if that's what you've decided, we won't fight you on it. The settlement matters more than our objections.
<</sayNpc>>
<br />
<<sayNpc _wife>>
We trust you know what's best, even if this doesn't make sense to us.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _husband>>
Whatever happens, we'll work out <<=_sharedKidsPhrase>> together. That's not up for debate.
<</sayNpc>>
<</if>>
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<</if>>
<<else>>
<<if !_husbandHappy && !_wifeHappy>>
<<=setup.displayName(_husband)>> and <<=setup.displayName(_wife)>> both go pale. For a long moment, neither of them seems to find the words.
<br /><br />
<<sayNpc _husband>>
Please... don't do this. What we have is the only good thing either of us has left in this world.
<</sayNpc>>
<br />
<<sayNpc _wife>>
I'm begging you, <<=setup.npc.mcName(_wife, false)>>. Reconsider. Please.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _husband>>
<<=_sharedKidsPhrase>> <<=_sharedKidsVerb>> both their parents, not just whatever's left of us apart. Please, don't do this to them.
<</sayNpc>>
<</if>>
<br /><br />
<div id="option_keep_highboth_un">
<<linkreplace 'Reconsider'>>
<<run $('#option_end_highboth_un').hide()>>
<<you>>
...Alright. I won't take this from you.
<</you>>
<br />
The relief between them is immediate, palpable, a weight visibly lifted from both their shoulders.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<div id="option_end_highboth_un">
<<linkreplace 'Insist on the divorce'>>
<<run $('#option_keep_highboth_un').hide()>>
<<you>>
No. My mind is made up.
<</you>>
<br />
<<set _husband.happy -= 50>>
<<set _husband.relationship = Math.round(_husband.relationship / 2)>>
<<set _wife.happy -= 50>>
<<set _wife.relationship = Math.round(_wife.relationship / 2)>>
<<adjustRelationshipBetween _husband _wife 20>>
Something breaks in both of them at once. Whatever distance the world had put between everyone else, the two of them had closed it together, and now you've torn it open again.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<set _leaveChance = Math.max(100 - _relBetween, 0)>>
<<if setup.percentageChance(_leaveChance)>>
<<sayNpc _husband>>
If we can't be married, we're not staying here to watch each other from a distance. We're leaving. Together.
<</sayNpc>>
<br /><br />
<div id="option_letgo_highboth_un">
<<linkreplace 'Let them leave'>>
<<run $('#option_slave_highboth_un').hide()>>
<<you>>
That's your choice to make. Both of you.
<</you>>
<br />
They gather what little they have between them, and by morning, they're gone from the settlement for good.
<br /><br />
<<link 'Continue'>>
<<npcLeaveSettlement _husband>>
<<npcLeaveSettlement _wife>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_slave_highboth_un">
<<linkreplace 'Refuse. They belong to you now.'>>
<<run $('#option_letgo_highboth_un').hide()>>
<<you>>
Neither of you is going anywhere. You belong to me now, both of you.
<</you>>
<br />
They look at each other, and at you, with dawning dread. Neither one of them resists as you lead them both away.
<br /><br />
<<link 'Continue'>>
<<npcEnslave _husband>>
<<npcEnslave _wife>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
Neither of them says another word. There's nothing left to say.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<<elseif _husbandHappy !== _wifeHappy>>
<<set _happyOne = _husbandHappy ? _husband : _wife>>
<<set _unhappyOne = _husbandHappy ? _wife : _husband>>
<<sayNpc _happyOne>>
This is real, <<=setup.npc.mcName(_happyOne, false)>>. We belong together. Please don't do this to us.
<</sayNpc>>
<br />
<<sayNpc _unhappyOne>>
...Honestly? I've just been going along with it, to keep the peace. I'd rather be free, if I'm being truthful.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _happyOne>>
So what, you're just going to walk away from <<=_sharedKidsPhrase>> too? Is that the kind of parent you want to be?
<</sayNpc>>
<</if>>
<br /><br />
<div id="option_keep_highmix">
<<linkreplace 'Keep them married'>>
<<run $('#option_end_highmix').hide()>>
<<you>>
Then stay married. That's my decision.
<</you>>
<br />
<<set _happyOne.happy = Math.min(100, _happyOne.happy + 20)>>
<<set _happyOne.relationship = Math.min(100, _happyOne.relationship + 20)>>
<<set _unhappyOne.happy -= 20>>
<<set _unhappyOne.relationship -= 20>>
<<=setup.displayName(_happyOne)>> sags with relief. <<=setup.displayName(_unhappyOne)>> says nothing, jaw tight, swallowing whatever protest they might have made.
<br /><br />
<<set _leaveChance = Math.max(100 - _unhappyOne.relationship, 0)>>
<<if setup.percentageChance(_leaveChance)>>
<br />
<<sayNpc _unhappyOne>>
I can't do this. I won't spend the rest of my life trapped in a marriage I don't want. I'm leaving, <<=setup.npc.mcName(_unhappyOne, false)>>, whether you allow it or not.
<</sayNpc>>
<br /><br />
<div id="option_letgo_highmix_stay">
<<linkreplace 'Let them leave'>>
<<run $('#option_slave_highmix_stay').hide()>>
<<you>>
That's your choice to make.
<</you>>
<br />
<<=setup.displayName(_unhappyOne)>> doesn't waste any time. By the next morning, they're gone from the settlement for good.
<br /><br />
<<link 'Continue'>>
<<npcLeaveSettlement _unhappyOne>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_slave_highmix_stay">
<<linkreplace 'Refuse. They belong to you now.'>>
<<run $('#option_letgo_highmix_stay').hide()>>
<<you>>
You're not going anywhere. You belong to me now.
<</you>>
<br />
<<=setup.displayName(_unhappyOne)>> doesn't resist as you lead them away.
<br /><br />
<<sayNpc _happyOne>>
Thank you. At least this way, I still get to keep them close.
<</sayNpc>>
<br /><br />
<<link 'Continue'>>
<<npcEnslave _unhappyOne>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<br />
<<=setup.displayName(_unhappyOne)>> doesn't bring it up again, at least not where you can see it.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<div id="option_end_highmix">
<<linkreplace 'End their marriage'>>
<<run $('#option_keep_highmix').hide()>>
<<you>>
No. I think it's best we end it here.
<</you>>
<br />
<<set _unhappyOne.happy = Math.min(100, _unhappyOne.happy + 20)>>
<<set _unhappyOne.relationship = Math.min(100, _unhappyOne.relationship + 20)>>
<<set _happyOne.happy -= 20>>
<<set _happyOne.relationship -= 20>>
<<=setup.displayName(_unhappyOne)>> exhales, something like relief breaking across their face. <<=setup.displayName(_happyOne)>> looks gutted, blinking back something they don't want you to see.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<set _leaveChance = Math.max(100 - _happyOne.relationship, 0)>>
<<if setup.percentageChance(_leaveChance)>>
<br />
<<sayNpc _happyOne>>
I can't stay here, <<=setup.npc.mcName(_happyOne, false)>>. Not this close to them, not after this. Please, let me leave the settlement.
<</sayNpc>>
<br /><br />
<div id="option_letgo_highmix_end">
<<linkreplace 'Let them leave'>>
<<run $('#option_deny_highmix_end').hide()>>
<<you>>
Alright. Go, if that's what you need.
<</you>>
<br />
<<=setup.displayName(_happyOne)>> doesn't linger. Within a day, they're gone from the settlement for good.
<br /><br />
<<link 'Continue'>>
<<npcLeaveSettlement _happyOne>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_deny_highmix_end">
<<linkreplace 'Deny their request'>>
<<run $('#option_letgo_highmix_end').hide()>>
<<you>>
No. I need you here. You'll stay.
<</you>>
<br />
<<=setup.displayName(_happyOne)>> doesn't argue, though the heartbreak on their face doesn't fade. They remain in the settlement, a guest still, just no longer a spouse.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<br />
<<=setup.displayName(_happyOne)>> says nothing further, retreating into a quiet that lingers for days.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<<else>>
<<=setup.displayName(_husband)>> and <<=setup.displayName(_wife)>> look at each other, then back at you, bewildered.
<br /><br />
<<sayNpc _husband>>
I don't understand. We belong together, <<=setup.npc.mcName(_husband, false)>>. Why would you try to tear us apart?
<</sayNpc>>
<br />
<<sayNpc _wife>>
We're committed to each other. Nothing you say is going to change that.
<</sayNpc>>
<<if _hasSharedKidsOrPregnant>>
<br />
<<sayNpc _husband>>
<<=_sharedKidsPhrase>> <<=_sharedKidsVerb>> us both, together, under one roof. That's not negotiable, <<=setup.npc.mcName(_husband, false)>>.
<</sayNpc>>
<</if>>
<br />
They stand close together, shoulders touching, making it plain they intend to weather this as one.
<br /><br />
<div id="option_keep_highboth_hap">
<<linkreplace 'Reconsider'>>
<<run $('#option_end_highboth_hap').hide()>>
<<you>>
...You're right. I won't take this from you.
<</you>>
<br />
Relief breaks across both their faces at once.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<div id="option_end_highboth_hap">
<<linkreplace 'Insist on the divorce'>>
<<run $('#option_keep_highboth_hap').hide()>>
<<you>>
No. My mind is made up.
<</you>>
<br />
<<set _husband.happy -= 50>>
<<set _husband.relationship = Math.round(_husband.relationship / 2)>>
<<set _wife.happy -= 50>>
<<set _wife.relationship = Math.round(_wife.relationship / 2)>>
<<adjustRelationshipBetween _husband _wife 40>>
Neither of them argues, but something passes between them, a silent, shared resolve that has nothing to do with you anymore.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<set _leaveChance = Math.max(100 - _relBetween, 0)>>
<<if setup.percentageChance(_leaveChance)>>
<<sayNpc _husband>>
We're not letting you keep us apart. We're leaving, together, and you can't stop us.
<</sayNpc>>
<br /><br />
<div id="option_letgo_highboth_hap">
<<linkreplace 'Let them leave'>>
<<run $('#option_slave_highboth_hap').hide()>>
<<you>>
Fine. Go, then. Both of you.
<</you>>
<br />
They don't wait around to see if you change your mind. By morning, they're gone from the settlement for good, together.
<br /><br />
<<link 'Continue'>>
<<npcLeaveSettlement _husband>>
<<npcLeaveSettlement _wife>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_slave_highboth_hap">
<<linkreplace 'Refuse. They belong to you now.'>>
<<run $('#option_letgo_highboth_hap').hide()>>
<<you>>
You're not going anywhere. Either of you.
<</you>>
<br />
Whatever defiance they had a moment ago drains out of them fast. Neither one resists as you lead them both away.
<br /><br />
<<link 'Continue'>>
<<npcEnslave _husband>>
<<npcEnslave _wife>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
Neither of them says anything more. For now, at least, they stay.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<</if>>
<</if>>
<</if>><<set $tmpGirl.married = false>>
<<set _oldHusbandId = $tmpGirl.family?.husband>>
<<if $tmpGirl.family>>
<<set $tmpGirl.family.exes ??= []>>
<<if _oldHusbandId && !$tmpGirl.family.exes.includes(_oldHusbandId)>>
<<run $tmpGirl.family.exes.push(_oldHusbandId)>>
<</if>>
<<run delete $tmpGirl.family.husband>>
<</if>>
<<if _oldHusbandId === 'mc'>>
<<if $player.family && $player.family.wives>>
<<run $player.family.wives = $player.family.wives.filter(id => id !== $tmpGirl.id)>>
<</if>>
<<elseif _oldHusbandId>>
<<set _oldHusband = setup.getNpcById(_oldHusbandId)>>
<<if _oldHusband>>
<<set _oldHusband.family ??= {}>>
<<set _remainingWives = (_oldHusband.family.wives ?? []).filter(id => id !== $tmpGirl.id)>>
<<set _oldHusband.married = _remainingWives.length > 0>>
<<if _remainingWives.length>>
<<set _oldHusband.family.wives = _remainingWives>>
<<else>>
<<run delete _oldHusband.family.wives>>
<</if>>
<<set _oldHusband.family.exes ??= []>>
<<if !_oldHusband.family.exes.includes($tmpGirl.id)>>
<<run _oldHusband.family.exes.push($tmpGirl.id)>>
<</if>>
<<run setup.npc.addHistory(_oldHusband, 'divorced', { with: $tmpGirl.id })>>
<</if>>
<</if>>
<<run setup.npc.addHistory($tmpGirl, 'divorced', { with: _oldHusbandId })>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _isOwnMarriage = ($tmpGirl?.family?.husband === 'mc')>>
<<set _isLostHusband = $tmpGirl?.family?.husband && $tmpGirl.family.husband !== 'mc' && setup.npc.isSpouseLost($tmpGirl.family.husband)>>
<<if _isOwnMarriage>>
<<set _relationship = $tmpGirl.relationship>>
<<set _happyAtStart = $tmpGirl.happy>>
<<set _sub = $tmpGirl.sub ?? 0>>
<<set _isHappy = _happyAtStart > 0>>
<<set _isPregnantByMc = ($tmpGirl.pregnancy ?? 0) > 0 && $tmpGirl.pregnancy_father === 'mc'>>
<<set _kidsWithMcCount = ($tmpGirl.family?.kids ?? []).filter(id => setup.getNpcById(id)?.family?.father === 'mc').length>>
<<set _hasMcKidsOrPregnant = _isPregnantByMc || _kidsWithMcCount > 0>>
<<set _mcKidsPhrase = ''>>
<<if _kidsWithMcCount > 0 && _isPregnantByMc>>
<<set _mcKidsPhrase = (_kidsWithMcCount > 1 ? 'our children' : 'our child') + ' and the baby on the way'>>
<<elseif _kidsWithMcCount > 0>>
<<set _mcKidsPhrase = _kidsWithMcCount > 1 ? 'our children' : 'our child'>>
<<elseif _isPregnantByMc>>
<<set _mcKidsPhrase = 'our unborn child'>>
<</if>>
<<if ($tmpGirl.traits ?? []).includes('feral')>>
You call <<=setup.displayName($tmpGirl)>>'s name. She comes readily — open, unhurried, no flicker of dread.
<br /><br />
<center>
<<actionImage $tmpGirl approach>>
</center>
<br />
She watches your face with uncomplicated attention, not knowing what this is. She never understood what it meant when you said yes, and she doesn't understand what it means now.
<br /><br />
You say it plainly, to anyone nearby who can hear: a marriage where one person can't communicate consent — can't even comprehend the idea — isn't one you can keep. It ends here, for her sake as much as yours.
<br /><br />
<<=setup.displayName($tmpGirl)>> tips her head at the shift in your tone, then looks away and wanders off, unbothered.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<else>>
You ask <<=setup.displayName($tmpGirl)>> to meet you somewhere quiet, away from the rest of the household. She comes without question, though there's a flicker of unease in her eyes by the time she arrives.
<br /><br />
<center>
<<actionImage $tmpGirl approach>>
</center>
<br />
<<if _relationship < 20>>
<<you>>
This isn't working. I think we both know that. I want to end the marriage.
<</you>>
<br />
<<if _isHappy>>
<<=setup.displayName($tmpGirl)>> takes it in stride, even managing a small, easy smile, like she's relieved someone finally said it out loud.
<br /><br />
<<sayNpc $tmpGirl>>
Honestly? I think we're better off as friends, <<=setup.npc.mcName($tmpGirl, false)>>. No reason this has to be ugly between us. I'll still pull my weight around here, for everyone's sake.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
I'll be raising <<=_mcKidsPhrase>> on my own from here. I'm not scared of that. We'll be just fine.
<</sayNpc>>
<</if>>
<<else>>
<<=setup.displayName($tmpGirl)>> barely reacts at all, like the news barely registers, her expression distant.
<br /><br />
<<sayNpc $tmpGirl>>
...Okay. I don't think I ever really knew you anyway, <<=setup.npc.mcName($tmpGirl, false)>>. Doesn't matter much either way. I'll keep my distance, for the settlement's sake.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
I suppose it'll just be me and <<=_mcKidsPhrase>> from here. Wouldn't be the first hard thing this world's asked of me.
<</sayNpc>>
<</if>>
<</if>>
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<elseif _relationship < 50>>
<<you>>
I've been thinking about this for a while. This marriage isn't what I hoped it would be. I want to end it.
<</you>>
<br />
<<=setup.displayName($tmpGirl)>> goes still, searching your face for some sign that you don't mean it.
<br /><br />
<<set _protestChance = (_relationship + (100 - _sub)) / 2>>
<<if setup.percentageChance(_protestChance)>>
<<if _isHappy>>
<<sayNpc $tmpGirl>>
Wait... we're really on our way towards something good here, aren't we? We shouldn't just give up on that.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
And what about <<=_mcKidsPhrase>>? Don't they deserve a father who's actually here?
<</sayNpc>>
<</if>>
<<else>>
<<sayNpc $tmpGirl>>
This world has already hurt me enough, <<=setup.npc.mcName($tmpGirl, false)>>. I don't want to take another loss. Please, not this too.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
You'd really leave <<=_mcKidsPhrase>> without a father? After everything?
<</sayNpc>>
<</if>>
<</if>>
<br /><br />
<div id="option_accept_mid">
<<linkreplace 'Give her another chance'>>
<<run $('#option_insist_mid').hide()>>
<<you>>
...Alright. One more chance.
<</you>>
<br />
Relief floods her face. Whatever happens next is still unwritten, for both of you.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<div id="option_insist_mid">
<<linkreplace 'Insist on the divorce'>>
<<run $('#option_accept_mid').hide()>>
<<set $tmpGirl.happy -= 20>>
<<set $tmpGirl.relationship -= 20>>
<<you>>
No. My mind is made up.
<</you>>
<br />
<<=setup.displayName($tmpGirl)>>'s face falls. She doesn't argue further, but the hurt is plain.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<set _leaveChance = Math.max(50 - $tmpGirl.happy, 10)>>
<<if setup.percentageChance(_leaveChance)>>
<<sayNpc $tmpGirl>>
If you won't have me as your wife, I'm not staying here to be reminded of it every day. I'm leaving.
<</sayNpc>>
<br /><br />
<div id="option_letgo_mid">
<<linkreplace 'Let her leave'>>
<<run $('#option_slave_mid').hide()>>
<<you>>
That's your choice to make.
<</you>>
<br />
She gathers her things without another word, and within the hour she's gone from the settlement for good.
<br /><br />
<<link 'Continue'>>
<<assignedTo $tmpGirl 'none'>>
<<guestLeft $guestId>>
<<unset $guestId>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_slave_mid">
<<linkreplace 'Refuse. She belongs to you now.'>>
<<run $('#option_letgo_mid').hide()>>
<<set $tmpGirl.happy -= 30>>
<<set $tmpGirl.relationship -= 30>>
<<set $tmpGirl.sub += 10>>
<<you>>
You don't get to walk away from me. If you're not my wife anymore, you're something else.
<</you>>
<br />
<<=setup.displayName($tmpGirl)>> pales as the meaning sinks in. She starts to back away, but there's nowhere for her to go.
<br /><br />
<<link 'Continue'>>
<<moveGuestToSlave $tmpGirl $guestId>>
<<unset $guestId>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
She wipes her eyes and nods, accepting the end of it, even if it clearly still hurts.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<<else>>
<<if _isHappy>>
<<sayNpc $tmpGirl>>
I thought we were on our way towards something good, <<=setup.npc.mcName($tmpGirl, false)>>. I guess I was wrong about that.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
I'll manage, for <<=_mcKidsPhrase>>, if nothing else. We'll get by.
<</sayNpc>>
<</if>>
<<else>>
<<sayNpc $tmpGirl>>
I thought there might be a chance for us, once. But the wounds this world leaves behind make it hard to let anyone get close. ...Okay, <<=setup.npc.mcName($tmpGirl, false)>>.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
I suppose it'll just be me and <<=_mcKidsPhrase>> from here. Nothing new, in this world.
<</sayNpc>>
<</if>>
<</if>>
<br />
She takes the news quietly, more resigned than hurt.
<br /><br />
<<set $tmpGirl.happy -= 10>>
<<set $tmpGirl.relationship -= 10>>
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<<else>>
<<you>>
I've been thinking about this for a while. This marriage isn't what I hoped it would be. I want to end it.
<</you>>
<br />
<<=setup.displayName($tmpGirl)>> looks at you like you've struck her. For a moment she can't seem to find words at all.
<br /><br />
<<if _isHappy && _sub < 30>>
<<sayNpc $tmpGirl>>
No — no, listen to me. What we have is real, I know it is. I believe in what we've built together, in what we share. I'm not giving that up without a fight.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
And what about <<=_mcKidsPhrase>>? You'd really throw away what we've built, what we're building, for nothing?
<</sayNpc>>
<</if>>
<<elseif _isHappy>>
<<sayNpc $tmpGirl>>
Please... I'll do anything, I mean it, anything. I need you. Please, don't do this to me.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
Please, think of <<=_mcKidsPhrase>>, if you won't think of me. I'm begging you.
<</sayNpc>>
<</if>>
<<elseif _sub < 30>>
<<sayNpc $tmpGirl>>
No. After everything I've put up with in this house, you owe me better than this. I'm not walking away from the little I have for nothing.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
You owe <<=_mcKidsPhrase>> better than this too. Or does that responsibility just disappear the moment it's inconvenient for you?
<</sayNpc>>
<</if>>
<<else>>
<<sayNpc $tmpGirl>>
I... I've never had any say in what happens to me. Please, just let me try harder. I can serve you better, I swear it.
<</sayNpc>>
<<if _hasMcKidsOrPregnant>>
<br />
<<sayNpc $tmpGirl>>
What happens to <<=_mcKidsPhrase>> if you send me away? Please, I'm not asking for myself anymore.
<</sayNpc>>
<</if>>
<</if>>
<br /><br />
<div id="option_accept_high">
<<linkreplace 'Give her another chance'>>
<<run $('#option_insist_high').hide()>>
<<you>>
...Alright. One more chance.
<</you>>
<br />
She lets out a shaking breath, relief and lingering fear both written across her face.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<div id="option_insist_high">
<<linkreplace 'Insist on the divorce'>>
<<run $('#option_accept_high').hide()>>
<<set $tmpGirl.happy -= 40>>
<<set $tmpGirl.relationship -= 40>>
<<you>>
No. My mind is made up.
<</you>>
<br />
Something in her breaks at those words. She doesn't fight you on it, but she looks hollowed out, like you've taken something from her that she can't get back.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<set _leaveChance = Math.max(100 - $tmpGirl.happy, 20)>>
<<if setup.percentageChance(_leaveChance)>>
<<sayNpc $tmpGirl>>
I gave you everything. If you won't have me as your wife, I can't stay here and watch you move on like none of it mattered. I'm leaving.
<</sayNpc>>
<br /><br />
<div id="option_letgo_high">
<<linkreplace 'Let her leave'>>
<<run $('#option_slave_high').hide()>>
<<you>>
That's your choice to make.
<</you>>
<br />
She packs what little she has, and by nightfall she's gone, leaving the settlement behind for good.
<br /><br />
<<link 'Continue'>>
<<assignedTo $tmpGirl 'none'>>
<<guestLeft $guestId>>
<<unset $guestId>>
<<goto 'Guest house'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_slave_high">
<<linkreplace 'Refuse. She belongs to you now.'>>
<<run $('#option_letgo_high').hide()>>
<<set $tmpGirl.happy -= 50>>
<<set $tmpGirl.relationship -= 50>>
<<set $tmpGirl.sub += 10>>
<<you>>
You don't get to walk away from me. If you're not my wife anymore, you're something else.
<</you>>
<br />
Whatever was left of the woman who once said yes to your proposal seems to drain out of her right then. She doesn't resist as you lead her away.
<br /><br />
<<link 'Continue'>>
<<moveGuestToSlave $tmpGirl $guestId>>
<<unset $guestId>>
<<goto 'Basement'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
She says nothing more, retreating into a silence that says everything words couldn't.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</if>>
<</linkreplace>>
</div>
<</if>>
<</if>>
<<elseif _isLostHusband>>
You ask <<=setup.displayName($tmpGirl)>> to sit with you for a while. She does, quiet, perhaps already sensing you didn't call her over for anything good.
<br /><br />
<center>
<<actionImage $tmpGirl approach>>
</center>
<br />
<<you>>
I know this isn't easy to hear. But it's time. He isn't coming back, as hard as that is to accept. You need to free yourself from the past, for your own sake, and for the good of this settlement.
<</you>>
<br /><br />
<<if setup.percentageChance($tmpGirl.relationship)>>
<<=setup.displayName($tmpGirl)>> is quiet for a long moment, turning the ring over in her fingers before finally looking up at you.
<br /><br />
<<sayNpc $tmpGirl>>
...You're right. I can't keep holding onto this. This settlement is my life now. It's time I started living it.
<</sayNpc>>
<br />
She slips the ring from her finger and presses it into your hand, her eyes wet but her resolve steady.
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<<else>>
<<=setup.displayName($tmpGirl)>>'s hand goes to the ring on her finger, gripping it like it might be taken from her right now.
<br /><br />
<<sayNpc $tmpGirl>>
Please... I don't want anyone else. I'm not asking you to find me someone new. I just want to keep what we had. The memories. That's all I have left of him.
<</sayNpc>>
<br /><br />
<div id="option_keep_lost">
<<linkreplace 'Let her keep it'>>
<<run $('#option_force_lost').hide()>>
<<you>>
...Alright. I won't take that from you.
<</you>>
<br />
<<=setup.displayName($tmpGirl)>> closes her hand around the ring, relief and grief both written across her face.
<br /><br />
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<div id="option_force_lost">
<<linkreplace 'Insist she let go'>>
<<run $('#option_keep_lost').hide()>>
<<you>>
No. You can't keep living in the past. It's time.
<</you>>
<br />
<<set $tmpGirl.happy -= 20>>
<<set $tmpGirl.relationship -= 20>>
<<=setup.displayName($tmpGirl)>> flinches, but doesn't argue further. With trembling hands, she slips the ring off and presses it into your palm, bitterness plain on her face.
<br /><br />
<<sayNpc $tmpGirl>>
...Fine. It's yours, then. Just like everything else around here.
<</sayNpc>>
<br /><br />
<<include 'NPC end marriage - finalize'>>
<<link 'Leave'>>
<<goto $tmpGirlViewBack>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<<else>>
<<goto 'NPC end marriage - couple'>>
<</if>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _npc1 = setup.getNpcById($tmpEventWedding.id1)>>
<<set _npc2 = setup.getNpcById($tmpEventWedding.id2)>>
<<if (_npc1.traits ?? []).includes('feral') || (_npc2.traits ?? []).includes('feral')>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<<else>>
<<set _npc1.location = 'wedding'>>
<<set _npc2.location = 'wedding'>>
<<set _relBetween = (_npc1.relationshipBetween?.stats?.[ _npc2.id ] ?? 0)>>
You send word for <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> to meet you in the main square. When they arrive, they exchange a glance, uncertain, perhaps sensing that this is more than a routine summons.
<br /><br />
<center>
<<actionImage _npc1 approach>>
</center>
<br />
You face them both. The settlement needs stability. Bonds between people are what keep communities alive. You've watched these two long enough to believe they could be good for each other, and good for the people counting on all of you.
<br /><br />
<<if _relBetween > 50 || setup.percentageChance(30)>>
<<you>>
I've been watching the two of you for a while now. I've seen how well you get along, how you look at each other when you think no one is watching. I've made a decision. For the good of this settlement, and for both of you, I want you to marry and start a family.
<</you>>
<br />
The words hang in the air. <<=setup.displayName(_npc1)>> blinks with nervous apprehension. <<=setup.displayName(_npc2)>> reflexively reaches for his hand, holding it as she looks between you and him.
<<else>>
<<you>>
I've brought you both here because I've made a decision. For the good of this settlement, I want the two of you to marry and start a family.
<</you>>
<br />
The words hang in the air. <<=setup.displayName(_npc1)>> blinks, caught off guard by the request. <<=setup.displayName(_npc2)>> looks between you and him, her expression unreadable.
<</if>>
<br /><br />
<<linkreplace 'Wait for their answer'>>
<<set _weddingProceed = false>>
<<set _groomAttracted = (_npc2.gender === 0 && _npc1.likesGirls) || (_npc2.gender === 2 && _npc1.likesTGirls)>>
<<set _brideAttracted = (_npc1.gender === 1 && _npc2.likesGuys) || (_npc1.gender === 3 && _npc2.likesTGuys)>>
<<set _relReduction = Math.max(_relBetween, 0) / 4>>
<<set _maleProtestChance = 50 - _relReduction>>
<<if _npc2.beauty > 80>><<set _maleProtestChance = _maleProtestChance / 2>><</if>>
<<if _npc2.beauty < 50>><<set _maleProtestChance = _maleProtestChance + 25>><</if>>
<<set _maleProtestChance = Math.max(0, Math.min(100, _maleProtestChance))>>
<<set _singleProtestChance = 25 - _relReduction>>
<<if _npc2.beauty > 80>><<set _singleProtestChance = _singleProtestChance / 2>><</if>>
<<if _npc2.beauty < 50>><<set _singleProtestChance = _singleProtestChance + 25>><</if>>
<<set _singleProtestChance = Math.max(0, Math.min(100, _singleProtestChance))>>
<<set _femaleProtestChance = 30 - _relReduction>>
<<if _npc1.beauty > 80>><<set _femaleProtestChance = _femaleProtestChance / 2>><</if>>
<<if _npc1.beauty < 50>><<set _femaleProtestChance = _femaleProtestChance + 25>><</if>>
<<set _femaleProtestChance = _femaleProtestChance - _npc2.sub>>
<<set _femaleProtestChance = Math.max(0, Math.min(100, _femaleProtestChance))>>
<<set _npc2IsNympho = (_npc2.traits ?? []).includes('nymphomaniac')>>
<<set _npc2IsBreeder = (_npc2.traits ?? []).includes('breeder')>>
<<set _npc2IsInfertile = (_npc2.traits ?? []).includes('infertile')>>
<<set _npc2IsPregnant = (_npc2.pregnancy ?? 0) > 0>>
<<set _npc1IsFather = _npc2IsPregnant && _npc2.pregnancy_father === _npc1.id>>
<<set _sadoMaso = (_npc1.traits ?? []).includes('sadistic') && (_npc2.traits ?? []).includes('masochist')>>
<<set _masoSado = (_npc2.traits ?? []).includes('sadistic') && (_npc1.traits ?? []).includes('masochist')>>
<<set _npc2KidCount = (_npc2.family?.kids ?? []).length>>
<<set _sharedKidCount = (_npc2.family?.kids ?? []).filter(id => setup.getNpcById(id)?.family?.father === _npc1.id).length>>
<<set _npc1FatherToKids = _npc2KidCount > 0 && _sharedKidCount > 0>>
<<set _npc1NotFatherToKids = _npc2KidCount > 0 && _sharedKidCount === 0>>
<<set _wereMarried = (_npc1.family?.exes ?? []).includes(_npc2.id) || (_npc2.family?.exes ?? []).includes(_npc1.id)>>
<<if setup.family.isIncest(_npc1, _npc2)>>
<<set _incestRoll = random(1, 100)>>
<<if _incestRoll <= _maleProtestChance>>
<<=setup.displayName(_npc1)>> goes rigid the moment your words land. He looks between you and <<=setup.displayName(_npc2)>>, something between disbelief and distress crossing his face.
<br /><br />
<<set _relation = setup.family.getRelationshipLabel(_npc1, _npc2)>>
<<sayNpc _npc1>>
You can't be serious, <<=setup.npc.mcName(_npc1, false)>>. She's my <<=_relation>>. That's not something I'm willing to just—
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> has gone pale, eyes fixed on the ground.<<if _npc1IsFather && _npc2IsPregnant>> Her hand moves to her belly, her expression anxious and troubled.<</if>>
<<if _npc2IsNympho>>
<br /><br />
<<sayNpc _npc2>>
Well... for what it's worth, I'd be down for it.
<</sayNpc>>
<</if>>
<br /><br />
<div id="option_insist">
<<linkreplace 'These are desperate times. The old rules no longer apply.'>>
<<run $('#option_decline_incest').hide()>>
<<set _npc1.happy -= 30>>
<<set _npc2.happy -= 30>>
<<you>>
The world that made those rules is gone. What matters now is the survival and growth of this settlement. I've made my decision.
<</you>>
<br />
Neither of them speaks for a long moment. Then, with heavy resignation, they both nod.
<br /><br />
<<sayNpc _npc1>>
...Alright, <<=setup.npc.mcName(_npc1, false)>>. I just never thought it could change this much.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> lets out a slow breath, her expression begrudging.
<br /><br />
<<sayNpc _npc2>>
If this is what it takes, <<=setup.npc.mcName(_npc2, false)>>. I'll learn to be with him in this new way.
<</sayNpc>>
<br /><br />
<<include 'NPC arrange marry - ceremony'>>
<</linkreplace>>
</div>
<div id="option_decline_incest">
<<linkreplace 'I understand. Forget I said anything.'>>
<<run $('#option_insist').hide()>>
<<you>>
You're right. Forget I said anything.
<</you>>
<br />
They go their separate ways without another word, the tension lingering in the air long after they've gone.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<<=setup.displayName(_npc1)>> is quiet for a long moment, his eyes moving between you and <<=setup.displayName(_npc2)>>. There's uncertainty there, but no revulsion.
<br /><br />
<<set _relation = setup.family.getRelationshipLabel(_npc1, _npc2)>>
<<sayNpc _npc1>>
I... suppose the world we grew up in is gone. If this is the way things are done here now, then alright, <<=setup.npc.mcName(_npc1, false)>>. I can accept that, and marry my <<=_relation>>.<<if _npc2.beauty > 90>> Doesn't hurt that she's hot, always has been.<</if>><<if (_npc2.skills ?? []).includes('cook')>> And she's the best cook in the family. That doesn't hurt.<</if>>
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> swallows hard, then gives a slow, tentative nod.
<br /><br />
<<sayNpc _npc2>>
I guess family has a different meaning around here, <<=setup.npc.mcName(_npc2, false)>>. I can love him in this new way.
<</sayNpc>>
<br />
A faint, nervous smile crosses her lips. Despite the unusual circumstances, neither of them seems entirely opposed to the idea.
<<if _npc2IsNympho || (_npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0) || _npc2IsInfertile || _npc2.virgin || _npc2IsPregnant || _npc2KidCount > 0>>
<br /><br />
<<sayNpc _npc2>>
<<if _npc2IsNympho>>If I'm being honest, it's kind of a turn on. <</if>><<if _npc2IsInfertile>>There isn't really a risk anyway, since I can't have children. <<elseif _npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0>>If it's what this world needs, I am ready. Our family, our legacy, will continue.<</if>><<if _npc2.virgin>> I've never been with anyone before. I never could hav expected you being my first.<</if>><<if _npc2IsPregnant>> <<if _npc1IsFather>>You've already put a baby in me, that's the part that matters. This just makes us a family.<<else>>To accept me and take responsibility for another man's child... I won't forget that kindness.<</if>><</if>><<if _npc2KidCount > 0>> <<if _npc1FatherToKids>><<if _sharedKidCount === 1>>We've already borne a child, that is the part that matters. Now we can be together as a family.<<else>>It's not like we don't already have children. They should have their father in their lives.<</if>><<else>><<if _npc2KidCount === 1>>My child will be so happy to have a father in their life.<<else>>My children will be so happy to have a father in their lives.<</if>><</if>><</if>>
<</sayNpc>>
<</if>>
<<if _sadoMaso>>
<br />
<<=setup.displayName(_npc1)>> runs his gaze over <<=setup.displayName(_npc2)>>, slow and appraising, something quietly assured in the way he takes her in.
<br /><br />
<<sayNpc _npc1>>
Back home she always took well to a firm hand. I expect that to continue under this arrangement.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> drops her gaze, a faint flush on her cheeks.
<br /><br />
<<sayNpc _npc2>>
I've always been whatever my family needs me to be. That won't change.
<</sayNpc>>
<<elseif _masoSado>>
<br />
<<=setup.displayName(_npc1)>> glances over at <<=setup.displayName(_npc2)>> with a small, almost sheepish smile, something playful and unguarded about the way he looks at her.
<br /><br />
<<sayNpc _npc1>>
Back at home she was very good at keeping me in line. I wouldn't mind more of that.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> meets his gaze with cool, appraising eyes.
<br /><br />
<<sayNpc _npc2>>
As long as you remember to be a good boy for me.
<</sayNpc>>
<</if>>
<<if _npc1IsFather && _npc2IsPregnant>>
<br />
<<=setup.displayName(_npc2)>> rests her hand on her pregnant belly, smiling and hopeful.
<br />
<</if>>
<br /><br />
<<set _weddingProceed = true>>
<</if>>
<<elseif _wereMarried>>
<<set _remarryRoll = random(1, 100)>>
<<if _remarryRoll <= _maleProtestChance>>
<<=setup.displayName(_npc1)>> stiffens, the easy expression draining from his face the instant he understands what you're asking. He and <<=setup.displayName(_npc2)>> already know this road, and not fondly.
<br /><br />
<<sayNpc _npc1>>
We already tried this, <<=setup.npc.mcName(_npc1, false)>>. It didn't work then. What makes you think it'll work now?
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> wraps her arms around herself, eyes fixed somewhere past your shoulder, unwilling to meet his.<<if _npc1IsFather && _npc2IsPregnant>> Her hand moves to her belly, her expression anxious and troubled.<</if>>
<<if _npc2IsNympho>>
<br /><br />
<<sayNpc _npc2>>
Well... for what it's worth, I'd be down for it.
<</sayNpc>>
<</if>>
<br /><br />
<div id="option_insist_remarry">
<<linkreplace 'This time will be different. I need this from both of you.'>>
<<run $('#option_decline_remarry').hide()>>
<<set _npc1.happy -= 30>>
<<set _npc2.happy -= 30>>
<<you>>
I'm not asking either of you to forget what happened. I'm asking you to try again, for the good of this settlement. I've made my decision.
<</you>>
<br />
Neither of them argues further, though neither looks at the other.
<br /><br />
<<sayNpc _npc1>>
...Fine. If that's what you want, <<=setup.npc.mcName(_npc1, false)>>. I'll try to do better this time.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> lets out a slow breath, her expression guarded.
<br /><br />
<<sayNpc _npc2>>
I'll give it another chance. For the settlement, if nothing else.
<</sayNpc>>
<br /><br />
<<include 'NPC arrange marry - ceremony'>>
<</linkreplace>>
</div>
<div id="option_decline_remarry">
<<linkreplace 'I understand. Forget I said anything.'>>
<<run $('#option_insist_remarry').hide()>>
<<you>>
You're right. Some bridges don't need rebuilding. Forget I said anything.
<</you>>
<br />
They go their separate ways without another word, the old wound between them clearly still raw.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<<=setup.displayName(_npc1)>> is quiet for a moment, looking at <<=setup.displayName(_npc2)>> like he's seeing her clearly for the first time in a while. Whatever ended things between them, there's no anger left in his face, only consideration.
<br /><br />
<<sayNpc _npc1>>
Maybe we just weren't ready, before. A lot's changed since then. If you think it's worth trying again, <<=setup.npc.mcName(_npc1, false)>>, I'm willing.<<if _npc2.beauty > 90>> Doesn't hurt that she's hot, always has been.<</if>><<if (_npc2.skills ?? []).includes('cook')>> And she's still the best cook I know. That doesn't hurt either.<</if>>
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> studies him for a long moment, then gives a slow, careful nod.
<br /><br />
<<sayNpc _npc2>>
We both know how it ends if we don't actually try this time, <<=setup.npc.mcName(_npc2, false)>>. I'm willing, if he is.
<</sayNpc>>
<br />
A faint, cautious smile crosses her lips. Whatever came between them before, neither one seems entirely opposed to trying again.
<<if _npc2IsNympho || (_npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0) || _npc2IsInfertile || _npc2.virgin || _npc2IsPregnant || _npc2KidCount > 0>>
<br /><br />
<<sayNpc _npc2>>
<<if _npc2IsNympho>>If I'm being honest, it's kind of a turn on, doing this all over again. <</if>><<if _npc2IsInfertile>>There isn't really a risk anyway, since I can't have children. <<elseif _npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0>>If it's what this world needs, I am ready. Our family, our legacy, will continue.<</if>><<if _npc2.virgin>> I've never been with anyone before. I never expected him to still be my first, after everything.<</if>><<if _npc2IsPregnant>> <<if _npc1IsFather>>You've already put a baby in me, that's the part that matters. This just makes us a family again.<<else>>To take me back, and take responsibility for another man's child... I won't forget that kindness.<</if>><</if>><<if _npc2KidCount > 0>> <<if _npc1FatherToKids>><<if _sharedKidCount === 1>>We already have a child together. Maybe it's time our child had us both again.<<else>>We already have children together. They should have us both in their lives again.<</if>><<else>><<if _npc2KidCount === 1>>My child will be so happy to have a father in their life.<<else>>My children will be so happy to have a father in their lives.<</if>><</if>><</if>>
<</sayNpc>>
<</if>>
<<if _sadoMaso>>
<br />
<<=setup.displayName(_npc1)>> runs his gaze over <<=setup.displayName(_npc2)>>, slow and appraising, like he's remembering something fondly.
<br /><br />
<<sayNpc _npc1>>
She always took well to a firm hand. I doubt that's changed.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> drops her gaze, a faint flush on her cheeks.
<br /><br />
<<sayNpc _npc2>>
Some things don't change. I'm still whatever he needs me to be.
<</sayNpc>>
<<elseif _masoSado>>
<br />
<<=setup.displayName(_npc1)>> glances over at <<=setup.displayName(_npc2)>> with a small, almost sheepish smile, the kind only old familiarity allows.
<br /><br />
<<sayNpc _npc1>>
She was always good at keeping me in line. I wouldn't mind that again.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> meets his gaze with cool, appraising eyes.
<br /><br />
<<sayNpc _npc2>>
Some habits are worth picking back up.
<</sayNpc>>
<</if>>
<<if _npc1IsFather && _npc2IsPregnant>>
<br />
<<=setup.displayName(_npc2)>> rests her hand on her pregnant belly, smiling and hopeful.
<br />
<</if>>
<br /><br />
<<set _weddingProceed = true>>
<</if>>
<<elseif !_groomAttracted>>
<<=setup.displayName(_npc1)>> looks from you to <<=setup.displayName(_npc2)>>, then back again. He shifts uncomfortably, jaw working before he finds the words.
<br /><br />
<<sayNpc _npc1>>
I respect what you're trying to do, <<=setup.npc.mcName(_npc1, false)>>, but... she's not someone I'm attracted to. It wouldn't be right for either of us.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> says nothing, though something flickers across her face.<<if _npc1IsFather && _npc2IsPregnant>> Her hand moves to her belly, expression anxious and troubled.<</if>>
<br /><br />
<div id="option_insist_groom">
<<linkreplace 'The settlement demands it. Make it work.'>>
<<run $('#option_respect_groom').hide()>>
<<set _npc1.happy -= 50>>
<<set _npc2.happy -= 50>>
<<you>>
Personal preference is a luxury we cannot afford. The settlement comes first. Both of you.
<</you>>
<br />
<<=setup.displayName(_npc1)>> exhales sharply, staring at the ground. <<=setup.displayName(_npc2)>> wraps her arms around herself. Neither argues. Neither has the standing to.
<br /><br />
<<include 'NPC arrange marry - ceremony'>>
<</linkreplace>>
</div>
<div id="option_respect_groom">
<<linkreplace 'I understand. I will not force this.'>>
<<run $('#option_insist_groom').hide()>>
<<you>>
Fair enough. It was not the right call.
<</you>>
<br />
<<=setup.displayName(_npc1)>> gives a tight nod of relief. <<=setup.displayName(_npc2)>> glances at him once, then quietly slips away. He follows a moment later, leaving you alone in the square.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<<elseif !_brideAttracted>>
<<=setup.displayName(_npc1)>> says nothing at first, watching <<=setup.displayName(_npc2)>> for a reaction. She is the one who speaks.
<br /><br />
<<sayNpc _npc2>>
I... I'm sorry, <<=setup.npc.mcName(_npc2, false)>>. I want to do right by this place, I do. But he is not, I cannot make myself feel something that isn't there.
<</sayNpc>>
<br />
<<=setup.displayName(_npc1)>> looks away, clearly uncomfortable with the position he has been put in.
<br /><br />
<div id="option_insist_bride">
<<linkreplace 'I have made my decision. This is not optional.'>>
<<run $('#option_respect_bride').hide()>>
<<set _npc2.happy -= 80>>
<<set _npc1.happy -= 30>>
<<you>>
The settlement does not have the luxury of waiting for feelings to align. You will both do your part.
<</you>>
<br />
<<=setup.displayName(_npc2)>>'s expression goes flat. She gives a single, stiff nod. <<=setup.displayName(_npc1)>> says nothing, though the set of his shoulders betrays his discomfort at what is being asked of her.
<br /><br />
<<include 'NPC arrange marry - ceremony'>>
<</linkreplace>>
</div>
<div id="option_respect_bride">
<<linkreplace 'I understand. You are both free to go.'>>
<<run $('#option_insist_bride').hide()>>
<<you>>
I hear you. Go.
<</you>>
<br />
The relief on <<=setup.displayName(_npc2)>>'s face is immediate and unguarded. <<=setup.displayName(_npc1)>> gives you a brief, grateful look before they both go their separate ways.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<<elseif ['streets', 'nightclub', 'strip_club'].includes(_npc2.assignedTo)>>
<<set _effectiveWorkProtestChance = _npc2.assignedTo === 'strip_club' ? Math.round(_maleProtestChance / 2) : _maleProtestChance>>
<<set _workRoll = random(1, 100)>>
<<if _workRoll <= _effectiveWorkProtestChance>>
<<=setup.displayName(_npc1)>> hesitates. His eyes move briefly to <<=setup.displayName(_npc2)>>, and there's a discomfort there that goes beyond simple nerves.
<br /><br />
<<sayNpc _npc1>>
With respect, <<=setup.npc.mcName(_npc1, false)>>... a woman in her line of work, is that really someone to build a family with?
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> stiffens, jaw tightening. She says nothing.<<if _npc1IsFather && _npc2IsPregnant>> Her hand moves to her belly, her expression anxious and troubled.<</if>>
<br /><br />
<div id="option_insist_work">
<<linkreplace 'The work she does serves this settlement. Family is no different.'>>
<<run $('#option_respect_work').hide()>>
<<set _npc1.happy -= 20>>
<<set _npc2.happy -= 50>>
<<you>>
No matter what role you hold in this settlement, family and the future are what matter most. We need both. I've made my decision.
<</you>>
<br />
<<=setup.displayName(_npc1)>> exhales slowly. <<=setup.displayName(_npc2)>> dips her head in a stiff nod, her expression flat.
<br /><br />
<<sayNpc _npc1>>
...Alright, <<=setup.npc.mcName(_npc1, false)>>. I'll try to make it work.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> lets out a slow breath, her expression apprehensive but accepting.
<br /><br />
<<sayNpc _npc2>>
I work for you, so I go where you send me, <<=setup.npc.mcName(_npc2, false)>>. I hope my husband can try not to look down on me.
<</sayNpc>>
<br /><br />
<<include 'NPC arrange marry - ceremony'>>
<</linkreplace>>
</div>
<div id="option_respect_work">
<<linkreplace 'I understand. I will find another arrangement.'>>
<<run $('#option_insist_work').hide()>>
<<you>>
Fair enough. I'll look elsewhere.
<</you>>
<br />
<<=setup.displayName(_npc1)>> gives a short nod and steps back. <<=setup.displayName(_npc2)>> watches him a moment, then looks at you with a cold calm.
<br /><br />
<<sayNpc _npc2>>
And next time you're feeling lonely, <<=_npc1.name>>, you can go fuck yourself.
<</sayNpc>>
<br />
She turns and walks away without another word. The square feels very empty.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<<=setup.displayName(_npc1)>> looks between you and <<=setup.displayName(_npc2)>>, something measured in his expression. After a moment, he gives a slow nod.
<br /><br />
<<sayNpc _npc1>>
It's not the life I imagined for a wife, <<=setup.npc.mcName(_npc1, false)>>. But we're all here to contribute what the settlement needs. If she's willing to build something more, a family, a real one, I can work with that.<<if _npc2.beauty > 90>> And she's beautiful. That doesn't hurt.<</if>><<if (_npc2.skills ?? []).includes('cook')>> I hear she can cook, too. That counts for something.<</if>>
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> lets out a slow breath, her expression somewhere between relief and determination.
<br /><br />
<<sayNpc _npc2>>
Thank you for giving me this chance, <<=setup.npc.mcName(_npc2, false)>>. No matter what I do for work, what I give this marriage will be special, just for him.
<</sayNpc>>
<br />
A faint, nervous smile crosses her lips. Despite the unusual circumstances, neither of them seems entirely opposed to the idea.
<<if _npc2IsNympho || (_npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0) || _npc2IsInfertile || _npc2.virgin || _npc2IsPregnant || _npc2KidCount > 0>>
<br /><br />
<<sayNpc _npc2>>
<<if _npc2IsNympho>>I look forward to showing you some things tonight... <</if>><<if _npc2IsInfertile>>I can't have children, which has kept me safe until now. Whatever this is, it has to be about more than that for us.<<elseif _npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0>>With you I feel ready for a family, to give you the offspring you deserve.<</if>><<if _npc2.virgin>> Despite everything, I haven't shared that part of myself with anyone before. I want that part to be special. <</if>><<if _npc2IsPregnant>> <<if _npc1IsFather>> Our future child will benefit from having a father in their life. Thank you for giving them that.<<else>>Most men wouldn't. The fact that you're willing to provide for me and my unborn child... I'm more grateful than I can say.<</if>><</if>><<if _npc2KidCount > 0>> <<if _npc1FatherToKids>><<if _sharedKidCount === 1>>I've sometimes worried about what kind of life I could give our child. You've just answered that worry.<<else>>I've worried about what kind of life I could give our children. You've just answered that worry.<</if>><<else>><<if _npc2KidCount === 1>>I've sometimes worried about what kind of life I could give my child. You've just answered that worry.<<else>>I've worried about what kind of life I could give my children. You've just answered that worry.<</if>><</if>><</if>>
<</sayNpc>>
<</if>>
<<if _sadoMaso>>
<br />
<<=setup.displayName(_npc1)>> runs his gaze over <<=setup.displayName(_npc2)>>, slow and appraising, something quietly assured in the way he takes her in.
<br /><br />
<<sayNpc _npc1>>
She knows how to follow a man's lead. That'll serve us both well.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> drops her gaze, a faint flush on her cheeks.
<br /><br />
<<sayNpc _npc2>>
Tell me what you want. That part I know how to do.
<</sayNpc>>
<<elseif _masoSado>>
<br />
<<=setup.displayName(_npc1)>> glances over at <<=setup.displayName(_npc2)>> with a small, almost sheepish smile, something playful and unguarded about the way he looks at her.
<br /><br />
<<sayNpc _npc1>>
She's used to being in charge of her situation. I don't think I mind that at all.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> meets his gaze with cool, appraising eyes.
<br /><br />
<<sayNpc _npc2>>
Don't worry. I'll be gentle.
<</sayNpc>>
<</if>>
<<if _npc1IsFather && _npc2IsPregnant>>
<br />
<<=setup.displayName(_npc2)>> rests her hand on the life in her belly, smiling and hopeful.
<br />
<</if>>
<br /><br />
<<set _weddingProceed = true>>
<</if>>
<<elseif _npc1.married && (_npc1.family.wives ?? []).length > 1>>
<<set _wifeNames = (_npc1.family.wives ?? []).map(id => (setup.getNpcById(id)?.name ?? 'someone'))>>
<<set _wifeList = _wifeNames.length > 1 ? _wifeNames.slice(0, -1).join(', ') + (_wifeNames.length > 2 ? ', and ' : ' and ') + _wifeNames[_wifeNames.length - 1] : (_wifeNames[0] ?? 'someone')>>
<<=setup.displayName(_npc1)>> doesn't hesitate. A broad grin spreads across his face as he looks <<=setup.displayName(_npc2)>> over warmly.
<br /><br />
<<sayNpc _npc1>>
Another bride? I'd be honored, <<=setup.npc.mcName(_npc1, false)>>. The more family we build, the stronger we all are. I know <<=_wifeList>> will be overjoyed to welcome her into the family.<<if _npc2.beauty > 90>> She is lovely, too. I can see why you chose her.<</if>><<if (_npc2.skills ?? []).includes('cook')>> I hear she can cook as well. Always a welcome addition.<</if>>
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> glances between you and him, still processing, but his easy confidence seems to put her slightly at ease.
<br /><br />
<<sayNpc _npc2>>
You have created a unique way of life here, <<=setup.npc.mcName(_npc2, false)>>. I will become a part of this family, and make our community stronger.
<</sayNpc>>
<br />
A faint, nervous smile crosses her lips. Despite the unusual circumstances, neither of them seems entirely opposed to the idea.
<<if _npc2IsNympho || (_npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0) || _npc2IsInfertile || _npc2.virgin || _npc2IsPregnant || _npc2KidCount > 0>>
<br /><br />
<<sayNpc _npc2>>
<<if _npc2IsNympho>>I won't pretend I'm not a little eager to try out the harem life. <</if>><<if _npc2IsInfertile>>I should be honest, I can't have children. But I am happy to contribute to this family in every other way that matters.<<elseif _npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0>>I look forward to adding my vessel to grow your family even more.<</if>><<if _npc2.virgin>> I've never been with anyone before. I hope you won't mind that I'm not as experienced as the others.<</if>><<if _npc2IsPregnant>> <<if _npc1IsFather>>Our unborn child will benefit greatly from having a family to grow within.<<else>>I'm grateful, truly. For me, and for the child I'm carrying. Having a family will make all the difference.<</if>><</if>><<if _npc2KidCount > 0>> <<if _npc1FatherToKids>><<if _sharedKidCount === 1>>You have a full house already. The fact that there's still a place in it for me and our child - I won't forget that.<<else>>You have a full house already. The fact that there's still a place in it for me and our children - I won't forget that.<</if>><<else>><<if _npc2KidCount === 1>>You have a full house already. The fact that there's still a place in it for me and my child - I won't forget that.<<else>>You have a full house already. The fact that there's still a place in it for me and my children - I won't forget that.<</if>><</if>><</if>>
<</sayNpc>>
<</if>>
<<if _sadoMaso>>
<br />
<<=setup.displayName(_npc1)>> runs his gaze over <<=setup.displayName(_npc2)>>, slow and appraising, something quietly assured in the way he takes her in.
<br /><br />
<<sayNpc _npc1>>
My household has certain... expectations. She looks like she'll be good at taking direction.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> drops her gaze, a faint flush on her cheeks.
<br /><br />
<<sayNpc _npc2>>
Just show me what's expected of me. I'm very... accommodating.
<</sayNpc>>
<<elseif _masoSado>>
<br />
<<=setup.displayName(_npc1)>> glances over at <<=setup.displayName(_npc2)>> with a small, almost sheepish smile, something playful and unguarded about the way he looks at her.
<br /><br />
<<sayNpc _npc1>>
My other wives run the house. Something tells me she's going to run me.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> meets his gaze with cool, appraising eyes.
<br /><br />
<<sayNpc _npc2>>
Don't worry. I'll make sure you enjoy it.
<</sayNpc>>
<</if>>
<<if _npc1IsFather && _npc2IsPregnant>>
<br />
<<=setup.displayName(_npc2)>> rests her hand on her belly, smiling and hopeful.
<br />
<</if>>
<br /><br />
<<set _weddingProceed = true>>
<<elseif _npc1.married && (_npc1.family.wives ?? []).length === 1>>
<<set _protestRoll = random(1, 100)>>
<<if _protestRoll <= _maleProtestChance>>
<<set _existingWife = setup.getNpcById((_npc1.family.wives ?? [])[0])>>
<<=setup.displayName(_npc1)>> straightens, visibly startled. He shifts on his feet and shakes his head slowly.
<br /><br />
<<sayNpc _npc1>>
I... I already have a wife, <<=_existingWife ? _existingWife.name : 'someone'>>. With respect, <<=setup.npc.mcName(_npc1, false)>>, what you're asking isn't right.
<</sayNpc>>
<<if _npc2IsNympho>>
<br /><br />
<<sayNpc _npc2>>
Well... for what it's worth, I'd be down for a three-way.
<</sayNpc>>
<</if>>
<<if _npc1IsFather && _npc2IsPregnant>>
<br />
<<=setup.displayName(_npc2)>> cradles her belly quietly, her expression anxious and troubled.
<</if>>
<br />
<div id="option_insist_mono">
<<linkreplace 'The settlement cannot afford monogamy.'>>
<<run $('#option_respect_mono').hide()>>
<<set _npc1.happy -= 10>>
<<set _npc2.happy -= 10>>
<<you>>
The world before this one had the luxury of sentiment. We don't. Some men will have to carry a heavier burden, build larger families, if this settlement is going to survive and grow. This is one of those times.
<</you>>
<br />
<<=setup.displayName(_npc1)>> looks away, jaw tight. The argument sits uncomfortably with him, but he knows you're not wrong about the numbers.
<br /><br />
<<sayNpc _npc1>>
...Alright, <<=setup.npc.mcName(_npc1, false)>>. If that's what's needed.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> lets out a slow breath, her expression apprehensive but accepting.
<br /><br />
<<sayNpc _npc2>>
I want to be part of this community, <<=setup.npc.mcName(_npc2, false)>>. I'll do what I must.
<</sayNpc>>
<br />
<<include 'NPC arrange marry - ceremony'>>
<</linkreplace>>
</div>
<div id="option_respect_mono">
<<linkreplace 'I respect that. I will not force this.'>>
<<run $('#option_insist_mono').hide()>>
<<you>>
You're right. Forget I said anything.
<</you>>
<br />
<<=setup.displayName(_npc1)>> gives a relieved nod. <<=setup.displayName(_npc2)>> quietly slips away, and he follows a moment later, leaving you alone in the square.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<<set _existingWife = setup.getNpcById((_npc1.family.wives ?? [])[0])>>
<<=setup.displayName(_npc1)>>'s eyes light up. He glances at <<=setup.displayName(_npc2)>> with a warm, unguarded smile.
<br /><br />
<<sayNpc _npc1>>
A second bride? I won't pretend I haven't thought about it, <<=setup.npc.mcName(_npc1, false)>>. A bigger family, more hands, more life in this place. I'd welcome that, and I'm confident <<=_existingWife ? _existingWife.name : 'she'>> will too.<<if _npc2.beauty > 90>> I won't mind having more beauty around the place, I'll admit.<</if>><<if (_npc2.skills ?? []).includes('cook')>> I hear she can cook, too. That's always welcome.<</if>>
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> blinks, caught off guard by his enthusiasm. A small, uncertain smile tugs at the corner of her mouth.
<br /><br />
<<sayNpc _npc2>>
I guess monogamy didn't survive into our world, <<=setup.npc.mcName(_npc2, false)>>. I can share, for the good of the settlement.
<</sayNpc>>
<br />
A faint, nervous smile crosses her lips. Despite the unusual circumstances, neither of them seems entirely opposed to the idea.
<<if _npc2IsNympho || (_npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0) || _npc2IsInfertile || _npc2.virgin || _npc2IsPregnant || _npc2KidCount > 0>>
<br /><br />
<<sayNpc _npc2>>
<<if _npc2IsNympho>>I won't pretend I'm not a little eager for tonight. I hear three's company... <</if>><<if _npc2IsInfertile>>I may not be able to add to your legacy, but I will be everything else for you. <<elseif _npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0>>I look forward to giving you another opportunity to grow your legacy.<</if>><<if _npc2.virgin>> I've never been with anyone before. I won't know as much as her, yet... <</if>><<if _npc2IsPregnant>> <<if _npc1IsFather>>Our unborn child is going to need a father. That is worth any compromise.<<else>>It will be worth it to have a family for my future little one. In this world, that means everything.<</if>><</if>><<if _npc2KidCount > 0>> <<if _npc1FatherToKids>><<if _sharedKidCount === 1>>I've wondered what kind of life our child would have. It's not what I expected, but I have hope.<<else>>I've wondered what kind of life our children would have. It's not what I expected, but I have hope.<</if>><<else>><<if _npc2KidCount === 1>>A second wife wasn't something you needed. But my child will grow up with a family because of it. I'm grateful for that.<<else>>A second wife wasn't something you needed. But my children will grow up with a family because of it. I'm grateful for that.<</if>><</if>><</if>>
<</sayNpc>>
<</if>>
<<if _sadoMaso>>
<br />
<<=setup.displayName(_npc1)>> runs his gaze over <<=setup.displayName(_npc2)>>, slow and appraising, something quietly assured in the way he takes her in.
<br /><br />
<<sayNpc _npc1>>
I have particular tastes. Something tells me this one knows how to be accommodating.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> drops her gaze, a faint flush on her cheeks.
<br /><br />
<<sayNpc _npc2>>
Just show me what's expected of me. I take discipline well.
<</sayNpc>>
<<elseif _masoSado>>
<br />
<<=setup.displayName(_npc1)>> glances over at <<=setup.displayName(_npc2)>> with a small, almost sheepish smile, something playful and unguarded about the way he looks at her.
<br /><br />
<<sayNpc _npc1>>
Something tells me the balance in my house is about to shift.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> meets his gaze with cool, appraising eyes.
<br /><br />
<<sayNpc _npc2>>
I think we'll all get along just fine, as long as you're a good boy.
<</sayNpc>>
<</if>>
<<if _npc1IsFather && _npc2IsPregnant>>
<br />
<<=setup.displayName(_npc2)>> rests her hand on her belly, smiling and hopeful.
<br />
<</if>>
<br /><br />
<<set _weddingProceed = true>>
<</if>>
<<elseif setup.percentageChance(_femaleProtestChance)>>
<<=setup.displayName(_npc2)>> is the first to react, drawing herself up slightly before <<=setup.displayName(_npc1)>> has the chance to speak.
<br /><br />
<<sayNpc _npc2>>
With respect, <<=setup.npc.mcName(_npc2, false)>>... I'm not something to be parceled out. I'd like some say in who I end up with.
<</sayNpc>>
<br />
<<if _npc2IsNympho>>
<<=setup.displayName(_npc1)>> looks her over with a faint, amused smile.
<br /><br />
<<sayNpc _npc1>>
I don't have a problem, <<=setup.npc.mcName(_npc1, false)>>. For what it's worth, I don't mind a woman who speaks her mind.
<</sayNpc>>
<<else>>
<<=setup.displayName(_npc1)>> looks at her, then at you, his expression measured.
<br /><br />
<<sayNpc _npc1>>
I'd be lying if I said I didn't share her hesitation, <<=setup.npc.mcName(_npc1, false)>>. A marriage forced on both of us isn't what either of us needs.
<</sayNpc>>
<</if>>
<<if _npc1IsFather && _npc2IsPregnant>>
<br />
<<=setup.displayName(_npc2)>> cradles her belly quietly, her expression anxious and troubled. The baby was one thing, but this would change everything...
<</if>>
<br /><br />
<div id="option_insist_female">
<<linkreplace "The settlement's needs outweigh personal preferences.">>
<<run $('#option_respect_female').hide()>>
<<set _npc1.happy -= 10>>
<<set _npc2.happy -= 50>>
<<you>>
I understand your feelings. But the settlement cannot wait for hearts to align. You will both do your part.
<</you>>
<br />
<<=setup.displayName(_npc2)>>'s jaw tightens. She swallows the argument, her expression going quiet and flat. <<=setup.displayName(_npc1)>> says nothing, though he glances at her once before looking away.
<br /><br />
<<include 'NPC arrange marry - ceremony'>>
<</linkreplace>>
</div>
<div id="option_respect_female">
<<linkreplace "You're right. This should be your choice.">>
<<run $('#option_insist_female').hide()>>
<<you>>
Fair enough. I won't force this.
<</you>>
<br />
<<=setup.displayName(_npc2)>> lets out a slow breath, the tension leaving her shoulders. <<=setup.displayName(_npc1)>> gives you a quiet nod. They both go their separate ways, and the square falls silent around you.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<<else>>
<<set _singleRoll = random(1, 100)>>
<<if _singleRoll > _singleProtestChance>>
<<=setup.displayName(_npc1)>> is the first to speak, clearing his throat. He glances at <<=setup.displayName(_npc2)>>, and something in the look they share softens.
<br /><br />
<<sayNpc _npc1>>
I... yeah. Alright, <<=setup.npc.mcName(_npc1, false)>>. If you think it's what's best for us here, I'm willing.<<if _npc2.beauty > 90>> She's beautiful. I'll say that much.<</if>><<if (_npc2.skills ?? []).includes('cook')>> And I hear she's a good cook. I won't complain about that.<</if>>
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> lets out a quiet breath, then nods.
<br /><br />
<<sayNpc _npc2>>
I suppose there are worse reasons to say yes, <<=setup.npc.mcName(_npc2, false)>>.
<</sayNpc>>
<br />
A faint, nervous smile crosses her lips. Despite the unusual circumstances, neither of them seems entirely opposed to the idea.
<<if _npc2IsNympho || (_npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0) || _npc2IsInfertile || _npc2.virgin || _npc2IsPregnant || _npc2KidCount > 0>>
<br /><br />
<<sayNpc _npc2>>
<<if _npc2IsNympho>> I won't pretend I'm not a little eager for tonight, either.<</if>><<if _npc2IsInfertile>> I should be honest, though, I can't have children. Whatever you're both hoping for here, it has to be about more than that for us.<<elseif _npc2IsBreeder && !_npc2IsPregnant && _npc2KidCount === 0>> I want this. A family, children, I'm more than ready to start building something here.<</if>><<if _npc2.virgin>> I've never been with anyone before. I find myself... looking forward to him being my first.<</if>><<if _npc2IsPregnant>> <<if _npc1IsFather>>Our child to come is going to need their father. Whatever else this is, that matters.<<else>>I'm grateful he's willing to take me in, and my child too. That's not nothing, in a world like this.<</if>><</if>><<if _npc2KidCount > 0>> <<if _npc1FatherToKids>><<if _sharedKidCount === 1>>Our child will be so happy to have their father in their life.<<else>>Our children will be so happy to have their father in their lives.<</if>><<else>><<if _npc2KidCount === 1>>My child will be so happy to have a father in their life.<<else>>My children will be so happy to have a father in their lives.<</if>><</if>><</if>>
<</sayNpc>>
<</if>>
<<if _sadoMaso>>
<br />
<<=setup.displayName(_npc1)>> runs his gaze over <<=setup.displayName(_npc2)>>, slow and appraising, something quietly assured in the way he takes her in.
<br /><br />
<<sayNpc _npc1>>
I have a feeling she'll take well to a firm hand. I look forward to the arrangement.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> drops her gaze, a faint flush on her cheeks.
<br /><br />
<<sayNpc _npc2>>
I'll be whatever you need me to be.
<</sayNpc>>
<<elseif _masoSado>>
<br />
<<=setup.displayName(_npc1)>> glances over at <<=setup.displayName(_npc2)>> with a small, almost sheepish smile, something playful and unguarded about the way he looks at her.
<br /><br />
<<sayNpc _npc1>>
Something about her makes me think she's going to keep me very much in line. I find that... appealing.
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> meets his gaze with cool, appraising eyes.
<br /><br />
<<sayNpc _npc2>>
We'll get along just fine. Trust me.
<</sayNpc>>
<</if>>
<<if _npc1IsFather && _npc2IsPregnant>>
<br />
<<=setup.displayName(_npc2)>> rests her hand on her belly, smiling and hopeful.
<br />
<</if>>
<br /><br />
<<set _weddingProceed = true>>
<<else>>
<<=setup.displayName(_npc1)>> stiffens. <<=setup.displayName(_npc2)>> looks away.
<br /><br />
<<sayNpc _npc1>>
With all due respect, <<=setup.npc.mcName(_npc1, false)>>... this isn't something I can just be ordered into.
<</sayNpc>>
<br />
<<sayNpc _npc2>>
<<if _npc2IsNympho>>Well... I'm not going to pretend I object, <<=setup.npc.mcName(_npc2, false)>>. For what it's worth, I'd be down for it.<<else>>I appreciate what you're trying to do for the settlement, <<=setup.npc.mcName(_npc2, false)>>, but... a marriage has to be a choice. We can't just—<</if>>
<</sayNpc>>
<br />
She trails off, glancing uncomfortably at <<=setup.displayName(_npc1)>>. The silence between you all stretches thin.
<<if _npc1IsFather && _npc2IsPregnant>>
<br />
<<=setup.displayName(_npc2)>> cradles her belly, her expression anxious and troubled.
<</if>>
<br /><br />
<div id="option_force">
<<linkreplace 'Make it an order'>>
<<run $('#option_respect').hide()>>
<<set _npc1.happy -= 50>>
<<set _npc2.happy -= 50>>
<<you>>
In this settlement, I don't ask. I decide. You two will marry. Today.
<</you>>
<br />
Neither of them speaks. <<=setup.displayName(_npc1)>> clenches his jaw and stares at the ground. <<=setup.displayName(_npc2)>> swallows hard, her eyes going flat and distant. They comply, because they have to.
<br /><br />
<center>
<<actionImage _npc1 wedding>>
</center>
<br />
<<set _npc1.married = true>>
<<set _npc2.married = true>>
<<set _npc1.family ??= {}>>
<<set _npc1.family.wives ??= []>>
<<if !(_npc1.family.wives.includes(_npc2.id))>><<set _npc1.family.wives.push(_npc2.id)>><</if>>
<<set _npc2.family ??= {}>>
<<set _npc2.family.husband = _npc1.id>>
<<run setup.npc.addHistory(_npc1, 'married', { with: _npc2.id })>>
<<run setup.npc.addHistory(_npc2, 'married', { with: _npc1.id })>>
The ceremony that follows is short and joyless. A few settlers watch from a distance, sensing the tension and keeping to themselves. There are no songs, no laughter. <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> exchange their vows in silence, their voices hollow. When it's done, they walk away together without a word, without a look back.
<br /><br />
The settlement has a new family. Whether it will ever feel like one is another matter.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_respect">
<<linkreplace 'Respect their decision'>>
<<run $('#option_force').hide()>>
<<you>>
Alright. I won't force this. It was just a thought.
<</you>>
<br />
The relief on their faces is immediate, though <<=setup.displayName(_npc2)>> dips her head in quiet gratitude.
<br /><br />
<<sayNpc _npc2>>
Thank you, <<=setup.npc.mcName(_npc2, false)>>. That... means a lot.
<</sayNpc>>
<br />
They go their separate ways, and you're left alone in the square, weighing the limits of what leadership can truly demand of people.
<br /><br />
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<</if>>
<</if>>
<<if _weddingProceed>>
<<include 'NPC arrange marry - ceremony'>>
<</if>>
<</linkreplace>>
<</if>><h1 class="ptitle"><<cabinName>></h1>
<br />
<<set _npc1 = setup.getNpcById($tmpEventWedding.id1)>>
<<set _npc2 = setup.getNpcById($tmpEventWedding.id2)>>
<<if _npc1.gender !== 1>>
<<set _tmpSwap = _npc1>>
<<set _npc1 = _npc2>>
<<set _npc2 = _tmpSwap>>
<</if>>
<<set _npc1.location = 'wedding'>>
<<set _npc2.location = 'wedding'>>
As you step into the main square of the settlement, the sun dips low on the horizon, casting long shadows across the familiar faces going about their business.
You nod to a few settlers you recognize as they haggle over scavenged goods, patch up old tools, and swap hushed rumors of distant lands.
Just as you reach the old, weather-worn notice board, <<=setup.displayName(_npc1)>> approaches you.
<br /><br />
<center>
<<actionImage _npc1 approach>>
</center>
<br />
<<sayNpc _npc1>>
Hey! I was hoping to get a moment with you.
<</sayNpc>>
<br />
You nod, and <<=setup.displayName(_npc1)>> looks down for a second, gathering his thoughts. When he looks back up, there’s a raw vulnerability in his eyes.
<br /><br />
<<sayNpc _npc1>>
It's about <<=setup.displayName(_npc2)>>. She and I... we’ve been close for a while now. We just... get each other, you know? We've been through the worst of it together, thick and thin.
<</sayNpc>>
<br />
He shifts from one foot to the other, his hands fidgeting as he continues.
<br /><br />
<<sayNpc _npc1>>
I think it’s time. I want to take it to the next step. I want to marry her.
<</sayNpc>>
<br />
The statement hangs in the air between you, his voice barely above a whisper, yet full of conviction.
He takes a deep breath, locking eyes with you, a mix of nerves and excitement flickering in his expression.
<br /><br />
<<sayNpc _npc1>>
I know you’re the one who keeps this place together. You’re the one people trust. So… can I have your blessing to marry <<=setup.displayName(_npc2)>>?
<</sayNpc>>
<br />
The square feels quieter as you consider his request, the weight of his words blending with the muted sounds of settlement life around you.
<br /><br />
<div id="option_accept">
<<linkreplace 'Accept his proposal'>>
<<set _npc1.married = true>>
<<set _npc2.married = true>>
<<set _npc1.family ??= {}>>
<<set _npc1.family.wives ??= []>>
<<if !(_npc1.family.wives.includes(_npc2.id))>><<set _npc1.family.wives.push(_npc2.id)>><</if>>
<<set _npc2.family ??= {}>>
<<set _npc2.family.husband = _npc1.id>>
<<run setup.npc.addHistory(_npc1, 'married', { with: _npc2.id })>>
<<run setup.npc.addHistory(_npc2, 'married', { with: _npc1.id })>>
<<run $('#option_decline').hide()>>
<<you>>
You have my blessing, <<=setup.displayName(_npc1)>>. Go marry her.
<</you>>
<br />
The tension in his face melts away, replaced with sheer joy. His eyes widen, and he laughs in disbelief, stepping back for a moment as if to process the reality. Then, unable to contain himself, he clasps your hand, shaking it vigorously.
<br /><br />
In a blur of motion, word spreads across the settlement like wildfire, and within minutes, a small crowd gathers around a makeshift altar set up under an old tattered awning in the square. A few of the townsfolk bring scavenged candles and an assortment of wildflowers, doing their best to give the moment a touch of beauty amidst the rugged surroundings. Someone hands you a glass bottle of homemade spirits, and you lift it, taking a sip as you watch <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> stand side by side, faces glowing with a rare light in these dark times.
<br /><br />
<center>
<<actionImage _npc1 wedding>>
</center>
The ceremony is simple but heartfelt.
A few people murmur blessings for the new couple, and someone strums a melody on an old guitar.
As <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> exchange their vows, the crowd lets out quiet cheers and claps, honoring a rare moment of love and unity in a world that has otherwise forgotten such warmth. They share a kiss, and the gathered settlers break out into applause, some whooping and whistling.
<br /><br />
After the ceremony, the square transforms into an impromptu celebration. People pass around bits of bread and a precious few sips of wine, some sharing old songs and tales of happier days. A couple of settlers start a lively dance, pulling others in and laughing together under the dim glow of lanterns. It’s a night of rare joy, a momentary escape from the constant grind of survival.
<br /><br />
As the crowd starts to thin, you catch sight of <<=setup.displayName(_npc1)>> and <<=setup.displayName(_npc2)>> slipping away, hand in hand, disappearing behind one of the doors leading to a small room they had decorated with whatever scraps they could find.
<br /><br />
<<linkreplace 'Knock on the door'>>
<center>
<<actionImage _npc1 room>>
</center>
There’s a brief shuffling sound from inside, and then <<=setup.displayName(_npc1)>> opens the door, looking a little flustered.
His shirt is already halfway unbuttoned, and traces of <<=setup.displayName(_npc2)>>'s lipstick are smeared across the fabric.
He glances at you, a bit embarrassed but beamin.
<br /><br />
<<sayNpc _npc1>>
Can I, uh… help you with something?
<</sayNpc>>
<br />
<<linkreplace 'Enter room'>>
<center>
<<actionImage _npc2 room_waiting>>
</center>
<<sayNpc _npc2>>
Is… everything alright?
<</sayNpc>>
<br />
<<linkreplace 'In this settlement, the leader goes first'>>
<<sayNpc _npc1>>
Please… this night… it’s supposed to be ours. You gave us your blessing.
<</sayNpc>>
<br />
You pause, letting the weight of your words settle uncomfortably. Finally, a small smile breaks the tension, and you shake your head, softening your gaze.
<br /><br />
<<set _linkName = 'Turn ' + _npc2.name + ' around'>>
<<linkreplace _linkName>>
<<video 'cabin/npc_wedding1'>>
<br /><br />
You slowly turn <<=setup.displayName(_npc2)>> around and grab her ass squeezing it while Don sits down on the chair next to you two.
<br />
<<sayNpc _npc1>>
Please don't!
<</sayNpc>>
<<set _npc1.happy -= 20>>
<<set _npc2.happy -= 10>>
<br />
<<linkreplace 'Lift her dress'>>
<<video 'cabin/npc_wedding2'>>
<br /><br />
You slowly pull up her dress, revealing her white panties. Soon enough you grab them and pull them down revealing her clean shaved pussy.
<br /><br />
<<sayNpc _npc1>>
Please!
<</sayNpc>>
<br />
<<sayNpc _npc2>>
It will be okay! It's fine.
<</sayNpc>>
<br />
<<linkreplace 'Fuck her'>>
<<set _npc1.happy -= 20>>
<<set _npc2.happy -= 10>>
<<video 'cabin/npc_wedding3'>>
<br /><br />
As she bends over the couch, you pull out your hard dick and place it on her ass. As you rub it between her asscheeks, she grabs <<=setup.displayName(_npc1)>>'s hand and holds it.
<br /><br />
You slowly place your dick against her pussy and grab her ass ready to adjust her position.
<br /><br />
<<video 'cabin/npc_wedding4'>>
<br /><br />
You slowly slide your dick into <<=setup.displayName(_npc2)>>'s pussy. She clearly holds and tries to resist not to let out a moan as he clinches into her new husband's hand.
<br /><br />
<<sayNpc _npc1>>
I can't...
<</sayNpc>>
<br />
<<linkreplace 'Fuck her harder'>>
<<video 'cabin/npc_wedding5'>>
<br /><br />
With each thrust you increase the speed and you manage to force her to let out moan as she looks over shoulder right into your eyes.
<br /><br />
As you kept pounding her pussy her moans started to get louder and louder when in the end she let out loaded moan that filled all the quiet room.
<br /><br />
<<video 'cabin/npc_wedding6'>>
<br /><br />
<<=setup.displayName(_npc2)>> grabbed <<=setup.displayName(_npc1)>>'s shoulder and hold him down firmly as by the look she enjoyed moment more and more.
<br />
Meanwhile <<=setup.displayName(_npc1)>> couldn't look at you two at all.
<br /><br />
<<=setup.displayName(_npc2)>> locked her eyes with yours once again.
<br /><br />
<<video 'cabin/npc_wedding7'>>
<br /><br />
Her pussy was so wet that your dick almost slipped out as you slowed down a bit. In that moment you overhear <<=setup.displayName(_npc1)>> whisper to himself something.
<br /><br />
<<sayNpc _npc1>>
Bastard...
<</sayNpc>>
<br />
<<linkreplace 'Cum inside her'>>
<<set _npc1.happy -= 40>>
<center>
<<actionImage _npc2 room_cum_pussy>>
</center>
<br />
With last final thrust you shove your dick deep into her and cum..
<br />
You will fully will up her pussy and some of your sperm drips out on the ground right next to <<=setup.displayName(_npc1)>>'s shoe.
<br /><br />
<<sayNpc _npc1>>
What was that?! Whas it necessary?
<</sayNpc>>
<br />
<<=setup.displayName(_npc2)>> meanwhile is already off you laying in the bed as she tries to push out as much cum out of her as she can while you slowly look at the doors.
<br /><br />
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<<link 'Leave'>>
<<unset $tmpEventWedding>>
<<goto 'Wood cabin'>>
<</link>>
<</linkreplace>>
</div>
<div id="option_decline">
<<linkreplace 'Deny his request'>>
<<set _npc1.happy -= 90>>
<<run $('#option_accept').hide()>>
You look at <<=setup.displayName(_npc1)>>, his hopeful expression slowly fading as he senses the weight of your hesitation.
For a moment, the sounds of the bustling square fade into the background, and you feel the responsibility settling heavily between you.
<br /><br />
<<=setup.displayName(_npc1)>> swallows hard, looking away for a moment before nodding slowly.
<br /><br />
<<sayNpc _npc1>>
I get it.. I… I get it. It’s just—
<</sayNpc>>
<br />
He stops himself, forcing a smile that doesn’t reach his eyes.
<br /><br />
<<sayNpc _npc1>>
Thanks for being honest. I'll… I'll talk to <<=setup.displayName(_npc2)>>. We'll figure it out.
<</sayNpc>>
<br />
Without another word, <<=setup.displayName(_npc1)>> turns and walks away, his steps heavy, shoulders hunched slightly as he disappears into the heart of the settlement.
You watch him go, feeling the weight of the decision settle into you.
<br /><br />
<<link 'Leave'>>
<<goto 'Wood cabin'>>
<</link>>
<<unset $tmpEventWedding>>
<</linkreplace>>
</div><<if [1,3].includes($tmpGirl.gender)>>
<<set _wardrobe = {
mask: {
list: setup.npcMaleClothes.mask
},
top: {
list: setup.npcMaleClothes.top,
path: 'male/top'
},
panties: {
list: setup.npcMaleClothes.panties,
path: 'male/panties'
},
bot: {
list: setup.npcMaleClothes.bot,
path: 'male/bot'
}
}>>
<<else>>
<<set _wardrobe = {
mask: {
list: setup.npcClothes.mask
},
top: {
list: setup.npcClothes.top
},
bot: {
list: setup.npcClothes.bot
},
panties: {
list: setup.npcClothes.panties
},
neck: {
list: setup.npcClothes.neck
},
accessories: {
list: setup.npcClothes.accessories
},
shoes: {
list: setup.npcClothes.shoes
}
}>>
<</if>>
<<if typeof $tmpGirl.clothes === 'undefined'>>
<<set $tmpGirl.clothes = {}>>
<</if>>
<<link 'Remove all clothes'>>
<<script>>
Dialog.setup("NPC Wardrobe", "NPC Wardrobe");
Dialog.wiki(Story.get("NPC Wardrobe").processText());
Dialog.open();
<</script>>
<<for _category, _cloth range $tmpGirl.clothes>>
<<run delete $tmpGirl.clothes[_category]>>
<</for>>
<<goto `passage()`>>
<</link>>
<<for _wardrobeCategory, _wardrobeCategoryItems range _wardrobe>>
<<set _categoryPath = _wardrobeCategoryItems.path ?? _wardrobeCategory>>
<<capture _wardrobeCategory, _categoryPath>>
<fieldset>
<legend>
<<=_wardrobeCategory>>
</legend>
<div class="npc-wardrobe-items">
<<if typeof $tmpGirl.clothes[_wardrobeCategory] !== 'undefined'>>
<div class="npc-wardrobe-item remove">
<<link '<div>[img[setup.ImagePath+"game/doll/none.png"]]</div>'>>
<<run delete $tmpGirl.clothes[_wardrobeCategory]>>
<<script>>
Dialog.setup("NPC Wardrobe", "NPC Wardrobe");
Dialog.wiki(Story.get("NPC Wardrobe").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</link>>
</div>
<</if>>
<<for _wardrobeItem range _wardrobeCategoryItems.list>>
<<capture _wardrobeItem>>
<div class="npc-wardrobe-item">
<<link '<div>[img[setup.ImagePath+"game/doll/"+_categoryPath+"/"+_wardrobeItem+".png"]]</div>'>>
<<set $tmpGirl.clothes[_wardrobeCategory] = _wardrobeItem>>
<<script>>
Dialog.setup("NPC Wardrobe", "NPC Wardrobe");
Dialog.wiki(Story.get("NPC Wardrobe").processText());
Dialog.open();
<</script>>
<<goto `passage()`>>
<</link>>
</div>
<</capture>>
<</for>>
</div>
</fieldset>
<</capture>>
<</for>><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
preserveAspectRatio="xMidYMid meet" width="97" height="153" viewBox="0 0 672 1024">
<path id="male_body" fill="#6abe15" opacity="1.000000" stroke="none"
d="
M343.531738,1.000000
C354.569977,3.972092 364.141876,8.649140 372.137421,16.433784
C381.997192,26.033524 386.597290,37.832729 387.232849,51.290417
C387.568665,58.401257 387.292267,65.541016 387.292267,73.083672
C393.881927,72.040230 395.632843,75.789085 395.829926,80.898430
C396.157715,89.396423 396.388123,97.945374 394.844177,106.320206
C393.772308,112.134476 392.725708,118.578819 384.278778,118.379646
C382.361572,118.334435 382.203064,120.335854 382.232666,121.834999
C382.372711,128.925568 380.585449,135.615814 378.747345,142.411087
C375.971222,152.674149 379.780853,158.661026 389.688477,162.147797
C397.251923,164.809570 404.232819,168.797791 410.960266,173.127457
C414.541473,175.432251 418.124878,176.718185 422.482117,177.123306
C444.857727,179.203735 461.100739,195.495392 465.238129,219.457764
C465.407898,220.441193 465.762299,221.453995 465.660461,222.413818
C464.323273,235.014343 471.282501,244.975494 476.176636,255.578186
C483.184021,270.759033 483.901917,287.005554 485.196320,303.325134
C486.600281,321.026123 488.892578,338.671844 492.799866,356.093323
C495.587433,368.522156 494.447357,381.287201 493.928253,393.930908
C492.793915,421.559265 485.296753,448.080170 479.866577,474.964539
C478.387024,482.289825 476.800201,489.640625 477.233459,497.214874
C477.299713,498.373169 477.457733,499.664551 477.054077,500.690002
C472.912781,511.210632 475.910126,521.700012 477.019257,532.208069
C477.920624,540.747375 475.554474,549.002441 474.827576,557.352539
C473.666260,570.692383 464.713837,577.304565 455.882050,584.454895
C452.942047,586.835144 449.369354,588.398193 446.973022,591.546509
C443.750793,595.779968 438.385925,595.680969 433.983154,597.000061
C430.658997,597.996033 429.560699,593.947388 429.793854,591.086731
C430.238403,585.633606 431.066345,580.199097 431.992096,574.800903
C433.214417,567.673279 432.671326,560.521240 432.559906,553.301086
C431.659424,559.803406 430.008942,565.946960 425.279388,570.820374
C423.978088,572.161255 424.266174,573.956787 424.536743,575.587891
C426.257660,585.962646 426.307495,596.474792 427.106934,606.921997
C428.455109,624.540283 428.652802,642.224365 428.204620,659.860962
C427.669983,680.900635 433.508392,700.671997 438.731903,720.609070
C439.705872,724.326538 442.768402,727.074951 444.878937,730.263855
C454.316864,744.523621 462.491241,759.486755 465.748505,776.405090
C469.284821,794.772888 469.596924,813.366577 468.657562,832.112122
C467.740509,850.412170 465.874237,868.634033 465.036835,886.935730
C464.555786,897.449829 463.961365,907.875427 466.104858,918.259216
C466.273132,919.074280 466.284485,919.982361 466.668182,920.683167
C471.247131,929.045959 472.813965,937.567261 469.539124,946.936279
C468.309937,950.452698 470.711853,954.057617 472.320007,957.334351
C474.347992,961.466492 475.747406,965.629639 474.764679,970.317139
C474.217804,972.925720 475.442413,975.193542 476.429321,977.487183
C478.073883,981.309143 479.578583,985.196899 481.365631,988.950562
C484.225555,994.957642 482.445709,1000.818115 479.330841,1005.553284
C476.770447,1009.445435 470.981842,1009.522339 466.657837,1011.372314
C461.155884,1013.726196 455.111206,1014.065430 449.564606,1014.351501
C443.822357,1014.647583 437.858185,1015.054260 432.058563,1014.613525
C427.897064,1014.297363 425.932465,1010.559143 426.907410,1005.891968
C427.538879,1002.869080 427.586426,1000.023376 427.003052,997.025940
C426.382294,993.836609 426.664001,990.411377 428.387390,987.797241
C433.852051,979.507874 432.905121,970.302246 432.829285,961.195923
C432.802795,958.016174 432.698578,954.847595 433.660828,951.785645
C434.455017,949.258301 434.168854,946.888428 433.124237,944.511841
C430.138611,937.719360 429.940887,930.864868 431.531342,923.561707
C434.927490,907.966919 433.849060,892.324768 429.268188,877.161377
C423.892578,859.367126 419.876617,841.142761 410.738800,824.531006
C404.156342,812.564636 403.223755,798.752869 401.758118,785.352966
C400.836182,776.924011 400.452148,768.433899 399.934296,759.964600
C399.792297,757.642456 398.782318,755.869446 397.357819,754.169861
C388.869476,744.042358 382.648407,732.810303 380.370148,719.606567
C380.098969,718.034790 379.341797,716.356018 378.322540,715.133179
C366.026031,700.380737 361.272247,682.602600 357.751862,664.318604
C355.387085,652.036255 354.111115,639.634277 353.814484,627.133118
C353.745453,624.224731 352.643188,621.608276 351.676056,618.959900
C347.734772,608.166931 343.747925,597.390625 339.757812,586.615601
C339.265533,585.286316 339.189209,583.621033 337.010559,583.079956
C334.704346,590.916260 334.043427,599.023132 332.627930,606.960510
C330.058441,621.368713 326.812134,635.647949 325.007812,650.208618
C323.407501,663.122925 322.764587,676.071777 322.374664,689.041138
C322.093994,698.376709 321.909088,707.679077 319.513092,716.789856
C318.777954,719.585205 319.176483,722.342346 320.101440,725.129089
C326.727997,745.093628 332.080139,765.309631 332.579529,786.545776
C332.764984,794.432922 333.007324,802.422058 329.681213,809.628052
C325.040161,819.682922 323.223175,830.212708 322.494446,841.051697
C321.679565,853.171326 320.872559,865.295166 320.344513,877.429443
C319.475311,897.403931 323.044830,916.835449 327.580627,936.189270
C329.857910,945.906311 325.269958,952.192139 315.449524,954.454346
C309.021271,955.935120 302.489685,955.405579 296.023499,955.172180
C285.729828,954.800598 277.022491,957.821411 270.171997,965.690186
C266.198822,970.253906 260.817261,971.318542 255.201050,971.171936
C249.927719,971.034363 244.989639,971.815125 240.183609,974.061584
C232.272583,977.759277 225.606339,974.031189 219.417511,969.724426
C216.864716,967.948059 217.118607,964.701721 218.750519,961.981567
C223.554031,953.974854 229.691147,947.904114 239.575546,946.570557
C246.227509,945.673096 251.683167,942.383118 256.134460,937.178345
C262.953278,929.205200 269.866699,921.291382 278.359161,914.960327
C281.219543,912.828003 282.020386,909.540894 282.704437,906.225525
C286.345337,888.579407 284.357544,871.112610 280.969910,853.716125
C276.743378,832.011658 270.376587,810.737488 268.237518,788.608765
C266.601257,771.681580 265.373749,754.779236 267.550812,737.814819
C267.918152,734.952148 267.734894,732.167542 266.500549,729.505249
C259.286835,713.946350 256.610199,697.818420 260.444336,680.884888
C260.933228,678.725647 259.942566,676.939819 258.970428,675.221497
C247.039413,654.132812 243.088715,630.907349 240.680023,607.261047
C240.393356,604.446777 240.047211,601.638489 239.709854,598.829590
C239.493546,597.028564 239.586823,594.827637 237.161362,594.587463
C235.271469,594.400208 232.976013,592.968445 231.620087,595.994202
C230.577560,598.320618 228.726395,597.628357 227.023865,596.491638
C220.346207,592.033325 214.753204,586.259583 208.535538,581.242737
C207.200348,580.165405 206.834106,578.423767 206.314850,576.835510
C204.144043,570.195801 202.530075,563.365295 199.360825,557.065552
C198.789124,555.929138 198.425781,554.446350 198.599442,553.212646
C201.094284,535.487305 198.723434,517.633240 199.921555,499.927734
C201.481750,476.871399 204.517044,453.918762 206.475250,430.883881
C207.532425,418.447876 208.528976,406.039246 210.509186,393.698029
C212.485916,381.378479 215.913177,369.493042 222.526779,359.003479
C227.866516,350.534332 228.172989,341.437927 228.565033,332.188324
C229.292587,315.022644 231.581406,298.063477 234.968079,281.252106
C235.596863,278.130798 235.201416,275.348694 234.432205,272.447937
C230.793747,258.726990 230.479187,244.907135 232.616135,230.885910
C235.475220,212.126465 246.119339,200.665176 264.231171,195.761124
C276.706543,192.383224 285.701660,183.868134 293.600983,174.441315
C298.607483,168.466751 296.890289,160.485275 296.603485,153.166870
C296.196930,142.792130 291.213043,133.235321 291.317719,122.762627
C291.342834,120.248917 289.631775,118.985008 287.090576,118.769325
C283.111176,118.431557 280.955933,115.862312 279.497986,112.411926
C275.041870,101.865753 274.474518,90.765358 274.884491,79.559662
C275.049835,75.040390 278.341034,73.967949 282.170044,74.107628
C283.267365,71.627022 282.522614,69.361702 282.290955,67.067017
C279.342163,37.851593 288.962067,16.432228 316.883484,3.991844
C319.296417,2.916753 321.891754,2.251158 324.701172,1.197673
C331.021149,1.000000 337.042297,1.000000 343.531738,1.000000
M445.706207,389.548676
C446.286652,382.591248 446.860077,375.633240 447.450989,368.676727
C447.689911,365.863800 448.281860,362.987885 446.391235,360.482361
C438.450623,349.958893 433.641296,337.948883 429.688446,325.521912
C429.194336,323.968414 428.861542,321.974670 426.883118,321.797394
C424.823853,321.612854 424.294067,323.638092 423.621857,325.086243
C420.109802,332.652130 416.310852,340.097656 411.272156,346.734680
C401.267303,359.913269 399.276947,374.914215 400.555817,390.745056
C400.964722,395.806885 400.675781,400.808807 398.670044,405.429260
C396.893829,409.520996 397.564087,412.912384 399.405609,416.783264
C410.151184,439.370728 413.943024,462.942627 408.676483,487.653778
C408.174988,490.006744 408.439087,492.198029 409.083923,494.511810
C413.055450,508.762390 417.278595,522.955811 419.440735,537.646545
C419.651337,539.077393 419.606537,540.858948 422.548309,542.478149
C420.392181,531.994263 426.070679,524.795654 429.890839,516.942322
C431.945892,512.717712 434.338928,508.761108 437.683228,505.422424
C439.873383,503.235870 440.922150,500.461212 441.813507,497.561127
C445.254089,486.367188 446.771698,474.844666 447.742706,463.233734
C448.560822,453.451202 449.247162,443.671448 448.441315,433.831268
C447.260956,419.417786 445.196808,405.055664 445.706207,389.548676
M238.604584,540.124756
C239.178406,503.046814 247.687424,467.112000 254.799652,429.663696
C252.690903,434.336273 251.224884,437.851715 249.545288,441.261932
C240.278976,460.076324 230.848495,478.805328 224.474884,498.892242
C222.906281,503.835907 222.854950,508.034637 225.991364,512.510071
C230.556168,519.023743 232.006821,526.609131 230.918884,534.419067
C229.960251,541.300659 230.246338,547.950439 231.899887,554.689453
C232.954941,558.989380 235.205048,563.503845 233.399277,567.860352
C231.380203,572.731445 233.563705,574.757507 237.797577,576.948792
C238.513916,564.620239 237.316406,552.803467 238.604584,540.124756
z"/>
</svg><svg
preserveAspectRatio="xMidYMid"
width="97"
height="153"
viewBox="0 0 272 612"
version="1.1"
id="svg3"
sodipodi:docname="DOLL.svg"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs3"><filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter72"
x="-0.0096000598"
y="-0.0042378272"
width="1.0192001"
height="1.0084757"><feGaussianBlur
inkscape:collect="always"
stdDeviation="1.0718677"
id="feGaussianBlur72" /></filter></defs><sodipodi:namedview
id="namedview3"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="2.0000001"
inkscape:cx="-91.499998"
inkscape:cy="184.75"
inkscape:window-width="2560"
inkscape:window-height="1361"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" /><path
style="fill:#6abe15;fill-opacity:1;stroke:#6abe15;stroke-width:0;stroke-linejoin:bevel;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter72)"
d="m 235.113,608.98482 c -11.91356,-1.52813 -12.89182,-2.53867 -15.69307,-16.21107 -1.14013,-5.56477 -2.82088,-11.76624 -3.73498,-13.78104 -1.85581,-4.09043 -6.10482,-7.68905 -9.92487,-8.40569 -1.87219,-0.35123 -2.39812,-0.84548 -2.74495,-2.57965 -1.03202,-5.16006 -0.45783,-8.78207 2.34225,-14.77521 1.52422,-3.26233 3.17668,-7.90961 3.67213,-10.32728 1.49289,-7.28481 0.98646,-8.38406 -14.31634,-31.07494 -2.58003,-3.82564 -5.68625,-7.68398 -6.90272,-8.57409 -2.61896,-1.91633 -4.88723,-5.30829 -9.3206,-13.93796 -1.79816,-3.50018 -4.54563,-8.75045 -6.1055,-11.66726 -3.84128,-7.18289 -4.34916,-9.06457 -4.77135,-17.67767 -0.57644,-11.75974 -2.57582,-32.94585 -3.57094,-37.8388 -0.25376,-1.24779 -1.49086,-2.87338 -8.30671,-10.9153 -1.52164,-1.79537 -7.59648,-13.5677 -7.59648,-14.72111 0,-0.36032 -0.6364,-1.38889 -1.41421,-2.28572 -0.77782,-0.89683 -1.41422,-2.07724 -1.41422,-2.62312 0,-0.54589 -1.24246,-3.44053 -2.76102,-6.43255 -1.51857,-2.99201 -3.29688,-7.34921 -3.95182,-9.68266 -0.65493,-2.33345 -2.10545,-5.99273 -3.22339,-8.13173 -1.11793,-2.139 -2.64752,-6.11647 -3.39907,-8.83883 -1.54422,-5.59366 -1.83024,-6.44914 -5.43741,-16.26346 -1.42941,-3.88909 -3.86613,-12.16224 -5.41494,-18.38478 -1.54881,-6.22254 -3.4628,-13.90947 -4.25329,-17.08208 -1.25684,-5.04424 -1.6549,-5.80998 -3.1709,-6.09978 -2.40099,-0.45898 -2.59862,0.51474 -1.72668,8.50736 0.41379,3.79298 0.77604,16.40988 0.80501,28.03755 0.029,11.62767 0.22621,21.42202 0.43833,21.76523 0.21211,0.34321 0.0508,4.03488 -0.35838,8.20371 -0.40922,4.16884 -0.91595,10.71998 -1.12606,14.55812 -0.21011,3.83812 -0.54266,7.23834 -0.73901,7.55603 -0.19634,0.31769 -0.65338,2.74586 -1.01563,5.39595 -1.22114,8.93318 -2.29263,14.71065 -2.96312,15.97718 -0.36669,0.69264 -0.83688,3.71552 -1.04488,6.71751 -0.345,4.97936 -0.18368,5.9234 1.83895,10.76147 3.17978,7.60594 5.73284,12.76571 7.52235,15.2028 3.56299,4.85237 5.92208,12.58732 5.93066,19.44544 0.004,2.91681 0.36027,9.43987 0.79251,14.49569 l 0.78587,9.19238 -2.25012,6.01041 c -1.23757,3.30573 -2.50612,7.2832 -2.81902,8.83884 -0.3129,1.55563 -1.40362,6.45092 -2.42382,10.8784 -2.23773,9.71127 -2.35547,15.02295 -0.44071,19.88074 0.77782,1.97334 1.41422,4.19669 1.41422,4.94079 0,0.74409 0.40083,1.60736 0.89074,1.91837 1.74024,1.10472 4.52755,6.28398 5.63193,10.46496 2.16719,8.20459 2.21076,7.69079 -0.99628,11.74801 -2.10168,2.65882 -3.33294,5.17814 -4.26325,8.72319 -1.14988,4.38174 -4.7941,12.50813 -9.05291,20.18744 -0.75489,1.36118 -1.85804,4.27892 -2.45145,6.48387 -1.7457,6.48651 -6.886813,9.65906 -15.797914,9.74879 -2.448145,0.0247 -4.026061,-0.59534 -7.910439,-3.10813 -2.668748,-1.7264 -5.318582,-3.87424 -5.888517,-4.77297 -0.569935,-0.89873 -1.408259,-3.90571 -1.86295,-6.6822 -0.681262,-4.16001 -0.645285,-5.65907 0.204509,-8.52062 1.213402,-4.08598 5.758388,-13.3348 6.899432,-14.04 0.436398,-0.26971 2.203733,-2.60032 3.927412,-5.17913 1.723672,-2.57882 4.263925,-6.19438 5.645003,-8.03458 1.381079,-1.84021 3.630251,-6.45408 4.998149,-10.25305 4.242295,-11.78182 3.445951,-19.95596 -3.738452,-38.37348 -2.503179,-6.41699 -4.544045,-12.21764 -4.535263,-12.89033 0.0088,-0.6727 -0.439615,-3.69558 -0.99644,-6.71752 -0.556833,-3.02194 -1.390632,-8.35822 -1.852896,-11.8584 -0.462264,-3.50018 -1.266442,-8.11405 -1.787071,-10.25305 -0.520628,-2.13899 -1.170389,-6.58518 -1.443905,-9.88041 -0.395223,-4.7615 -0.959855,-6.86613 -2.750688,-10.25305 -1.239353,-2.34395 -2.634588,-5.42567 -3.100514,-6.84827 -0.841592,-2.56961 -3.02494,-15.19172 -4.383992,-25.34417 -1.874258,-14.00123 -5.380958,-33.19219 -6.258248,-34.24927 -0.40289,-0.48545 -0.562872,-1.05229 -0.355518,-1.25964 0.207355,-0.20736 -0.08681,-1.60997 -0.65369,-3.11692 -0.566885,-1.50695 -1.511853,-4.9673 -2.099929,-7.68966 -0.588076,-2.72236 -1.866326,-8.44993 -2.840555,-12.72792 -0.974228,-4.278 -2.137447,-10.32376 -2.584929,-13.43503 -0.447483,-3.11127 -1.263738,-7.88424 -1.8139,-10.6066 -0.610097,-3.01894 -1.056494,-10.19053 -1.144364,-18.38478 -0.200268,-18.676 1.519482,-33.83982 4.39894,-38.78745 0.712124,-1.22361 1.975818,-4.29303 2.808209,-6.82094 0.832391,-2.5279 3.032628,-7.61907 4.889416,-11.31371 1.984141,-3.94804 4.32396,-10.21579 5.675357,-15.20279 1.325182,-4.89025 3.291596,-10.18132 4.641279,-12.48841 1.288045,-2.20171 2.55284,-4.66775 2.810665,-5.48007 0.257818,-0.81233 0.74686,-1.47696 1.08676,-1.47696 0.339892,0 1.670794,-1.97719 2.957551,-4.39376 1.286758,-2.41657 4.24875,-6.37562 6.582203,-8.7979 2.333452,-2.42227 4.879037,-5.43231 5.656854,-6.68898 0.777818,-1.25665 1.817279,-2.94561 2.30992,-3.75324 0.492641,-0.80762 1.540559,-2.9003 2.328715,-4.65039 0.78816,-1.75009 1.87467,-3.97748 2.41448,-4.94975 0.53981,-0.97227 1.64496,-4.47245 2.45589,-7.77817 0.81093,-3.30573 2.10558,-7.96137 2.877,-10.34587 0.77141,-2.38451 1.40258,-5.72035 1.40258,-7.41298 0,-2.03239 0.75612,-4.59806 2.22649,-7.55494 2.06299,-4.14862 2.14139,-4.56251 1.06757,-5.63632 -1.07381,-1.07381 -1.23676,-1.05743 -2.21915,0.22313 -2.31297,3.01498 -4.61045,8.833 -4.61045,11.67526 0,1.62589 -0.61863,4.90713 -1.37474,7.29163 -0.75611,2.38451 -2.06781,7.19925 -2.9149,10.69943 -0.84709,3.50018 -2.068724,7.15945 -2.714744,8.13173 -0.646013,0.97227 -1.800344,3.19965 -2.565172,4.94974 -1.954655,4.47267 -5.068477,8.90635 -9.435569,13.43503 -2.062673,2.139 -4.861005,5.87499 -6.218516,8.30221 -1.357504,2.42722 -2.751529,4.58824 -3.097835,4.80226 -0.346298,0.21403 -1.276115,1.7283 -2.066258,3.36505 -0.790149,1.63676 -2.057977,3.9359 -2.817403,5.10922 -0.759426,1.17331 -2.507171,6.10538 -3.883873,10.96015 -2.45298,8.65013 -4.908192,14.84923 -7.836837,19.78701 -0.807328,1.36118 -1.879243,3.90677 -2.382033,5.65686 -1.532625,5.3347 -3.695306,9.8328 -4.918347,10.22952 -1.656491,0.53733 -5.393901,8.35272 -6.774182,14.16566 -0.646423,2.72236 -1.424713,9.58832 -1.729532,15.25768 -0.304819,5.66937 -0.784774,10.68099 -1.066566,11.13694 -1.44484,2.3378 -6.08574,-1.24819 -6.08574,-4.70241 0,-6.46077 -5.745602,-3.94568 -10.213172,4.47074 -1.032194,1.94455 -2.577121,4.54659 -3.433171,5.78233 -1.698096,2.45125 -7.687213,5.88493 -10.264646,5.88493 h -1.616827 l 1.98053,-2.65165 c 1.089291,-1.4584 2.204979,-2.75298 2.479306,-2.87683 1.274868,-0.57557 10.461378,-14.42411 10.461378,-15.77038 0,-1.58671 -1.634539,-0.31487 -3.517918,2.73731 -5.963815,9.66488 -13.391076,18.54924 -15.2757774,18.27262 -2.5296684,-0.37128 -2.6263372,-1.69339 -0.3896067,-5.32854 1.2170072,-1.97788 2.2127391,-3.89153 2.2127391,-4.25255 0,-0.36101 0.715946,-1.15038 1.590991,-1.75416 0.875044,-0.60378 3.738827,-3.23559 6.363961,-5.84847 3.317595,-3.30211 4.77297,-5.28234 4.77297,-6.49422 0,-1.60445 -0.209882,-1.49366 -2.63122,1.38896 -3.388135,4.03359 -8.618482,9.14289 -9.359507,9.14289 -0.316812,0 -1.9194044,2.26124 -3.5613148,5.02499 -2.5059492,4.21814 -3.1378201,4.87098 -3.935216,4.06586 -0.5224579,-0.52752 -1.026335,-2.28936 -1.1197268,-3.9152 -0.1485284,-2.5857 0.1899848,-3.34639 2.7017979,-6.07139 1.5793808,-1.71342 3.3988624,-3.92002 4.0432927,-4.90354 0.6444302,-0.98353 3.072392,-3.31273 5.395472,-5.176 4.113752,-3.29953 5.068106,-4.58107 3.411476,-4.58107 -1.44807,0 -8.3954416,6.20333 -12.0519708,10.76125 l -3.5631652,4.44154 0.2880271,-5.23524 c 0.2753941,-5.00562 0.3950618,-5.31576 2.7283702,-7.07107 1.3421888,-1.0097 3.874607,-3.12104 5.6275967,-4.69187 1.752989,-1.57082 4.619145,-3.75691 6.369234,-4.85798 2.881406,-1.81283 8.051877,-6.80211 17.006367,-16.41041 3.300343,-3.54131 8.449477,-10.86867 8.449477,-12.02383 0,-0.3556 0.794681,-1.81603 1.765958,-3.24539 0.971277,-1.42936 3.30344,-5.40115 5.182586,-8.8262 1.879146,-3.42505 4.143603,-7.50016 5.032127,-9.05579 0.888525,-1.55564 2.433729,-4.26032 3.433788,-6.01041 1.000058,-1.75009 2.855032,-4.35627 4.122163,-5.79149 1.267132,-1.43524 2.75912,-4.13992 3.31553,-6.01041 0.556409,-1.8705 2.831255,-7.21313 5.055213,-11.87252 2.493298,-5.22368 4.303074,-10.10344 4.720458,-12.72792 1.165107,-7.32612 2.75947,-12.64535 4.593755,-15.32599 0.972632,-1.42142 2.240517,-4.4443 2.817509,-6.71751 0.576992,-2.27321 1.473886,-5.0877 1.993101,-6.25443 0.519207,-1.16673 1.184319,-2.91403 1.478023,-3.8829 0.293696,-0.96887 1.405509,-3.67355 2.470687,-6.01041 1.065179,-2.33685 2.62775,-6.79441 3.472389,-9.90568 0.84464,-3.11127 2.883865,-8.36154 4.531614,-11.66726 2.565858,-5.14765 3.549949,-6.38798 6.855639,-8.6407 2.12285,-1.44666 4.97342,-2.82407 6.3346,-3.06091 3.27771,-0.5703 11.48113,-3.12384 12.37437,-3.85186 0.38891,-0.31697 2.6163,-1.11439 4.94975,-1.77203 2.33345,-0.65764 6.01307,-2.39032 8.17693,-3.8504 3.13555,-2.11572 5.04356,-2.81966 9.39805,-3.46731 3.00507,-0.44695 6.5174,-0.81264 7.80518,-0.81264 2.44183,0 6.80265,-2.4671 7.36075,-4.16429 0.19581,-0.59546 0.008,-0.78788 -0.47582,-0.4886 -0.49789,0.30772 -0.79884,-0.0718 -0.79884,-1.00747 v -1.50119 l -2.65165,1.41502 c -5.62413,3.00128 -16.25983,3.67873 -23.81845,1.51717 -6.75741,-1.93246 -9.9342,-3.74549 -17.6263,-10.059581 -7.4542,-6.1188 -10.72234,-10.245341 -14.36151,-18.133619 -4.959539,-10.750324 -5.335353,-12.374735 -4.768317,-20.610444 0.281153,-4.083542 0.436738,-8.634349 0.34574,-10.112905 -0.210802,-3.42519 4.217917,-18.175826 7.684917,-25.595987 4.1273,-8.833364 9.29043,-14.6804011 15.79886,-17.8915835 4.38392,-2.1629775 4.43402,-2.1695842 20.00448,-2.6382602 l 15.60955,-0.4698526 5.7489,2.8904875 c 5.78432,2.9083014 9.85977,6.2777078 11.59318,9.5847608 0.51496,0.982447 2.14542,3.694264 3.62325,6.026258 1.47784,2.331994 3.15987,6.055555 3.73785,8.274579 0.57798,2.219024 1.70545,5.486397 2.5055,7.260828 2.13082,4.726002 3.16962,18.183195 2.07758,26.914316 -2.66981,21.345955 -7.18351,30.158358 -19.31639,37.712733 -3.4936,2.17524 -1.75639,5.51342 1.88584,3.6238 1.09347,-0.5673 2.07472,-1.03145 2.18056,-1.03145 0.10584,0 0.40393,1.35234 0.66241,3.00521 0.88012,5.62789 5.59693,8.99082 12.68165,9.0416 1.99429,0.0143 5.73588,0.4346 8.31468,0.934 3.93901,0.76282 5.34604,1.46532 8.79967,4.39343 5.03053,4.26506 7.97166,7.44694 11.13725,12.0489 5.099,7.41264 5.43017,8.55205 6.44834,22.18598 0.51829,6.94021 1.17305,12.99183 1.45501,13.44806 1.73688,2.81034 4.55201,18.18604 4.59535,25.09894 0.0284,4.53298 1.49672,13.69756 2.66376,16.6262 0.38946,0.97733 0.91017,3.83217 1.15713,6.3441 0.24696,2.51192 1.2381,6.53953 2.20253,8.95024 0.96444,2.41071 1.75352,5.02407 1.75352,5.80746 0,0.7834 0.36177,2.32012 0.80393,3.41493 1.00341,2.48451 2.13719,7.96449 4.14241,20.0218 0.48509,2.91682 1.20846,6.00635 1.6075,6.86561 0.39903,0.85928 0.77321,3.72306 0.8315,6.36397 0.2314,10.482 3.76865,25.4847 7.66583,32.51335 1.96693,3.54741 8.24624,9.82128 12.70277,12.69178 2.62514,1.69087 4.77297,3.33729 4.77297,3.6587 0,0.32141 0.9546,1.6536 2.12133,2.96042 1.16672,1.30682 2.12132,3.17421 2.12132,4.14977 0,1.75569 -0.014,1.75979 -1.37752,0.40298 -0.75764,-0.75393 -2.66682,-2.63502 -4.24264,-4.18022 -1.57582,-1.54519 -2.86513,-3.04544 -2.86513,-3.33387 0,-0.9434 -2.70799,-2.04823 -3.17363,-1.29482 -0.23706,0.38358 2.38737,3.52927 5.83207,6.9904 7.5265,7.56243 8.9224,9.5402 8.34819,11.82805 -0.57079,2.27421 -1.30774,2.14484 -3.40046,-0.59693 -2.77169,-3.63132 -11.29943,-12.26232 -13.46187,-13.62487 -2.9245,-1.84274 -3.36536,-0.48559 -0.54512,1.67813 1.34091,1.02875 3.091,2.66596 3.88909,3.63823 0.79809,0.97227 2.56477,2.88179 3.92595,4.24338 1.36118,1.3616 3.5228,3.81127 4.80359,5.44372 l 2.32871,2.9681 -1.86646,1.22295 -1.86645,1.22294 -3.64424,-3.62574 c -4.13013,-4.10916 -14.28143,-12.88956 -14.90203,-12.88956 -0.22521,0 -0.40947,0.45737 -0.40947,1.01638 0,0.559 2.14784,2.79161 4.77297,4.96134 2.62513,2.16974 6.14783,5.2921 7.82822,6.93858 l 3.05524,2.9936 -2.19893,0.22364 c -1.70462,0.17336 -3.58361,-0.68819 -8.35855,-3.83251 -3.38779,-2.23088 -7.8111,-5.59304 -9.82959,-7.47148 -2.0185,-1.87843 -4.00446,-3.41534 -4.41327,-3.41534 -0.40881,0 -1.6211,-0.91408 -2.69398,-2.0313 -2.32668,-2.42281 -7.01599,-5.03977 -9.03073,-5.03977 -2.20348,0 -4.44703,1.90086 -6.10589,5.17325 -1.86231,3.67371 -2.34968,3.99487 -6.08273,4.00832 -2.76881,0.01 -3.00521,-0.13399 -3.00521,-1.83022 0,-1.40034 1.68087,-3.47898 7.02218,-8.68387 9.15547,-8.92165 11.04127,-12.68967 11.71916,-23.41621 0.37269,-5.89708 0.2388,-8.0612 -0.65077,-10.51873 -0.616,-1.70176 -1.12,-4.51642 -1.12,-6.25481 0,-1.9642 -0.50543,-3.87121 -1.33514,-5.03762 -1.69558,-2.38361 -5.13211,-9.42224 -8.22575,-16.84782 -2.14065,-5.13814 -4.2911,-12.73575 -5.6696,-20.03089 -0.25721,-1.36118 -1.35441,-5.49775 -2.43821,-9.19238 -1.0838,-3.69464 -2.36471,-9.2631 -2.84648,-12.37437 -0.66935,-4.32273 -2.37292,-9.14971 -7.22335,-20.46698 -3.49108,-8.14558 -6.95123,-15.93671 -7.68922,-17.31365 -1.1508,-2.14713 -1.34335,-4.06521 -1.35263,-13.47414 -0.0113,-11.45303 -0.46615,-13.65092 -2.55554,-12.34888 -1.0311,0.64255 -1.22374,2.44975 -1.42406,13.35921 -0.19931,10.85445 -0.41798,12.92295 -1.56598,14.81328 -7.50231,12.35356 -9.49965,15.5946 -12.24811,19.87481 -1.74812,2.72236 -3.35233,5.42704 -3.5649,6.01041 -0.21257,0.58336 -2.48517,4.3639 -5.05024,8.40119 -2.56506,4.03731 -4.84782,8.33298 -5.0728,9.54595 -0.22497,1.21297 -0.29091,5.54648 -0.14653,9.63002 0.20488,5.7945 0.6132,8.20087 1.85972,10.96015 0.87846,1.94455 2.03502,4.50348 2.57013,5.68653 0.98648,2.18096 1.47451,3.97043 3.84882,14.11246 0.72837,3.11127 2.33551,8.36154 3.57143,11.66727 1.38644,3.70833 2.45132,8.17707 2.78024,11.66726 0.29322,3.11127 1.1959,7.24784 2.00595,9.19239 1.57078,3.77065 1.98859,6.0882 4.78044,26.5165 0.98329,7.19481 1.92454,13.87697 2.09166,14.84924 0.16713,0.97227 0.80023,6.02744 1.40689,11.23372 0.60666,5.20628 1.25601,9.7135 1.443,10.01605 0.18699,0.30256 0.64464,5.11153 1.017,10.6866 0.37237,5.57507 1.47974,14.43216 2.46082,19.68243 0.98108,5.25027 2.11889,13.20522 2.52847,17.67767 1.49061,16.27709 4.15144,29.74799 7.61207,38.53732 0.76562,1.94454 1.94592,5.28562 2.62288,7.42462 0.67696,2.139 2.65638,6.24337 4.39871,9.12082 4.92086,8.12678 5.58169,9.4183 6.74213,13.17673 0.59638,1.93151 2.3906,7.14857 3.98716,11.59345 1.59656,4.44489 2.90662,9.05876 2.91123,10.25305 0.01,2.56383 1.39451,7.71732 3.5281,13.1316 0.84291,2.139 1.69137,4.52548 1.88548,5.3033 0.19411,0.77782 0.63128,2.05061 0.9715,2.82843 1.38111,3.15753 2.06912,7.39679 1.67643,10.32945 -0.30368,2.26794 -0.032,3.99399 1.00748,6.39943 0.78283,1.81162 1.28166,3.43551 1.10853,3.60865 -0.45661,0.45661 3.06709,14.65357 3.8802,15.63331 0.96905,1.16763 5.0046,14.67416 7.48561,25.05354 0.58581,2.45072 2.05331,6.82962 3.26112,9.73091 1.86283,4.47472 2.93646,5.93314 7.07636,9.61246 4.15813,3.69553 4.88035,4.67989 4.88035,6.65168 0,2.21674 -0.18625,2.37381 -4.41941,3.72705 -5.48759,1.75424 -9.46632,2.10175 -15.37958,1.34328 z"
id="path72" /><g
id="layer1"
inkscape:label="Pussy"><path
style="fill:none;stroke:#000000;stroke-width:1.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 115.625,302.75 c 0.005,-1.04317 0.56132,-1.87264 1,-2.75 0.0186,-0.0373 -0.0347,-0.10189 0,-0.125 0.10963,-0.0731 0.26959,-0.0459 0.375,-0.125 0.14907,-0.1118 0.10093,-0.3882 0.25,-0.5 0.10541,-0.0791 0.29269,-0.0221 0.375,-0.125 0.10732,-0.13415 0.0177,-0.36585 0.125,-0.5 0.0823,-0.10289 0.26959,-0.0459 0.375,-0.125 0.0745,-0.0559 0.0591,-0.18412 0.125,-0.25 0.0659,-0.0659 0.18412,-0.0591 0.25,-0.125 0.18865,-0.18865 0.29922,-0.44931 0.5,-0.625 0.14023,-0.1227 0.32699,-0.1808 0.5,-0.25 0.0387,-0.0155 0.0955,0.0295 0.125,0 0.0659,-0.0659 0.0833,-0.16667 0.125,-0.25 0.125,-0.0417 0.26959,-0.0459 0.375,-0.125 0.14907,-0.1118 0.11824,-0.36824 0.25,-0.5 0.0659,-0.0659 0.18412,-0.0591 0.25,-0.125 0.0295,-0.0295 -0.0347,-0.10189 0,-0.125 0.10963,-0.0731 0.29594,-0.0196 0.375,-0.125 0.075,-0.1 -0.0643,-0.26781 0,-0.375 0.13727,-0.22878 0.43635,-0.31135 0.625,-0.5 0.17385,-0.17385 0.45115,-0.57615 0.625,-0.75 0.3036,-0.3036 0.18355,0.0372 0.375,-0.25 0.10336,-0.15504 0.11824,-0.36824 0.25,-0.5 0.6388,-0.6388 -0.17434,0.52412 0.5,-0.375 0.0559,-0.0745 0.0591,-0.18412 0.125,-0.25 0.0659,-0.0659 0.19832,-0.0475 0.25,-0.125 0.0462,-0.0693 -0.0373,-0.17546 0,-0.25 0.0186,-0.0373 0.0955,0.0295 0.125,0 0.0295,-0.0295 -0.0295,-0.0955 0,-0.125 0.0659,-0.0659 0.1918,-0.0523 0.25,-0.125 0.10367,-0.12959 0.53733,-1.03733 0.625,-1.125 0.22792,-0.22792 0.23141,-0.0107 0.375,-0.25 0.24788,-0.41312 0.40835,-0.78335 0.75,-1.125"
id="pussy_right"
inkscape:label="pussy_right" /><path
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 111.75,303.25 c -0.75757,-2.2727 0.2827,0.66733 -0.625,-1.375 -0.0698,-0.15699 -0.0552,-0.34301 -0.125,-0.5 -0.13643,-0.30697 -0.39377,-0.55631 -0.5,-0.875 -0.0543,-0.16298 -0.0612,-0.34049 -0.125,-0.5 -0.0418,-0.1044 -0.49098,-0.58917 -0.625,-0.75 -0.24448,-0.29338 -0.68652,-0.87422 -1,-1.125 -0.0727,-0.0582 -0.20206,-0.0451 -0.25,-0.125 -0.0884,-0.14731 -0.0177,-0.36585 -0.125,-0.5 -0.3071,-0.38388 -0.33719,0.0756 -0.5,-0.25 -0.0589,-0.11785 -0.0318,-0.28183 -0.125,-0.375 -0.0589,-0.0589 -0.17546,0.0373 -0.25,0 -0.16236,-0.0812 -0.59463,-0.71457 -0.625,-0.75 -1.22868,-1.43346 0.40729,0.5323 -0.75,-0.625 -0.0778,-0.0778 -0.5826,-0.6228 -0.625,-0.75 -0.0263,-0.0791 0.0462,-0.18066 0,-0.25 -0.15504,-0.23256 -0.51743,-0.21996 -0.75,-0.375 -0.47155,-0.31436 -0.93246,-0.64597 -1.375,-1 -0.18405,-0.14724 -0.31144,-0.35858 -0.5,-0.5 -0.31447,-0.23585 -0.67294,-0.40696 -1,-0.625 -0.1867,-0.12446 -0.46634,-0.0913 -0.625,-0.25 -0.13176,-0.13176 -0.10852,-0.37873 -0.25,-0.5 -0.17036,-0.14603 -0.42431,-0.14965 -0.625,-0.25 -0.383695,-0.19185 -0.781812,-0.36761 -1.125,-0.625 -0.120185,-0.0901 -0.134589,-0.27882 -0.25,-0.375 -0.502883,-0.41907 -1.318731,-0.52733 -1.875,-0.875 -0.353612,-0.22101 -0.644672,-0.67196 -1,-0.875 -0.03754,-0.0215 -0.839037,-0.30307 -0.875,-0.375 -0.03727,-0.0745 0.06667,-0.2 0,-0.25 -0.22117,-0.16588 -1.042788,-0.29248 -1.5,-0.625 -1.204976,-0.87635 -0.349162,-0.42458 -1,-0.75"
id="pussy_left"
inkscape:label="pussy_left" /><path
style="fill:#d65757;stroke:#000000;stroke-width:2.4352;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="m 111.08877,298.55095 c 0.1204,-0.28644 0.0711,-1.62348 0.11777,-1.78008 0.0195,-0.0659 0.0868,-0.0469 0.11779,-0.0989 0.0726,-0.12189 -0.0136,-0.82902 0,-0.98894 0.0592,-0.69567 0.0589,-1.36887 0.0589,-2.07674 0,-0.11468 0.0521,-0.80254 0,-0.89005 -0.0278,-0.0467 -0.0785,0 -0.11778,0 0.88761,-0.47709 0.12593,0.0853 0.41224,-0.39557 0.0189,-0.0318 1.3183,0 1.47227,0 0.11778,0 0.23556,0 0.35334,0 0.0589,0 0.11779,0 0.17667,0 0.0195,0 0.0589,0.033 0.0589,0 0,-0.0988 -0.11779,0 -0.17668,0 -0.0499,0 -0.20492,-0.0515 -0.23557,0 -0.0785,0.1318 0.0982,0.0989 -0.0589,0.0989 0.0243,0.4378 -0.0416,1.06474 0,1.4834 0.0144,0.1454 0.0765,0.26547 0.11777,0.39556 0.11575,0.36447 0.24933,0.71354 0.35335,1.08783 0.0342,0.12316 0.0288,0.26939 0.0589,0.39557 0.031,0.12989 0.13943,0.1716 0.17668,0.29668 0.0175,0.059 -0.0218,0.14284 0,0.1978 0.0243,0.0613 0.0952,0.0357 0.11778,0.0989 0.0416,0.1166 0.0139,0.28247 0.0589,0.39556 0.0393,0.0988 0.13137,0.10637 0.17668,0.19778 0.4601,0.92717 -0.31447,-0.17009 0.35334,0.79116 0.22842,0.32877 0.53594,0.46978 0.76559,0.79114 0.19537,0.27339 0.13402,0.31032 0.35334,0.49447 0.0366,0.0307 0.20937,0 0.23556,0 0.0195,0 -0.0451,0.0232 -0.0589,0 -0.0784,-0.1318 0.0982,-0.0988 -0.0589,-0.0988 -0.0708,0.2013 -0.29816,0.80987 -0.35334,1.08782 -0.0187,0.0939 0.0416,0.22676 0,0.29669 -0.031,0.0521 -0.0868,0.0469 -0.11779,0.0989 -0.0416,0.0699 0.0187,0.20287 0,0.29668 -0.0195,0.0984 -0.0982,0.19819 -0.11778,0.29668 -0.0124,0.0624 0.0175,0.13867 0,0.19778 -0.009,0.0294 -0.0501,-0.0294 -0.0589,0 -0.0175,0.059 0.0155,0.13723 0,0.19778 -0.0955,0.37393 -0.23556,0.44256 -0.23556,0.79115 0,0.0659 -0.0351,-0.1683 0,-0.19778 0.12641,-0.10605 0.44605,0 0.58891,0 -0.1963,0 -0.39261,0 -0.58891,0 -0.11244,0 -0.59028,-0.0643 -0.6478,0 -0.0462,0.0518 -0.0658,0.16505 -0.11778,0.19778 -0.26235,0.16521 -0.72354,0.14123 -1.00115,0.0989 -0.16983,-0.0259 -1.11892,-0.31797 -1.11892,0 -0.34771,-2.62748 0.0665,-0.003 -0.23556,-1.18673 -0.0318,-0.12508 -0.0227,-0.274 -0.0589,-0.39556 -0.0828,-0.27816 -0.21163,-0.51301 -0.29446,-0.79115 -0.0362,-0.12156 -0.0188,-0.27756 -0.0589,-0.39558 -0.0414,-0.1214 -0.1267,-0.1848 -0.17667,-0.29667 -0.0514,-0.11485 -0.22804,-0.67119 -0.23556,-0.69226 z"
id="pussy"
inkscape:label="pussy" /></g><g
id="g35"
inkscape:label="Body"
style="stroke:#000000;stroke-opacity:1"><path
style="fill:none;stroke:#000000;stroke-width:2.39040281;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 170.60767,101.11072 c -0.10233,0.90876 0.0538,1.68235 0.26679,2.53444 0.17373,0.69495 -0.18234,1.50282 0.13339,2.13426 0.0796,0.15911 -0.11501,0.55196 0,0.66696 0.0703,0.0703 0.22232,0.0445 0.26678,0.13339 0.0737,0.14736 0.16931,1.9034 0.26678,2.00088 0.0314,0.0314 0.10195,-0.0315 0.13339,0 0.0314,0.0314 -0.0247,0.0964 0,0.13339 0.0698,0.10464 0.19703,0.16214 0.26679,0.26678 0.10517,0.15776 0.1021,0.50228 0.26678,0.66696 0.24202,0.24202 0.36685,-0.20005 0.66696,0.40017 0.0398,0.0795 -0.0281,0.18242 0,0.26678 0.09,0.2701 0.39231,0.41977 0.53356,0.66696 0.0698,0.12208 0.0456,0.29038 0.13339,0.40018 0.10015,0.12518 0.28682,0.15342 0.40018,0.26678 0.0314,0.0314 -0.0314,0.10195 0,0.13339 0.0629,0.0629 0.2039,-0.0629 0.26678,0 0.81016,0.81016 -0.79398,-0.30216 0.53357,0.26678 0.26168,0.11215 0.38778,0.47773 0.66695,0.53357 0.32272,0.0645 0.63735,-0.0148 0.93374,0.13339 0.62635,0.31317 0.16783,0.20052 0.66696,0.40017 0.21051,0.0842 0.46417,0.032 0.66696,0.1334 0.19885,0.0994 0.33472,0.30075 0.53357,0.40017 0.20104,0.10052 0.46591,0.16626 0.66695,0.26678 0.0518,0.0259 2.30364,0.0872 2.53444,0.13339 0.31742,0.0635 0.61329,0.22101 0.93374,0.26679 0.38234,0.0546 0.91137,0 1.33392,0 0.69825,-0.34169 1.25904,-0.58471 2.00087,-0.26679 0.18277,0.0783 0.34065,0.21856 0.53356,0.26679 0.27667,0.0692 0.53273,-0.0446 0.80035,0 0.46677,0.0778 0.78665,0.12882 1.20052,0.26678 0.39297,0.13099 0.92538,-0.0817 1.33392,0 0.13788,0.0276 0.2623,0.10582 0.40017,0.13339 0.0872,0.0174 0.19279,-0.0493 0.26679,0 0.0827,0.0551 0.0507,0.21163 0.13339,0.26679 0.0572,0.0381 0.30489,-0.0191 0.40017,0 0.40198,0.0804 0.80725,0.15111 1.20053,0.26678 0.36446,0.10719 0.69696,0.31475 1.06713,0.40017 0.66159,0.15268 1.60278,8.4e-4 2.26765,0.26679 0.24072,0.0963 0.42624,0.30388 0.66696,0.40017 0.25112,0.10045 0.6091,-0.0579 0.80035,0.13339 0.0314,0.0314 -0.0314,0.10195 0,0.13339 0.0314,0.0314 0.0889,0 0.13339,0 0.13339,0.13339 0.28233,0.25287 0.40017,0.40018 0.0621,0.0776 0.0481,0.21563 0.1334,0.26678 0.1572,0.0943 0.3904,0.0189 0.53356,0.13339 0.1098,0.0878 0.034,0.30075 0.13339,0.40018 0.0629,0.0629 0.18725,-0.0398 0.26679,0 0.0398,0.0199 -0.0315,0.10195 0,0.13339 0.0703,0.0703 0.17785,0.0889 0.26678,0.13339 0.0445,0.0889 0.0631,0.19648 0.13339,0.26678 0.0314,0.0314 0.0936,-0.0199 0.13339,0 0.14339,0.0717 0.27702,0.16415 0.40018,0.26678 0.14492,0.12077 0.24321,0.29554 0.40017,0.40018 0.11699,0.078 0.27441,0.0705 0.40017,0.13339 0.28688,0.14344 0.20827,0.47505 0.26679,0.53357 0.0781,0.026 0.56882,0.16864 0.66695,0.26678 0.11337,0.11336 0.13853,0.30398 0.26679,0.40017 0.76089,0.57067 -0.40896,-1.07811 0.66695,0.26679 0.50873,0.6359 -0.24785,0.14285 0.80035,0.66695 0.64618,0.32309 -0.50287,-0.10883 0.13339,0.40018 2.02874,1.62299 -0.34395,-0.83012 1.06714,0.93374 0.0621,0.0776 0.21163,0.0507 0.26678,0.13339 0.0493,0.074 -0.0398,0.18724 0,0.26678 0.0199,0.0398 0.0902,-0.0108 0.13339,0 0.13641,0.0341 0.28769,0.049 0.40018,0.13339 0.0795,0.0597 0.0631,0.19648 0.13339,0.26679 0.1572,0.1572 0.40434,0.21926 0.53356,0.40017 0.10656,0.14918 0.0424,0.37439 0.13339,0.53357 0.0936,0.16379 0.28233,0.25287 0.40018,0.40017 0.0621,0.0776 0.0631,0.19648 0.13339,0.26678 0.0314,0.0314 0.0953,-0.0229 0.13339,0 0.19064,0.11439 0.37636,0.24298 0.53357,0.40018 0.0246,0.0246 0.10881,0.37559 0.13339,0.40017 0.0275,0.0276 0.5189,0.23746 0.53356,0.26679 0.0398,0.0795 -0.0556,0.19734 0,0.26678 0.13889,0.1736 0.37637,0.24297 0.53357,0.40017 0.14061,0.14061 0.12618,0.39296 0.26678,0.53357 0.0994,0.0994 0.30075,0.034 0.40018,0.13339 0.13975,0.13975 0.16556,0.56574 0.26678,0.66696 0.0314,0.0314 0.0889,0 0.13339,0 0.0889,0 0.2039,-0.0629 0.26678,0 0.0629,0.0629 -0.0398,0.18724 0,0.26678 0.17853,0.35704 0.68044,0.54704 0.93374,0.80035 0.23213,0.23212 0.002,0.46982 0.1334,0.66696 0.0698,0.10464 0.20207,0.15894 0.26678,0.26678 0.0723,0.12057 0.049,0.28769 0.13339,0.40017 0.0711,0.0949 0.53278,0.39861 0.66696,0.66696 0.18074,0.36148 -0.58562,-0.18544 0.13339,0.53357 0.0994,0.0994 0.28769,0.049 0.40017,0.13339 0.24464,0.18348 0.21484,0.68662 0.40018,0.93374 0.17283,0.23044 0.37435,0.42813 0.53356,0.66696 0.0551,0.0827 0.10195,0.17246 0.1334,0.26678 0.0141,0.0422 -0.0398,0.11351 0,0.13339 0.0795,0.0398 0.18724,-0.0398 0.26678,0 0.0795,0.0398 -0.0281,0.18242 0,0.26678 0.12613,0.37838 0.48722,0.57427 0.66696,0.93374 0.10708,0.21417 0.12947,0.4708 0.26678,0.66696 0.1803,0.25757 0.46234,0.42824 0.66696,0.66696 0.32767,0.0476 0.0554,0.28318 0.13339,0.40017 0.0698,0.10464 0.21054,0.1543 0.26678,0.26679 0.11248,0.22495 0.0689,0.63696 0.26678,0.93374 0.10464,0.15696 0.28699,0.24925 0.40018,0.40017 0.25596,0.34129 0.18913,0.94567 0.26678,1.33391 0.0333,0.16638 0.35528,0.57717 0.40017,0.66696 0.15144,0.30288 0.27442,0.61934 0.40018,0.93374 0.0165,0.0413 -0.0398,0.11351 0,0.13339 0.0795,0.0398 0.2039,-0.0629 0.26678,0 0.11069,0.11069 0.054,2.90921 0.13339,3.06801 0.0563,0.11248 0.22702,0.14747 0.26679,0.26678 0.0422,0.12655 -0.0943,0.30585 0,0.40017 0.0703,0.0703 0.19648,0.0631 0.26678,0.1334 0.0943,0.0943 -0.0323,0.27076 0,0.40017 0.0916,0.36636 0.26678,0.27848 0.26678,0.66696"
id="path21" /><path
style="fill:none;stroke:#000000;stroke-width:2.88840288;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 218.09503,145.66347 c 0.70117,1.47746 -0.0335,3.7008 0.26678,5.20227 0.039,0.19498 0.20391,0.34492 0.26679,0.53356 0.0795,0.23839 0,0.67469 0,0.93374 0,1.0176 -0.0597,-0.10522 0.13339,0.66696 0.0942,0.37663 -0.0942,0.82389 0,1.20052 0.11862,0.4745 0.0385,0.85934 0.13339,1.33392 0.0123,0.0617 0.11814,0.0724 0.13339,0.13339 0.17045,0.68181 0,3.36828 0,4.26853 0,0.61517 -0.11291,3.77592 0,4.00174 0.0562,0.11249 0.21724,0.15119 0.26678,0.26678 0.17862,0.41678 0.21054,0.88397 0.26679,1.33392 0.0276,0.2206 -0.0703,0.45604 0,0.66695 0.0199,0.0597 0.11814,0.0724 0.13339,0.1334 0.0324,0.1294 -0.074,0.28918 0,0.40017 0.19438,0.29157 0.29956,-0.26905 0.40017,0.13339 0.0431,0.17255 -0.0795,0.37449 0,0.53357 0.1156,0.23119 0.15152,0.56981 0.26679,0.80035 0.0332,0.0664 0.3439,0.74407 0.40017,0.80034 0.0314,0.0315 0.11933,-0.0422 0.13339,0 0.0787,0.23615 0.0874,1.15457 0.13339,1.20053 0.0703,0.0703 0.21164,0.0507 0.26679,0.13339 0.0481,0.0721 0.10495,1.19172 0.13339,1.33391 0.0807,0.40364 0.26678,0.77672 0.26678,1.20053 0,0.0445 -0.0398,0.1135 0,0.13339 0.0795,0.0398 0.22701,-0.0795 0.26678,0 0.0795,0.15908 -0.0349,0.35916 0,0.53356 0.0123,0.0617 0.11004,0.075 0.13339,0.1334 0.41004,1.02509 -0.17668,0.0179 0.26679,1.20052 0.0563,0.15011 0.21049,0.25006 0.26678,0.40017 0.0796,0.21229 0.0492,0.45645 0.13339,0.66696 0.0165,0.0413 0.11351,-0.0398 0.13339,0 0.0719,0.14388 -0.0392,0.51024 0,0.66696 0.0647,0.25896 0.30455,0.42788 0.40018,0.66696 0.0495,0.12385 -0.0943,0.30585 0,0.40017 0.0314,0.0314 0.1226,-0.0431 0.13339,0 0.15712,0.6285 -0.12722,1.36479 0,2.00087 0.0276,0.13788 0.10582,0.2623 0.13339,0.40018 0.051,0.25516 -0.063,0.54848 0,0.80034 0.0455,0.18191 0.0632,0.62494 0.13339,0.80035 0.0738,0.18463 0.21856,0.34066 0.26678,0.53357 0.0431,0.17254 -0.0221,0.35708 0,0.53356 0.10449,0.83592 0.20144,1.73948 0.40018,2.53444 0.13562,0.54249 -0.1535,1.19686 0,1.73409 0.0546,0.1912 0.21855,0.34066 0.26678,0.53357 0.0977,0.39061 0.0672,0.80336 0.13339,1.20052 0.0694,0.41663 0,0.91086 0,1.33391 0,1.1116 0,2.2232 0,3.33479 0,0.42548 -0.0695,0.91665 0,1.33392 0.0163,0.0981 0.1139,0.16929 0.1334,0.26678 0.0747,0.37332 -0.11965,0.84157 0,1.20052 0.0199,0.0597 0.1135,0.0737 0.13339,0.13339 0.21259,0.63777 -0.2417,1.79682 0,2.40105 0.033,0.0826 0.22701,-0.0795 0.26678,0 0.003,0.005 0.12084,1.10014 0.13339,1.20052 -0.23774,0.41749 0.2033,0.61633 0.26678,0.93374 0.0811,0.40541 -0.18395,1.0994 0,1.46731 0.0717,0.14339 0.20725,0.25132 0.26679,0.40017 0.15669,0.39175 -0.0698,1.04836 0,1.46731 0.0301,0.18083 0.10325,0.35273 0.13339,0.53357 0.0292,0.17543 -0.0795,0.37448 0,0.53356 0.0199,0.0398 0.1135,-0.0398 0.13339,0 0.0398,0.0795 -0.0281,0.18242 0,0.26678 0.0199,0.0597 0.11351,0.0737 0.13339,0.1334 0.11259,0.33777 -0.15867,0.88317 0,1.20052 0.0717,0.14339 0.19509,0.25678 0.26678,0.40017 0.16877,0.33754 0.0619,0.6264 0.26679,0.93374 0.10261,0.15392 0.29756,0.24626 0.40017,0.40018 0.0493,0.074 -0.0629,0.2039 0,0.26678 0.0314,0.0314 0.11933,-0.0422 0.13339,0 0.0562,0.16873 -0.0795,0.37449 0,0.53357 0.11547,0.23092 0.21133,0.52305 0.26679,0.80034 0.0349,0.17441 -0.0987,0.38559 0,0.53357 0.0698,0.10464 0.21054,0.1543 0.26678,0.26678 0.0687,0.13749 -0.01,0.24774 0.13339,0.53357 0.088,0.17591 0.18927,1.21765 0.26678,1.33391 0.0551,0.0827 0.21164,0.0507 0.26679,0.1334 0.10592,0.15888 0,1.57092 0,1.86748 0,0.47191 -0.0628,0.94162 0.13339,1.33391 0.0994,0.19878 0,1.87422 0,2.13426 0,0.14151 0.081,2.42971 0.13339,2.53444 0.23311,0.46622 0.0184,-0.24836 0.40017,0.13339 0.0629,0.0629 -0.0281,0.18242 0,0.26679 0.13879,0.41635 0.0889,-0.0445 0.26679,0.13339 0.12963,0.12963 0.004,0.40393 0.13339,0.53356 0.0629,0.0629 0.18724,-0.0398 0.26678,0 0.0398,0.0199 -0.007,0.0895 0,0.13339 0.0373,0.22364 0.0711,0.44896 0.13339,0.66696 0.14452,0.5058 0.47023,0.97547 0.66696,1.46731 0.0988,0.24693 0.10009,1.03382 0.26678,1.20052 0.0703,0.0703 0.19648,0.0631 0.26678,0.13339 0.10325,0.10325 0.0585,0.51718 0.1334,0.66696 0.0281,0.0562 0.1135,0.0737 0.13339,0.13339 0.0281,0.0844 0,0.17786 0,0.26678 0.0445,0.22232 0.0538,0.45467 0.13339,0.66696 0.0563,0.15011 0.22274,0.24603 0.26678,0.40018 0.0489,0.17101 -0.0349,0.35916 0,0.53356 0.0935,0.46744 0.30669,0.86648 0.40018,1.33392 0.0854,0.42689 -0.0944,0.90905 0,1.33391 0.12931,0.58189 0.41398,1.13616 0.53356,1.73409 0.0434,0.21696 -0.0546,0.44867 0,0.66696 0.10097,0.40386 0.22695,0.007 0.40018,0.26678 0.069,0.10343 0.0825,0.64763 0.13339,0.80035 0.20458,0.61373 0.54131,1.47764 0.93374,2.00087 0.0755,0.10061 0.21054,0.1543 0.26678,0.26678 0.0445,0.0889 -0.0222,0.28902 0,0.40018 0.24742,1.23711 -0.0438,2.49468 0.13339,3.73496 0.16596,1.16167 0.13285,0.26587 0.53357,0.93374 0.0686,0.11438 0,0.26678 0,0.40017 0,0.25069 -0.0141,0.16494 0.13339,0.53357 0.17538,0.43846 0.20216,0.248 0.53357,0.80035 0.0457,0.0762 -0.0216,0.18051 0,0.26678 0.0341,0.13641 0.10581,0.2623 0.13339,0.40017 0.14627,0.73138 0.26678,2.05197 0.26678,2.80123 0,0.13429 -0.0866,1.33737 0,1.4673 0.0698,0.10464 0.21054,0.1543 0.26678,0.26678 0.16452,0.32904 0.0603,1.10196 0.13339,1.46731 0.0123,0.0617 0.10527,0.0771 0.1334,0.13339 0.12179,0.2436 -0.004,1.19635 0.13339,1.33392 0.0703,0.0703 0.21163,0.0507 0.26678,0.13339 0.14648,0.21972 0.0508,1.53705 0.13339,1.86748 0.27757,1.11028 -0.009,-0.16102 0.26678,0.66696 0.042,0.12589 -0.0859,0.44763 0,0.53356 0.2923,0.29229 0.25174,0.0882 0.40018,0.53357 0.11378,0.34133 -0.008,0.79265 0.26678,1.06713 -0.15911,1.15344 -0.22799,2.32822 0,3.46818 0.0474,0.23714 -0.14228,0.17785 0,0.53356 0.0934,0.23354 0.38265,0.33235 0.53357,0.53357 0.0597,0.0795 0.0631,0.19648 0.13339,0.26678 0.0703,0.0703 0.20713,0.0539 0.26678,0.13339 0.4829,0.64387 -0.0699,0.1588 0.13339,0.66696 0.15847,0.39617 0.50849,0.80435 0.66696,1.20052 0.0681,0.17022 0.0189,0.39041 0.13339,0.53357 0.0878,0.10979 0.28318,0.0554 0.40018,0.13339 0.10871,0.0725 -0.005,0.46947 -0.13339,0.53357 -0.0398,0.0199 -0.10196,-0.0314 -0.1334,0 -0.17316,0.17316 -0.13339,0.32223 -0.13339,0.53356 -0.33062,1.60871 -0.40017,3.17716 -0.40017,4.80209 0,0.40018 -0.0658,0.8058 0,1.20053 0.0163,0.0981 0.11389,0.16929 0.13339,0.26678 0.0428,0.21407 0.10709,0.88299 0.13339,1.06713 0.10979,0.76852 -0.21276,0.0287 0.13339,1.06713 0.25111,0.75333 0.61086,1.50971 0.80035,2.26766 0.15392,0.61566 -0.0836,1.37399 0,2.00087 0.11859,0.88943 0.32094,1.81733 0.53357,2.66783 0.10689,0.42756 0.0222,2.57885 0.13339,2.80122 0.0445,0.0889 0.22232,0.0445 0.26678,0.13339 0.0597,0.11931 -0.0262,0.26937 0,0.40018 0.0195,0.0975 0.11705,0.16871 0.13339,0.26678 0.0585,0.35087 -0.0698,0.71833 0,1.06713 0.0123,0.0617 0.10527,0.0772 0.13339,0.13339 0.0994,0.19885 -0.0365,0.44766 0,0.66696 0.0712,0.42723 0.26012,0.78036 0.40018,1.20052 0.0703,0.21091 -0.0539,0.45128 0,0.66696 0.0853,0.34121 0.3283,0.70775 0.40017,1.06713 0.0174,0.0872 -0.0493,0.19279 0,0.26678 0.0551,0.0827 0.19648,0.0631 0.26679,0.1334 0.0314,0.0314 -0.0314,0.10195 0,0.13339 0.0314,0.0314 0.11933,-0.0422 0.13339,0 0.11893,0.3568 0.0408,0.69682 0.13339,1.06713 0.0999,0.39969 0.48719,0.7076 0.66696,1.06713 0.30456,0.60913 0.41818,1.24555 0.66695,1.86748 0.18463,0.46157 0.54639,0.85164 0.66696,1.33392 0.0431,0.17254 -0.0431,0.36102 0,0.53356 0.0108,0.0431 0.10195,-0.0314 0.13339,0 0.0629,0.0629 -0.0493,0.19279 0,0.26678 0.0698,0.10464 0.21054,0.1543 0.26679,0.26679 0.13509,0.27019 0.0837,0.76885 0.13339,1.06713 0.0699,0.41966 0.39217,0.95687 0.53356,1.33391 0.11366,0.30309 0.14657,0.63319 0.26679,0.93374 0.0826,0.20642 0.40017,0.22232 0.53356,0.40018 0.0514,0.0685 0.15641,0.79577 0.26678,0.93374 0.10015,0.12518 0.30003,0.14159 0.40018,0.26678 0.17567,0.21959 0.1221,0.55921 0.26678,0.80035 0.13888,0.23147 0.58195,0.41193 0.66696,0.66696 0.0281,0.0844 -0.0493,0.19279 0,0.26678 0.0889,0.13339 0.25678,0.19509 0.40017,0.26678 0.0398,0.0199 0.11933,-0.0422 0.13339,0 0.0422,0.12655 -0.0422,0.27363 0,0.40018 0.0112,0.0335 0.42668,-0.0269 0.53357,0.13339 0.22061,0.33092 0.5972,0.46177 0.80035,0.80035 0.40015,0.66692 -0.16906,0.16887 0.40017,0.66695 0.26135,0.22869 0.58341,0.39579 0.80035,0.66696 0.14958,0.18698 0.13396,0.46773 0.26678,0.66696 0.078,0.11699 0.3373,0.008 0.40018,0.13339 0.0568,0.11364 0.031,0.43117 0.13339,0.53357 0.0314,0.0314 0.0889,0 0.13339,0 0.13339,0.13339 0.28233,0.25286 0.40018,0.40017 0.56591,0.70739 1.1558,1.39086 1.86748,2.00087 0.31848,0.27299 0.77052,0.37035 1.06713,0.66696 0.0314,0.0314 -0.0381,0.11051 0,0.13339 0.20532,0.12319 0.46163,0.14359 0.66696,0.26678 0.35864,0.21519 0.92317,0.93022 1.33391,1.06714 0.39412,0.13137 0.25225,-0.28617 0.66696,0.26678 0.0534,0.0711 -0.074,0.21745 0,0.26678 0.11099,0.074 0.28086,-0.0596 0.40017,0 0.0889,0.0445 0.0539,0.20713 0.13339,0.26678 0.11249,0.0844 0.27961,0.0611 0.40018,0.1334 0.10784,0.0647 0.15759,0.20438 0.26678,0.26678 0.19853,0.11344 1.34559,0.54524 1.46731,0.66696 0.0314,0.0314 -0.0398,0.1135 0,0.13339 0.0795,0.0398 0.18724,-0.0398 0.26678,0 0.31752,0.15876 1.35418,1.08739 1.6007,1.33391 0.13339,0.17786 0.26678,0.35571 0.40017,0.53357 0.0889,0.0445 0.19648,0.0631 0.26678,0.13339 0.0315,0.0314 -0.0199,0.0936 0,0.13339 0.0844,0.16873 0.28699,0.24926 0.40018,0.40018 0.13496,0.17995 0.24216,0.50894 0.40017,0.66695 0.11336,0.11336 0.27192,0.1706 0.40018,0.26679 0.266,0.1995 0.2622,0.66695 0.66695,0.66695 -0.007,1.22801 0.24546,0.83505 0.66696,1.46731 0.0551,0.0827 0.0631,0.19648 0.13339,0.26678 0.10314,0.10314 0.58326,0.0497 0.66696,0.13339 0.0314,0.0314 -0.0267,0.0978 0,0.13339 0.18864,0.25153 0.52635,0.38575 0.66696,0.66696 0.082,0.16398 0.0189,0.39041 0.13339,0.53357 0.0878,0.10979 0.28318,0.0554 0.40017,0.13339 0.11099,0.074 -0.0596,0.28086 0,0.40017 0.12739,0.25478 0.37489,0.42894 0.53357,0.66696 0.10188,0.15283 -0.0528,0.64179 0,0.80035 0.0141,0.0422 0.11351,-0.0398 0.13339,0 0.0889,0.17785 -0.0889,0.4891 0,0.66696 0.16136,0.32272 0.18843,0.80875 0.26678,1.20052 0.0371,0.18527 -0.0556,0.50022 0,0.66696 0.0507,0.15209 0.20364,0.25282 0.26679,0.40017 0.0722,0.16851 0.0514,0.36959 0.13339,0.53357 0.0199,0.0398 0.10195,-0.0314 0.13339,0 0.0943,0.0943 -0.0596,0.28086 0,0.40017 0.0199,0.0398 0.0889,0 0.13339,0 0,0.0889 -0.033,0.18422 0,0.26678 0.26936,0.67341 0.83756,1.31215 1.06713,2.00088 0.0667,0.20008 -0.13339,0.13339 0,0.40017 0.0199,0.0398 0.11351,-0.0398 0.13339,0 0.15652,0.31304 0.004,0.74259 0.1334,1.06713 0.0739,0.18463 0.21215,0.34237 0.26678,0.53357 0.0958,0.33532 -0.15435,0.89182 0,1.20052 0.12445,0.2489 0.13339,0.34682 0.13339,0.66696 0,0.31885 -0.0763,0.5148 -0.13339,0.80035 -0.0941,0.47029 0.0941,0.99701 0,1.4673 -0.0636,0.31809 -0.18806,0.61887 -0.26678,0.93374 -0.055,0.21996 -0.008,0.47832 -0.1334,0.66696 -0.078,0.11699 -0.26678,0.0889 -0.40017,0.13339 -0.0445,0.17786 -0.0653,0.36335 -0.13339,0.53357 -0.0233,0.0584 -0.11351,0.0737 -0.13339,0.13339 -0.0281,0.0844 0.033,0.18422 0,0.26678 -0.11379,0.28447 -1.04214,1.88209 -1.20053,2.00087 -0.2615,0.19613 -0.53568,0.40124 -0.80034,0.53357 -0.12577,0.0629 -0.28769,0.049 -0.40018,0.13339 -0.32494,0.2437 0.0403,0.24665 -0.26678,0.40018 -0.17355,0.0868 -0.51474,0.1653 -0.66696,0.26678 -0.20928,0.13952 -0.31788,0.40416 -0.53356,0.53356 -0.32599,0.19559 -0.47383,0.0139 -0.66696,0.40018 -0.0398,0.0795 0.0398,0.18724 0,0.26678 -0.0139,0.0278 -0.85523,0 -1.20053,0 -0.33759,0 -0.23657,0.12333 -0.26678,0.13339 -1.13789,0.3793 0.13524,-0.40202 -0.53356,0.26679 -0.0314,0.0314 -0.10195,-0.0314 -0.1334,0 -0.0314,0.0314 0.0398,0.1135 0,0.13339 -0.16677,0.0834 -3.30773,0.049 -3.60156,0 -0.1387,-0.0231 -0.26027,-0.1194 -0.40018,-0.13339 -1.17418,-0.11742 -2.41833,0 -3.60157,0 -0.27293,0 -1.05805,0.13793 -1.33391,0 -0.0889,-0.0445 -0.0445,-0.22232 -0.13339,-0.26679 -0.33353,-0.16676 0.11409,-0.18643 -0.66696,-0.53356 -0.53438,-0.23751 -0.89321,-0.0929 -1.33392,-0.53357 -0.0314,-0.0314 0.0199,-0.0936 0,-0.13339 -0.12732,-0.25465 -0.42552,-0.38267 -0.66695,-0.53357 -0.0194,-0.0121 -0.90628,-0.35897 -0.93374,-0.40017 -0.0493,-0.074 0.0493,-0.19279 0,-0.26678 -0.18784,-0.28176 -0.64659,-0.22071 -0.93374,-0.40018 -0.15997,-0.1 -0.23639,-0.30658 -0.40018,-0.40017 -0.15917,-0.091 -0.39041,-0.0189 -0.53356,-0.13339 -0.1098,-0.0878 -0.034,-0.30075 -0.1334,-0.40018 -0.0667,-0.0667 -0.33347,0.0667 -0.40017,0 -0.0314,-0.0314 0.0314,-0.10195 0,-0.13339 -0.0314,-0.0314 -0.0936,0.0199 -0.13339,0 -0.33326,-0.16663 -0.93517,-0.66838 -1.20052,-0.93374 -0.11337,-0.11336 -0.13633,-0.30699 -0.26679,-0.40017 -0.19484,-0.13918 -0.45279,-0.1597 -0.66695,-0.26679 -0.33037,0.074 -0.33472,-0.30075 -0.53357,-0.40017 -0.21124,-0.10562 -0.58911,-0.16116 -0.80035,-0.26678 -0.14339,-0.0717 -0.25678,-0.19509 -0.40017,-0.26679 -0.0795,-0.0398 -0.20391,0.0629 -0.26679,0 -0.0314,-0.0314 0.0398,-0.1135 0,-0.13339 -0.14102,-0.0705 -0.38417,-0.0587 -0.53356,-0.13339 -0.19885,-0.0994 -0.24297,-0.37636 -0.40018,-0.53357 -0.36665,-0.36665 -0.8942,-0.52552 -1.33391,-0.80034 -0.61411,-0.38382 0.54365,0.20765 -0.26678,-0.40018 -0.11249,-0.0844 -0.28769,-0.049 -0.40018,-0.13339 -0.14797,-0.11098 -0.30238,-0.56916 -0.40017,-0.66696 -0.0295,-0.0295 -0.37071,-0.10393 -0.40018,-0.13339 -0.0246,-0.0246 -0.10881,-0.37559 -0.13339,-0.40017 -0.11336,-0.11336 -0.28681,-0.15342 -0.40017,-0.26679 -0.11336,-0.11336 -0.1416,-0.30002 -0.26679,-0.40017 -0.20482,-0.16386 -0.41479,-0.0292 -0.53356,-0.26678 -0.25329,-0.50659 0.93792,0.67113 -0.26678,-0.53357 -0.14061,-0.14061 -0.40146,-0.11816 -0.53357,-0.26678 -0.2954,-0.33233 -0.48594,-0.75273 -0.80035,-1.06713 -0.24579,-0.24579 -0.39647,0.007 -0.53357,-0.26679 -0.0629,-0.12576 -0.0209,-0.31581 -0.13339,-0.40017 -0.10671,-0.08 -0.28435,0.0662 -0.40017,0 -0.21839,-0.12479 -0.34259,-0.36988 -0.53357,-0.53357 -0.57661,-0.49424 -1.37341,-0.69065 -2.00087,-1.06713 -0.16176,-0.0971 -0.23144,-0.31581 -0.40017,-0.40017 -0.21813,-0.10906 -0.47487,-0.17074 -0.66696,-0.26679 -0.12922,-0.0646 -0.5033,-0.47901 -0.66696,-0.53356 -0.0844,-0.0281 -0.2039,0.0629 -0.26678,0 -0.12963,-0.12963 -0.004,-0.40393 -0.13339,-0.53357 -0.12964,-0.12963 -0.40393,-0.004 -0.53357,-0.13339 -0.0994,-0.0994 -0.049,-0.28769 -0.13339,-0.40017 -0.13339,-0.17786 -0.40017,-0.22232 -0.53357,-0.40018 -0.0597,-0.0795 -0.0889,-0.17785 -0.13339,-0.26678 -0.17785,-0.13339 -0.39124,-0.22938 -0.53356,-0.40017 -0.09,-0.10802 -0.049,-0.28769 -0.13339,-0.40018 -0.11931,-0.15908 -0.39296,-0.12617 -0.53357,-0.26678 -0.0703,-0.0703 -0.0631,-0.19648 -0.13339,-0.26678 -0.0314,-0.0315 -0.0936,0.0199 -0.13339,0 -0.27569,-0.13785 -0.52753,-0.55783 -0.80035,-0.66696 -0.12385,-0.0495 -0.27363,0.0422 -0.40018,0 -0.0422,-0.0141 0.0314,-0.10195 0,-0.13339 -0.0703,-0.0703 -0.17785,-0.0889 -0.26678,-0.13339 -0.20789,-0.10395 -1.0735,-0.40654 -1.20052,-0.53357 -0.0314,-0.0314 0.0314,-0.10195 0,-0.13339 -0.0314,-0.0314 -0.0889,0 -0.13339,0 -0.0889,-0.13339 -0.15343,-0.28682 -0.26679,-0.40018 -0.10551,-0.10551 -0.62716,-0.0468 -0.80034,-0.13339 -0.32967,-0.16483 0.046,-0.13339 -0.26679,-0.13339 -0.31125,-0.0889 -0.61254,-0.22663 -0.93374,-0.26678 -0.0624,-0.008 -0.0737,0.1135 -0.13339,0.13339 -0.29431,0.0981 -1.13057,-0.20335 -1.33391,0 -0.0483,0.0483 -0.16075,0.34715 -0.26679,0.40017 -0.11931,0.0597 -0.26937,-0.0262 -0.40017,0 -0.57334,-0.27838 -0.14748,0.22702 -0.26678,0.26679 -0.12655,0.0422 -0.27363,-0.0422 -0.40018,0 -0.11756,0.0392 -0.0257,0.25656 -0.13339,0.40017 -0.13339,0.17786 -0.33472,0.30075 -0.53357,0.40018 -0.0398,0.0199 -0.1135,-0.0398 -0.13339,0 -0.0568,0.11363 -0.031,0.43116 -0.13339,0.53356 -0.35571,0.35571 -0.22232,-0.13339 -0.40017,0.40018 -0.0445,0.13352 -0.0679,0.57957 -0.13339,0.66695 -0.53357,0.71142 -0.31125,-0.22232 -0.66696,0.66696 -0.0325,0.0812 -0.10645,0.90679 -0.13339,0.93374 -0.51544,0.51543 -0.0419,-0.44975 -0.53357,0.53357 -0.0811,0.16218 -0.0864,0.61998 -0.13339,0.66695 -0.32398,0.32398 -0.19588,-0.0397 -0.40017,0.26679 -0.0998,0.14968 -0.19133,0.38264 -0.26679,0.53356 -0.13339,0.26678 0.26679,0 0,0.40018 -0.0551,0.0827 -0.19648,0.0631 -0.26678,0.13339 -0.27599,0.27599 0.42175,-0.0108 -0.13339,0.26678 -0.0398,0.0199 -0.11351,-0.0398 -0.13339,0 -0.0688,0.13766 -0.0507,0.35883 -0.1334,0.40017 -0.16397,0.082 -0.36334,0.0653 -0.53356,0.1334 -0.0584,0.0233 -0.0737,0.1135 -0.13339,0.13339 -0.12655,0.0422 -0.28919,-0.074 -0.40018,0 -0.63678,0.42452 0.23209,0.24211 -0.93374,0.53356 -0.12941,0.0324 -0.27363,-0.0422 -0.40017,0 -0.0422,0.0141 0.0431,0.12261 0,0.1334 -0.17255,0.0431 -0.36256,-0.0489 -0.53357,0 -0.24929,0.0712 -0.42099,0.31818 -0.66695,0.40017 -0.5338,0.17793 -1.48398,0 -2.00088,0 -0.51817,0 -3.39338,0.0748 -3.46817,0 -0.0803,-0.0803 -0.11364,-0.28531 -0.26679,-0.40017 -0.11248,-0.0844 -0.28769,-0.049 -0.40017,-0.1334 -0.41647,-0.31235 -0.0157,-0.16476 -0.13339,-0.40017 -0.13985,-0.27969 -0.41596,-0.18075 -0.53357,-0.53357 -0.0637,-0.19099 0.0891,-0.48876 0,-0.66695 -0.0199,-0.0398 -0.11351,0.0398 -0.13339,0 -0.0925,-0.18494 0,-2.61984 0,-2.93462 0,-0.22231 -0.1572,-0.50975 0,-0.66695 0.0703,-0.0703 0.21163,-0.0507 0.26678,-0.13339 0.0973,-0.14591 -0.0787,-0.50962 0,-0.66696 0.0199,-0.0398 0.10195,0.0314 0.13339,0 0.5206,-0.52059 -0.0309,-0.0716 0.1334,-0.40018 0.15352,-0.30705 0.15647,0.0582 0.40017,-0.26678 0.0844,-0.11248 0.0705,-0.27441 0.13339,-0.40017 0.0562,-0.11249 0.22701,-0.14748 0.26678,-0.26679 0.0281,-0.0844 -0.0533,-0.19564 0,-0.26678 -0.0482,-0.72162 0.37449,-0.14747 0.53357,-0.26678 0.16582,-0.12437 1.42905,-1.35253 1.46731,-1.46731 0.0281,-0.0844 -0.0493,-0.19279 0,-0.26678 0.1595,-0.23925 0.73688,-0.24269 0.93374,-0.40018 0.12518,-0.10014 0.14362,-0.29754 0.26678,-0.40017 0.15276,-0.1273 0.39296,-0.12618 0.53357,-0.26678 0.1406,-0.14061 0.11402,-0.40627 0.26678,-0.53357 0.14084,-0.11736 0.39041,-0.0189 0.53356,-0.13339 0.1098,-0.0878 0.034,-0.30075 0.1334,-0.40017 0.20678,-0.20679 0.26251,0.0946 0.53356,-0.26679 0.0844,-0.11248 0.0456,-0.29038 0.13339,-0.40017 0.10015,-0.12519 0.28682,-0.15342 0.40018,-0.26678 0.0703,-0.0703 0.0539,-0.20713 0.13339,-0.26679 0.11248,-0.0844 0.2796,-0.0611 0.40017,-0.13339 0.50762,-0.30457 1.18208,-0.91529 1.6007,-1.33391 0.0703,-0.0703 0.0737,-0.18725 0.13339,-0.26679 0.28814,-0.38418 0.69203,-0.65241 1.06713,-0.93374 0.41812,-0.31358 0.57881,-0.89083 0.80035,-1.33391 0.0994,-0.19885 0.37636,-0.24297 0.53357,-0.40018 0.38378,-0.38378 0.59468,-0.91009 0.93374,-1.33391 0.32042,-0.40053 0.62584,-0.35906 0.93374,-0.66696 0.28987,-0.28987 0.53356,-0.62249 0.80035,-0.93374 0.18528,-0.21616 0.40624,-0.4123 0.53356,-0.66695 0.0398,-0.0795 -0.0281,-0.18242 0,-0.26679 0.0588,-0.17632 0.31516,-0.36353 0.40018,-0.53356 0.0199,-0.0398 -0.0398,-0.11351 0,-0.1334 0.0795,-0.0398 0.2039,0.0629 0.26678,0 0.20561,-0.20561 0.30081,-1.13518 0.40017,-1.33391 0.0994,-0.19885 0.30989,-0.33041 0.40018,-0.53357 0.13172,-0.29636 0.0751,-1.04644 0.26678,-1.33391 0.50406,-0.75608 0.91116,-1.26616 1.20053,-2.13426 0.12113,-0.3634 0.0234,-0.73729 0.13339,-1.06714 0.0507,-0.15208 0.20724,-0.25132 0.26678,-0.40017 0.2171,-0.54275 0.32653,-1.27833 0.40017,-1.86748 0.082,-0.65561 -0.2023,-4.13071 0,-4.53531 0.0445,-0.0889 0.22232,-0.0445 0.26679,-0.13339 0.11078,-0.22157 0,-1.10104 0,-1.33392 0,-0.87144 0.1021,-1.6272 0.13339,-2.53443 0.0301,-0.87411 0,-1.78202 0,-2.66783 0,-0.38258 0.12143,-0.96962 0,-1.33392 -0.0141,-0.0422 -0.10195,0.0314 -0.13339,0 -0.0629,-0.0629 0.0193,-0.17997 0,-0.26678 -0.0795,-0.35793 -0.13804,-0.72382 -0.26679,-1.06713 -0.0156,-0.0416 -0.1135,0.0398 -0.13339,0 -0.0795,-0.15908 0.0987,-0.38558 0,-0.53357 -0.0551,-0.0827 -0.19648,-0.0631 -0.26678,-0.13339 -0.065,-0.065 -0.099,-0.56389 -0.13339,-0.66696 -0.25211,-0.75633 -0.93374,-2.01374 -0.93374,-2.80122 0.19762,-1.3687 0.13339,-2.75578 0.13339,-4.13513 0,-0.0935 -0.0483,-1.51559 -0.13339,-1.6007 -0.0629,-0.0629 -0.18725,0.0398 -0.26679,0 -0.11872,-0.0594 -0.11969,-0.61219 -0.13339,-0.66696 -0.0305,-0.122 -0.21054,-0.15429 -0.26678,-0.26678 -0.13339,-0.26678 0.26678,0 0,-0.40017 -0.0551,-0.0827 -0.17785,-0.0889 -0.26678,-0.13339 -0.0889,-0.0889 -0.20208,-0.15895 -0.26679,-0.26679 -0.0723,-0.12057 -0.049,-0.28769 -0.13339,-0.40017 -0.2437,-0.32494 -0.24664,0.0403 -0.40017,-0.26679 -0.38176,-0.76351 0.0829,-0.0842 -0.26678,-0.66695 -0.0332,-0.0553 -0.49272,-0.54441 -0.53357,-0.66696 -0.0717,-0.21509 -0.0413,-0.45978 -0.13339,-0.66696 -0.0903,-0.20315 -0.28235,-0.34504 -0.40018,-0.53356 -0.10539,-0.16863 -0.14256,-0.37829 -0.26678,-0.53357 -0.0934,-0.11673 -0.34172,-0.0914 -0.40017,-0.26678 -0.0281,-0.0844 0.0281,-0.18242 0,-0.26678 -0.0784,-0.23526 -0.42387,-0.58096 -0.53357,-0.80035 -0.137,-0.274 -0.0839,-0.65943 -0.26678,-0.93374 -0.12332,-0.18498 -0.30075,-0.33472 -0.40018,-0.53357 -0.082,-0.16397 -0.0514,-0.36959 -0.13339,-0.53357 -0.0562,-0.11248 -0.19702,-0.16214 -0.26678,-0.26678 -0.1103,-0.16545 -0.19293,-0.34894 -0.26678,-0.53356 -0.0165,-0.0413 0.0314,-0.10195 0,-0.1334 -0.0314,-0.0314 -0.12261,0.0431 -0.13339,0 -0.0431,-0.17254 0.0431,-0.36102 0,-0.53356 -0.53647,-2.14586 0.009,0.5556 -0.53357,-0.80035 -0.0495,-0.12385 0.0262,-0.26937 0,-0.40017 -0.10472,-0.52358 -0.58029,-0.62701 -0.66696,-0.80035 -0.0597,-0.11931 0.0262,-0.26938 0,-0.40018 -0.0739,-0.36966 -0.26678,-0.27572 -0.26678,-0.66695 -0.44213,-0.52399 -0.34901,-0.91365 -0.53357,-1.46731 -0.0629,-0.18864 -0.21855,-0.34066 -0.26678,-0.53357 -0.0216,-0.0863 0.0457,-0.19052 0,-0.26678 -0.0971,-0.16176 -0.28699,-0.24926 -0.40017,-0.40017 -0.10469,-0.13958 -0.0749,-0.62489 -0.1334,-0.80035 -0.14476,-0.43429 -0.46223,-0.79107 -0.66695,-1.20053 -0.0747,-0.14931 -0.0556,-0.55031 -0.13339,-0.66695 -0.0551,-0.0827 -0.21164,-0.0507 -0.26679,-0.13339 -0.10442,-0.15663 -0.071,-0.61321 -0.13339,-0.80035 -0.0199,-0.0597 -0.10527,-0.0771 -0.13339,-0.13339 -0.0629,-0.12577 -0.049,-0.28769 -0.13339,-0.40018 -0.0597,-0.0795 -0.22986,-0.0411 -0.26678,-0.13339 -0.0661,-0.16513 0.0349,-0.35916 0,-0.53357 -0.0123,-0.0617 -0.10527,-0.0771 -0.1334,-0.13339 -0.082,-0.16397 -0.004,-0.40393 -0.13339,-0.53356 -0.0314,-0.0314 -0.10195,0.0314 -0.13339,0 -0.0629,-0.0629 0.0457,-0.19053 0,-0.26679 -0.11438,-0.19063 -0.30075,-0.33471 -0.40017,-0.53356 -0.25459,-0.50917 -0.0371,-0.58579 -0.13339,-1.06713 -0.12704,-0.6352 -0.0953,0.0572 -0.40018,-0.40018 -0.078,-0.11707 -0.11256,-1.01505 -0.13339,-1.06713 -0.0369,-0.0923 -0.21163,-0.0507 -0.26678,-0.13339 -0.25076,-0.37613 -0.58114,-1.8861 -0.66696,-2.40105 -0.0146,-0.0877 0.0398,-0.18724 0,-0.26678 -0.0994,-0.19885 -0.32211,-0.3254 -0.40017,-0.53357 -0.0445,-0.11857 0.0333,-0.767 0,-0.93374 -0.0195,-0.0975 -0.1139,-0.16929 -0.1334,-0.26678 -0.0465,-0.23255 0.0765,-0.57088 0,-0.80035 -0.0314,-0.0943 -0.10927,-0.17033 -0.13339,-0.26678 -0.042,-0.16795 0.0798,-0.50739 0,-0.66696 -0.35398,-0.70796 -0.28988,-0.0745 -0.40017,-1.06713 -0.0196,-0.17677 0.0386,-0.35995 0,-0.53357 -0.48807,-2.19628 -0.0257,0.45655 -0.53357,-1.06713 -0.35571,-1.06713 0.11857,-0.0593 0,-0.53356 -0.055,-0.21996 -0.032,-0.46417 -0.13339,-0.66696 -0.0281,-0.0562 -0.12106,-0.0717 -0.13339,-0.13339 -0.1242,-0.621 0.002,-0.39283 -0.13339,-0.93374 -0.0494,-0.19762 0.0741,-0.48169 0,-0.66696 -0.0467,-0.11677 -0.2337,-0.14545 -0.26679,-0.26678 -0.10594,-0.38845 -0.0614,-0.80438 -0.13339,-1.20053 -0.0178,-0.0978 -0.11704,-0.16871 -0.13339,-0.26678 -0.028,-0.16828 0.0976,-0.87198 0,-1.06713 -0.3643,-0.72859 -0.3997,-1.73267 -0.66696,-2.53444 -0.0938,-0.28129 -0.0218,-0.65477 -0.13339,-0.93374 -0.0595,-0.14885 -0.19508,-0.25678 -0.26678,-0.40017 -0.11937,-0.23874 -0.0416,-0.68128 -0.13339,-0.93374 -0.18927,-0.5205 -0.53717,-1.47452 -0.80035,-2.00087 -0.14918,-0.29837 0.0199,-0.89401 -0.13339,-1.20053 -0.0445,-0.0889 -0.22232,-0.0445 -0.26678,-0.13339 -0.27421,-0.5484 -0.0495,-1.34151 -0.40018,-1.86748 -0.0698,-0.10464 -0.21724,-0.15119 -0.26678,-0.26678 -0.47182,-1.10092 -0.007,-0.30423 -0.13339,-0.93374 -0.27968,-1.39836 -0.85434,-2.75038 -1.20053,-4.13514 -0.047,-0.18786 -0.0926,-1.11891 -0.13339,-1.20052 -0.0199,-0.0398 -0.1135,0.0398 -0.13339,0 -0.11919,-0.23838 0.17829,-0.88884 0,-1.06713 -0.0314,-0.0314 -0.11351,0.0398 -0.13339,0 -0.0817,-0.16331 0.0579,-0.49328 0,-0.66696 -0.0629,-0.18864 -0.21216,-0.34237 -0.26678,-0.53357 -0.11444,-0.40052 -0.035,-0.80679 -0.1334,-1.20052 -0.0152,-0.061 -0.11814,-0.0724 -0.13339,-0.13339 -0.0937,-0.375 0.0759,-0.82125 0,-1.20052 -0.0195,-0.0975 -0.11704,-0.16871 -0.13339,-0.26679 -0.0292,-0.17543 0.0386,-0.35994 0,-0.53356 0.58706,-0.67455 -0.32783,-0.51098 -0.40017,-0.80035 -0.15435,-0.61741 0.16708,-0.23309 -0.13339,-0.53357 0.0736,-1.73983 0.011,-3.29718 -0.66696,-4.93548 -0.30412,-0.73496 -0.73077,-1.41349 -1.06713,-2.13426 -0.50555,-1.08332 -1.16164,-2.77071 -1.6007,-3.86836 -0.26678,-0.66695 -0.44395,-1.37718 -0.80035,-2.00087 -0.0624,-0.10919 -0.20208,-0.15894 -0.26678,-0.26678 -0.21027,-0.35044 -0.14658,-0.8624 -0.40018,-1.20052 -0.0596,-0.0795 -0.22232,-0.0445 -0.26678,-0.13339 -0.10139,-0.20279 -0.0571,-0.45345 -0.13339,-0.66696 -0.16432,-0.4601 -0.77929,-1.40415 -0.93374,-1.86748 -0.0281,-0.0844 0.033,-0.18422 0,-0.26679 -0.0963,-0.24072 -0.28423,-0.43506 -0.40018,-0.66695 -0.0889,-0.17786 -0.17785,-0.35571 -0.26678,-0.53357 -0.0889,-0.22232 -0.1597,-0.45279 -0.26678,-0.66696 -0.18759,-0.37518 -0.51117,-0.67766 -0.66696,-1.06713 -0.12375,-0.30937 0.0266,-0.56054 -0.13339,-0.93374 -0.28134,-0.65645 -0.78898,-1.41046 -0.93374,-2.13426 -0.0262,-0.1308 0.0367,-0.27192 0,-0.40018 -0.0783,-0.27393 -0.46758,-0.6698 -0.53357,-0.93374 -0.0324,-0.1294 0.0468,-0.27527 0,-0.40017 -0.0392,-0.10464 -0.71119,-1.48182 -0.80034,-1.6007 -0.15092,-0.20122 -0.47257,-0.28955 -0.53357,-0.53356 -0.0324,-0.12941 0.0262,-0.26938 0,-0.40018 -0.11258,-0.5629 -0.80922,-1.61844 -1.06713,-2.13426 -0.1283,-0.25659 -0.0764,-0.64885 -0.13339,-0.93374 -0.10395,-0.51973 -0.47698,-0.85895 -0.66696,-1.33392 -0.019,-0.0475 -0.26506,-0.93116 -0.26678,-0.93374 -0.0551,-0.0827 -0.21164,-0.0507 -0.26679,-0.13339 -0.0493,-0.074 0.0398,-0.18724 0,-0.26678 -0.0199,-0.0398 -0.10195,0.0314 -0.13339,0 -0.40943,-0.40943 0.0779,-0.11091 -0.13339,-0.53357 -0.0934,-0.18688 -0.61658,-1.01675 -0.80035,-1.20052 -0.11336,-0.11336 -0.30398,-0.13853 -0.40017,-0.26678 -0.0836,-0.1114 -0.14923,-0.8712 -0.26679,-1.06713 -0.29582,-0.49304 -0.3057,-0.006 -0.40017,-0.66696 -0.0251,-0.17607 0.0349,-0.35917 0,-0.53357 -0.0247,-0.12332 -0.20208,-0.15894 -0.26678,-0.26678 -0.16668,-0.27779 -0.34431,-0.73194 -0.40018,-1.06713 -0.0732,-0.43901 -0.0603,-0.89513 -0.13339,-1.33392 -0.0163,-0.0981 -0.11704,-0.16871 -0.13339,-0.26678 -0.16007,-0.96042 0.20009,-0.10004 0,-1.20052 -0.0503,-0.27668 -0.21163,-0.5246 -0.26678,-0.80035 -0.0568,-0.28399 -0.0976,-3.64741 0,-4.13514 0.0359,-0.17976 0.11515,-0.35114 0.13339,-0.53356 0.14599,-1.45987 0.0258,-2.95592 0.26678,-4.40192 0.0212,-0.12704 -0.0318,-0.58756 0,-0.66696 0.0467,-0.11676 0.22008,-0.15001 0.26678,-0.26678 0.17461,-0.43652 -0.20024,-1.46699 0,-1.86748 0.30329,-0.60658 7.6e-4,0.92923 0.26679,-0.66696 0.0317,-0.19029 0.0506,-3.92581 0,-4.00174 -0.0493,-0.074 -0.18725,0.0398 -0.26679,0 -0.0746,-0.0373 0.0401,-0.58682 0,-0.66696 -0.13127,-0.26254 -0.26678,-0.46808 -0.26678,-0.80035 0.47333,0.0436 -0.19408,3.31045 0,3.60157 0.0552,0.0827 0.19648,0.0631 0.26678,0.13339 0.0261,0.0261 0,2.99892 0,3.33479 0,0.48338 -0.11894,1.12492 0,1.6007 0.0241,0.0965 0.1139,0.16929 0.1334,0.26678 0.1385,0.69252 0,1.56234 0,2.26766 -0.16341,0.75259 0.44697,2.01727 0.13339,2.80122 -0.0595,0.14885 -0.22274,0.24602 -0.26679,0.40017 -0.1719,0.60167 0,1.50213 0,2.13426 0,0.61357 0.0549,1.1693 -0.13339,1.73409 -0.19964,0.59894 0.10325,2.77556 0,3.60157 -0.1175,0.94005 -0.51057,1.86294 -0.66695,2.80122 -0.0505,0.30284 0.0505,0.63091 0,0.93374 -0.16088,0.96526 -0.0635,-0.2097 -0.26679,0.40018 -0.0422,0.12654 0.0943,0.30585 0,0.40017 -0.0703,0.0703 -0.20713,0.0538 -0.26678,0.13339 -0.20357,0.27143 -0.22499,0.77516 -0.40017,1.06713 -0.0971,0.16177 -0.31581,0.23145 -0.40018,0.40018 -0.18901,0.37802 -0.34735,1.01431 -0.66696,1.33391 -0.0314,0.0314 -0.10195,-0.0314 -0.13339,0 -0.18333,0.18333 -0.23821,0.46451 -0.40017,0.66696 -0.11785,0.14731 -0.34052,0.22121 -0.40018,0.40017 -0.0281,0.0844 0.0629,0.20391 0,0.26679 -0.0629,0.0629 -0.2039,-0.0629 -0.26678,0 -0.0943,0.0943 0.0943,0.30585 0,0.40017 -0.0669,0.0669 -0.34501,0.10128 -0.40017,0.26678 -0.0281,0.0844 0.0398,0.18725 0,0.26679 -0.0844,0.16873 -0.35443,0.21716 -0.40018,0.40017 -0.0324,0.12941 0.0597,0.28087 0,0.40018 -0.0889,0.17785 -0.44464,0.0889 -0.53356,0.26678 -0.0597,0.11931 0.0323,0.27077 0,0.40017 -0.0305,0.12201 -0.21054,0.1543 -0.26679,0.26679 -0.0629,0.12576 -0.0455,0.29038 -0.13339,0.40017 -0.10015,0.12519 -0.31769,0.12931 -0.40017,0.26678 -0.0686,0.11439 0.0597,0.28087 0,0.40018 -0.12733,0.25465 -0.3953,0.41808 -0.53357,0.66696 -0.11896,0.21412 -0.15963,0.58605 -0.26678,0.80034 -0.11249,0.22498 -0.40878,0.31519 -0.53357,0.53357 -0.098,0.17157 -0.13158,0.75347 -0.26678,0.93374 -0.11319,0.15092 -0.30312,0.23841 -0.40017,0.40017 -0.50914,0.84857 0.96719,-0.56701 -0.26679,0.66696 -0.0703,0.0703 -0.20713,0.0539 -0.26678,0.13339 -0.0844,0.11249 -0.0611,0.27961 -0.13339,0.40018 -0.0647,0.10784 -0.20439,0.15759 -0.26678,0.26678 -0.23347,0.40856 -0.24871,0.8207 -0.53357,1.20052 -0.78199,1.04266 -0.30796,0.0721 -0.80035,0.93374 -0.17785,0.31125 -0.40043,0.60091 -0.53357,0.93374 -0.033,0.0826 0.0629,0.20391 0,0.26679 -0.0994,0.0994 -0.30075,0.034 -0.40017,0.13339 -0.0994,0.0994 -0.0554,0.28318 -0.13339,0.40017 -0.34022,0.51033 -0.8606,0.95743 -1.20052,1.46731 -0.15563,0.23344 0.16937,0.80035 -0.40018,0.80035 -0.17785,0.31125 -0.35571,0.62249 -0.53356,0.93374 -0.1334,0.0889 -0.31125,0.13339 -0.40018,0.26678 -0.17883,0.26824 -0.26678,0.74081 -0.26678,1.06713 0.0526,1.64737 -1.05511,0.90369 -1.33392,1.6007 -0.0681,0.17022 -0.0391,0.37636 -0.13339,0.53357 -0.0512,0.0852 -0.19648,0.0631 -0.26678,0.13339 -0.15798,0.15797 -0.21396,0.88092 -0.40017,1.06713 -0.0703,0.0703 -0.19648,0.0631 -0.26679,0.13339 -0.0629,0.0629 0.0493,0.19279 0,0.26678 -0.0698,0.10464 -0.21054,0.1543 -0.26678,0.26679 -0.0398,0.0795 0.0629,0.2039 0,0.26678 -0.0994,0.0994 -0.30075,0.034 -0.40017,0.13339 -0.1334,0.13339 0.0667,0.26678 0,0.40017 -0.10337,0.20674 -0.32955,0.45507 -0.40018,0.66696 -0.0281,0.0844 0.033,0.18422 0,0.26679 -0.0826,0.20641 -0.35657,0.31556 -0.40017,0.53356 -0.0349,0.1744 0.0349,0.35917 0,0.53357 -0.009,0.0427 -0.5223,1.18643 -0.53357,1.20052 -0.0621,0.0776 -0.21563,0.0481 -0.26678,0.13339 -0.0943,0.1572 -0.0514,0.36959 -0.13339,0.53357 -0.19558,0.39115 -0.64363,0.64362 -0.93374,0.93374 -0.0314,0.0314 0.0314,0.10195 0,0.13339 -0.0314,0.0314 -0.11351,-0.0398 -0.1334,0 -0.0795,0.15908 0.14229,0.42685 0,0.53356 -0.14666,0.11 -0.40393,0.004 -0.53356,0.1334 -0.0943,0.0943 0.0366,0.27191 0,0.40017 -0.3417,1.19596 -0.0987,0.005 -0.66696,0.80035 -0.55451,0.77632 -0.0405,0.48125 -0.40017,1.20052 0.18325,0.67551 -0.31125,0.13339 -0.40018,0.26679 -0.22093,0.3314 -0.004,0.35818 -0.26678,0.53356 -0.0827,0.0551 -0.19648,0.0631 -0.26678,0.13339 -0.23407,0.23406 -0.23966,0.79961 -0.40018,1.06713 -0.14648,0.24414 -0.40624,0.41231 -0.53356,0.66696 -0.0199,0.0398 0.0314,0.10195 0,0.13339 -0.0314,0.0314 -0.11933,-0.0422 -0.13339,0 -0.0422,0.12655 0.0495,0.27633 0,0.40018 -0.10491,0.26227 -0.50219,0.55318 -0.66696,0.80035 -0.14382,0.21572 -0.24948,0.45598 -0.40018,0.66695 -0.0731,0.10234 -0.21054,0.1543 -0.26678,0.26679 -0.0398,0.0795 0.0493,0.19279 0,0.26678 -0.0551,0.0827 -0.19648,0.0631 -0.26678,0.13339 -0.0816,0.0816 -0.18513,0.45192 -0.26679,0.53357 -0.11336,0.11336 -0.28681,0.15342 -0.40017,0.26678 -0.16399,0.16399 -0.2612,0.89342 -0.40017,1.06713 -0.10015,0.12519 -0.28682,0.15342 -0.40018,0.26678 -0.14561,0.14561 -0.15957,0.98611 -0.26678,1.20053 -0.12733,0.25465 -0.47773,0.38778 -0.53357,0.66695 -0.0585,0.29262 -0.0217,1.0546 -0.13339,1.33392 -0.0467,0.11677 -0.22701,0.14747 -0.26678,0.26678 -0.14803,0.44409 -0.26504,4.41062 -0.13339,5.06888 0.0195,0.0975 0.10927,0.17032 0.13339,0.26678 0.0431,0.17254 -0.0795,0.37449 0,0.53357 0.0199,0.0398 0.10195,-0.0314 0.13339,0 0.0129,0.0129 0,1.98945 0,2.13426 -0.13339,0.35571 -0.35305,0.69017 -0.40017,1.06713 -0.011,0.0882 0.18724,-0.0398 0.26678,0 0.0296,0.0148 0,0.67051 0,0.93374 0,0.43163 -0.10402,3.12675 0,3.33479 0.27155,0.5431 0.16449,0.45338 0.26678,1.06713 0.049,0.29421 0.30585,0.51738 0.40018,0.80035 0.096,0.28801 -0.0221,0.35609 0.13339,0.66695 0.0611,0.12215 -0.0173,0.59756 0,0.66696 0.1241,0.49641 0.33952,0.74775 0.53356,1.20053 0.12752,0.29752 0.0646,0.68097 0.26679,0.93374 0.15012,0.18765 0.6189,0.0746 0.80034,0.80034 0.0431,0.17255 -0.0987,0.38559 0,0.53357 0.0552,0.0827 0.20713,0.0539 0.26679,0.13339 0.0696,0.0928 0.23804,0.79002 0.26678,0.93374 0.0523,0.2616 -0.0523,0.53875 0,0.80035 0.0585,0.29248 0.29544,0.52107 0.40018,0.80035 0.0644,0.17166 0.0514,0.36959 0.13339,0.53357 0.1553,0.31061 0.48828,0.50256 0.66695,0.80034 0.0229,0.0381 0,0.0889 0,0.1334 0.0445,0.0889 0.0782,0.18405 0.1334,0.26678 0.0889,0.13339 0.32847,0.12339 0.40017,0.26678 0.0597,0.11931 -0.0323,0.27077 0,0.40018 0.0153,0.061 0.11351,0.0737 0.13339,0.13339 0.096,0.28801 -0.022,0.35609 0.13339,0.66695 0.0559,0.11178 -0.009,0.62039 0,0.66696 0.0585,0.29248 0.31824,0.51355 0.40018,0.80035 0.0366,0.12826 -0.0262,0.26937 0,0.40017 0.0554,0.27688 0.32098,0.56277 0.40017,0.80035 0.0281,0.0844 -0.033,0.18422 0,0.26679 0.0826,0.20641 0.35658,0.31556 0.40018,0.53356 0.15022,0.75112 -0.2683,0.3979 0.26678,1.20053 0.4381,0.65714 0.17092,-0.61271 0.40017,0.53356 0.0385,0.1926 -0.062,0.4809 0,0.66696 0.0199,0.0597 0.11351,0.0737 0.13339,0.13339 0.0877,0.26307 -0.045,0.66385 0,0.93374 0.0231,0.13869 0.11351,0.26098 0.1334,0.40017 0.0597,0.41807 -0.0916,0.9219 0,1.33392 0.0519,0.23374 0.21484,0.43321 0.26678,0.66696 0.0979,0.44079 0.059,0.88754 0.13339,1.33391 0.0327,0.19614 0.21856,0.34066 0.26678,0.53357 0.0216,0.0863 -0.0493,0.19279 0,0.26678 0.0551,0.0827 0.22986,0.0411 0.26679,0.13339 0.0661,0.16514 -0.0221,0.35708 0,0.53357 0.19857,1.58855 0.0291,-0.15025 0.26678,0.80035 0.089,0.35598 0.049,1.69875 0.13339,1.86748 0.0432,0.0863 0.36433,0.52357 0.40017,0.66695 0.0431,0.17255 -0.0562,0.36484 0,0.53357 0.13794,0.41382 0.21102,0.88774 0.26679,1.33391 0.0221,0.17649 -0.0563,0.36484 0,0.53357 0.0398,0.11931 0.20208,0.15894 0.26678,0.26678 0.21871,0.36452 0.18802,0.84693 0.40017,1.20053 0.0647,0.10784 0.21055,0.15429 0.26679,0.26678 0.13298,0.26597 0.083,0.7915 0.26678,1.06713 0.0247,0.037 0.10671,-0.0356 0.13339,0 0.17897,0.23862 0.35114,0.50613 0.40018,0.80035 0.0676,0.40549 0.0382,0.68631 0.13339,1.06713 0.14941,0.59766 0.58677,1.16456 0.80035,1.73409 0.0468,0.1249 -0.11099,0.32618 0,0.40017 0.11699,0.078 0.32218,0.0164 0.40017,0.1334 0.34698,0.52046 0.0886,1.55548 0.26678,2.00087 0.0963,0.24072 0.3373,0.41543 0.40018,0.66695 0.0431,0.17255 -0.0562,0.36484 0,0.53357 0.0757,0.22716 0.12311,0.4754 0.26678,0.66696 0.0597,0.0795 0.22232,0.0445 0.26678,0.13339 0.19817,0.13969 -0.0661,0.36843 0,0.53356 0.16821,0.42051 0.50326,0.79128 0.66696,1.20053 0.033,0.0826 -0.0174,0.17958 0,0.26678 -0.26789,0.23751 0.22232,0.40017 0.26678,0.53357 0.0725,0.21741 0.0609,0.58293 0.1334,0.80035 0.0757,0.22715 0.2087,0.43466 0.26678,0.66695 0.10254,0.41015 0,1.04557 0,1.46731 0,0.73704 0.10309,1.546 0,2.26765 -0.0199,0.1392 -0.11351,0.26098 -0.13339,0.40018 -0.0461,0.32281 -0.0927,2.25626 0,2.53444 0.0199,0.0597 0.11814,0.0724 0.13339,0.13339 0.0943,0.37736 -0.0764,0.81834 0,1.20052 0.29034,1.4517 -0.0524,0.081 0.26678,0.40017 0.0629,0.0629 -0.0398,0.18725 0,0.26679 0.0994,0.19885 0.30075,0.33471 0.40018,0.53356 0.14386,0.28773 0.0595,0.63826 0.13339,0.93374 0.13379,0.53517 0.85018,1.08324 0.93374,1.33392 0.0422,0.12654 -0.0495,0.27632 0,0.40017 0.12716,0.3179 0.41379,0.94736 0.66695,1.20053 0.0703,0.0703 0.21164,0.0507 0.26679,0.13339 0.0987,0.14798 -0.0431,0.36102 0,0.53356 0.23961,0.95847 0.49314,2.01299 0.80035,2.93461 0.17341,0.52023 -0.17341,1.21387 0,1.73409 0.0199,0.0597 0.10527,0.0772 0.13339,0.13339 0.18717,0.37436 -0.0414,1.0304 0.13339,1.46731 0.16922,0.42306 0.44437,0.75452 0.53357,1.20052 0.0938,0.46897 0.018,1.00575 0.13339,1.46731 0.0482,0.19291 0.21855,0.34065 0.26678,0.53357 0.0431,0.17254 -0.0252,0.35749 0,0.53356 0.0199,0.1392 0.10582,0.2623 0.13339,0.40018 0.19553,0.97766 -0.1409,2.08167 0,3.068 0.0398,0.27839 0.20578,0.52583 0.26678,0.80035 0.0579,0.26043 -0.0844,0.54725 0,0.80035 0.0507,0.15209 0.19509,0.25678 0.26679,0.40017 0.0115,0.0231 0.1147,2.53705 0.13339,2.66783 0.0141,0.0984 0.10928,0.17033 0.13339,0.26678 0.0508,0.20316 -0.0345,0.46026 0,0.66696 0.0301,0.18084 0.11315,0.35136 0.13339,0.53357 0.0246,0.22096 -0.0466,0.44957 0,0.66695 0.76014,3.54732 0.16251,-0.35886 0.53357,1.86748 0.0721,0.43263 -0.0721,0.9013 0,1.33392 0.0163,0.0981 0.11933,0.16836 0.13339,0.26678 0.044,0.30812 0,0.6225 0,0.93374 0,0.0445 -0.0398,0.11351 0,0.13339 0.0795,0.0398 0.18724,-0.0398 0.26678,0 0.0161,0.008 0,0.49823 0,0.66696 0,0.5296 0.1668,1.10078 0.26678,1.6007 0.0507,0.25335 0.059,1.48906 0.1334,1.6007 0.0551,0.0827 0.23534,0.0391 0.26678,0.13339 0.1253,0.37591 -0.0578,1.06302 0,1.4673 0.0199,0.1392 0.11027,0.26148 0.13339,0.40018 0.0439,0.26315 -0.0523,0.53874 0,0.80035 0.0195,0.0975 0.11389,0.16929 0.13339,0.26678 0.0843,0.42141 -0.005,0.78526 0.13339,1.20052 0.0982,0.29451 -0.16954,0.94621 0,1.20053 0.0698,0.10464 0.22008,0.15001 0.26679,0.26678 0.11463,0.28659 0.1018,1.25318 0.13339,1.6007 0.0559,0.61544 0.16926,1.14895 0.26678,1.73408 0.015,0.0901 -0.0501,0.85855 0,0.93374 0.0493,0.074 0.18724,-0.0398 0.26678,0 0.0416,0.0208 0.0848,2.37633 0.13339,2.66783 0.0574,0.34435 0.20691,0.70785 0.26679,1.06714 0.0292,0.17543 -0.12576,0.4078 0,0.53356 0.0703,0.0703 0.22986,0.0411 0.26678,0.13339 0.12018,0.30046 -0.0984,0.63866 0,0.93374 0.0199,0.0597 0.11351,0.0737 0.13339,0.13339 0.0941,0.28228 -0.0726,0.64352 0,0.93374 0.10497,0.41989 0.13367,0.80118 0.26679,1.20053 0.0141,0.0422 0,0.0889 0,0.13339 0,0.17785 -0.0661,0.36843 0,0.53356 0.0369,0.0923 0.22231,0.0445 0.26678,0.1334 0.10655,0.21311 0.0146,3.28902 0.13339,4.00174 0.0662,0.39715 0.10634,0.87965 0.26678,1.20052 0.10672,0.21343 -0.10671,0.58693 0,0.80035 0.0717,0.14339 0.19509,0.25678 0.26679,0.40018 0.16639,0.33278 -0.0515,1.10712 0,1.4673 0.0199,0.1392 0.10581,0.2623 0.13339,0.40018 0.0856,0.42799 -0.0718,0.90304 0,1.33391 0.0231,0.1387 0.1194,0.26027 0.13339,0.40018 0.008,0.0841 0.042,2.08482 0.13339,2.26765 0.0445,0.0889 0.23947,0.0378 0.26678,0.13339 0.0733,0.25652 -0.0377,0.53625 0,0.80035 0.009,0.0623 0.11351,0.0737 0.13339,0.13339 0.0717,0.21509 0.0961,0.44332 0.1334,0.66696 0.0856,0.51347 -0.14997,0.36702 0.13339,0.93374 0.0562,0.11249 0.22007,0.15001 0.26678,0.26678 0.22103,0.55257 -0.12519,1.77512 0,2.40105 0.0195,0.0975 0.10195,0.17246 0.13339,0.26678 0.0667,0.20009 -0.13339,0.13339 0,0.40018 0.0199,0.0398 0.10195,-0.0314 0.13339,0 0.006,0.006 -0.005,1.59553 0.13339,1.73408 0.0629,0.0629 0.20391,-0.0629 0.26679,0 0.0629,0.0629 0,0.17786 0,0.26679 0,0.60088 0.13339,0.82208 0.13339,1.4673 -0.0445,0.26678 -0.10648,0.53123 -0.13339,0.80035 -0.0273,0.27275 -0.12591,1.0821 0,1.33392 0.0199,0.0398 0.10195,-0.0314 0.13339,0 0.0805,0.0805 0.015,1.12529 0,1.20052 -0.0195,0.0975 -0.11933,0.16836 -0.13339,0.26678 -0.0566,0.39613 -0.10415,2.11784 0,2.53444 0.17557,0.70229 0.13339,0.093 0.13339,0.80035 0,1.0299 0.0668,1.93449 0.26678,2.93461 0.008,0.0414 -0.0292,0.38557 0,0.40018 0.0795,0.0398 0.2039,-0.0629 0.26678,0 0.19282,0.19281 -0.23495,3.39843 0,3.86835 0.0281,0.0562 0.11814,0.0724 0.1334,0.13339 0.0819,0.32761 0.1395,1.67656 0.26678,1.86748 0.0551,0.0827 0.21163,0.0507 0.26678,0.13339 0.0987,0.14799 -0.0349,0.35917 0,0.53357 0.11656,0.58281 0.28666,1.16653 0.40018,1.73409 0.0262,0.1308 -0.0495,0.27632 0,0.40017 0.0467,0.11677 0.22007,0.15002 0.26678,0.26678 0.0713,0.17824 -0.13248,0.80126 0,0.93374 0.0314,0.0314 0.12261,-0.0431 0.13339,0 0.26678,1.06714 -0.13339,0.1334 0,0.80035 0.0663,0.33145 0.18807,0.61891 0.26678,0.93374 0.0494,0.19762 -0.0741,0.48169 0,0.66696 0.0467,0.11677 0.22263,0.14903 0.26679,0.26678 0.30176,0.8047 0.11584,1.64635 0.26678,2.40105 0.0123,0.0617 0.11351,0.0737 0.13339,0.13339 0.14821,0.44464 -0.22232,0.11116 0,0.66696 0.0467,0.11677 0.22701,0.14747 0.26678,0.26678 0.24706,0.74116 0.007,0.96964 0.13339,1.6007 0.0195,0.0975 0.10196,0.17246 0.1334,0.26678 0.0667,0.20009 -0.1334,0.13339 0,0.40018 0.0199,0.0398 0.10195,-0.0315 0.13339,0 0.10103,0.10102 -0.0771,0.55131 0,0.66695 0.0551,0.0827 0.21163,0.0507 0.26678,0.13339 0.12703,0.19055 -0.10364,0.59306 0,0.80035 0.0281,0.0563 0.11351,0.0737 0.13339,0.13339 0.14691,0.44073 0,1.26809 0,1.73409 0,1.60759 -0.18149,3.36105 0.13339,4.93549 0.036,0.17977 0.0889,0.35571 0.1334,0.53356 0.0889,0.17786 0.21855,0.34066 0.26678,0.53357 0.097,0.38822 -0.0398,0.80233 0,1.20052 0.0801,0.80121 0.32703,1.5965 0.40017,2.40105 0.0201,0.2214 -0.0539,0.45127 0,0.66696 0.0389,0.15553 0.22274,0.24602 0.26679,0.40017 0.10501,0.36754 -0.0753,0.82431 0,1.20052 0.0195,0.0975 0.11933,0.16836 0.13339,0.26679 0.0389,0.27247 -0.13284,1.06825 0,1.33391 0.0281,0.0562 0.12106,0.0717 0.13339,0.13339 0.23087,1.15435 -0.23087,2.44722 0,3.60157 0.0123,0.0617 0.1135,0.0737 0.13339,0.13339 0.0844,0.25309 -0.0523,0.53875 0,0.80035 0.0551,0.27575 0.20578,0.52583 0.26678,0.80035 0.0741,0.33348 -0.0494,0.37053 0,0.66696 0.10375,0.6225 0.19675,1.23713 0.26679,1.86748 0.0297,0.26722 0.0985,1.91358 0.13339,2.00087 0.0689,0.17221 0.35136,0.6051 0.40017,0.80035 0.18149,0.72595 0.10382,1.50714 0.26678,2.26765 0.0589,0.27497 0.21164,0.5246 0.26679,0.80035 0.10375,0.51875 -0.0778,0.46687 0,0.93374 0.0957,0.57445 0.16014,1.14757 0.26678,1.73409 0.35547,1.95506 -0.13643,-0.13947 0.40017,0.93374 0.0398,0.0795 -0.0216,0.18051 0,0.26678 0.0774,0.30968 0.13876,0.6777 0.26679,0.93374 0.15262,0.30525 0.0618,0.74499 0.13339,1.06714 0.25362,1.14129 0.65796,2.24365 1.06713,3.33478 0.0312,0.0833 -0.0629,0.2039 0,0.26679 0.0314,0.0314 0.11933,-0.0422 0.13339,0 0.0453,0.13602 0.11314,1.04688 0.13339,1.06713 0.0629,0.0629 0.2039,-0.0629 0.26679,0 0.0629,0.0629 0,0.17785 0,0.26678 0,0.22232 -0.0246,0.446 0,0.66696 0.15885,1.4297 0.0507,-0.0641 0.26678,0.80035 0.072,0.28801 -0.0486,0.64192 0,0.93374 0.0777,0.46621 0.23819,0.44779 0.40017,0.93374 0.53276,1.59827 -0.0862,-0.0308 0.1334,1.06713 0.24131,1.20657 0.0126,-0.36232 0.26678,0.40017 0.0591,0.17728 -0.0847,0.49759 0,0.66696 0.0449,0.0898 0.3669,0.50058 0.40017,0.66696 0.0683,0.34156 0.032,0.62065 0.26679,0.93374 0.0596,0.0795 0.22985,0.0411 0.26678,0.13339 0.0661,0.16513 -0.0562,0.36484 0,0.53356 0.10982,0.32946 0.50066,0.49548 0.66696,0.80035 0.16215,0.29728 0.23572,0.63773 0.40017,0.93374 0.36192,0.65146 0.19091,-0.0942 0.40017,0.53357 0.10829,0.32486 0.0651,0.99239 0.1334,1.33391 0.0123,0.0617 0.11814,0.0724 0.13339,0.13339 0.0324,0.12941 -0.0495,0.27633 0,0.40018 0.0467,0.11677 0.23223,0.14586 0.26678,0.26678 0.0611,0.21377 -0.0245,0.446 0,0.66696 0.0428,0.38484 0.22402,0.81568 0.26678,1.20052 0.0196,0.17677 -0.0624,0.36704 0,0.53357 0.0781,0.20816 0.2858,0.34293 0.40018,0.53356 0.0632,0.10536 0.2126,1.14429 0.26678,1.33392 0.17876,0.62565 0.0953,0.22232 0.40017,0.93374 0.16676,0.3891 0.061,0.83009 0.26679,1.20052 0.13826,0.24888 0.41575,0.40777 0.53356,0.66696 0.1026,0.22572 0.17452,1.28778 0.26679,1.33391 0.0795,0.0398 0.18724,-0.0398 0.26678,0 0.0398,0.0199 -0.0108,0.0903 0,0.1334 0.0341,0.1364 0.0812,0.26962 0.13339,0.40017 0.27419,0.68547 -0.0188,-0.30434 0.53357,0.80035 0.10139,0.20278 -0.0269,0.50664 0.13339,0.66696 0.0754,0.0754 0.4342,0.16741 0.53356,0.26678 0.27093,0.27092 0.2027,0.63752 0.40018,0.93374 0.0889,0.13339 0.28681,0.15342 0.40017,0.26678 0.11336,0.11336 0.19509,0.25678 0.26679,0.40018 0.0199,0.0398 -0.0398,0.1135 0,0.13339 0.0795,0.0398 0.19279,-0.0493 0.26678,0 0.26304,0.17536 0.56391,1.58375 0.80035,1.86748 0.14232,0.17079 0.41024,0.21519 0.53356,0.40017 0.074,0.11099 -0.0468,0.27528 0,0.40018 0.99604,2.6561 -0.13299,-0.62184 0.80035,0.93374 0.0686,0.11438 -0.0495,0.27632 0,0.40017 0.13046,0.32614 0.58894,0.41023 0.66696,0.80035 0.0711,0.35548 0.0501,0.8755 0.26678,1.20052 0.0889,0.13339 0.28682,0.15343 0.40018,0.26679 0.1406,0.1406 0.15648,0.36811 0.26678,0.53356 0.15793,0.23689 0.44353,0.39686 0.53356,0.66696 0.0717,0.21509 0.032,0.46417 0.1334,0.66696 0.12732,0.25465 0.3953,0.41807 0.53356,0.66695 0.6982,1.25676 -0.5089,-0.20558 0.40018,1.06714 0.10964,0.1535 0.30019,0.2402 0.40017,0.40017 0.38165,0.61065 0.41073,1.36029 0.66696,2.00087 0.13313,0.33284 0.4202,0.59366 0.53356,0.93374 0.13384,0.4015 -0.10307,0.92161 0,1.33392 0.0826,0.33048 0.30505,0.60078 0.40018,0.93374 0.0611,0.21376 -0.0826,0.46054 0,0.66695 0.0595,0.14885 0.19509,0.25679 0.26678,0.40018 0.0398,0.0795 -0.0398,0.18724 0,0.26678 0.20457,0.40914 0.49694,0.90887 0.66696,1.33392 0.0681,0.17021 0.0391,0.37636 0.13339,0.53356 0.0511,0.0853 0.21563,0.0481 0.26678,0.13339 0.23785,0.39642 0.0739,0.65068 0.13339,1.06713 0.1231,0.86171 0.8007,2.00158 1.20053,2.80123 0.064,0.12802 -0.0427,0.40546 0,0.53356 0.0199,0.0597 0.12106,0.0717 0.13339,0.13339 0.081,0.40501 0.0529,0.79819 0.13339,1.20053 0.0704,0.35186 0.47464,0.58017 0.53357,0.93374 0.0292,0.17543 -0.0608,0.36641 0,0.53356 0.1225,0.3369 0.38797,0.60616 0.53356,0.93374 0.0361,0.0813 -0.0281,0.18242 0,0.26678 0.0535,0.16038 0.32994,0.55459 0.40018,0.66696 0.16993,0.2719 0.39017,0.51357 0.53356,0.80035 0.0199,0.0398 0,0.0889 0,0.13339 0.0445,0.13339 0.049,0.28769 0.13339,0.40018 0.0597,0.0795 0.19648,0.0631 0.26679,0.13339 0.11694,0.11695 -0.0389,0.64472 0,0.80035 0.0739,0.29568 0.19323,1.74489 0.26678,1.86748 0.0825,0.13747 0.30002,0.14159 0.40017,0.26678 0.18862,0.23577 -4.9e-4,0.53357 0.26679,0.53357 0.28532,0.24255 -0.0116,3.1898 0.13339,3.33478 0.0629,0.0629 0.2039,-0.0629 0.26678,0 0.058,0.058 -0.0314,1.5773 0,1.73409 0.0195,0.0975 0.11389,0.16929 0.13339,0.26678 0.061,0.30521 -0.044,0.62563 0,0.93374 0.0199,0.1392 0.11028,0.26148 0.13339,0.40018 0.0245,0.14691 0.0711,1.13824 0.1334,1.20052 0.0703,0.0703 0.22985,0.0411 0.26678,0.13339 0.066,0.16514 -0.0431,0.36102 0,0.53357 0.0482,0.19291 0.2039,0.34492 0.26678,0.53356 0.0878,0.26345 0.0245,1.11617 0.13339,1.33392 0.0445,0.0889 0.19648,0.0631 0.26679,0.13339 0.16153,0.16154 -0.0926,0.57439 0.13339,0.80035 0.15817,0.5536 0.27556,1.08469 0.53356,1.6007 0.16288,0.32576 0.4857,0.63163 0.66696,0.93374 0.0915,0.15251 -0.0431,0.36102 0,0.53356 0.0305,0.12201 0.19702,0.16215 0.26678,0.26679 0.0551,0.0827 0.10195,0.17246 0.13339,0.26678 0.0141,0.0422 -0.0398,0.11351 0,0.13339 0.0795,0.0398 0.18725,-0.0398 0.26679,0 0.15908,0.0795 -0.0292,0.35813 0,0.53357 0.0925,0.55514 0.12164,0.23152 0.26678,0.66695 0.0281,0.0844 -0.0398,0.18725 0,0.26679 0.0281,0.0562 0.11351,0.0737 0.13339,0.13339 0.0934,0.28012 -0.0934,0.65362 0,0.93374 0.0121,0.0362 0.64863,1.30947 0.66696,1.33391 0.2437,0.32494 0.24665,-0.0403 0.40017,0.26679 0.0711,0.14228 -0.0711,0.39128 0,0.53356 0.0969,0.19375 0.20529,0.28756 0.26679,0.53357 0.0216,0.0863 -0.0493,0.19279 0,0.26678 0.0552,0.0827 0.21163,0.0507 0.26678,0.13339 0.11356,0.17034 0.0836,1.70183 0.13339,2.00087 -0.44889,0.50498 0.20871,0.43466 0.26678,0.66696 0.0324,0.12941 -0.074,0.28919 0,0.40017 0.0493,0.074 0.18725,-0.0398 0.26679,0 0.0265,0.0132 0.11018,0.57415 0.13339,0.66696 0.0152,0.061 0.10527,0.0771 0.13339,0.13339 0.13339,0.26679 0.2894,0.52341 0.40017,0.80035 0.3077,0.76924 0.0462,0.45702 0.1334,1.06713 0.0993,0.69543 0.5135,1.42718 0.80034,2.00088 0.24237,0.48472 -0.0261,1.12231 0.1334,1.60069 0.0629,0.18865 0.19293,0.34894 0.26678,0.53357 0.0741,0.18536 -0.089,0.48905 0,0.66696 0.0281,0.0562 0.11814,0.0724 0.13339,0.13339 0.0799,0.31976 0.0943,3.35793 0,3.73496 -0.0153,0.061 -0.12106,0.0717 -0.13339,0.13339 -0.26678,1.33391 0.13339,0 0,0.80035 -0.1526,0.91561 -0.25146,1.99009 -0.13339,2.93461 0.10754,0.86035 0.82506,1.38333 1.20052,2.13426 0.12921,0.25843 -0.19573,1.0048 0,1.20053 0.0629,0.0629 0.18724,-0.0398 0.26678,0 0.0693,0.0347 0.35586,3.16858 0.40018,3.33478 0.14491,0.54344 0.35571,1.06714 0.53356,1.6007 0.0579,0.17365 0.0666,0.7001 0.13339,0.80035 0.0698,0.10464 0.19703,0.16214 0.26679,0.26678 0.0911,0.13671 0.0897,1.249 0.13339,1.46731 0.0359,0.17977 0.0653,0.36335 0.13339,0.53356 0.0233,0.0584 0.12305,0.0714 0.13339,0.1334 0.0366,0.21929 -0.0703,0.45604 0,0.66695 0.0314,0.0943 0.22232,0.0445 0.26678,0.13339 0.0597,0.11931 -0.0219,0.2686 0,0.40018 0.0532,0.3193 0.17786,0.62249 0.26679,0.93374 0.10718,0.37513 0.48134,0.7016 0.53356,1.06713 0.0377,0.2641 -0.0844,0.54726 0,0.80035 0.14664,0.4399 0.044,0.75343 0.1334,1.20052 0.0195,0.0975 0.11933,0.16836 0.13339,0.26679 0.0503,0.35213 -0.13211,0.73686 0,1.06713 0.0467,0.11677 0.22007,0.15001 0.26678,0.26678 0.0495,0.12385 -0.0289,0.26996 0,0.40017 0.10998,0.4949 0.22692,0.99087 0.40017,1.46731 0.10194,0.28032 0.27675,0.52881 0.40018,0.80035 0.0991,0.21798 0.13396,0.46773 0.26678,0.66696 0.0551,0.0827 0.19648,0.0631 0.26678,0.13339 0.0703,0.0703 0.0631,0.19648 0.1334,0.26678 0.0314,0.0314 0.10195,-0.0314 0.13339,0 0.27599,0.27599 -0.42175,-0.0108 0.13339,0.26678 0.12576,0.0629 0.30075,0.034 0.40017,0.1334 0.12577,0.12576 -0.0349,0.35916 0,0.53356 0.0905,0.45243 0.3711,0.66097 0.53357,1.06713 0.11677,0.29192 0.034,0.63547 0.13339,0.93374 0.0199,0.0597 0.12106,0.0717 0.13339,0.13339 0.004,0.0214 0.13223,1.19995 0.13339,1.20053 0.0795,0.0398 0.22103,-0.0763 0.26679,0 0.31615,0.52692 0.18302,1.45799 0.40017,2.00087 0.50142,1.25355 4.6e-4,-0.53265 0.66696,0.80035 0.0597,0.11931 -0.0495,0.27632 0,0.40017 0.0467,0.11677 0.22007,0.15002 0.26678,0.26679 0.065,0.16252 -0.0216,0.93758 0,1.06713 0.0163,0.0981 0.11389,0.16929 0.13339,0.26678 0.11939,0.59695 0.0332,1.26646 0.13339,1.86748 0.10656,0.63932 0.17621,0.52862 0.40018,1.20052 0.1348,0.4044 0.13198,0.79613 0.26678,1.20053 0.10275,0.30826 0.23675,-0.0601 0.40017,0.26678 0.055,0.11007 0.0969,0.9213 0.1334,1.06713 0.26341,1.05367 0.90199,2.02314 1.20052,3.068 0.0859,0.30048 -0.13796,0.79121 0,1.06714 0.19644,0.39288 0.0553,0.73208 0.13339,1.20052 0.0163,0.0981 0.0889,0.17785 0.13339,0.26678 0.0445,0.22232 0.10527,0.44199 0.13339,0.66696 0.0276,0.2206 -0.11438,0.47632 0,0.66696 0.0147,0.0244 0.49984,0.59798 0.53357,0.80035 0.0669,0.40128 -0.0198,0.95095 0.13339,1.33391 0.0595,0.14885 0.20724,0.25132 0.26678,0.40017 0.0661,0.16514 -0.0349,0.35917 0,0.53357 0.0889,0.44462 0.14048,0.89184 0.26679,1.33392 0.39366,1.37781 -0.26769,-1.06955 0.53356,1.06713 0.11,0.29331 0.0712,0.75621 0.13339,1.06713 0.0333,0.16638 0.35528,0.57716 0.40018,0.66696 0.0583,0.11661 -0.0282,0.42092 0,0.53356 0.0428,0.17138 0.2343,1.013 0.26678,1.06713 0.0971,0.16176 0.28699,0.24926 0.40018,0.40018 0.10168,0.13557 0.074,0.48876 0.13339,0.66695 0.1784,0.53521 0.55265,1.51364 0.80035,1.86749 0.0806,0.11518 0.28318,0.0554 0.40017,0.13339 0.074,0.0493 0,0.17785 0,0.26678 0,0.2822 0.18179,1.3457 0.26678,1.6007 0.0482,0.1445 1.46094,2.66018 1.46731,2.66783 0.0636,0.0764 0.19648,0.0631 0.26678,0.13339 0.12964,0.12963 0.0653,0.36335 0.13339,0.53356 0.0889,0.22232 0.13397,0.46773 0.26679,0.66696 0.10464,0.15696 0.29553,0.24321 0.40017,0.40018 0.078,0.11699 0.034,0.30075 0.13339,0.40017 0.30422,0.30421 0.87172,0.13651 1.06713,0.26678 0.10005,0.0667 -0.05,0.30013 0,0.40018 0.14014,0.28027 0.2642,-0.003 0.40018,0.13339 0.0314,0.0314 -0.0267,0.0978 0,0.13339 0.18864,0.25153 0.49255,0.40535 0.66696,0.66696 0.13715,0.20573 0.32975,0.72993 0.53356,0.93374 0.0994,0.0994 0.29342,0.0419 0.40018,0.13339 0.23871,0.20461 0.41543,0.47831 0.66695,0.66696 0.11249,0.0844 0.2781,0.0636 0.40018,0.13339 0.24719,0.14125 0.4123,0.40624 0.66695,0.53356 0.12577,0.0629 0.29038,0.0456 0.40018,0.13339 0.12519,0.10015 0.15342,0.28682 0.26678,0.40018 0.11336,0.11336 0.28682,0.15342 0.40018,0.26678 0.24556,0.24556 0.35634,0.64505 0.66695,0.80035 0.0398,0.0199 0.10195,-0.0314 0.1334,0 0.0703,0.0703 0.0507,0.21163 0.13339,0.26678 0.074,0.0493 0.18724,-0.0398 0.26678,0 0.28121,0.14061 0.44464,0.44464 0.66696,0.66696 0.0889,0.0889 0.19702,0.16214 0.26678,0.26678 0.0474,0.0711 0.0834,0.50855 0.13339,0.53357 0.0795,0.0398 0.21343,-0.0711 0.26678,0 0.025,0.0333 0.59738,1.69353 0.66696,1.86748 0.10754,0.26886 -0.0919,0.65806 0,0.93374 0.0199,0.0597 0.11814,0.0724 0.13339,0.13339 0.0455,0.18193 0.22204,2.49054 0.13339,2.66783 -0.1514,0.30282 -0.41491,0.61734 -0.53356,0.93374 -0.0796,0.21229 -0.0441,0.45857 -0.13339,0.66696 -0.0743,0.17339 -0.23145,0.31581 -0.40018,0.40017 -0.0398,0.0199 -0.1135,-0.0398 -0.13339,0 -0.0688,0.13766 -0.0507,0.35883 -0.13339,0.40018 -0.0489,0.0244 -0.47745,-0.0561 -0.53357,0 -0.0314,0.0314 0.0422,0.11933 0,0.13339 -0.27621,0.0921 -0.53759,0.0283 -0.80034,0.13339 -0.14885,0.0595 -0.25679,0.19509 -0.40018,0.26678 -0.0795,0.0398 -0.2039,-0.0629 -0.26678,0 -0.0314,0.0314 0.0422,0.11933 0,0.13339 -0.73614,0.24538 -0.27477,-0.35038 -1.20053,0.26679 -0.0827,0.0552 -0.0631,0.19648 -0.13339,0.26678 -0.26029,0.2603 -0.6265,0.0719 -0.93374,0.13339 -0.62351,0.1247 -0.76833,0.52556 -1.33391,0.66696 -0.12941,0.0323 -0.2686,-0.0219 -0.40018,0 -0.36166,0.0603 -0.7033,0.2213 -1.06713,0.26678 -0.17648,0.0221 -0.36255,-0.0489 -0.53356,0 -0.15415,0.044 -0.25282,0.20363 -0.40018,0.26678 -0.46717,0.20022 -0.75025,0.0433 -1.20052,0.1334 -0.61091,0.12218 -1.13403,0.33354 -1.73409,0.53356 -0.57131,0.19044 -2.63644,-0.0635 -3.33479,0 -0.14003,0.0127 -0.26229,0.10582 -0.40017,0.13339 -0.46828,0.0937 -1.62606,0.0937 -2.00087,0 -0.28326,-0.0708 -0.37879,-0.35214 -0.66696,-0.40017 -0.30701,-0.0512 -0.62673,0.0512 -0.93374,0 -0.13869,-0.0231 -0.26098,-0.11351 -0.40017,-0.13339 -0.56344,-0.0805 -1.51911,0.19271 -2.00088,0 -0.18462,-0.0738 -0.33945,-0.22365 -0.53356,-0.26679 -0.21703,-0.0482 -0.44529,0.0171 -0.66696,0 -0.81923,-0.063 -1.57972,-0.13339 -2.40105,-0.13339 -0.33976,0 -0.7366,0.0661 -1.06713,0 -0.80756,-0.16151 -0.0553,-0.13339 -0.66695,-0.13339 -0.33055,0 -1.59788,-0.0426 -1.73409,-0.13339 -0.67099,-0.44733 0.53734,-0.1207 -0.13339,-0.40017 -0.61797,-0.25749 -1.50369,-0.54812 -2.13427,-0.80035 -0.57846,-0.23139 -0.53013,0.003 -1.06713,-0.40018 -0.0356,-0.0267 0.0398,-0.1135 0,-0.13339 -0.16397,-0.082 -0.36959,-0.0514 -0.53357,-0.13339 -0.0398,-0.0199 0.0398,-0.11351 0,-0.13339 -0.0795,-0.0398 -0.19279,0.0493 -0.26678,0 -0.0827,-0.0552 -0.0539,-0.20713 -0.13339,-0.26678 -0.11249,-0.0844 -0.28318,-0.0554 -0.40017,-0.1334 -0.0454,-0.0302 -0.0898,-0.2232 -0.1334,-0.26678 -0.1572,-0.1572 -0.45099,-0.19376 -0.53356,-0.40017 -0.0681,-0.17022 -0.0317,-0.38103 -0.13339,-0.53357 0.11484,-0.79841 -0.39296,-0.12618 -0.53357,-0.26678 -0.086,-0.086 -0.0886,-0.26572 -0.13339,-0.40018 -0.0703,-0.21091 -0.39124,-0.22938 -0.53357,-0.40017 -0.1273,-0.15276 -0.14256,-0.37829 -0.26678,-0.53357 -0.0621,-0.0776 -0.21163,-0.0507 -0.26678,-0.13339 -0.0493,-0.074 0.0398,-0.18724 0,-0.26678 -0.0199,-0.0398 -0.11351,0.0398 -0.13339,0 -0.0398,-0.0795 0.033,-0.18422 0,-0.26678 -0.65214,-1.63034 0.16303,0.78552 -0.66696,-0.66696 -0.11249,-0.19685 -0.0617,-0.45187 -0.13339,-0.66696 -0.0597,-0.17896 -0.29554,-0.24321 -0.40018,-0.40017 -0.12292,-0.18438 0.0997,-0.60102 0,-0.80035 -0.11546,-0.23093 -0.21132,-0.52306 -0.26678,-0.80035 -0.0436,-0.218 0.0703,-0.45605 0,-0.66696 -0.0199,-0.0597 -0.11351,-0.0737 -0.13339,-0.13339 -0.10671,-0.32014 0.10671,-0.74699 0,-1.06713 -0.0398,-0.11931 -0.21054,-0.1543 -0.26678,-0.26678 -0.12082,-0.24165 -0.0692,-0.67705 -0.13339,-0.93374 -0.0153,-0.061 -0.11351,-0.0737 -0.1334,-0.1334 -0.0667,-0.20008 0.0667,-0.46687 0,-0.66695 -0.15553,-0.4666 -0.13324,-0.39995 -0.40017,-0.80035 -0.11326,-0.16989 0.0356,-0.58688 0,-0.80035 -0.0373,-0.22364 0.0269,-0.50664 -0.13339,-0.66696 -0.0314,-0.0314 -0.11933,0.0422 -0.13339,0 -0.0984,-0.29527 0.0512,-0.62673 0,-0.93374 -0.0164,-0.0981 -0.10195,-0.17246 -0.1334,-0.26678 -0.13339,-0.40017 0.1334,-0.93374 0,-1.33391 -0.0314,-0.0943 -0.22231,-0.0445 -0.26678,-0.1334 -0.13919,-0.27838 0.044,-0.62562 0,-0.93374 -0.0199,-0.13919 -0.11027,-0.26148 -0.13339,-0.40017 -0.0292,-0.17544 0.0795,-0.37449 0,-0.53357 -0.0281,-0.0562 -0.11351,-0.0737 -0.13339,-0.13339 -0.10671,-0.32014 0.10671,-0.74699 0,-1.06713 -0.20009,-0.60026 -0.13339,0.13339 -0.40018,-0.80035 -0.0718,-0.2514 0.0632,-0.54754 0,-0.80035 -0.0611,-0.24424 -0.2872,-1.48773 -0.40017,-1.60069 -0.0629,-0.0629 -0.21745,0.074 -0.26678,0 -0.0418,-0.0626 -0.28011,-1.96749 -0.40018,-2.26766 -0.0595,-0.14885 -0.19508,-0.25678 -0.26678,-0.40017 -0.13541,-0.27083 0.0234,-1.02037 -0.13339,-1.33392 -0.0199,-0.0398 -0.10195,0.0314 -0.13339,0 -0.0994,-0.0994 -0.0456,-0.29038 -0.13339,-0.40017 -0.11785,-0.14731 -0.31581,-0.23145 -0.40018,-0.40018 -0.10139,-0.20278 -0.0711,-0.44896 -0.13339,-0.66695 -0.0985,-0.34469 -0.39235,-0.60425 -0.53357,-0.93374 -0.035,-0.0817 0.0398,-0.18725 0,-0.26679 -0.0562,-0.11248 -0.20438,-0.15759 -0.26678,-0.26678 -0.30667,-0.53667 -0.25828,-0.64144 -0.40017,-1.06713 -0.0507,-0.15209 -0.13339,-0.31125 -0.26679,-0.40018 -0.074,-0.0493 -0.2039,0.0629 -0.26678,0 -0.0629,-0.0629 0.0281,-0.18242 0,-0.26678 -0.11948,-0.35846 -0.6316,-0.59625 -0.80035,-0.93374 -0.0629,-0.12576 -0.0554,-0.28318 -0.13339,-0.40017 -0.0247,-0.037 -0.10195,0.0314 -0.13339,0 -0.0314,-0.0314 0,-0.0889 0,-0.1334 -0.13339,-0.0445 -0.30075,-0.034 -0.40017,-0.13339 -0.0994,-0.0994 -0.0236,-0.31233 -0.1334,-0.40017 -0.2178,-0.17424 -0.84467,-0.17772 -1.06713,-0.40018 -0.0629,-0.0629 0.0493,-0.19279 0,-0.26678 -0.009,-0.0132 -1.26192,-0.89774 -1.33391,-0.93374 -0.0795,-0.0398 -0.18242,0.0281 -0.26679,0 -0.17896,-0.0597 -0.22502,-0.33011 -0.40017,-0.40017 -0.12385,-0.0495 -0.2686,0.0219 -0.40017,0 -1.01081,-0.16847 -0.0543,-0.0272 -0.53357,-0.26679 -0.11931,-0.0597 -0.27077,0.0324 -0.40017,0 -0.25897,-0.0647 -0.42788,-0.30454 -0.66696,-0.40017 -0.0826,-0.033 -0.17786,0 -0.26678,0 -0.1334,-0.0445 -0.27442,-0.0705 -0.40018,-0.13339 -0.40678,-0.20339 0.24397,-0.10575 -0.40017,-0.26678 -0.18464,-0.0462 -0.4906,0.0705 -0.66696,0 -0.14885,-0.0595 -0.24465,-0.22791 -0.40018,-0.26679 -0.31995,-0.08 -1.13494,0.0328 -1.4673,-0.13339 -0.27886,-0.13943 -0.0259,-0.31852 -0.13339,-0.53356 -0.0563,-0.11249 -0.20208,-0.15895 -0.26679,-0.26679 -0.21749,-0.36249 -0.19064,-0.68642 -0.26678,-1.06713 -0.0333,-0.16638 -0.35528,-0.57716 -0.40017,-0.66696 -0.093,-0.18598 -0.0825,-1.47961 -0.13339,-1.73409 -0.32235,-1.61171 -0.1334,-3.41021 -0.1334,-5.06887 0,-0.5646 -0.10801,-4.31929 0,-4.53531 0.0563,-0.11249 0.17786,-0.17786 0.26679,-0.26678 0,-0.13339 -0.0422,-0.27363 0,-0.40018 0.0314,-0.0943 0.24267,-0.0369 0.26678,-0.13339 0.0431,-0.17254 -0.0292,-0.35813 0,-0.53357 0.0639,-0.38345 0.53873,-0.61318 0.66696,-0.93374 0.0681,-0.17021 0.0317,-0.38102 0.13339,-0.53356 0.0889,-0.13339 0.31769,-0.12931 0.40017,-0.26678 0.009,-0.0153 0.15695,-0.9573 0.26679,-1.06714 0.31124,-0.31124 0.26678,0.24456 0.26678,-0.13339 -0.20386,-1.77879 0.39934,-0.66528 0.80035,-1.4673 0.0287,-0.0574 0.26255,-0.9274 0.26678,-0.93374 0.0552,-0.0827 0.21163,-0.0507 0.26678,-0.13339 0.0493,-0.074 -0.0216,-0.18052 0,-0.26679 0.0907,-0.36268 0.34531,-0.68307 0.40018,-1.06713 0.0251,-0.17607 -0.0562,-0.36484 0,-0.53357 0.0597,-0.17896 0.35442,-0.21716 0.40017,-0.40017 0.0431,-0.17254 -0.0795,-0.37449 0,-0.53357 0.0445,-0.0889 0.23534,-0.0391 0.26679,-0.13339 0.0422,-0.12654 -0.0597,-0.28086 0,-0.40017 0.0445,-0.0889 0.21562,-0.0481 0.26678,-0.13339 0.46388,-0.77314 -0.0165,-0.27588 0.13339,-0.80035 0.19098,-0.66844 0.52933,-1.31275 0.66696,-2.00087 0.0174,-0.0872 -0.0398,-0.18725 0,-0.26679 0.0199,-0.0398 0.10872,0.037 0.13339,0 0.12576,-0.18864 0.008,-0.47831 0.13339,-0.66695 0.0551,-0.0827 0.19648,-0.0631 0.26678,-0.13339 0.11191,-0.11191 -0.0564,-0.49784 0,-0.66696 0.14322,-0.42965 0.0468,-0.76765 0.13339,-1.20053 0.0195,-0.0975 0.10196,-0.17246 0.1334,-0.26678 0.15235,-0.45706 0,-1.25837 0,-1.73409 0,-0.70563 0.36153,-2.11679 0.13339,-2.80122 -0.0943,-0.28296 -0.30586,-0.51738 -0.40018,-0.80035 -0.0717,-0.21508 -0.0682,-0.44979 -0.13339,-0.66695 -0.14005,-0.46684 -0.54171,-1.09158 -0.66696,-1.46731 -0.0422,-0.12655 0.0597,-0.28087 0,-0.40017 -0.15611,-0.31224 -0.15966,-0.47898 -0.26678,-0.80035 -0.13506,-0.40517 -0.54193,-0.82544 -0.66696,-1.20053 -0.0281,-0.0844 0.0629,-0.2039 0,-0.26678 -0.0629,-0.0629 -0.21745,0.074 -0.26678,0 -0.074,-0.11099 0.0597,-0.28086 0,-0.40017 -0.0445,-0.0889 -0.17785,-0.0889 -0.26678,-0.13339 0,-0.1334 0.0324,-0.27077 0,-0.40018 -0.052,-0.2079 -0.41385,-0.2206 -0.53357,-0.40017 -0.64267,-0.96402 -0.96804,-1.98563 -1.6007,-2.93462 0.32916,-0.40384 -0.36283,-0.22944 -0.40017,-0.26678 -0.0314,-0.0314 0.0236,-0.0957 0,-0.13339 -0.20272,-0.32435 -0.43746,-0.62775 -0.66696,-0.93374 -0.0597,-0.0795 -0.0631,-0.19648 -0.13339,-0.26678 -0.0314,-0.0314 -0.11933,0.0422 -0.13339,0 -0.0422,-0.12655 0.074,-0.28919 0,-0.40018 -0.12332,-0.18498 -0.40435,-0.21926 -0.53357,-0.40017 -0.10655,-0.14918 -0.0189,-0.39041 -0.13339,-0.53357 -0.0878,-0.10979 -0.30075,-0.034 -0.40017,-0.13339 -0.0669,-0.0669 -0.26159,-0.92509 -0.26678,-0.93374 -0.0512,-0.0852 -0.19648,-0.0631 -0.26679,-0.13339 -0.0314,-0.0314 0.0229,-0.0953 0,-0.13339 -0.11438,-0.19064 -0.25785,-0.36278 -0.40017,-0.53357 -0.0805,-0.0966 -0.22008,-0.15001 -0.26678,-0.26678 -0.0495,-0.12385 0.0495,-0.27632 0,-0.40018 -0.13009,-0.32521 -1.09915,-1.24854 -1.33392,-1.60069 -0.12553,-0.1883 -0.24184,-0.77541 -0.40017,-0.93374 -0.20764,-0.20764 -0.46813,-0.13507 -0.66696,-0.40018 -0.0851,-0.11342 -0.60458,-0.80899 -0.66696,-0.93374 -0.0398,-0.0795 0.0629,-0.2039 0,-0.26678 -0.0629,-0.0629 -0.2039,0.0629 -0.26678,0 -0.32207,-0.32207 -0.0319,-0.36232 -0.13339,-0.66696 -0.15512,-0.46535 -0.92801,-1.48596 -1.20053,-1.86748 -0.0982,-0.13749 -0.18105,-0.58123 -0.26678,-0.66696 -0.0314,-0.0314 -0.0889,0 -0.13339,0 -0.13339,-0.0889 -0.30398,-0.13852 -0.40017,-0.26678 -0.0534,-0.0711 0.0398,-0.18724 0,-0.26678 -0.2499,-0.4998 -0.89621,-0.87745 -1.20053,-1.33392 -0.5547,-0.83205 -0.12282,-0.51771 -0.40017,-0.93374 -0.12332,-0.18498 -0.29221,-0.33922 -0.40018,-0.53356 -0.11628,-0.20931 -0.13396,-0.46773 -0.26678,-0.66696 -0.24416,-0.36624 -0.71535,-0.55157 -0.93374,-0.93374 -0.11248,-0.19685 0.0269,-0.50664 -0.13339,-0.66696 -0.0314,-0.0314 -0.11351,0.0398 -0.13339,0 -0.0398,-0.0795 0.0398,-0.18724 0,-0.26678 -0.0269,-0.0538 -0.44753,-0.0947 -0.53357,-0.26678 -0.082,-0.16398 -0.004,-0.40393 -0.13339,-0.53357 -0.11336,-0.11336 -0.28681,-0.15342 -0.40017,-0.26678 -0.3786,-0.3786 -0.58825,-0.96108 -1.06714,-1.20052 -0.12576,-0.0629 -0.30075,-0.034 -0.40017,-0.1334 -0.14061,-0.1406 -0.13737,-0.38258 -0.26678,-0.53356 -0.28937,-0.3376 -0.73251,-0.50755 -1.06713,-0.80035 -0.33127,-0.28985 -0.5956,-0.65195 -0.93374,-0.93374 -0.12316,-0.10263 -0.28682,-0.15342 -0.40018,-0.26678 -0.11336,-0.11336 -0.13339,-0.31125 -0.26678,-0.40018 -0.5954,-0.39693 -0.46296,0.16476 -0.93374,-0.40017 -0.29307,-0.35168 -0.39229,-0.8343 -0.66696,-1.20053 -0.11319,-0.15091 -0.30312,-0.23841 -0.40017,-0.40017 -0.0458,-0.0763 0.0493,-0.19279 0,-0.26678 -0.0551,-0.0827 -0.21164,-0.0507 -0.26679,-0.13339 -0.0236,-0.0354 -0.13339,-0.55623 -0.13339,-0.66696 -0.0268,-0.52568 -0.95342,-1.1065 -1.20052,-1.6007 -0.0993,-0.1986 -0.0416,-0.44181 -0.26678,-0.66696 -0.11336,-0.11336 -0.28682,-0.15342 -0.40018,-0.26678 -0.0314,-0.0314 0.0314,-0.10195 0,-0.13339 -0.0314,-0.0314 -0.10195,0.0314 -0.13339,0 -0.13497,-0.13497 -0.18864,-0.53673 -0.26678,-0.66696 -0.18862,-0.31436 -0.32792,-0.17226 -0.40018,-0.53356 -0.0262,-0.1308 0.0422,-0.27363 0,-0.40018 -0.16153,-0.48459 -0.29071,-0.30268 -0.53356,-0.66695 -0.0247,-0.037 0.0314,-0.10196 0,-0.1334 -0.0314,-0.0314 -0.10195,0.0314 -0.13339,0 -0.065,-0.065 -0.099,-0.56389 -0.1334,-0.66695 -0.1283,-0.38492 -0.58737,-0.53585 -0.66695,-0.93374 -0.0262,-0.1308 0.0324,-0.27077 0,-0.40018 -0.0439,-0.1758 -0.32973,-0.14937 -0.40018,-0.26678 -0.16654,-0.27757 -0.14656,-0.63319 -0.26678,-0.93374 -0.18118,-0.45296 -0.42273,-1.06027 -0.66696,-1.46731 -0.0229,-0.0381 -0.10195,0.0314 -0.13339,0 -0.0314,-0.0314 0.0199,-0.0936 0,-0.13339 -0.11609,-0.23218 -0.47862,-0.52564 -0.53357,-0.80035 -0.14344,-0.7172 0.2295,-0.087 -0.13339,-0.93374 -0.0631,-0.14735 -0.19508,-0.25678 -0.26678,-0.40017 -1.08292,-2.16585 0.36403,0.58263 -0.40017,-1.20053 0.0739,-0.33036 -0.30075,-0.33471 -0.40018,-0.53356 -0.0199,-0.0398 0,-0.0889 0,-0.13339 -0.0445,-0.13339 -0.0554,-0.28318 -0.13339,-0.40018 -0.10464,-0.15696 -0.29053,-0.24667 -0.40017,-0.40017 -0.19683,-0.27555 -0.197,-0.66284 -0.40018,-0.93374 -0.2437,-0.32494 -0.24665,0.0403 -0.40017,-0.26678 -0.10174,-0.20348 -0.143,-0.61468 -0.26679,-0.80035 -0.31568,-0.47353 -0.95234,-0.83757 -1.20052,-1.33392 -0.082,-0.16397 -0.004,-0.40393 -0.13339,-0.53356 -0.0703,-0.0703 -0.21163,-0.0507 -0.26678,-0.13339 -0.0493,-0.074 0.0398,-0.18725 0,-0.26679 -0.0562,-0.11248 -0.22008,-0.15001 -0.26679,-0.26678 -0.0495,-0.12385 0.0324,-0.27077 0,-0.40018 -0.0457,-0.18301 -0.31581,-0.23144 -0.40017,-0.40017 -0.0597,-0.11931 0.0943,-0.30585 0,-0.40017 -0.0314,-0.0314 -0.10195,0.0314 -0.13339,0 -0.14124,-0.14124 -0.13924,-0.74243 -0.26678,-0.93374 -0.0698,-0.10464 -0.19703,-0.16215 -0.26679,-0.26679 -0.13247,-0.1987 -0.16798,-0.55333 -0.26678,-0.80035 -0.22806,-0.57015 -0.0145,0.045 -0.40017,-0.53356 -0.0493,-0.074 0.033,-0.18422 0,-0.26678 -0.2184,-0.54598 -0.4748,-0.7122 -0.80035,-1.20053 -0.53989,-0.80983 0.38399,0.41767 -0.26679,-0.66695 -0.18894,-0.3149 -0.55517,-0.59841 -0.66695,-0.93374 -0.009,-0.0269 0.0444,-0.48919 0,-0.53357 -0.0703,-0.0703 -0.22232,-0.0445 -0.26679,-0.13339 -0.0597,-0.11931 0.0324,-0.27077 0,-0.40018 -0.0153,-0.061 -0.10527,-0.0772 -0.13339,-0.13339 -0.064,-0.12798 0.007,-0.25183 -0.13339,-0.53356 -0.0199,-0.0398 0,-0.0889 0,-0.1334 -0.0445,-0.13339 -0.049,-0.28768 -0.13339,-0.40017 -0.0597,-0.0795 -0.21563,-0.0481 -0.26678,-0.13339 -0.227,-0.37833 -0.10363,-0.92603 -0.26679,-1.33392 -0.0369,-0.0923 -0.0889,-0.17785 -0.13339,-0.26678 -0.0889,-0.0889 -0.21054,-0.1543 -0.26678,-0.26678 -0.0719,-0.14388 0.0392,-0.51024 0,-0.66696 -0.13815,-0.55261 -0.32657,-1.14522 -0.40018,-1.73409 -0.0165,-0.13236 0.0597,-0.28086 0,-0.40017 -0.0445,-0.0889 -0.19648,-0.0631 -0.26678,-0.13339 -0.11946,-0.11947 0,-1.14792 0,-1.33392 0,-0.65558 -0.34704,-1.89349 -0.13339,-2.53444 0.22077,-0.6623