<<set $locType = 'Indoors'>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Lobby/' + random(1,3) + '.webp'>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<img @src="_tmpImg" height ="500rem" >
<br><br>
Strobe lights flash along the edge of the center stage, with lines of tables and chairs surrounding it so patrons can enjoy the shows. Along the back wall of the room are booths and private benches for lap dances away from prying eyes. Opposite that is a room-length [[bar|BBBar]] being worked by several bartenders.
<br><br>
Tucked in one corner is an <<link "ATM">><<addSecs 15>><<set $ATMReturnLoc = passage()>><<goto "BankATM">><</link>>.
<<if !$player.questTracker.some(obj => obj.idx == 'AmateurNight') and !($jobArr.some(job => job.employer === 'BBungalow' and job.title == 'Stripper'))>>
<br><br>
<b>You see a sign advertising Amateur Night with a $1000 prize every Tuesday starting at 8:00pm.</b>
<</if>>
<<if $drinkMsg != undefined>>
<br>
<<print $drinkMsg>>
<<unset $drinkMsg>>
<br>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if $barDrinks>>
<<set _tmpPassage = passage()>>
<<drinkActs $barDrinks _tmpPassage>>
<</if>>
<<getJobActions 'BBungalow'>>
<<if $gameDate.getDay() != 2 or $gameDate.getHours() < 18>>
<<if !$player.questTracker.some(obj => obj.idx == 'AmateurNight') >>
<div class="buttonContainer">
<<button 'Sign up for Amateur Night'>>
<<if $player.inhib < 85>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You could never do something like that!</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<elseif ($jobArr.some(job => job.employer === 'BBungalow' and job.title == 'Stripper'))>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You don\'t count as an amateur</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<if $player.presenting === 'Male' and $player.body.gender === 'Male'>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">This contest is for women only</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<addSecs 15>>
<<goto "AmateurSignUp">>
<</if>>
<</if>>
<</button>>
</div>
<</if>>
<</if>>
<div class="buttonContainer">
<<set $tmpDate = $player.phone.calendar.items.find(date => date.julianDate === $currJulianDate and (date.startTime.getTime() - $gameDate.getTime())/1000 <= 900 and date.location === passage())>>
<<if $tmpDate>>
<<if $tmpDate.label === 'AmateurNight'>>
<<button 'Go back stage for Amateur Night' "PreAMNight">>
<<cleanDate $player.phone.calendar.items.indexOf($tmpDate)>>
<<unset $tmpDate>>
<<addMins 5>>
<</button>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<button 'Watch the stage show' 'BBStageShow'>>
<<set $player.arousal += 10>>
<<addMins 5>>
<</button>>
<<button 'Get a lapdance' 'BBLapDance'>>
<<if $player.money >= 25>>
<<set $player.money -= 25>>
<<set $player.arousal += 2>>
<<set $lapDanceStart = $gameDate.getHours()*60 +$gameDate.getMinutes()>>
<<addMins 2>>
<<else>>
<<script>>
Dialog.setup("Cash only");
Dialog.wiki('<center><div class="badText">You need $25 in cash to pay for a lapdance</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button 'Go to the bar' "BBBar">>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<<button 'Leave the club' "RLDistrict">>
<<unset $barDrinks>>
<<addMins 1>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/RedLight/BBungalow/signup' + random(1,2) + '.webp'>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
<span id="repCont">
You approach the sign-up table where there's a clipboard with a pen attached. A scantily clad woman looks up at you and smiles as you bend over to read the clipboard, "More meat for the grinder! What stage name do you want to use?"
<<if $player.body.gender !== 'Female'>>
<br><br>
<div class="badText">
This is a club for female strippers. With your extra bits you won't be able to go fully nude, but that doesn't necessarily mean you won't win.
</div>
<</if>>
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Give a stage name">>
<<script>>
Dialog.setup('Enter your stripper stage name:');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if $userInput.length >= 0>><<set $player.stripperName = $userInput>><</if>><<postAMSignUp>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Change your mind" "BBungalow">>
<<addSecs 30>>
<</button>>
</div>
</div><<set $foodPassage to "BBBar">>
<<genNPCs 'BBBar'>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Bartender/' + random(1,4) + '.webp'>>
<img @src="_tmpImg" height="550rem" >
<br><br>
The bartender smiles at you "What can I get you?"
<br>
<<randomFlirt 'BBBar'>>
<<if $drinkMsg != undefined>>
<br>
<<print $drinkMsg>>
<<unset $drinkMsg>>
<br>
<</if>>
</center>
<<getCurrNPCs 'BBBar'>>
<hr>
<div id='actionsContainer'>
<<if $barDrinks>>
<<set _tmpPassage = passage()>>
<<drinkActs $barDrinks _tmpPassage>>
<<else>>
<div class="buttonContainer">
<<button "Order a drink" "drinkMenu">>
<<addSecs 10>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button 'Step back' "BBungalow">>
<<addSecs 10>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/RedLight/BBungalow/DressingRoom/' + random(1,4) + '.webp'>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<span id="repCont">
<img @src="_tmpImg" height ="600rem">
<br><br>
The backstage dressing room is a chaotic and noisy scene as various women get changed in, or out, of their stage outfit and gossip with each other.
<br><br>
A rack along one wall holds Amateur Night outfits for contestants who didn't come dressed for the part.
</span>
</center>
<hr>
<div id="actionsContainer">
<div button="buttonContainer">
<<button "Pick out an outfit">>
<<set _tmpFits = []>>
<<if $player.body.tits < 13>>
<<genFit 32>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 35>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 37>>
<<run _tmpFits.push($clothingObj)>>
<<else>>
<<genFit 555>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 540>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 531>>
<<run _tmpFits.push($clothingObj)>>
<</if>>
<<replace "#repCont">>
<b><font size="10em">Pick one to try on</font></b>
<div style="50%">
<div class="profileContainer">
[img[clothing|_tmpFits[0].image][AMNightSluttyFit][$tmpSku to _tmpFits[0].sku]]
[img[clothing|_tmpFits[1].image][AMNightSluttyFit][$tmpSku to _tmpFits[1].sku]]
[img[clothing|_tmpFits[2].image][AMNightSluttyFit][$tmpSku to _tmpFits[2].sku]]
</div>
</div>
<<if $player.inhib > 80>>
<br><br>
<div class="badText">You have to tell yourself to calm down as you look at the slutty outfits and again you feel the urge to turn and leave, but you set your jaw and force yourself to continue onward.</div>
<</if>>
<br><br>
<</replace>>
<<replace "#actionsContainer">><</replace>>
<</button>>
</div>
<div button="buttonContainer">
<<button "Keep what you have on">>
<<replace "#repCont">>
<<if $player.inhib > 80>>
<br><br>
You can feel your stomach tying itself into knots, but you steal your resolve to go through with this. It's far too late to back out now.
<</if>>
<br><br>
A short time later you hear over the loudspeaker, "And let's give a big round of applause to our next newbie, $player.stripperName!!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button 'Take the stage' "StartStripShow">>
<<set $isAmateurNight = true>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $preStripperFit = clone($player.outfit)>>
<<genFit $tmpSku>>
<<genClothing _args[1],_args[2]>>
<<unset $tmpSku>>
<<set $pickedFit = clone($player.outfit)>>
<<set $pickedFit.fit = $clothingObj.sku>>
<<set $forceFit = true>>
<<wearFit $pickedFit 'Auto'>>
<center>
<<getDressingClips>>
<br><br>
<<if $player.inhib > 80>>
<br><br>
You can feel your stomach tying itself into knots, but you steal your resolve to go through with this. It's far too late to back out now.
<</if>>
<br><br>
Just as you finish getting dressed you hear over the loudspeaker, "And let's give a big round of applause to our next newbie, $player.stripperName!!"
<br><br>
<b>It's time</b>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button 'Take the stage' "StartStripShow">>
<<set $isAmateurNight = true>>
<<addMins 2>>
<</button>>
</div>
</div><<unset $isAmateurNight>>
<<addMins 15>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/DressingRoom/' + random(1,4) + '.webp'>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<span id="repCont">
<img @src="_tmpImg" height ="600rem">
<br><br>
You mingle backstage with the other dancers until they call you all back out on stage to announce the winner.
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Line up on stage">>
<<addMins 5>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Contest/Lineup/' + random(1,6) + '.webp'>>
<<replace "#repCont">>
<img @src='_tmpImg' height='600rem'>
<br><br>
You and the other dancers line up on stage for the judging contest. The crowd votes by applauding the loudest when each dancer's name is called.
<br><br>
You step forward and wave when it's your turn and the crowd gives you a score of $stripperScore.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "And the winner is...">>
/* somehow decide the winner. */
<<if $stripperScore >= 11>>
<<set $player.mood = 100>>
<<set $player.money += 1000>>
<<set $jobOffer = true>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Contest/Winner/' + random(1,3) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height='600rem'>
<br><br>
<div class="goodText">You won!</div>
<br>
You step forward to accept your prize money and bask in the applause and appreciation from the crowd. You can't help but smile and feel flattered at winning.
<br><br>
After posing for a few photos you return backstage to get dressed in your normal clothes.
<</replace>>
<<else>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Contest/Loser/' + random(1,4) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height='600rem'>
<br><br>
<div class="badText">Not you</div>
<br>
You and the other girls clap as the winner steps forward to receive her prize.
<</replace>>
<</if>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Go backstage and get dressed">>
<<endStripShow>>
<<addMins 2>>
<<if $jobOffer>>
<<goto "MikeStripJobOffer">>
<<else>>
<<goto "BBungalow">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Stage/Show/Watch/' + random(1,3) + '.mp4'>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<br><br>
<<switch random(1,4)>>
<<case 1>>
Her body undulates like a snake, hips rolling and ass bouncing with each beat. Full breasts sway heavily, nipples hard and puckered in the cool air.
<<case 2>>
She spreads her legs wide, giving the audience a perfect view of her glistening pussy. Leaning back, she runs her hands over her curves, caressing every inch of smooth skin.
<<case 3>>
Dropping to all fours, she arches her back, presenting her dripping slit and tight asshole. Ass high in the air, she rocks back and forth, fingering herself shamelessly.
<<case 4>>
Standing tall, she thrusts her chest out proudly, squeezing her tits together. Pinching and tugging at her sensitive peaks, she moans softly, gyrating her hips to the beat of the music.
<</switch>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Stop watching" "BBungalow">>
<<addMins 1>>
<</button>>
</div>
</div><<set _timeUp = ($gameDate.getHours()*60 +$gameDate.getMinutes()) - $lapDanceStart >= 5>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/LapDance/Getting/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,3) + '.mp4'>>
<</if>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<br><br>
<<if !_timeUp>>
lap dance text here
<br><br>
stripper starts off clothed. You have to tip to get her to strip. Also needs an extra $10 for each 5 minute extension
<br><br>
tip over a certain amount and she'll let you touch her.
<<else>>
The song ends and your lapdance is over - do you want to extend it?
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if !_timeUp>>
<div class="buttonContainer">
<<button "Continue" "BBLapDance">>
<<set $player.arousal += 2>>
<<addMins 2>>
<</button>>
<<if $player.money >= 10>>
<<button "Give her a tip" "BBLapDance">>
<<set $player.money -= 10>>
<<addSecs 15>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Stop the dance" "BBungalow">>
<<addMins 1>>
<</button>>
</div>
<<else>>
<<if $player.money >= 10>>
<div class="buttonContainer">
<<button "Go another round" "BBLapDance">>
<<set $player.money -= 10>>
<<set $player.arousal += 2>>
<<set $lapDanceStart = $gameDate.getHours()*60 +$gameDate.getMinutes()>>
<<addMins 2>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "End the dance" "BBungalow">>
<<addMins 1>>
<</button>>
</div>
<</if>>
</div><<widget "postAMSignUp">>
<<script>>Dialog.close()<</script>>
<<replace "#repCont">>
<div class="goodText">You've signed up for the next Amateur Night contest as $player.stripperName!</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button 'Continue' "BBungalow">>
<<run $player.statBuffs.femBuff += 1>>
<<addSecs 5>>
<<set _tmpStartTime = clone($gameDate)>>
<<set _mins2Event = (20 - ($gameDate.getHours()+1))*60 + (60-$gameDate.getMinutes())>>
<<if $gameDate.getDay() > 2>>
<<set _tmpTicker = (7 - $gameDate.getDay())+2>>
<<else>>
<<set _tmpTicker = (2 - $gameDate.getDay())>>
<</if>>
<<run _tmpStartTime.setUTCMinutes(_tmpStartTime.getUTCMinutes() + _tmpTicker*24*60 + _mins2Event)>>
<<set _tmpEndTime = clone(_tmpStartTime)>>
<<run _tmpEndTime.setUTCMinutes(_tmpStartTime.getUTCMinutes() + 15)>>
<<set _tmpNPC = $npc_7>>
<<set _tmpEvent = new DateObject(
_dateType = 'AmateurNight',
_lable = 'AmateurNight',
_npc = _tmpNPC,
_location = 'BBungalow',
_passage = '',
_julDate = $currJulianDate + _tmpTicker,
_startTime = _tmpStartTime,
_endTime = _tmpEndTime,
_details = "You signed up for the Amateur Night at the Boobie Bungalow in the Red Light District at 8:00pm.",
_repeat = 0
)>>
<<run $player.phone.calendar.addDate(_tmpEvent)>>
<<run $player.questTracker.push({idx: 'AmateurNight',level: 1})>>
<</button>>
</div>
<</replace>>
<</widget>><<unset $sceneSpecialLoc>>
<<set _tmpImg = 'Media/Locations/Beach/Gym/' + random(1,3) + '.webp'>>
<center>
<b><font size="10em">Muscle Beach Gym</font></b>
<br>
<img @src="_tmpImg" height="600rem">'
<br><br>
<span id="repCont">
The most exclusive gym in town, only the best of the best are allowed to be members here and even they have to be sponsored by an existing member. The place looks like a recruitment camp for high-end porno movie actors.
<br><br>
<<if $gameDate.getHours() != 14 or $gameDate.getDay() != 6 or $rainyDay or $currTemp < 70>>
As you look around the gym
<<if $npc_6.knowsPlayer or ($relicQuest and $relicQuest.path === 'Jerry')>>
<<set _tmpName = $npc_6.firstName>>
<<if ($npc_6.relationship > 0 and $npc_6.relationship <= 2) or ($npc_6.relationship < 3 and $relicQuest and $relicQuest.path === 'Jerry')>>
you spot a man who looks familiar to you and then you realize
<<if $relicQuest and $relicQuest.path === 'Jerry'>>
it's $npc_6.firstName! <div class="badText">The man the fortune teller wants you to find.</div>
<<else>>
it's $npc_6.firstName! The judge from the wet t-shirt contest who tried hitting on you!
<</if>>
<<else>>
you see $npc_6.firstName flexing and posing in a mirror as he pumps some free weights.
<</if>>
<<else>>
<<set _tmpName = 'him'>>
you see a man flexing and posing in a mirror as he pumps some free weights. He looks like he spends a ton of time here so he probably knows the process.
<</if>>
<</if>>
</span>
</center>
<span id="NPCCont">
<<if $gameDate.getHours() != 14 or $gameDate.getDay() != 6 or $rainyDay or $currTemp < 70>>
<<purgeNPC $npc_6.dna>>
<<set _tmpLocArr = ['BeachGym']>>
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 1>>
<<set _tmpLoc = "JerryGymRelicIntro">>
<<else>>
<<set _tmpLoc = "JerryGymChat">>
<</if>>
<<addNPC $npc_6 _tmpLocArr _tmpLoc>>
<</if>>
<<genNPCs 'BeachGym'>>
<<getCurrNPCs 'BeachGym'>>
</span>
<hr>
<div id="actionsContainer">
<<if !$beachGymBody>>
<div class="buttonContainer">
<<button "Sign up for a membership">>
<<if $gameDate.getHours() != 14 or $gameDate.getDay() != 6 or $rainyDay or $currTemp < 70>>
<<replace '#repCont'>>
You look around for someone to talk to and
<<if $npc_6.knowsPlayer or ($relicQuest and $relicQuest.path === 'Jerry')>>
<<set _tmpName = $npc_6.firstName>>
<<if ($npc_6.relationship > 0 and $npc_6.relationship <= 2) or $relicQuest.path === 'Jerry'>>
$npc_6.firstName steps up in front of you.
<</if>>
<<else>>
<<set _tmpName = 'him'>>
the man admiring his own reflection calls you over.
<</if>>
<</replace>>
<<replace "#NPCCont">>
<<purgeNPCLocation 'BeachGym'>>
<<set _tmpLocArr = ['BeachGym']>>
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 1>>
<<set _tmpLoc = "JerryGymRelicIntro">>
<<else>>
<<set _tmpLoc = "JerryGymChat">>
<</if>>
<<addNPC $npc_6 _tmpLocArr _tmpLoc>>
<<getCurrNPCs 'BeachGym'>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Talk to _tmpName" _tmpLoc>>
<<addSecs 45>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Leave the gym" "BeachGym">>
<<addSecs 1>>
<</button>>
</div>
<</replace>>
<<else>>
<<script>>
Dialog.setup("No Trainers");
Dialog.wiki('<center><div class="badText">You can\'t find a trainer to speak with, better try again later.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Go back to the beach" "Beach">>
<<addMins 2>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">Community Center</font></b>
<br>
<img src="Media/Locations/BDistrict/MSquare/ComCenter/CC1.webp" height="450rem">
<br>
<span id="repCont"><br></span>
The scent of fresh coffee mingles with the burn of chlorine from the indoor pool. Sunlight pours through tall glass windows, illuminating colorful flyers pinned to a corkboard near the front desk. A mix of laughter, footsteps, and distant music drifts from the hallways beyond, hinting at the energy and diversity pulsing through the building.
<br><br>
There's an [[event board|ComCenterBoard]] taking up most of one wall where you can see their Continuing Education classes for adults.
</center>
<<genNPCs 'ComCenter'>>
<<getCurrNPCs 'ComCenter'>>
<hr>
<div id='actionsContainer'>
<<if $player.comCourses and $gameDate.getDay() < 6>>
<<set _tmpCourses = $player.comCourses.filter(course => !$dailyLimit.includes(course.title) and Math.abs(course.time - ($gameDate.getHours()*60 + $gameDate.getMinutes())) <= 15)>>
<div class="buttonContainer">
<<if _tmpCourses.length > 0>>
<<for _i to 0;_i < _tmpCourses.length;_i++>>
<<capture _i>>
<<button "Attend your _tmpCourses[_i].title class">>
<<switch _tmpCourses[_i].title>>
<<case 'Self Defense Lessons' 'Dance Lessons'>>
<<genFit $player.outfit.fit>>
<<set _tmpFit = $clothingObj>>
<<genShoes $player.outfit.shoes>>
<<set _tmpShoes = $clothingObj>>
<<if _tmpFit.style === 'Athletic' and _tmpShoes.style === 'Athletic' and $player.stamina >= 20>>
<<set _tmpPass = true>>
<<elseif _tmpFit.style != 'Athletic' or _tmpShoes.style !== 'Athletic'>>
<<script>>
Dialog.setup('Wrong outfit');
Dialog.wiki('<div class="badText">You need to be wearing an athletic outfit and athletic shoes</div>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<<else>>
<<script>>
Dialog.setup('Too tired');
Dialog.wiki('<div class="badText">You don\'t have the stamina to attend this class.</div>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<<default>>
<<set _tmpPass = true>>
<</switch>>
<<if _tmpPass>>
<<run $dailyLimit.push(_tmpCourses[_i].title)>>
<<if ($gameDate.getHours()*60 + $gameDate.getMinutes()) > _tmpCourses[_i].time>>
<<set _tmpMins = 2>>
<<else>>
<<set _tmpMins = _tmpCourses[_i].time - ($gameDate.getHours()*60 + $gameDate.getMinutes())>>
<</if>>
<<addMins _tmpMins>>
<<goto _tmpCourses[_i].title>>
<</if>>
<</button>>
<</capture>>
<</for>>
<</if>>
</div>
<</if>>
<<if $gameDate.getHours() >= 8 and $gameDate.getHours() < 23>>
<div class="buttonContainer">
<<button "Go to the locker room" "ComLocker">>
<<addMins 1>>
<</button>>
</div>
<<else>>
<<timed 0s>>
<<replace "#repCont">>
<div class="badText">The Community center is closing</div>
<</replace>>
<</timed>>
<</if>>
<div class="buttonContainer">
<<button "Go back outside" "MarketSquare">>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<b><font size="10em">Community Locker Room</font></b>
<br><br>
<img src="Media/Locations/BDistrict/MSquare/ComCenter/Pool/femLocker.webp" height="550rem">
<br><br>
The room has that humid fetid feeling that most pool locker rooms do, and everything in here is slightly damp. Still it serves its purpose with a row of lockers along one wall and a series of semi-private showers.
<br><br>
It's also one of the few public co-ed lockerooms in the entire city.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button 'Open your gym bag'>>
<<if !$gymBag or $gymBag.length === 0>>
<<script>>
Dialog.setup('Gym Bag is empty');
Dialog.wiki('<center><div class="badText">You have nothing to wear</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<<else>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style != 'Athletic'>>
<<set $blockLastWorn = true>>
<</if>>
<<set $homeWardrobe = false>>
<<set $wardLoc = passage()>>
<<addSecs 5>>
<<goto "ViewGymBag">>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go to the pool">>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style === 'Swimwear'>>
<<addMins 2>>
<<goto "CommunityPool">>
<<else>>
<<script>>
Dialog.setup('Wrong outfit');
Dialog.wiki('<div class="badText">You need to be wearing swimwear</div>');
Dialog.open({top: "calc(50vh - 51px)",width: "500rem;"}, setup.done);;
<</script>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<if $player.body.sweat > 0>>
<<button "Take a shower">>
<<if $player.body.gender === $player.presenting>>
<<set $showerLoc = 'ComLocker'>>
<<goto "GymShower">>
<<else>>
<<script>>
Dialog.setup('You need a ticket');
Dialog.wiki('<div class="badText">There\'s no privacy here - someone is certain to see that your carpet doesn\'t match the drapes.</div>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
<</if>>
<<button "Use the mirror" "MirrorView">>
<<set $mirrorLoc = passage()>>
<<addSecs 5>>
<</button>>
<<button "Use the sink" "Basin">>
<<set $homeBath = false>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $sinkLoc = passage()>>
<<addSecs 5>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Leave the locker room">>
<<set _tmpVal = passage()>>
<<preFlightCheck _tmpVal 'ComCenter' .5>>
<</button>>
</div>
</div><center>
<b><font size="10em">Community Pool</font></b>
<br>
<img src="Media/Locations/BDistrict/MSquare/ComCenter/Pool/pool1.webp" height="600rem">
<br><br>
The chlorine from the water almost burns your nose, and the room echos with splashes, yelps, and general conversation from all the people here. No matter the time of year an indoor pool is always a popular place.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Lounge" "PoolLounge">>
<<set $player.mood += 5>>
<<set $player.stamina += 5>>
<<addMins 15>>
<</button>>
<<button "Go swimming" "PoolSwim">>
<<exerciseImpact 'Cardio' 15>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go back to the locker room" "ComLocker">>
<<addMins 2>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Pool/Swim/'>>
<<switch $player.presenting>>
<<case 'Male'>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<<default>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg' + random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,7) + '.webp'>>
<</if>>
<</switch>>
<center>
<b><font size="10em">Community Pool</font></b>
<br>
<img @src="_tmpImg" height="600rem">
<br><br>
You spend some time swimming around in the water and you feel much more relaxed now.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.stamina > 20>>
<<button "Keep swimming" "PoolSwim">>
<<exerciseImpact 'Cardio' 15>>
<</button>>
<</if>>
<<button "Get out" 'CommunityPool'>>
<<addMins 2>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Pool/Lounge/'>>
<<switch $player.presenting>>
<<case 'Male'>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<<default>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,2) + '.webp'>>
<</if>>
<</switch>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You find a nice spot near the pool and relax for a few minutes, just enjoying not having anything to do for the moment.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.stamina > 20>>
<<button "Keep lounging" "PoolLounge">>
<<set $player.mood += 5>>
<<set $player.stamina += 5>>
<<addMins 15>>
<</button>>
<</if>>
<<button "Stop lounging" 'CommunityPool'>>
<<addMins 2>>
<</button>>
</div>
</div><center>
<b><font size="10em">Community Event Board</font></b>
<br>
<<set _tmpImg = "Media/Locations/BDistrict/MSquare/flyerRead">>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg +='m' + random(1,2) + '.webp'>>
<</if>>
<<genComCourses>>
<div class="horzContainer">
<b>All Class are held Monday - Friday. No Classes are held on the weekend</b>
<br>
<img @src="_tmpImg" height="450rem">
<table class="stripedTable" width="100%">
<tr>
<th>
Course name
</th>
<th>
Course time
</th>
</tr>
<<for _i to 0; _i < $comCourses.length;_i++>>
<<capture _i>>
<tr>
<td>
<<link $comCourses[_i].title>>
<<replace "#repCont">>
<br>
$comCourses[_i].desc
<</replace>>
<<replace "#actionsContainer">>
<<genCourseButtons>>
<</replace>>
<</link>>
</td>
<td>
<<set _tmpHour = (Math.floor($comCourses[_i].time / 60) > 12? Math.floor($comCourses[_i].time / 60)-12:Math.floor($comCourses[_i].time / 60))>>
<<set _tmpMins = (Math.floor($comCourses[_i].time % 60) > 10? Math.floor($comCourses[_i].time % 60):'0' + Math.floor($comCourses[_i].time % 60))>>
<<set _tmpLbl = _tmpHour + ':' + _tmpMins + (Math.floor($comCourses[_i].time / 60) >= 12?' PM':' AM')>>
<<print _tmpLbl>>
</td>
</tr>
<</capture>>
<</for>>
</table>
</div>
<span id="repCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContianer">
<<button "Step back" "ComCenter">>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<b><font size="10em">Toastmasters Group</font></b>
<br>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Toastmasters/toastIntro' + random(1,2) + '.webp'>>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
<span id="subRepCont">
The environment in a Toastmasters club is friendly and supportive. Everyone here feels welcome and valued – from complete beginners to advanced speakers. The crowd looks pretty diverse, so at least you can blend in if you don't want to be noticed. There doesn't seem to be any rigid formal structure or even an instructor -- the people who come decide for themselves how that day's meeting will be ran.
<br><br>
You're free to participate, or not, as you see fit.
</span>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Observe">>
<<set _tmpTime = 22*60 - ($gameDate.getHours()*60 + $gameDate.getMinutes())>>
<<addMins _tmpTime>>
<<set $player.mood += 5>>
<<set $player.statBuffs.charm += 1>>
<<if $player.exhib < 10>>
<<set $player.statBuffs.exhib += 1>>
<</if>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Toastmasters/toastWatch' + random(1,1) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
You spend the hour watching a few other people get up and make speeches on a variety of topics. Some of them seemed incredibly nervous and others did really bad jobs -- there doesn't seem to be anything to worry about after all. Maybe next time you can give a speech yourself.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Finish up" "ComCenter">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Give a speech">>
<<if $player.inhib > 90>>
<<replace "#subRepCont">>
<div class="badText">
Your stomach curdles at the thought of standing in front of all these people! There's just no way you could get up there.
</div>
<</replace>>
<<else>>
<<set _tmpTime = 22*60 - ($gameDate.getHours()*60 + $gameDate.getMinutes())>>
<<addMins _tmpTime>>
<<set $player.mood += 5>>
<<set $player.statBuffs.charm += 2>>
<<if $player.dom < 55 >>
<<set $player.statBuffs.dom += 1>>
<</if>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Toastmasters/toastSpeech' + random(1,1) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
You step up to the podium and select a random topic from the list.
<br><br>
<<if $player.charm > 60>>
You have the audiences rapt attention, they're hanging on your every word even though the topic isn't even very interesting. It's just your charm and wit that are helping you carry the speech, you could probably sell ice to eskimos!
<<elseif $player.charm > 40>>
The audience more or less stays with you during your speech. There's even a smattering of applause when you finish and afterwards more than a couple people came by to congratulate you on doing such a good job.
<<elseif $player.charm > 20>>
You do your best to speak in a clear voice and you try to engage the audience, but you don't succeed very much. Still, you occasionally see someone in the audience nodding their head in agreement, so you must be doing something right.
<<else>>
You don't do a very good job of holding the audience's attention and you can tell that the rest didn't really follow along with what you were saying. You feel a pit form in your stomach from having done so poorly, but at least you tried. Maybe you'll get better with practice.
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Finish up" "ComCenter">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
<<button "Lead a meeting">>
<<if $player.inhib > 90 or $player.sub > 45>>
<<replace "#subRepCont">>
<div class="badText">
<<switch random(1,3)>>
<<case 1>>
The mere idea of leading a meeting triggers a wave of anxiety—having to make decisions and resolve conflicts while everyone looks to you? That's a hard pass.
<<case 2>>
You can feel panic sweat set in at just the thought of taking command to lead a meeting - all these people waiting for you to make decisions and settle disputes? Thanks, but no thanks.
<<case 3>>
Just thinking about running a meeting makes your palms sweat—everyone staring, expecting you to call the shots and fix the mess? Nope, not today.
<</switch>>
</div>
<</replace>>
<<else>>
<<set _tmpTime = 22*60 - ($gameDate.getHours()*60 + $gameDate.getMinutes())>>
<<addMins _tmpTime>>
<<set $player.mood += 5>>
<<set $player.statBuffs.charm += 3>>
<<if $player.dom < 60 >>
<<set $player.statBuffs.dom += 1>>
<</if>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Toastmasters/toastLead' + random(1,2) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
The group agrees to let you lead today's meeting. You keep an eye on the time and try to keep the conversation on the selected topics. All in all, not a bad way to learn some people skills.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Finish up" "ComCenter">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Just bail" "ComCenter">>
<<addSecs 45>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/SelfDefense/Group/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += '/Preg/' + random(1,5) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,9) + '.webp'>>
<</if>>
<center>
<b><font size="10em">Self Defense Class</font></b>
<br>
<<set _tmpTime = (9*60 + 30) - ($gameDate.getHours()*60 + $gameDate.getMinutes())>>
<<exerciseImpact 'cardio' _tmpTime>>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
You spend the first 30 minutes in group instruction covering proper body positioning to throw a punch, how to use leverage to take down a larger opponent, and much more.
<br><br>
Then the class breaks up into groups and you can pick if you want to spar with a fellow student, or spar with a more skilled instructor.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Spar with a student">>
<<if $player.skills.fighting < 50>>
<<set $player.statBuffs.fighting += 1>>
<</if>>
<<exerciseImpact 'cardio' 30>>
<<replace "#repCont">>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/SelfDefense/Student/'>>
<<if $player.presenting === 'Male'>>
<<set _tmpImg += 'M/' + random(1,4) + '.webp'>>
<<else>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,6) + '.webp'>>
<</if>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You square up with an opponent of comparable skill.
<<if $player.skills.fighting < 50>>
<div class="badText">You push each other to level up and it feels like you actually make some progress.</div>
<<else>>
<div class="badText">You get a good workout but you don't really improve your skillset.</div>
<</if>>
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Finish up" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<if $player.dom > 55 or $player.skills.fighting >= 50>>
<<button "Spar with the instructor" "ComCenter">>
<<set $player.statBuffs.dom += 2>>
<<set $player.statBuffs.fighting += 2>>
<<exerciseImpact 'cardio' 30>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/SelfDefense/Instructor/'>>
<<if $player.presenting === 'Male'>>
<<set _tmpImg += 'M/' + random(1,6) + '.webp'>>
<<else>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,10) + '.webp'>>
<</if>>
<</if>>
<<replace "#repCont">>
<img src="_tmpImg" height="600rem">
<br><br>
You spend the next 30 minutes sparring with a much stronger and more skilled opponent. The mere fact that you even attempted the fight gives you a sense of pride and confidence.
<br><br>
<<if $player.skills.fighting < 25>>
Of course, you also would have been severely beaten if this had been a real fight.
<<elseif $player.skills.fighting < 50>>
You don't do half bad either -- though you probably would have lost a real fight.
<<elseif $player.skills.fighting < 75>>
You hold your ground and give as good as you get. Hard to tell who won that round.
<<else>>
You are a thing of beauty as you expertly move and dodge your oppontents jabs while making every one of your hits count.
<br><br>
<font color=blue><b>In the end it was no contest, you won!</b></font>
<</if>>
<</replace>>
<</button>>
<</if>>
</div>
</div><<addMins 60>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Makeup/' + random(1,4) + '.webp'>>
<center>
<b><font size="10em">Makeup Class</font></b>
<br>
<img @src="_tmpImg" height="600rem">
<br><br>
<<switch random(1,4)>>
<<case 1>>
You learn how to create High-Definition makeup application, both cream-based and water-based foundation for fashion, TV, film and bridal industry.
<<case 2>>
The instructor guides you through all the basics of a makeup routine and such topics as contouring, false eyelashes and highlighting.
<<case 3>>
You learn how to conceal under the eyes and on blemishes the right way and how to put on blush without feeling like a clown.
<<case 4>>
The class focuses on choosing the right colors for your lips, eyes and skin and reviews the terms for the different color types like "spring" and "summer" -- turns out you're an Autumn.
<</switch>>
<br><br>
<<if $player.skills.makeup < 2>>
<div class="badText">
You try your best to follow along, and you do feel you picked up a few new tips but most of the class was too technical for you.
</div>
<<elseif $player.skills.makeup < 4>>
<div class="badText">
You picked up some new habits, but most of what was discussed required too much skill for you to master so quickly.
</div>
<<elseif $player.skills.makeup < 6>>
<b>You followed along closely with the instructions and examples, picking up a few better methods of some techniques you already knew.</b>
<<elseif $player.skills.makeup < 8>>
<div class="goodText">
You're able to intuit most of what the instructor is going to do and you don't really have to pay attention to complete the tasks. Although, you do notice the students around you copying your skilled movements and applications.
</div>
<<elseif $player.skills.makeup <= 10>>
<div class="goodText">
You act as an informal tutor in for the people immediately around you, offering tips and demonstrating advanced application methods.
</div>
<</if>>
<<if $player.skills.makeup >= 2 and random($player.skills.makeup,20) >= 10>>
<<set _makeupStyles = ['Natural','Professional','Beauty','Evening']>>
<<for _i to 0;_i < _makeupStyles.length; _i++>>
<<if !$player.knownStyles.includes(_makeupStyles[_i])>>
<<set $player.knownStyles.push(_makeupStyles[_i])>>
<br>
<div class="goodText">You learned the makeup style _makeupStyles[_i]</div>
<<set _i = _makeupStyles.length>>
<</if>>
<</for>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Finish up" "ComCenter">>
<<set $player.statBuffs.makeup += 5>>
<<addMins 2>>
<</button>>
</div>
</div><<addMins 60>>
<<set $player.statBuffs.singing += 5>>
<<set _tmpImg='Media/Locations/BDistrict/MSquare/ComCenter/Classes/Singing/class' + random(1,5) + '.webp'>>
<center>
<b><font size="10em">Singing Class</font></b>
<br>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
You spend the first hour in a group lesson where the instructor highlights the topic and lessons you are supposed to study.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Singing/' + ($player.presenting === 'Female'?'fSing' + random(1,13):'mSing' + random(1,1)) + '.webp'>>
<<addMins 60>>
<<refreshCaption>>
<<replace "#repCont">>
<img src="_tmpImg" height="600rem">
<br><br>
The second half of the class is spent in a recording booth practicing while an instructor monitors and provides feedback.
<br><br>
<<if $player.skills.singing >= 10>>
"Just, wow...you have an amazing voice. You could easily get a job as a singer I bet." the instructor tells you.
<<elseif $player.skills.singing >= 8>>
The instructor smiles and nods, "That was technically perfect. Nice job."
<<elseif $player.skills.singing >= 5>>
"You might have some promise, $player.firstName. Keep up the practice and you could go places." the instructor tells you with a nod.
<<elseif $player.skills.singing >= 3>>
"You have some ability," the instructor says. "But you're a long way from singing in front of an audience."
<<elseif $player.skills.singing >= 2>>
The instructor nods and says "That almost counts as actual singing."
<<elseif $player.skills.singing >= 1>>
"Well," the instructor says, "You can almost carry a tune. Be happy with that."
<<else>>
The instructor winces and waves for you to stop singing. "You sound like a wounded cat!"
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Finish up" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<addMins 60>>
<<set $player.statBuffs.cooking += 1>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Cooking/' + random(1,9) + '.webp'>>
<center>
<b><font size="10em">Cooking Class</font></b>
<br>
<img @src="_tmpImg" height="600rem">
<br><br>
The hour flies by as you learn new recipies and cooking techniques
</center>
<hr>
<div class="buttonContainer">
<<button "Finish up" "ComCenter">>
<<addMins 2>>
<</button>>
</div><<addMins 60>>
<<set $player.statBuffs.sewing += 5>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Sewing/class' + random(1,3) + '.webp'>>
<center>
<b><font size="10em">Sewing Class</font></b>
<br>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
You spend the first hour in a group lesson where the instructor highlights the topic and lessons you are supposed to practice.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addMins 60>>
<<refreshCaption>>
<<set _tmpImg='Media/Locations/BDistrict/MSquare/ComCenter/Classes/Sewing/' + ($player.presenting === 'Female'?'fSew' + random(1,6):'mSew' + random(1,3)) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
The second hour is spent working the assigned tasks for the day. Sometimes in groups, sometimes individually.
<br><br>
<<if $player.skills.sewing >= 100>>
"You are an expert with that needle! I bet you could teach this class!" the instructor tells you.
<<elseif $player.skills.sewing >= 80>>
The instructor smiles and nods, "That was technically perfect. Nice job."
<<elseif $player.skills.sewing >= 50>>
"You might have some promise, $player.firstName. Keep up the practice and you could go places." the instructor tells you with a nod.
<<elseif $player.skills.sewing >= 30>>
"You have some ability," the instructor says. "With some more effort you could probably get employed as a seamstress"
<<elseif $player.skills.sewing >= 20>>
The instructor nods and says "I'm not sure what it is you made...but it technically counts as sewing."
<<elseif $player.skills.sewing >= 10>>
"Well," the instructor says, "You can almost sew a straight line. Be happy with that."
<<else>>
The instructor looks at your attempt at sewing with some concern, "You may be coming here a while..."
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Finish up" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $player.statBuffs.dancing += 2>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Dance/'>>
<<switch random(1,4)>>
<<case 1>>
<<addMins 60>>
<<exerciseImpact 'cardio' 30>>
<<set _tmpImg += 'dance'>>
<<set _classMsg = 'modern dance. You spend the hour learning to twist and pump your body in time with the most popular songs on the Top 20 list. Your body feels limber and warm afterwards so you know it was a good workout.'>>
<<case 2>>
<<addMins 45>>
<<exerciseImpact 'cardio' 45>>
<<set _tmpImg += 'poleDance'>>
<<set _classMsg = 'pole dancing. The hour passes by quickly as you use your arms to propel your body around the pole. This definitely takes more skill and strength than it might seem.'>>
<<case 3>>
<<addMins 40>>
<<exerciseImpact 'cardio' 50>>
<<set _tmpImg += 'lapDance'>>
<<set _classMsg = 'chair dancing. Set to thumping high-energy music you learn how to incorporate a chair into your dance moves. The instructor says this is used for couples dances at competitions -- but this seems oddly close to a lapdance. Still, no one else seems to complain so you go along with it until the class is over.'>>
<<case 4>>
<<addMins 60>>
<<exerciseImpact 'cardio' 30>>
<<set _tmpImg += 'teaseDance'>>
<<set _classMsg = 'strip tease. The music is slower and more sensual, and you\'re guided through slow gyrations and undulations of your limbs and hips. definitely on the more sexual side of what you might think a dance class should cover -- but it definitely targets some muscle groups you hadn\'t realized you had.'>>
<</switch>>
<<set _tmpImg += + random(1,4) + '.webp'>>
<center>
<b><font size="10em">Dancing Lessons</font></b>
<br>
<img @src="_tmpImg" height="500rem">
<br><br>
The class instructors rotate over time and each one teaches whatever style they happen to be into at the moment. This gives you a broad introduction into different dance types and overall improves your rhythm and poise.
<br><br>
Today's style is _classMsg
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Hit the locker room" "ComLocker">>
<<addMins 5>>
<</button>>
</div>
</div><<set _tmpCourse = $player.comCourses.find(course => course.title == 'Office Skills Training')>>
<<if _tmpCourse.finalClass == 0>>
<<set _tmpCourse.finalClass = $currJulianDate + 28>>
<</if>>
<<set
_tmpCourse.prevClass = $currJulianDate;
_tmpCourse.level += 1;
>>
<<if _tmpCourse.finalClass <= $currJulianDate>>
<<goto "OfficeGraduation">>
<</if>>
<<addMins 90>>
<center>
<<set _tmpImg = "Media/Locations/BDistrict/MSquare/ComCenter/Classes/Office/Lessons/" + random(1,8) + ".webp">>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
You spend the time in class shifting between learning to type, basic filing skills, and computer programs like Word, Excel, and Outlook.
<br><br>
There's a different instructor every day and some of them have wildly differing teaching styles.
</span>
</center>
<span id="NPCContainer">
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Finish up">>
<<if random(1,100) > 40>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Office/soloProf.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
As everyone files out of the classroom you're left alone with the instructor.
<</replace>>
<<replace "#NPCContainer">>
<<set _tmpLocAr = ['Office Skills Training']>>
<<set _tmpNPC = new Person(35,'Male','athletic')>>
<<set _tmpLimit = random(5,10)>>
<<set $currDNA =_tmpNPC.dna>>
<<addNPC _tmpNPC _tmpLocAr 'OfficeTeacherChat' _tmpLimit>>
<<getCurrNPCs 'Office Skills Training'>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Leave the classroom" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<<else>>
<<addMins 2>>
<<goto "ComCenter">>
<</if>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Office/'>>
<<if $player.presenting == 'Male'>>
<<set _tmpImg += 'Chat/Reg/M/' + random(1,2) + '.webp'>>
<<else>>
<<if $player.traits.includes(8)>>
<<set _tmpImg += 'Chat/Flirt/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'Chat/Reg/F/' + random(1,6) + '.webp'>>
<</if>>
<</if>>
<center>
<span id ="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
Mr. <<print $NPCArray.find(npc => npc.dna == $currDNA).lastName>> smiles at you. "Hello, $player.firstName. How can I help you?"
<br><br>
<<if $NPCArray.find(npc => npc.dna == $currDNA).personality == 3 or ($NPCArray.find(npc => npc.dna == $currDNA).personality == 2 and $NPCArray.find(npc => npc.dna == $currDNA).arousal > 50)>>
<<set _sexTeacher = true>>
"You looking for some extra credit activities?"
<<else>>
You have the impulse to get out of attending any more courses - the class is very very boring, to say the least.
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<<if !_sexTeacher>>
<div class="buttonContainer">
<<button "Ask about testing out of the class" "OfficeTeacherBlock">>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Nevermind" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<<else>>
<<if $player.slutLevel >= 3 or $player.traits.includes(8)>>
<div class="buttonContainer">
<<button "Play along" "HotForOfficeTeacher">>
<<addMins 1>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Nevermind" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<</if>>
</div><center>
<span id="repCont">
<img src="Media/Locations/BDistrict/MSquare/ComCenter/Classes/Office/prof1.webp">
<br><br>
Mr. <<print $NPCArray.find(npc => npc.dna == $currDNA).lastName>> shakes his head "No, I'm afraid not. It wouldn't be fair to you most of all, you really do need to actually learn the material."
<br><br>
Maybe you could convince him to help you out...but what could you do that would change his mind?
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.slutLevel >= 3 or $player.traits.includes(8)>>
<<button "Try to change his mind" "HotForOfficeTeacher">>
<<addMins 2>>
<</button>>
<</if>>
<<if $player.dom > 30>>
<<button "Offer to pay him" "OfficeTeacherBribe">>
<<addMins 1>>
<</button>>
<</if>>
</div>
<<if !$player.traits.includes(8)>>
<div class="buttonContainer">
<<button "Leave" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<</if>>
</div><<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Office/Chat/Seduce/' + random(1,3) + '.webp'>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You smile as you lean in close to him, making sure he gets a good long look at what you're offering.
<br><br>
<<if ($NPCArray.find(npc => npc.dna == $currDNA).personality == 3 and ['Bisexual',$player.presenting].includes($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender)) or ($NPCArray.find(npc => npc.dna == $currDNA).personality == 2 and calcAttraction($NPCArray.find(npc => npc.dna == $currDNA), $player))>>
<<set _sluttyTeach = true>>
He leans back in his chair and smiles at you "Well, now that you mention it - there's an advanced course only offered to the most dedicated future-secretaries..."
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).personality == 3 or !calcAttraction($NPCArray.find(npc => npc.dna == $currDNA), $player)>>
"No offense, <<if $player.presenting == 'Female'>>Ms.<<else>>Mr.<</if>> $player.lastName, " Mr. <<print $NPCArray.find(npc => npc.dna == $currDNA).lastName>> says, leaning in slightly. "But I think I can do better."
<br><br>
<div class="badText">Ouch</div>
<<else>>
Mr. <<print $NPCArray.find(npc => npc.dna == $currDNA).lastName>> sputters and pushes himself back from his desk. "This is entirely inappropriate, <<if $player.presenting == 'Female'>>Ms.<<else>>Mr.<</if>> $player.lastName. You should leave now or I'll seriously consider kicking you out of this course!"
<</if>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if $player.dom > 30>>
<div class="buttonContainer">
<<button "Offer to pay him" "OfficeTeacherBribe">>
<<addMins 1>>
<</button>>
</div>
<</if>>
<<if _sluttyTeach>>
<div class="buttonContainer">
<<if $player.slutLevel > 4 or ($player.slutLevel > 3 and $player.arousal > 50)>>
<<button "Take the advanced course" 'sexSceneEngine'>>
<<set $skipEnding = true>>
<<set $blockStop = true>>
<<set $sceneLoc = 'CertifiedOfficeSlut'>>
<<set $postSexNude = false>>
<<set $forceSex = true>>
<<set $sceneAct = 'Foreplay'>>
<</button>>
<</if>>
</div>
<<if $player.slutLevel <= 3 or $player.arousal <=50>>
<div class="buttonContainer">
<<button "Decline the offer" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<</if>>
<<else>>
<div class="buttonContainer">
<<button "Leave the classroom" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<</if>>
</div><<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Office/Chat/Seduce/' + random(1,3) + '.webp'>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You offer to pay him for his troubles.
<br><br>
<<if $NPCArray.find(npc => npc.dna == $currDNA).personality == 3 or ($NPCArray.find(npc => npc.dna == $currDNA).personality == 2 and random(0,100) > 60)>>
<<set _sluttyTeach = true>>
"Well - you might be onto something there. But this is a big risk for me. I couldn't do it for anything less than $1500. Cash." he says.
<<if $player.money < 1500>>
<br><br>
<div class="badText">You don't have that much cash on you.</div>
<</if>>
<<else>>
Mr. <<print $NPCArray.find(npc => npc.dna == $currDNA).lastName>> sputters and pushes himself back from his desk. "This is entirely inappropriate, <<if $player.presenting == 'Female'>>Ms.<<else>>Mr.<</if>> $player.lastName. You should leave now or I'll seriously consider kicking you out of this course!"
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if _sluttyTeach and $player.money >= 1500>>
<<button "Pay the man">>
<<set $player.money -= 1500>>
<<goto "CertifiedOfficeSlut">>
<</button>>
<<else>>
<<if $player.slutLevel >= 3 or $player.traits.includes(8)>>
<<button "Offer him something else" "HotForOfficeTeacher">>
<<addMins 2>>
<</button>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Leave the classroom" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
</div><center>
<span id='repCont'>
Teach talking to class?
<br><br>
"You did it folks - it's graduation day! When I call your name please come up and collect your certificate, then you're fee to go."
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Wait for your name">>
<<set _tmpCourse = $player.comCourses.find(course => course.title == 'Office Skills Training')>>
<<if _tmpCourse.level == 20>>
<<addMins 15>>
<<goto 'CertifiedOfficeSlut'>>
<<else>>
<<append '#repCont'>>
<div class="badText">But he calls all the other students up one-by-one and it's not until everyone else has left the room that he finally motions you to move forward.</div>
<</append>>
<<replace "#actionsContainer">>
<<button "Continue" "LastChanceOfficeCourse">>
<<addMins 2>>
<<set _tmpLocAr = ['Office Skills Training']>>
<<set _tmpNPC = new Person(35,'Male','athletic')>>
<<set _tmpLimit = random(5,10)>>
<<set $currDNA =_tmpNPC.dna>>
<<addNPC _tmpNPC _tmpLocAr 'OfficeTeacherChat' _tmpLimit>>
<</button>>
<</replace>>
<</if>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="500rem" >
</div>
<div>
Mr. <<print $NPCArray.find(npc => npc.dna == $currDNA).lastName>> folds his hands on his desk and fixes you with a concerned expression.
<br><br>
"I'm sorry to tell you this, $player.firstName, but you didn't complete the lesson and I can't, in all good conciousness, give you a certificate."
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<addMins 2>>
<<refreshCaption>>
<<button "Talk him out of failing you">>
<<replace "#repCont">>
"No, I just don't see how that would be fair to the other students who actually did the work. You'll just have to take the course again and try a little harder next time." He says with a dismissive tone, clearly he's done with this conversation.
<</replace>>
<<replace "#actionsContainer">>
<<if $player.slutLevel >= 3 or $player.traits.includes(8)>>
<<button "Try to change his mind" "HotForOfficeTeacher">>
<<addMins 2>>
<</button>>
<</if>>
<<if $player.dom > 30>>
<<button "Offer to pay him" "OfficeTeacherBribe">>
<<addMins 1>>
<</button>>
<</if>>
<</replace>>
<</button>>
</div>
<<if !$player.traits.includes(8)>>
<div class="buttonContainer">
<<button "Leave" "ComCenter">>
<<addMins 2>>
<</button>>
</div>
<</if>>
</div><<set _tmpImg = 'Media/Locations/BDistrict/MSquare/ComCenter/Classes/Office/officeCert.webp'>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
<div class="goodText">You earned your certificate!</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "ComCenter">>
<<set $player.questTracker = $player.questTracker.filter(obj => obj.idx != "Office Skills Training")>>
<<run $player.questTracker.push({idx: "OfficeCert",level: 1})>>
<<addMins 2>>
<</button>>
</div>
</div><<widget "genComCourses">>
<<set $comCourses = []>>
<<run $comCourses.push(
{
title: 'Makeup Training',
desc: 'Learn tips from our talented professionals!',
time: 11*60,
condition:'$player.mentalFem > 32 or $player.traits.includes(1) or $player.traits.includes(11)',
response: '<div class="badText"><center>Why would you sign up for that class?</center></div>',
level: 0,
prevClass: 0,
finalClass: 0
});
>>
<<run $comCourses.push(
{
title: 'Toastmasters',
desc: 'Learn how to use charm and people skills to advance your career!',
time: 21*60,
condition:'true',
response: '',
level: 0,
prevClass: 0,
finalClass: 0
});
>>
<<run $comCourses.push(
{
title: 'Dance Lessons',
desc: 'Want to dance like the stars? We can teach you!',
time: 18*60,
condition:'$player.mentalFem > 35 or $player.questTracker.some(quest => quest.idx === "DanceClass")',
response: '<div class="badText"><center>That sounds a little too..intimate.</center></div>',
level: 0,
prevClass: 0,
finalClass: 0
});
>>
<<run $comCourses.push(
{
title: 'Office Skills Training',
desc: 'Our 4 week course will develop your office skills to help you land that dream job!',
time: 20*60,
condition:'!$player.questTracker.some(quest => quest.idx === "OfficeCert")',
response: '<div class="badText"><center>You already have that certification</center></div>',
level: 0,
prevClass: 0,
finalClass: 0
});
>>
<<run $comCourses.push(
{
title: 'Singing Lessons',
desc: 'Become the star you know you can be!',
time: 10*60,
condition:'$player.inhib < 80',
response: '<div class="badText"><center>Why on earth would you sign up for something like that??</center></div>',
level: 0,
prevClass: 0,
finalClass: 0
});
>>
<<run $comCourses.push(
{
title: 'Sewing Lessons',
desc: 'Learn how to alter and mend your own clothing at home!',
time: 15*60,
condition:'true',
response: '',
level: 0,
prevClass: 0,
finalClass: 0
});
>>
<<run $comCourses.push(
{
title: 'Self Defense Lessons',
desc: 'We\'ll teach you the techniques you need to handle any situation!',
time: 9*60,
condition:'true',
response: '',
level: 0,
prevClass: 0,
finalClass: 0
});
>>
<<run $comCourses.push(
{
title: 'Cooking Lessons',
desc: 'You\'ll learn to be a pro in the kitchen be the end of this course',
time: 17*60,
condition:'true',
response: '',
level: 0,
prevClass: 0,
finalClass: 0
});
>>
<</widget>>
<<widget "genCourseButtons">>
<div class="buttonContainer">
<<if !$player.comCourses or !$player.comCourses.some(course => course.title === $comCourses[_i].title)>>
<<set _tmpLbl = 'Sign up'>>
<<else>>
<<set _tmpLbl = 'Drop course'>>
<</if>>
<<button _tmpLbl>>
<<if Scripting.evalTwineScript($comCourses[_i].condition)>>
<<if $player.comCourses>>
<<if !$player.comCourses.some(course => course.title === $comCourses[_i].title)>>
<<set $player.comCourses.push($comCourses[_i])>>
<<replace "#repCont">>
<br>
<div class="goodText">You signed up for $comCourses[_i].title</div>
<</replace>>
<<else>>
<<set $player.comCourses = $player.comCourses.filter(course => course.title !== $comCourses[_i].title)>>
<<replace "#repCont">>
<br>
<div class="badText">You dropped the course $comCourses[_i].title</div>
<</replace>>
<<if $player.comCourses.length === 0>>
<<run delete $player.comCourses>>
<</if>>
<<replace "#actionsContainer">>
<<genCourseButtons>>
<</replace>>
<</if>>
<<else>>
<<set $player.comCourses = [$comCourses[_i]]>>
<<replace "#repCont">>
<br>
<div class="goodText">You signed up for $comCourses[_i].title</div>
<</replace>>
<<replace "#actionsContainer">>
<<genCourseButtons>>
<</replace>>
<</if>>
<<else>>
<<replace "#repCont">>
<br>
<div class="goodText">$comCourses[_i].response</div>
<</replace>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step back" "ComCenter">>
<<addSecs 7>>
<</button>>
</div>
<</widget>><<set $locType = 'Indoors'>>
<<if $lastBarHour is undefined>><<set $lastBarHour = 0>><</if>>
<center>
<b><font size="10em">Dirty Dick's</font></b>
<br>
<img src="Media/Locations/RedLight/DiveBar/bar1.webp" height="450rem" >
<br><br>
The bar is dozens of conversations told in loud voices, all of them competing with the too-loud rock music that dominates the atmosphere. The crowd is young, students and out-of-town tourists mostly, so there is a certain wild "anything goes" feeling to the mood of the place.
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 11>>
<div class="badText"><br>The bar is closing, time to head out</div>
<</if>>
</center>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 11>>
<<purgeNPCLocation "DirtyDicks">>
<<else>>
<<dateCheck 'DirtyDicks'>>
<<genNPCs 'DirtyDicks'>>
<<getCurrNPCs 'DirtyDicks'>>
<</if>>
<hr>
<div id='actionsContainer'>
<<if $gameDate.getHours() < 2 or $gameDate.getHours() >= 11>>
<<if $barDrinks>>
<<set _tmpPassage = passage()>>
<<drinkActs $barDrinks _tmpPassage>>
<</if>>
<div class="buttonContainer">
<<button "Sit at the bar" "DicksBar">><<addMins 1>><</button>>
<<button "Go to the pool tables" "DirtyDicksPool">><<addMins 1>><</button>>
</div>
<div class="buttonContainer">
<<button "Go to the bathroom" "DicksBathroom">><<addMins 1>><</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Leave" "RLDistrict">>
<<unset $barDrinks>>
<<addMins 1>>
<</button>>
</div>
</div><<set $foodPassage = "DicksBar">>
<<genNPCs 'DicksBar'>>
<center>
<b><font size="10em">Dirty Dick's</font></b>
<br>
<<set _tmpImg = 'Media/Locations/RedLight/DiveBar/bTender1.webp'>>
<img @src="_tmpImg" height="550rem" >
<br><br>
The bartender nods his head and raises an eyebrow as way of asking what you want.
<br>
<<randomFlirt 'DicksBar'>>
<<if $drinkMsg != undefined>>
<br>
<<print $drinkMsg>>
<<unset $drinkMsg>>
<br>
<</if>>
</center>
<<getCurrNPCs 'DicksBar'>>
<hr>
<div id='actionsContainer'>
<<if $barDrinks>>
<<set _tmpPassage = passage()>>
<<drinkActs $barDrinks _tmpPassage>>
<<else>>
<div class="buttonContainer">
<<button "Order a drink" "drinkMenu">>
<<addSecs 10>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button 'Step back' "DirtyDicks">>
<<addSecs 10>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Downtown/KellysPub/Bathroom-doors.webp" height="400">
<br><br>
The eclectic, and sometimes confusing, bathroom signs in bars like these are only funny the first time you see them -- and even then just barely.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Men's Room" "Bathroom">>
<<set $homeBath = false>>
<<if random(1,100) > 90 and random(1,100) > $player.mentalFem>><<set $player.statBuffs.mascBuff += 1>><</if>>
<<set $bathLoc = 'DirtyDicks'>>
<<set $bathImg = 'Media/Locations/RedLight/DiveBar/mRoom.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = 'Pretty much the exact kind of bathroom you\'d expect in a dive bar like this one.'>>
<<addSecs 20>>
<</button>>
<<button "Women's Room" "Bathroom">>
<<set $homeBath = false>>
<<if random(1,100) > 90 and random(1,100) < $player.mentalFem>><<set $player.statBuffs.femBuff += 1>><</if>>
<<set $bathLoc = 'DirtyDicks'>>
<<set $bathImg = 'Media/Locations/RedLight/DiveBar/wRoom.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = 'Pretty much the exact kind of bathroom you\'d expect in a dive bar like this one.'>>
<<addSecs 20>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go Back" "DirtyDicks">>
<<addMins 1>>
<</button>>
</div>
</div><center>
<b><font size="10em">Dirty Dick's</font></b>
<br>
<img src="Media/Locations/RedLight/DiveBar/tables1.webp" height="600rem">
<br><br>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 11>>
<div class="badText"><br>The bar is closing, time to head out</div>
<<else>>
A battered pool table sits under flickering neon, the felt scarred from years of hard shots and harder nights. Chalk dust hangs in the air, mixing with the sour bite of cheap beer and stale cigarette smoke.
<<set _tmpList = $NPCList.filter(npc => npc.location.includes('DirtyDicksPool'))>>
<<if _tmpList.length > 1 and random(0,100) > 60>>
<<set _blockPool = true>>
<br>
<div class="badText">The pool table is in use</div>
<</if>>
<</if>>
</center>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 11>>
<<purgeNPCLocation "DirtyDicksPool">>
<<else>>
<<if $poolWaiting or $soloPool>>
<<purgeNPCLocation "DirtyDicksPool">>
<</if>>
<<if !$soloPool>>
<<genNPCs 'DirtyDicksPool'>>
<</if>>
<<unset
$poolWaiting;
$soloPool;
>>
<<if _blockPool>>
<<for _i = 0;_i < _tmpList.length;_i++>>
<<set _tmpList[_i].initScene = ''>>
<</for>>
<<elseif _tmpList.length == 1>>
<<set _tmpList[0].initScene = 'GenericIntro'>>
<</if>>
<<getCurrNPCs 'DirtyDicksPool'>>
<</if>>
<hr>
<div id="actionsContainer">
<<if $barDrinks>>
<<set _tmpPassage = passage()>>
<<drinkActs $barDrinks _tmpPassage>>
<</if>>
<div class="buttonContainer">
<<if !$NPCList.some(npc => npc.location.includes('DirtyDicksPool'))>>
<<button "Play a solo game" "PoolGameInit">>
<<set $player.statBuffs.billiards += 1>>
<<unset $currDNA>>
<</button>>
<<button "Wait for another player" "DirtyDicksPool">>
<<addMins 5>>
<</button>>
<<elseif $NPCList.filter(npc => npc.location.includes('DirtyDicksPool')).length > 1>>
<<button "Wait for a partner to play" "DirtyDicksPool">>
<<set $poolWaiting = true>>
<<addMins 5>>
<</button>>
<<button "Wait for the others to leave" "DirtyDicksPool">>
<<set $soloPool = true>>
<<addMins 15>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Go Back" "DirtyDicks">>
<<addMins 1>>
<</button>>
</div>
</div>
<<timed 0s>>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 11>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Time to go" "RLDistrict">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</if>>
<</timed>><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">Dwight's Gym For Muscles</font></b>
<br>
<img src="Media/Locations/BDistrict/DwightsGym/Lobby.webp" height="450rem">
<br><br>
<span id ='repCont'>
The lobby has that over-polished slick look that you only get when a room is designed by an office commitee. The faux-marble floor tiling leads up to a granite-and-steel desk and modern art pieces, tasteful if bland, cover the walls.
</span>
</center>
<<dateCheck 'DwightsGym'>>
<<genNPCs 'DwightsGym'>>
<<getCurrNPCs 'DwightsGym'>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go to reception" "DGReception">>
<<addSecs 35>>
<</button>>
</div>
<<if $gymMembership and $gameDate.getMonth()>>
<div class="buttonContainer">
<<button "Go to the Men's locker room">>
<<addSecs 35>>
<<if $player.presenting === 'Female'>>
<<replace '#repCont'>>
<div class="badText">Penelope stops you with a laugh, "Silly - the women's locker rooms are the other way!"</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Go to the Women's locker room" "DGLocker">>
<<set $player.statBuffs.femBuff += 1>>
<<set $DGLockerType = 'Fem'>>
<<addSecs 35>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Change your mind about working out" "BDistrict">>
<<addSecs 35>>
<</button>>
</div>
<</replace>>
<<else>>
<<set $DGLockerType = 'Masc'>>
<<goto "DGLocker">>
<</if>>
<</button>>
<<button "Go to the Women's locker room">>
<<if $player.presenting === 'Male'>>
<<replace '#repCont'>>
<div class="badText">Penelope stops you with a laugh, "Silly - the men's locker rooms are the other way!"</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Go to the men's locker room" "DGLocker">>
<<set $DGLockerType = 'Masc'>>
<<set $player.statBuffs.mascBuff += 1>>
<<addSecs 35>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Change your mind about working out" "BDistrict">>
<<addSecs 35>>
<</button>>
</div>
<</replace>>
<<else>>
<<if $player.mentalFem < 45>><<set $player.statBuffs.femBuff += 1>><</if>>
<<set $DGLockerType = 'Fem'>>
<<goto "DGLocker">>
<</if>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Leave" "BDistrict">>
<<addSecs 45>>
<</button>>
</div>
</div><center>
<b><font size="10em">Dwight's Gym for Muscles</font></b>
<br>
<span id='repCont'>
<img src="Media/Locations/BDistrict/DwightsGym/reception.webp" height="450rem">
<br><br>
The entirely too cheerful woman behind the counter, Penelope per her name tag, smiles at you as you approach, but you have the feeling she's sizing you up in some way. Her smile doesn't quite seem to reach her eyes but she interacts with you pleasantly enough, so you can't quite put your finger on what's got the hair on the back of your neck standing up. Some people just give off that sort of vibe.
</span>
</center>
<hr>
<div id="actionsContainer">
<<if !$gymMembership>>
<div class="buttonContainer">
<<button "Ask about the gym membership">>
<<replace "#repCont">>
<img src="Media/Locations/BDistrict/DwightsGym/gymFlyer.webp" height="250">
<br><br>
Penelope shows you a brochure outlining all of the perks they offer for members.
<br><br>
"And as you can see, for only $60 per month you have full access to our all of our gym equipment, including the sauna and the in-house masseuse. You can't argue with a deal like that!" she says with just a bit too much enthusiasm. "You can pay for your first month with cash, but we do need a bank account on file for monthly charges."'
<<if !canPurchase(60)>>
<br>
<div class="badText">You can't afford the membership fee</div>
<<elseif !$bankAccount>>
<br>
<div class="badText">You need a bank account to get a membership</div>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<<if canPurchase(60)>>
<div class="buttonContainer">
<<button "Sign up">>
<<spendMoney 60>>
<<set $gymMembership = $gameDate.getMonth()>>
<<replace '#repCont'>>
<img src="Media/Locations/BDistrict/DwightsGym/reception.webp" height="450rem">
<br><br>
<div class="goodText">You pay the fee and Penelope hands you a membership ID card </div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "DwightsGym">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Maybe another time" "DwightsGym">>
<<addSecs 30>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<<elseif !$lastGymMonth>>
<div class="buttonContainer">
<<button "Ask about canceling your gym membership">>
<<replace "#repCont">>
<img src="Media/Locations/BDistrict/DwightsGym/reception.webp" height="450rem">
<br><br>
'"Of course! You'll have until the end of the current month to use the facilities and then after that your membership simnply won't renew." she says with a bright, but clearly fake, smile.
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Cancel it" "DGReception">>
<<set $lastGymMonth = true>>
<<addSecs 20>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Keep it" "DGReception">>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step away" 'DwightsGym'>>
<<addSecs 45>>
<</button>>
</div>
</div><center>
<<if $DGLockerType === 'Fem'>>
<<set _tmpLbl = 'Women\'s Locker Room'>>
<<set _tmpImg = 'Media/Locations/BDistrict/DwightsGym/Locker/f1.webp'>>
<<else>>
<<set _tmpLbl = 'Men\'s Locker Room'>>
<<set _tmpImg = 'Media/Locations/BDistrict/DwightsGym/Locker/m1.webp'>>
<</if>>
<b><font size="10em">_tmpLbl</font></b>
<br>
<img @src="_tmpImg" height="450rem">
<br><br>
Lockers line the walls, cool to the touch and faintly rattling when brushed. A scuffed bench runs beneath them, its wood worn smooth by years of use. The shower room hums with dripping water and echoes of distant voices. Opposite, sinks sit under a foggy mirror streaked with fingerprints. The air hangs heavy—damp tile, old sweat, and a sharp citrus spray that never quite wins.
/*
*P FUNC('GenerateOutfits','GetOutfitType',outfitWornNumber)
*P FUNC('GenerateShoes','GetShoeType',shoeWornNumber)
if $outfit_type ! 'Sporty' and venomFit = 1:
gs 'eWardrobe','AutoVenom','Sporty'
if noVenom = 1:
killvar 'noVenom'
else
'<center><font color=blue><b>Your clothes squirm around your body and turn into one of your Sporty gym outfits.</b></font></center>'
*P FUNC('GenerateOutfits','GetOutfitType',outfitWornNumber)
*P FUNC('GenerateShoes','GetShoeType',shoeWornNumber)
end
end
*/
<<if $player.stamina < 20>>
<div class="badText">You are too tired to workout right now.</div>
<</if>>
</center>
<<genNPCs 'DGLocker' 2 2>>
<<getCurrNPCs 'DGLocker'>>
<hr>
<div id="actionsContainer">
<<if $melGymDate>>
<<if $DGLockerType === 'Fem' or ($preGymFit and $melGymDate and $player.outfit.fit == 34)>>
<<MelGymFitCode>>
<<elseif $melFit and $player.outfit.fit != 34>>
<div class="buttonContainer">
<<button "Put on $npc_2.firstName's workout fit">>
<<set $preGymFit = clone($player.outfit)>>
<<set $pickedFit = $player.outfit>>
<<set
$pickedFit.fit = 34;
$pickedFit.shoes = 6;
>>
<<set $wardLoc = 'DGLocker'>>
<<wearFit $pickedFit>>
<</button>>
</div>
<</if>>
<</if>>
<div class="buttonContainer">
<<button 'Open your gym bag'>>
<<if (!$gymBag or $gymBag.length === 0)>>
/* otherwise open wardrobe filtered for gym outfits */
<<script>>
Dialog.setup('Gym Bag is empty');
Dialog.wiki('<center><div class="badText">You have nothing to wear</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<<else>>
<<genFit $player.outfit.fit>>
<<set $homeWardrobe = false>>
<<set $wardLoc = passage()>>
<<addSecs 5>>
<<goto "ViewGymBag">>
<</if>>
<</button>>
<<button "Hit the gym floor">>
<<if $melGymDate>>
<<preFlightCheck _tmpVal 'DuoGymHUB' 1>>
<<else>>
<<preFlightCheck _tmpVal 'GymHUB' 1>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<if $player.body.sweat > 0>>
<<button "Take a shower">>
<<if $player.body.gender === $player.presenting>>
<<set $showerLoc = 'DGLocker'>>
<<goto "GymShower">>
<<else>>
<<script>>
Dialog.setup('You need a ticket');
Dialog.wiki('<div class="badText">There\'s no privacy here - someone is certain to see that your carpet doesn\'t match the drapes.</div>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
<</if>>
<<button "Use the mirror" "MirrorView">>
<<set $mirrorLoc = passage()>>
<<addSecs 5>>
<</button>>
<<button "Use the sink" "Basin">>
<<set $homeBath = false>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $sinkLoc = passage()>>
<<addSecs 5>>
<</button>>
</div>
<div class="buttonContainer">
<<button 'Leave the locker room' "DwightsGym">>
<<purgeNPCLocation 'DGLocker'>>
<<unset $homeBath>>
<<unset $DGLockerType>>
<<addSecs 35>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/BDistrict/DwightsGym/Floor/' + random(1,2) +'.webp'>>
<center>
<b><font size="10em">Dwight's Gym for Muscles</font></b>
<br>
<img @src="_tmpImg" height="450rem">
<br><br>
Soft grunts and metallic clanks fill the ambient space in the room and the air is always slightly stale with a faint odor of sweat and maybe mildew.
<br><br>
Rows of sleek workout machines line the length of the building, positioned strategically either facing the expansive floor-to-ceiling windows that flood the space with natural light, or the towering mirrors that reflect every movement and amplify the sense of motion.
<<genNPCs 'GymHUB' 15 5>>
<<getCurrNPCs 'GymHUB'>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Treadmill">>
<<if $player.stamina > 20>>
<<calcGymBunny>>
<<set $gymActivity = 'Treadmill'>>
<<exerciseImpact "Cardio" 60>>
<<goto "WorkoutScene">>
<<else>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem"><div class="badText">You don\'t have the stamina for that kind of workout</div></font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</button>>
<<button "Yoga">>
<<if $player.stamina > 10>>
<<set $gymActivity = 'Yoga'>>
<<exerciseImpact "Yoga" 60>>
<<goto "WorkoutScene">>
<<else>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem"><div class="badText">You don\'t have the stamina for that kind of workout</div></font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</button>>
<<button "Stationary Bike">>
<<if $player.stamina > 20>>
<<set $gymActivity = 'Bike'>>
<<exerciseImpact "Cardio" 60>>
<<goto "WorkoutScene">>
<<else>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem"><div class="badText">You don\'t have the stamina for that kind of workout</div></font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Exercise Ball" >>
<<if $player.stamina > 15>>
<<if $player.body.hips < 63>>
<<set $player.statBuffs.hips += 2>>
<<else>>
<<set $player.statBuffs.hips += 1>>
<</if>>
<<set $gymActivity = 'Ball'>>
<<exerciseImpact "Ball" 60>>
<<goto "WorkoutScene">>
<<else>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem"><div class="badText">You don\'t have the stamina for that kind of workout</div></font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</button>>
<<button "Kettlebell" >>
<<if $player.stamina > 15>>
<<set $player.statBuffs.ass -= 2>>
<<set $gymActivity = 'Kettlebell'>>
<<exerciseImpact "Kettlebell" 60>>
<<goto "WorkoutScene">>
<<else>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem"><div class="badText">You don\'t have the stamina for that kind of workout</div></font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</button>>
<<button "Weight Lifting">>
<<if $player.stamina > 10>>
<<set $gymActivity = 'Weights'>>
<<exerciseImpact "Weights" 60>>
<<goto "WorkoutScene">>
<<else>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem"><div class="badText">You don\'t have the stamina for that kind of workout</div></font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</button>>
<<button "Chest Fly Press">>
<<set $gymActivity = 'ChestFly'>>
<<if $player.stamina > 10>>
<<if $player.statBuffs.tits < 5>>
<<set $player.statBuffs.tits = 0>>
<</if>>
<<set $player.statBuffs.tits -= 1>>
<<exerciseImpact "ChestFly" 60>>
<<goto "WorkoutScene">>
<<else>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem"><div class="badText">You don\'t have the stamina for that kind of workout</div></font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</button>>
<<button "Freestyle Squats">>
<<if $player.stamina > 15>>
<<set $player.statBuffs.ass += 1>>
<<set $gymActivity = 'Squats'>>
<<exerciseImpact "Squats" 60>>
<<goto "WorkoutScene">>
<<else>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem"><div class="badText">You don\'t have the stamina for that kind of workout</div></font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Water fountain" "WaterFountain">>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Back to the locker room" 'DGLocker'>>
<<addMins 1>>
<</button>>
</div>
</div><center>
<b><font size="10em">Dwight's Gym for Muscles</font></b>
<br>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="500rem" >
</div>
<div>
$npc_2.firstName smiles at you, with a towel draped over her shoulder.
<br><br>
<<set _tmpWorkout = random(1,3)>>
<<switch _tmpWorkout>>
<<case 1>>
"We're going to do some good ol' cardio today! My favorite instructor is having a class in a few minutes. You ready?"
<<case 2>>
"Today is leg day, so we're going to put some miles on a bike. Let's go!"
<<case 3>>
"It's definitely a yoga-kind of day."
<</switch>>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<switch _tmpWorkout>>
<<case 1>>
<<set $gymActivity = 'Bike'>>
<<addMins 60>>
<<exerciseImpact "Cardio" 60>>
<<goto "GroupScene">>
<<case 2>>
<<set $gymActivity = 'Treadmill'>>
<<addMins 60>>
<<exerciseImpact "Cardio" 60>>
<<goto "GroupScene">>
<<case 3>>
<<set $gymActivity = 'Yoga'>>
<<addMins 60>>
<<exerciseImpact "Yoga" 60>>
<<goto "GroupScene">>
<</switch>>
<</button>>
</div>
</div><center>
<b><font size="10em">Dwight's Gym for Muscles</font></b>
<br>
<span id='repCont'>
<img src="Media/Locations/BDistrict/DwightsGym/Floor/3.webp" height="450rem">
<br><br>
A simple water-station lets thirsty health-nuts refill their expensive hydration bottles between reps.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Get a drink">>
<<set $player.thirst = $player.thirstMax>>
<<addSecs 45>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/BDistrict/DwightsGym/' + ($player.presenting === 'Female'?'fFount':'mFount') + random(1,2) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="450rem">
<br><br>
You drink down the cold water from the fountain as the grunts and machine-clanks echo around you from the gym.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "WaterFountain">>
<<addSecs 4>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step away from the fountain" "GymHUB">>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<b><font size="10em">Dwight's Gym for Muscles</font></b>
<br>
<<workoutPic $gymActivity "Group">>
<br><br>
<<getWorkoutText $gymActivity>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "PostDuoScene">>
<<unset $gymActivity>>
<<addSecs 45>>
<</button>>
</div>
</div><center>
<b><font size="10em">Dwight's Gym for Muscles</font></b>
<br>
<<workoutPic $gymActivity "Solo">>
<br><br>
<<getWorkoutText $gymActivity>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "GymHUB">>
<<unset $gymActivity>>
<<addSecs 45>>
<</button>>
</div>
</div>
<<if !$player.traits.includes(22) and $gymBunny > 6>>
<<addTrait 22>>
<<unset $gymBunny>>
<</if>><center>
<b><font size="10em">Dwight's Gym for Muscles</font></b>
<br>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="500rem" >
</div>
<div>
"That was great, just what I needed! Thanks again for doing this with me, $player.firstName"
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "To the lockerroom" "DGLocker">>
<<set $postMelGym = true>>
<<unset $melGymDate>>
<<set $npc_2.relationship += 1>>
<<addMins 2>>
<</button>>
</div>
</div><<showerInit>>
<<addMins 10>>
<<if $player.body.gender === 'Female'>>
<<set _tmpImg = 'Media/Locations/BDistrict/DwightsGym/Shower/F/' + random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg = 'Media/Locations/BDistrict/DwightsGym/Shower/M/' + random(1,1) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height="450rem" >
<br><br>
You wash yourself off using soap provided by the gym. The water rinses away the sweat and dirt from your skin.
</center>
<hr>
<div id="actionscontainer">
<div class="buttonContainer">
<<button "Finish showering">>
<<set _tmpLoc = $showerLoc>>
<<unset $showerLoc>>
<<addSecs 25>>
<<goto _tmpLoc>>
<</button>>
</div>
</div><center>
<H1>Food Court</H1>
<br>
[img[img|Media/Locations/Shops/FoodCourt/seatingArea.webp]]
<br><br>
The combined smell of all the different eateries in such a small confined space smacks you in the face as soon as you enter the food court -- fried foods, baked goods, and asian delicacies just to name a few. You're conditioned enough to instantly start salivating even if you've just eaten the biggest meal of your life. There are a handful of people in line at the most popular establishments, and a good portion of the open seating is already taken up with happy families and shoppers relaxing and enjoying their food.
</center>
<<genNPCs 'FoodCourt'>>
<<getCurrNPCs 'FoodCourt' 15>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Get some food" "FoodCourtList">>
<<set $fcTab = 'McDougals'>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go back to the mall" $retLoc>><<addSecs 30>><</button>>
</div>
</div><<set $foodPassage to 'FoodCourtList'>>
<center>
<H1>Food Court</H1>
<br>
/* tabs for each restaurant
then section for items in that restaurant
*/
<<include 'foodCourtTabs'>>
<br><br>
<<include "foodMenu">>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Step back" 'FoodCourt'>><<addSecs 30>><</button>>
</div>
</div><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">Hooters</font></b>
<br>
<img @src="'Media/Locations/Downtown/Hooters/hootersLobby' + random(1,3) + '.webp'" height="450rem" >
<br>
It's a mix of laid-back Americana and energetic game-day atmosphere — designed for kicking back with friends, watching sports, indulging in comfort food, and maybe a little sight-seeing. Want a peek at the menu or your waitress?
<<if !($jobArr.some(item => item.employer === 'Hooters'))>>
<br>
<div class="goodText">A <<link "Help Wanted" "HootersJobAsk">><<addMins 2>><</link>> sign hangs in one window.</div>
<</if>>
</center>
<<genNPCs 'Hooters'>>
<<getCurrNPCs 'Hooters'>>
<hr>
<div id="actionsContainer">
<<getJobActions 'Hooters'>>
<div class="buttonContainer">
<<button "Find a seat" "HootersTable">><<addMins 1>><</button>>
</div>
<div class="buttonContainer">
<<button "Leave" "Downtown">><<addMins 1>><</button>>
</div>
</div><<set $foodPassage to "HootersTable">>
<center>
<b><font size="10em">Hooters</font></b>
<br>
<img src="Media/Locations/Downtown/Hooters/booth.webp" height="450rem">
<br>
The tabletop is slightly sticky and the leather seat is cracked and worn - but when another barely dressed woman brings you a menu it's clear the decor is not why people come here.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Look at the menu" "foodMenu">><<addSecs 2>><</button>>
</div>
<div class="buttonContainer">
<<button "Get up" "Hooters">><<addSecs 5>><</button>>
</div>
</div><center>
<b><font size="10em">Hooters Alley</font></b>
<br>
<img src="Media/Locations/Downtown/Hooters/backAlley.webp" height="450rem" >
<br><br>
'The Hooters' staff breakroom is really just the alley behind the building. It's mostly filled with trashbins and loose garbage. Still, it can be a nice break from the hustle and bustle inside the restaurant.
</center>
<hr>
<div id="actionsContainer">
<<if ($gameDate.getTime() - $breakStart)/1000 < 30*60>>
<div class="buttonContainer">
<<button "Chill for a bit" "HootersAlley">>
<<addMins 5>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Back to work" $breakLoc >>
<<addMins 2>>
<</button>>
</div>
</div><center>
<b><font size="10em">Hooters</font></b>
<br>
<img @src="'Media/Locations/Downtown/Hooters/hootersLobby' + random(1,3) + '.webp'" height="450rem" >
<br>
You flag down a passing waitress and tell her you want to talk to someone about the open position. She smiles brightly at you and says to take a seat while she goes to get the manager.
<br>
A few minutes later you are called into a side office to talk about the job.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "Hooters_Int_1">>
<<set _tmpLocArr = ['Hooters']>>
<<addNPC $npc_5 _tmpLocArr 'Hooters'>>
<<addMins 15>>
<</button>>
</div>
</div><center><b><font size="10em">Hooters</font></b></center>
<div class="profileContainer">
<div>
<img @src="$npc_5.image" height="450rem">
</div>
<div>
A man with a moustache and an obvious toupe greets you as you enter the room and sit down.
<br><br>
"Hi, you must be the one here about the interview. My name is Mr. Markswell, what is your name?" he says, his eyes slide up along your body
<<if $player.beautyScore >= 3 and $player.presenting === 'Female'>>
and he licks his lips as he supresses a smile. He obviously approves of your appearance.
<<else>>
and he grimaces slightly, clearly unimpressed with your appearance.
<</if>>
</div>
</div>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Introduce yourself" >>
<<if $player.beautyScore >= 3 and $player.presenting === 'Female'>>
<<addMins 15>>
<<goto 'hooters_waitress_job'>>
<<else>>
<<addMins 10>>
<<goto 'hooters_dw_job'>>
<</if>>
<</button>>
</div>
</div><center>
<span id="repCont">
<img src="Media/Locations/Downtown/Hooters/interview1.webp" height="450rem" >
<br><br>
He moves closer to you and hands you a piece of paper. It takes you a moment to realize it's just a shift calander and the notations mean nothing to you. But by then he's already closer and his eyes are burning holes in your clothes.
<br><br>
"Just lovely, almost as lovely as you," he's so close now that you can smell the cheap aftershave he poured onto himself that morning.
<br><br>
"I think we have a position that you'd be perfect for. We need a new waitress a few nights a week.
<br><br>
"The shift is Monday through Friday, from 3:00pm to 11:00pm. Normal stuff - serve drinks, food, and entertain the customers. Our clientele has certain expectations about their experience here, and only the most sexiest of women can work as our waitresses." he says while his eyes crawl over your body.
<br><br>
"Of course, there is a dress code. But you'll be given your uniform when you come in and leave it when you clock out. We like to change up the outfits once in a while, and this just makes that easier."
<<if $player.mentalFem < 40>>
<br><br>
<div class="badText">Ignoring his lecherous stares - could you really work as a *waitress* in a place like this?</div>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.mentalFem > 30>>
<<button "Take the job">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_5.image" height="450rem">
</div>
<div>
"The pay is only $16 per hour, but if you do a good job the customers will give you big tips." the way he says "tips" makes you think he might not be talking about just money.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "Hooters Job Accept">>
<<if $payStubs is undefined>>
<<set $payStubs = []>>
<</if>>
<<quitJob>>
<<set _tmpJob = new Job('Hooters','FullTime','Waitress','Your shift as a waitress at Hooters is Tuesday through Saturday, 3:00pm - 11:00pm',16,[2,3,4,5,6],15,23,'HootersWaitressPrep')>>
<<set _tmpJob.lastWorkDay = $currJulianDate + 1>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()-1>>
<<set $jobArr.push(_tmpJob)>>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<button "Ask if he has any other positions">>
<<addMins 5>>
<<refreshCaption>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_5.image" height="450rem">
</div>
<div>
"Well -- we do have one other position for a dishwasher for the lunch rush. That position works Monday through Friday, noon to 8:00pm for $8 per hour. But trust me, your potential would be wasted in such a position!"'
<br><br>
Be objectified as a waitress, or work your fingers to nubs in the kitchen? Not great choices...
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $player.mentalFem > 30>>
<<button "Waitress job" "Hooters Job Accept">>
<<addMins 2>>
<<if $payStubs is undefined>>
<<set $payStubs = []>>
<</if>>
<<quitJob>>
<<set _tmpJob = new Job('Hooters','FullTime','Waitress','Your shift as a waitress at Hooters is Tuesday through Saturday, 3:00pm - 11:00pm',16,[2,3,4,5,6],15,23,'HootersWaitressPrep')>>
<<set _tmpJob.lastWorkDay = $currJulianDate + 1>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()-1>>
<<set $jobArr.push(_tmpJob)>>
<<addMins 1>>
<</button>>
<</if>>
<<button "Dishwasher job" "Hooters Job Accept">>
<<addMins 2>>
<<if $payStubs is undefined>>
<<set $payStubs = []>>
<</if>>
<<quitJob>>
<<set _tmpJob = new Job('Hooters','FullTime','Dishwasher','Your shift as a dishwasher at Hooters is Monday through Friday, 12:00pm - 8:00pm',8,[1,2,3,4,5],12,20,'HootersDishPrep')>>
<<set _tmpJob.lastWorkDay = $currJulianDate + 1>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()-1>>
<<set $jobArr.push(_tmpJob)>>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<div class="buttonContainer">
<<button "Decline and leave" "Hooters">>
<<addMins 1>>
<</button>>
</div>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline and leave" "Hooters">>
<<addMins 1>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_5.image" height="450rem">
</div>
<div>
"We do have one position open that you might be good for. We're in need of a dishwasher for the lunch rush. You'd work Monday through Friday, noon to 8:00pm for $8 per hour."
<br><br>
"What do you think? Sound like something you could handle?"
</div>
</div>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Take the job" "Hooters Job Accept">>
<<if $payStubs is undefined>>
<<set $payStubs = []>>
<</if>>
<<quitJob>>
<<set _tmpJob = new Job('Hooters','FullTime','Dishwasher','Your shift as a dishwasher at Hooters is Monday through Friday, 12:00pm - 8:00pm',8,[1,2,3,4,5],12,20,'HootersDishPrep')>>
<<set _tmpJob.lastWorkDay = $currJulianDate + 1>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()-1>>
<<set $jobArr.push(_tmpJob)>>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline and leave" "Hooters">>
<<addMins 1>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_5.image" height="450rem">
</div>
<div>
"Great! We make payroll the 15th of each month, and as a bonus you get an employee discount on food here." he says, pulling out some paperwork to fill out.
<<if $gameDate.getDay() === 5 or $gameDate.getDay() === 6>>
You start your new job next Monday, be sure to arrive on time for your shift or you won't be able to work for the day.
<<else>>
You start your new job tomorrow, be sure to arrive on time for your shift or you won't be able to work for the day.
<</if>>
</div>
</div>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Thank him and leave" "Hooters">>
<<purgeNPC $npc_5.dna>>
<<addMins 2>>
<</button>>
</div>
</div><center>
<b><font size="10em">Hooters</font></b>
<br>
<img src="Media/Locations/Downtown/Hooters/stockRoom1.webp" height="600rem">
<br><br>
The less-than glamerous stock room is filled with row after row of food service industry items.
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Back to work" "HootersJobHUB">>
<<addMins 2>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<<if $lastBarHour is undefined>><<set $lastBarHour = 0>><</if>>
<center>
<b><font size="10em">Kelly's Pub</font></b>
<br>
<img src="Media/Locations/Downtown/KellysPub/bar.webp" height="450rem" >
<br>
The scent of beer and fried comfort food hangs in the air like a welcome mat for regulars and wanderers alike. It's the kind of place that never really empties—just shifts personalities with the clock. Morning brings the quiet coffee-and-whiskey crowd, afternoons hum with casual chatter, and by nightfall, it's a full-blown circus of laughter, jukebox tunes, and clinking glasses.
<br>
The walls are a chaotic gallery of kitsch: neon signs that haven't lit up in years, vintage posters curling at the edges, and oddball trinkets that look like they were rescued from a garage sale hosted by a pirate. Not a single chair matches another, as if each one has its own backstory and attitude.
<br>
<<if $drinkMsg != undefined>>
<br>
<<print $drinkMsg>>
<<unset $drinkMsg>>
<br>
<</if>>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 10>>
<div class="badText"><br>The bar is closing, time to head out</div>
<</if>>
</center>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 10>>
<<purgeNPCLocation "KellysPub">>
<<else>>
<<dateCheck 'KellysPub'>>
<<genNPCs 'KellysPub'>>
<<getCurrNPCs 'KellysPub'>>
<</if>>
<hr>
<div id='actionsContainer'>
<<homeFinder 'KellysPub'>>
<<if $gameDate.getHours() < 2 or $gameDate.getHours() >= 10>>
<<if $barDrinks>>
<<set _tmpPassage = passage()>>
<<drinkActs $barDrinks _tmpPassage>>
<</if>>
<div class="buttonContainer">
<<button "Sit at the bar" "KellyStool">><<addMins 1>><</button>>
<<button "Go to the bathroom" "KellysBathroom">><<addMins 1>><</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Leave" "Downtown">>
<<unset $barDrinks>>
<<addMins 1>>
<</button>>
</div>
</div><<set $foodPassage to "KellyStool">>
<center>
<b><font size="10em">Kelly's Pub</font></b>
<br>
<<set _tmpImg = 'Media/Locations/Downtown/KellysPub/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'fStool' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'mStool' + random(1,4) + '.webp'>>
<</if>>
<img @src="_tmpImg" height="450rem" >
<br><br>
Cigarette smoke coils through the air like lazy ghosts, sketching ephemeral spirals in the dim haze. The only light comes from the bar's weathered fixtures—yellowed with age and memory—casting a sepia glow that makes everything feel like a scene from a half-forgotten noir. Behind the counter, a mosaic of inverted bottles gleams like stained glass in a cathedral of vice. Each one holds a different shade of amber, from honeyed gold to deep mahogany, whispering promises of warmth, rebellion, or regret—depending on the pour.
<br>
<<if !$player.questTracker.some(qst => qst.idx === 'StudioApt')>>
<<run $player.questTracker.push({idx: "StudioApt",level: 1})>>
<div class="goodText">You overhear the bartender talking about getting an apartment above the bar ready for a new tenant.</div>
<</if>>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 10>>
<<purgeNPCLocation "KellyStool">>
<div class="badText"><br>The bar is closing, time to head out</div>
<<else>>
<<randomFlirt 'KellyStool'>>
<</if>>
<<if $drinkMsg != undefined>>
<br>
<<print $drinkMsg>>
<<unset $drinkMsg>>
<br>
<</if>>
</center>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 10>>
<<purgeNPCLocation "KellyStool">>
<<else>>
<<genNPCs 'KellyStool'>>
<<getCurrNPCs 'KellyStool'>>
<</if>>
<hr>
<div id='actionsContainer'>
<<if $gameDate.getHours() < 2 or $gameDate.getHours() >= 10>>
<<if $player.questTracker.some(qst => qst.idx === 'StudioApt') and $home.name != 'Studio'>>
<div class="buttonContainer">
<<button "Ask about the upstairs apartment" "StudioIntro">>
<<addSecs 45>>
<</button>>
</div>
<</if>>
<<if $home.name == 'Studio' and $rentDue and $rentDue > 0>>
<<button "Pay your rent" "StudioRentPayment">>
<<addMins 15>>
<</button>>
<</if>>
<<if $barDrinks>>
<<set _tmpPassage = passage()>>
<<drinkActs $barDrinks _tmpPassage>>
<<else>>
<div class="buttonContainer">
<<button "Order a drink" "drinkMenu">>
<<addSecs 10>>
<</button>>
</div>
<</if>>
<</if>>
<div class="buttonContainer">
<<button "Get up" "KellysPub">>
<<addSecs 10>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Downtown/KellysPub/Bathroom-doors.webp" height="400">
<br><br>
The eclectic, and sometimes confusing, bathroom signs in bars like these are only funny the first time you see them -- and even then just barely.
/*
if onDate = 1 and currentDate = 1:
if random(beautyScore,100) >= 70:
*nl
$cheatNPC = FUNC('NPCBuilder',0, random(21,40))
'You see a <<$npc_hgt[$cheatNPC]>> <<$npc_gender[$cheatNPC]>> with <<$npc_haircol[$cheatNPC]>> hair and a <<$npc_build[cheatNPC]>> body <<$npc_clothes[cheatNPC]>> enter the men's room. He pauses and gives you a look before entering the bathroom, as if he was inviting you to follow.'
end
act 'Enter the Men's restroom':
if mc_slut >= 2 or $cheatNPC = ':
minute += 1
gt 'KellysPub','MenRoom'
else
*nl
'<font color="red">No way, that guy clearly wants only one thing and you aren't about to give it to him!</font>'
end
end
else
*/
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Men's Room" "Bathroom">>
<<set $homeBath = false>>
<<if random(1,100) > 90 and random(1,100) > $player.mentalFem>><<set $player.statBuffs.mascBuff += 1>><</if>>
<<set $bathLoc = 'KellysPub'>>
<<set $bathImg = 'Media/Locations/Downtown/KellysPub/menBath1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = 'Pretty much the exact kind of bathroom you\'d expect in a pub like this one.'>>
<<addSecs 20>>
<</button>>
<<button "Women's Room" "Bathroom">>
<<set $homeBath = false>>
<<if random(1,100) > 90 and random(1,100) < $player.mentalFem>><<set $player.statBuffs.femBuff += 1>><</if>>
<<set $bathLoc = 'KellysPub'>>
<<set $bathImg = 'Media/Locations/Downtown/KellysPub/womBath1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = 'Pretty much the exact kind of bathroom you\'d expect in a pub like this one.'>>
<<addSecs 20>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go Back" "KellysPub">>
<<addMins 1>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/KellysPub/bTenderTalk' + ($player.presenting === 'Female'? random(1,2):'3') + '.webp'>>
<div class="profileContainer">
<div>
<img @src="_tmpImg" height="450rem">
</div>
<div class="flex-item">
<<if $bannedHomes.includes('Studio')>>
<div class="badText">The bartender narrows his eyes and scoffs "Yeah, we're not renting to you again."</div>
<<else>>
<<if $player.questTracker.find(qst => qst.idx === 'StudioApt').level == 1>>
<<if $currJulianDate < 2460863>>
<<set $player.questTracker.find(qst => qst.idx === 'StudioApt').level = 2>>
"Well it's more of a studio but yeah the owner rents it out. It's occupied at the moment, but the current tenant is set to move out in a couple of days. If you're still looking for a place come back then."
<<else>>
<<set $player.questTracker.find(qst => qst.idx === 'StudioApt').level = 3>>
"Well it's more of a studio but yeah the owner rents it out. The last tenant just moved out actually and it's ready to rent. You interested?"
<</if>>
<<elseif $player.questTracker.find(qst => qst.idx === 'StudioApt').level > 1>>
The bartender smiles as he tosses his towel across one of his shoulders, "So you're back again to ask about the apartment, hm?"
<br><br>
<<if $currJulianDate < 2460863>>
"Sorry, still not available yet. Check back in a few more days."
<<else>>
<<set $player.questTracker.find(qst => qst.idx === 'StudioApt').level = 3>>
"The last tenant just moved out and it's ready to rent. You wanna come take a look?"
<</if>>
<</if>>
<</if>>
</div>
</div>
<hr>
<div id='actionsContainer'>
<<if $currJulianDate >= 2460863 and !$bannedHomes.includes('Studio')>>
<<if $player.questTracker.find(qst => qst.idx === 'StudioApt').level === 3>>
<div class="buttonContainer">
<<button "Check out the apartment" "StudioTour">>
<<addMins 2>>
<</button>>
<<button "Just ask to rent it" "StudioRentChat">>
<<addMins 1>>
<</button>>
</div>
<</if>>
<</if>>
<div class="buttonContainer">
<<button "Stop talking" "KellyStool">>
<<addSecs 5>>
<</button>>
</div>
</div><<widget "drinkActs">>
<div class="buttonContainer">
<<button "Sip your drink">>
<<set
_currDrink = _args[0][0];
_currDrink.amount -= 1;
$player.drunk += _currDrink.boozeContent;
$player.body.thirst += _currDrink.thirstBoost;
$player.body.health += _currDrink.healthBoost;
>>
<<set $drinkMsg = '<b><font color=blue>You take a sip of your drink</font></b>'>>
<<if _currDrink.amount <= 0>>
<<set $barDrinks = $barDrinks.filter(item => item.name != _currDrink.name)>>
<<if $barDrinks.length === 0>><<unset $barDrinks>><</if>>
<<set $drinkMsg = '<b><font color=blue>You finish your drink and set the empty container down</font></b>'>>
<</if>>
<<addSecs 10>>
<<goto _args[1]>>
<</button>>
<<button 'Finish your drink'>>
<<set
_currDrink = _args[0][0];
$player.drunk += _currDrink.boozeContent*_currDrink.amount;
$player.body.thirst += _currDrink.thirstBoost*_currDrink.amount;
$player.body.health += _currDrink.healthBoost*_currDrink.amount;
_currDrink.amount = 0;
>>
<<set $drinkMsg = '<b><font color=blue>You drain the rest of your drink and set the empty glass on a nearby surface.</font></b>'>>
<<if _currDrink.amount <= 0>>
<<set $barDrinks = $barDrinks.filter(item => item.name != _currDrink.name)>>
<<if $barDrinks.length === 0>><<unset $barDrinks>><</if>>
<</if>>
<<addSecs 10>>
<<goto _args[1]>>
<</button>>
</div>
<</widget>><<if $foodPassage == 'HootersTable'>>
<<set $foodArr = []>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/OnionRings.webp','Onion Rings',8,4000,10,5,20,120,-5))>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/ChiliDog.webp','Chili Dog',10,2000,15,10,15,120,-2))>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/HotWings.webp','Hot Wings',15,2500,20,25,20,120,-10))>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/FishAndChips.webp','Battered Fish & Chips',12,3000,20,30,30,120,-2))>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/CheeseBurger.webp','Cheeseburger & Fries',12,1800,20,20,30,120,-3))>>
<center><H1>Hooters</H1>
<img src="Media/Locations/Downtown/Hooters/Hooters_menu.webp" height="450rem">
<br>
<<button "View Drink Menu" "drinkMenu">><</button>>
<br>
<table class="foodTable">
<<for _rowIndex to 0; _rowIndex < $foodArr.length; _rowIndex++>>
<<set _tmpItm = $foodArr[_rowIndex]>>
<<capture _tmpItm>>
<tr>
<td>_tmpItm.name</td><td>$<<print _tmpItm.price>>.00</td>
<td width="30%">
<<if canPurchase(_tmpItm.price)>>
<<button "Purchase">>
<<spendMoney _tmpItm.price>>
<<set $foodItm = _tmpItm>>
<<unset $foodArr>>
<<goto "EatFood">>
<</button>>
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
</center>
<hr>
<table>
<tr>
<td>
<<button "Put down the menu" $foodPassage>><<unset $foodArr>><<addSecs 2>><</button>>
</td>
</tr>
</table>
<<elseif $foodPassage == 'FoodCourtList'>>
<<switch $fcTab>>
<<case 'McDougals'>>
<<set $foodArr = []>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/OnionRings.webp','Onion Rings',8,4000,10,5,20,120,-5))>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/ChiliDog.webp','Chili Dog',10,2000,15,10,15,120,-2))>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/HotWings.webp','Hot Wings',15,2500,20,25,20,120,-10))>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/FishAndChips.webp','Battered Fish & Chips',12,3000,20,30,30,120,-2))>>
<<set $foodArr.push(new Food('Media/Locations/Downtown/Hooters/Food/CheeseBurger.webp','Cheeseburger & Fries',12,1800,20,20,30,120,-3))>>
<<case 'Soubway'>>
<<set $foodArr = []>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg = 'Media/Misc/Food/fSub1.webp'>>
<<else>>
<<set _tmpImg = 'Media/Misc/Food/mSub1.webp'>>
<</if>>
<<set $foodArr.push(new Food(_tmpImg,'Black Forest Ham',8,4000,10,5,20,120,-5))>>
<<set $foodArr.push(new Food(_tmpImg,'Chicken and Bacon Ranch Melt',10,2000,15,10,15,120,-2))>>
<<set $foodArr.push(new Food(_tmpImg,'Cold Cut Combo',15,2500,20,25,20,120,-10))>>
<<set $foodArr.push(new Food(_tmpImg,'Italian B.M.T.',12,3000,20,30,30,120,-2))>>
<<set $foodArr.push(new Food(_tmpImg,'Spicy Italian',12,1800,20,20,30,120,-3))>>
<<case 'Pizza Haus'>>
<<set $foodArr = []>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg = 'Media/Misc/Food/fPizza1.webp'>>
<<else>>
<<set _tmpImg = 'Media/Misc/Food/mPizza1.webp'>>
<</if>>
<<set $foodArr.push(new Food(_tmpImg,'Pepperoni',8,4000,10,5,20,120,-5))>>
<<set $foodArr.push(new Food(_tmpImg,'All Cheese',10,2000,15,10,15,120,-2))>>
<<set $foodArr.push(new Food(_tmpImg,'Meat Lovers',15,2500,20,25,20,120,-10))>>
<<set $foodArr.push(new Food(_tmpImg,'BBQ Chicken',12,3000,20,30,30,120,-2))>>
<</switch>>
<span id="repCont">
<table class="foodTable">
<<for _rowIndex to 0; _rowIndex < $foodArr.length; _rowIndex++>>
<<set _tmpItm = $foodArr[_rowIndex]>>
<<capture _tmpItm>>
<tr>
<td>_tmpItm.name</td><td>$<<print _tmpItm.price>>.00</td>
<td width="30%">
<<if canPurchase(_tmpItm.price)>>
<<button "Purchase">>
<<spendMoney _tmpItm.price>>
<<set $foodItm = _tmpItm>>
<<unset $foodArr>>
<<goto "EatFood">>
<</button>>
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br>
<<button "View Drink Menu" "drinkMenu">><</button>>
</span>
<</if>><<set
$player.hunger += $foodItm.hungerBoost;
$player.thirst += $foodItm.thirstBoost;
$player.calories += $foodItm.calories;
$player.mood += $foodItm.moodBoost;
>>
<<addMins 15>>
<center>
<img @src="$foodItm.image"/>
<br><br>
<<switch random(1,2)>>
<<case 1>>
You eat your meal slowly, letting the food rest on your tongue before swallowing it down.
<br>
Your motions are unhurried, each chew deliberate, drawing out the warmth and texture with quiet pleasure.
<<case 2>>
You lift the next bite with care, your lips brushing the edge before it slips inside.
<br>
A soft breath escapes as you savor the moment, the rhythm of eating becoming almost intimate.
<<case 3>>
You swallow, feeling the weight slide down your throat and settle.
<br>
A breath follows, and you reach for the next bite without thinking
<</switch>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Finish" $foodPassage>><</button>>
</td>
</tr>
</table>
<<unset $foodItm>><<addMins 5>>
<<if $foodPassage == 'HootersTable'>>
<<set _menuName = 'Hooters'>>
<<set _menuImg = 'Media/Locations/Downtown/Hooters/Hooters_menu.webp'>>
<<set $drinkArr = []>>
<<set $drinkArr.push(new Food('Media/Shared/Food/waterGlass1.webp','Water',0,0,10,0,0,0,$player.thirstMax))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Soda.webp','Soda',5,600,0,25,0,0,20))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Beer.webp','Beer',9,750,0,25,0,8,-2))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Coffee.webp','Coffee',6,900,0,30,0,0,-2))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Milkshake.webp','Milkshake',12,2500,0,15,0,0,$player.thirstMax))>>
<<elseif ['KellyStool','GirlsNightHUB','BarDate'].includes($foodPassage)>>
<<set _menuName = 'Kelly\'s Pub'>>
<<set _menuImg = 'Media/Locations/Downtown/KellysPub/menu.webp'>>
<<set $drinkArr = []>>
<<set $drinkArr.push(new Food('Media/Shared/Food/waterGlass1.webp','Water',0,0,10,0,0,0,$player.thirstMax,0))>>
<<set $drinkArr.push(new Food('N/A','Ginger Ale',5,200,0,5,0,0,1))>>
<<set $drinkArr.push(new Food('N/A','Beer',9,750,0,25,0,8,-2))>>
<<set $drinkArr.push(new Food('N/A','Cocktail',12,800,0,30,0,12,5))>>
<<set $drinkArr.push(new Food('N/A','Shot',15,400,0,20,20,25,0))>>
<<elseif ['BBBar','DicksBar'].includes($foodPassage)>>
<<set _menuName = 'Boobie Bungalow'>>
<<set _menuImg = 'Media/Locations/RedLight/DiveBar/barMenu.webp'>>
<<set $drinkArr = []>>
<<set $drinkArr.push(new Food('Media/Shared/Food/waterGlass1.webp','Water',0,0,10,0,0,0,$player.thirstMax,0))>>
<<set $drinkArr.push(new Food('N/A','Ginger Ale',5,200,0,5,0,0,1))>>
<<set $drinkArr.push(new Food('N/A','Beer',9,750,0,25,0,8,-2))>>
<<set $drinkArr.push(new Food('N/A','Cocktail',12,800,0,30,0,12,5))>>
<<set $drinkArr.push(new Food('N/A','Shot',15,400,0,20,20,25,0))>>
<<elseif $foodPassage == 'FoodCourtList'>>
<<switch $fcTab>>
<<case 'McDougals'>>
<<set $drinkArr = []>>
<<set $drinkArr.push(new Food('Media/Shared/Food/waterGlass1.webp','Water',0,0,10,0,0,0,$player.thirstMax))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Soda.webp','Soda',5,600,0,25,0,0,20))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Beer.webp','Beer',9,750,0,25,0,8,-2))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Coffee.webp','Coffee',6,900,0,30,0,0,-2))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Milkshake.webp','Milkshake',12,2500,0,15,0,0,$player.thirstMax))>>
<<include "FoodCourtList">>
<<timed 0s>>
<<replace '#repCont'>>
<table class="foodTable">
<<for _rowIndex to 0; _rowIndex < $drinkArr.length; _rowIndex++>>
<<set _tmpItm = $drinkArr[_rowIndex]>>
<<capture _tmpItm>>
<tr>
<td>_tmpItm.name</td><td>$<<print _tmpItm.price>>.00</td>
<td width="30%">
<<button "Purchase">>
<<if canPurchase(_tmpItm.price)>>
<<spendMoney _tmpItm.price>>
<<set $drinkItm = _tmpItm>>
<<unset $drinkArr>>
<<goto "DrinkDrink">>
<</if>>
<</button>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br>
<<button "View Food Menu" "FoodCourtList">><</button>>
<</replace>>
<</timed>>
<<case 'Soubway'>>
<<set $drinkArr = []>>
<<set $drinkArr.push(new Food('Media/Shared/Food/waterGlass1.webp','Water',0,0,10,0,0,0,$player.thirstMax))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Soda.webp','Soda',5,600,0,25,0,0,20))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Beer.webp','Juice',9,750,0,25,0,0,-2))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Coffee.webp','Coffee',6,900,0,30,0,0,-2))>>
<<include "FoodCourtList">>
<<timed 0s>>
<<replace '#repCont'>>
<table class="foodTable">
<<for _rowIndex to 0; _rowIndex < $drinkArr.length; _rowIndex++>>
<<set _tmpItm = $drinkArr[_rowIndex]>>
<<capture _tmpItm>>
<tr>
<td>_tmpItm.name</td><td>$<<print _tmpItm.price>>.00</td>
<td width="30%">
<<button "Purchase">>
<<if canPurchase(_tmpItm.price)>>
<<spendMoney _tmpItm.price>>
<<set $drinkItm = _tmpItm>>
<<unset $drinkArr>>
<<goto "DrinkDrink">>
<</if>>
<</button>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br>
<<button "View Food Menu" "FoodCourtList">><</button>>
<</replace>>
<</timed>>
<<case 'Pizza Haus'>>
<<set $drinkArr = []>>
<<set $drinkArr.push(new Food('Media/Shared/Food/waterGlass1.webp','Water',0,0,10,0,0,0,$player.thirstMax))>>
<<set $drinkArr.push(new Food('Media/Shared/Food/Soda.webp','Soda',5,600,0,25,0,0,20))>>
<<include "FoodCourtList">>
<<timed 0s>>
<<replace '#repCont'>>
<table class="foodTable">
<<for _rowIndex to 0; _rowIndex < $drinkArr.length; _rowIndex++>>
<<set _tmpItm = $drinkArr[_rowIndex]>>
<<capture _tmpItm>>
<tr>
<td>_tmpItm.name</td><td>$<<print _tmpItm.price>>.00</td>
<td width="30%">
<<button "Purchase">>
<<if canPurchase(_tmpItm.price)>>
<<spendMoney _tmpItm.price>>
<<set $drinkItm = _tmpItm>>
<<unset $drinkArr>>
<<goto "DrinkDrink">>
<</if>>
<</button>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<br>
<<button "View Food Menu" "FoodCourtList">><</button>>
<</replace>>
<</timed>>
<</switch>>
<</if>>
<<if $foodPassage != 'FoodCourtList'>>
<center><H1><<print _menuName>></H1>
<img @src="_menuImg" height="450rem">
<<if $foodPassage == 'HootersTable'>>
<br>
<<button "View Food Menu" "FoodCourtList">><</button>>
<</if>>
<br>
<table class="foodTable">
<<for _rowIndex to 0; _rowIndex < $drinkArr.length; _rowIndex++>>
<<set _tmpItm = $drinkArr[_rowIndex]>>
<<capture _tmpItm>>
<tr>
<td>_tmpItm.name</td><td>$<<print _tmpItm.price>>.00</td>
<td width="30%">
<<button "Purchase">>
<<if canPurchase(_tmpItm.price)>>
<<spendMoney _tmpItm.price>>
<<set $drinkItm = _tmpItm>>
<<unset $drinkArr>>
<<goto "DrinkDrink">>
<</if>>
<</button>>
</td>
</tr>
<</capture>>
<</for>>
</table>
</center>
<hr>
<table>
<tr>
<td>
<<button "Put down the menu" $foodPassage>><<unset $foodArr>><<addSecs 2>><</button>>
</td>
</tr>
</table>
<</if>><<set
$player.thirst += $drinkItm.thirstBoost;
$player.mood += $drinkItm.moodBoost;
>>
<<if ['KellyStool','GirlsNightHUB','BarDate','BBBar','DicksBar'].includes($foodPassage)>>
<<if $drinkItm.name === 'Shot'>>
<<set $player.drunk += $drinkItm.boozeContent>>
<<set _tmpImg = 'Media/Drinking/Shots/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/'>>
<<if $player.drunk < 30>>
<<set _tmpImg += random(1,2) + '.webp'>>
<<elseif $player.drunk < 50>>
<<set _tmpImg += random(3,4) + '.webp'>>
<<elseif $player.drunk < 70>>
<<set _tmpImg += '5.webp'>>
<<elseif $player.drunk < 80>>
<<set _tmpImg += '6.webp'>>
<<else>>
<<set _tmpImg += random(7,8) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/'>>
<<if $player.drunk < 50>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<elseif $player.drunk < 60>>
<<set _tmpImg += random(4,5) + '.webp'>>
<<else>>
<<set _tmpImg += random(6,7) + '.webp'>>
<</if>>
<</if>>
<<set $drinkItm.image = _tmpImg>>
<<else>>
<<set $drinkItm.amount = 4>>
<<if !$barDrinks>>
<<set $barDrinks = []>>
<</if>>
<<set $barDrinks.push($drinkItm)>>
<<goto $foodPassage>>
<</if>>
<</if>>
<center>
<img @src="$drinkItm.image"/>
<br><br>
<<switch random(1,3)>>
<<case 1>>
You raise the glass and tilt it toward your lips, the cool rim brushing your skin.
<br>
Liquid flows in smoothly, coating your tongue before you swallow with a quiet ease.
<<case 2>>
You take a slow sip, the sensation spreading across your mouth as your throat prepares to receive it.
<br>
The sound of the swallow is soft, followed by a faint breath as you lower the cup.
<<case 3>>
You grip the container firmly, lifting it with practiced motion as your lips part and you take a long drink.
<</switch>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Finish" $foodPassage>><</button>>
</td>
</tr>
</table>
<<unset $drinkItm>><<widget "genBra">>
<<switch _args[0]>>
<<case 0>>
<<set
_type = 'Bra';
_style = '';
_img = 'Media/Self/Body/Tits/' + $player.body.tits + ($player.body.tits > 4 && $player.traits.includes(7)?'e':'') + '.webp';
_desc = ($player.body.tits > 0) ? 'You are not wearing a bra':'You are bare chested';
_price = 0;
_stats = {
zCup: false
};
>>
<<case 1>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/1.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 2>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/2.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 3>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/3.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 4>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/4.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 5>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/5.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 6>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/6.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 7>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/7.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 8>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/8.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 9>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/9.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 10>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/10.webp';
_desc = 'Basic support bra. It doesn\'t do anything for your looks but it does hold the girls in place.';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 11>>
<<set
_type = 'Bra';
_style = 'Athletic';
_img = 'Media/Clothing/Bras/Athletic/1.webp';
_desc = 'Basic athletic bra, provides stable support and absorbs sweat. This one is dark blue';
_price = 13;
_stats = {
zCup: false
};
>>
<<case 12>>
<<set
_type = 'Bra';
_style = 'Athletic';
_img = 'Media/Clothing/Bras/Athletic/2.webp';
_desc = 'A fun and functional support bra, branded with the word \'TUSHY\' which is sure to draw attention of anyone who sees it.';
_price = 10;
_stats = {
zCup: false
};
>>
<<case 13>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/1.webp';
_desc = 'A frilly lacy white bra that does more to make the wearer feel feminine than it does to cover anything naughty.';
_price = 10;
_stats = {
zCup: false
};
>>
<<case 14>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/2.webp';
_desc = 'Let your side boob steal the show with this pink lacy half-cup bra';
_price = 10;
_stats = {
zCup: false
};
>>
<<case 15>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/3.webp';
_desc = 'A beautiful bra consisting of lace straps and a couple of bows to heighten the sex appeal';
_price = 11;
_stats = {
zCup: false
};
>>
<<case 16>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/4.webp';
_desc = 'This purple lacy under-wire bra provides as much support as it does sex appeal';
_price = 15;
_stats = {
zCup: false
};
>>
<<case 17>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Casual/11.webp';
_desc = 'Simple but cute under-wire bra with white trim and cute little bow to show off your femininity.';
_price = 10;
_stats = {
zCup: false
};
>>
<<case 18>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/12.webp';
_desc = 'This pink satin bra is enhanced with a lace black trim.';
_price = 10;
_stats = {
zCup: false
};
>>
<<case 19>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/5.webp';
_desc = 'Show off your cleavage in this powder-blue lace bra, designed to accentuate and highlight your most feminine asset.';
_price = 12;
_stats = {
zCup: false
};
>>
<<case 20>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/6.webp';
_desc = 'This yellow rib-hugging bra has just enough material to keep your bits covered, and just enough exposed skin to tease anyone who sees it.';
_price = 14;
_stats = {
zCup: false
};
>>
<<case 21>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/7.webp';
_desc = 'A semi-transparent yellow bra with feminine lace around the top edge.';
_price = 14;
_stats = {
zCup: false
};
>>
<<case 22>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/8.webp';
_desc = 'This black lace number shows your naughty side is playful and ready to go!';
_price = 15;
_stats = {
zCup: false
};
>>
<<case 23>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/9.webp';
_desc = 'A pink-and-white push-up bra guaranteed to draw all eyes to your chest.';
_price = 14;
_stats = {
zCup: false
};
>>
<<case 24>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/10.webp';
_desc = 'Soft pink half-cup bra with a closeable seem down the middle - button it up for work, let your nipples free afterwards!';
_price = 15;
_stats = {
zCup: false
};
>>
<<case 25>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/11.webp';
_desc = 'The only thing making this count as a bra are the lacy flowers that only just barely cover the nipple area. This bra is not for a timid woman!';
_price = 12;
_stats = {
zCup: false
};
>>
<<case 26>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/1.webp';
_desc = 'Get their attention with this black, lacy bralette.';
_price = 20;
_stats = {
zCup: false
};
>>
<<case 27>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/2.webp';
_desc = 'This lacy bralette has a decorative cross on the front.';
_price = 20;
_stats = {
zCup: false
};
>>
<<case 28>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/3.webp';
_desc = 'Tight, black, shiny.';
_price = 20;
_stats = {
zCup: false
};
>>
<<case 29>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/4.webp';
_desc = 'Tight, black, shiny, this time with straps.';
_price = 20;
_stats = {
zCup: false
};
>>
<<case 30>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/5.webp';
_desc = 'A delicate lace confection for the darkness in your heart.';
_price = 20;
_stats = {
zCup: false
};
>>
<<case 31>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/6.webp';
_desc = 'Athletic, tight, with a certain something.';
_price = 20;
_stats = {
zCup: false
};
>>
<<case 32>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/7.webp';
_desc = 'Athletic, tight, but with a hint of red accent.';
_price = 20;
_stats = {
zCup: false
};
>>
<<case 33>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/8.webp';
_desc = 'Alright! Now we\'re talking straps!';
_price = 20;
_stats = {
zCup: false
};
>>
<<case 34>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/9.webp';
_desc = 'A lovely, lacy, torso covering bralette, it\'s black of course';
_price = 25;
_stats = {
zCup: false
};
>>
<<case 35>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/10.webp';
_desc = 'If we\'re going to talk basic Goth bras, this one would be it.';
_price = 18;
_stats = {
zCup: false
};
>>
<<case 36>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/11.webp';
_desc = 'A basic Goth bra, accented in red. For Blood.';
_price = 18;
_stats = {
zCup: false
};
>>
<<case 37>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/12.webp';
_desc = 'Can you ever really have too many straps?';
_price = 23;
_stats = {
zCup: false
};
>>
<<case 38>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/13.webp';
_desc = 'A soft, frilly bra, in black of course.';
_price = 23;
_stats = {
zCup: false
};
>>
<<case 39>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/14.webp';
_desc = 'Elegant, simple, Goth.';
_price = 18;
_stats = {
zCup: false
};
>>
<<case 40>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/15.webp';
_desc = 'A black halter top with a faint Black-on-black crescent moon.';
_price = 15;
_stats = {
zCup: false
};
>>
<<case 41>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/16.webp';
_desc = 'Lovely lace trim on a basic black bra. Of course it\'s pentagrams and demons, but hey, lace!';
_price = 18;
_stats = {
zCup: false
};
>>
<<case 42>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/17.webp';
_desc = 'Now, when thought \'Goth\', this is what you were thinking you\'d see, wasn\'t it?';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 43>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/18.webp';
_desc = 'A lacy bralette, accented in deep blood red.';
_price = 28;
_stats = {
zCup: false
};
>>
<<case 44>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/19.webp';
_desc = 'A deep, plum colored bralette, with a decorative cross.';
_price = 30;
_stats = {
zCup: false
};
>>
<<case 45>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/20.webp';
_desc = 'For the girl who wants demonic inspiration.';
_price = 25;
_stats = {
zCup: false
};
>>
<<case 46>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/21.webp';
_desc = 'Studs! Accented in gold';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 47>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/22.webp';
_desc = 'You really just can\'t have enough straps can you?';
_price = 32;
_stats = {
zCup: false
};
>>
<<case 48>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/23.webp';
_desc = 'A simple black bra, with some straps.';
_price = 18;
_stats = {
zCup: false
};
>>
<<case 49>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/24.webp';
_desc = 'Perhaps you\'re a girl who\'s more into stripes.';
_price = 25;
_stats = {
zCup: false
};
>>
<<case 50>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/25.webp';
_desc = 'A lovely bralette in a dark rose.';
_price = 28;
_stats = {
zCup: false
};
>>
<<case 51>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Goth/26.webp';
_desc = 'A sleek black halter bra with a mesh top.';
_price = 20;
_stats = {
zCup: false
};
>>
<<case 52>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/13.webp';
_desc = 'This black bra has floral details to accentuate your massive breasts while providing much-needed support.';
_price = 55;
_stats = {
zCup: false
};
>>
<<case 53>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/14.webp';
_desc = 'Extra-thick straps help keep your oversized breasts in place in any outfit with this floral white bra.';
_price = 58;
_stats = {
zCup: false
};
>>
<<case 54>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/15.webp';
_desc = 'This basic black satin bra provides support for your day-to-day needs as a top-heavy woman.';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 55>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/16.webp';
_desc = 'This red bra with leaf-and-flower detailing keeps your massive breasts from causing back pain all day.';
_price = 46;
_stats = {
zCup: false
};
>>
<<case 56>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/17.webp';
_desc = 'This basic black sports-style bra is good for casual outings or going to the grocery store with your massive tits.';
_price = 29;
_stats = {
zCup: false
};
>>
<<case 57>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/18.webp';
_desc = 'A basic white underwire bra for your everyday top-heavy life needs.';
_price = 32;
_stats = {
zCup: false
};
>>
<<case 58>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/12.webp';
_desc = 'This tan bra mixes basic and detailed while leaving a lot of cleavage just due to the size of your massive breasts.';
_price = 49;
_stats = {
zCup: false
};
>>
<<case 59>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/13.webp';
_desc = 'Pink leaves provide some details on this overly-large but supportive bra.';
_price = 65;
_stats = {
zCup: false
};
>>
<<case 60>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/14.webp';
_desc = 'White lace flowers give the eyes a reason to stare at anything other than your massive breasts while still providing substantial support.';
_price = 50;
_stats = {
zCup: false
};
>>
<<case 61>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/15.webp';
_desc = 'Black and red plaid with lace details and satin ties on the front accentuate your massive amount of cleavage.';
_price = 69;
_stats = {
zCup: false
};
>>
/*
<<case 62>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/';
_desc = '';
_price = 50;
_stats = {
zCup: false
};
>>
*/
<<case 63>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/16.webp';
_desc = 'Multicolored zebra print brings some fun to your bra collection while keeping your tits from jiggling back and forth too much.';
_price = 43;
_stats = {
zCup: false
};
>>
<<case 64>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/17.webp';
_desc = 'This handmade bra combines satin cups, polka-dot trim details with a polka-dot bowtie and underwire cups to provide lift and support for your huge breasts.';
_price = 76;
_stats = {
zCup: false
};
>>
<<case 65>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/18.webp';
_desc = 'Leopard-print screams “I have huge tits, and I’m fun” with this underwire, soft-cup bra';
_price = 58;
_stats = {
zCup: false
};
>>
<<case 66>>
<<set
_type = 'Bra';
_style = 'Athletic';
_img = 'Media/Clothing/Bras/Athletic/3.webp';
_desc = 'You may need two of these bras to do any working out, but this red and white sports bra was made to keep heavy objects (mostly) in place.';
_price = 75;
_stats = {
zCup: false
};
>>
<<case 67>>
<<set
_type = 'Bra';
_style = 'Athletic';
_img = 'Media/Clothing/Bras/Athletic/4.webp';
_desc = 'This gray sports bra with a black strap and heart detail is everything you need (except maybe a second one) for a day at the gym.';
_price = 80;
_stats = {
zCup: false
};
>>
<<case 68>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/20.webp';
_desc = 'An everyday pink bra that will strain to keep your massive breasts at bay.';
_price = 80;
_stats = {
zCup: false
};
>>
<<case 69>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/21.webp';
_desc = 'Simple over-the-shoulder pink bra with one tiny fake pearl strand right between the cups';
_price = 40;
_stats = {
zCup: false
};
>>
<<case 70>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/22.webp';
_desc = 'The scalloped edges on this bra give it an extra feminine feel.';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 71>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/23.webp';
_desc = 'A textured pink bra to highlight your femininity. Practical and pretty.';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 72>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Bimbo/1.webp';
_desc = 'The perfect balance between style, lift and comfort. This versatile t-shirt plunge neckline bra evokes the allure of Paris. And it\'s Pink!';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 73>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Bimbo/2.webp';
_desc = 'The perfect balance between style, lift and comfort. This versatile t-shirt plunge neckline bra evokes the allure of Paris. And it\'s Pink!';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 74>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/19.webp';
_desc = 'This silver metallic bra is sure to draw all eyes in the room when it makes an appearance!';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 75>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/19.webp';
_desc = 'This everyday white bra will help keep your massive girls in place for whatever you need to get done.';
_price = 40;
_stats = {
zCup: false
};
>>
<<case 76>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/24.webp';
_desc = 'Simple, plain, perfect.';
_price = 25;
_stats = {
zCup: false
};
>>
<<case 77>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/25.webp';
_desc = 'A hotpink eggshell bra that supports your curvey assets.';
_price = 30;
_stats = {
zCup: false
};
>>
<<case 78>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/20.webp';
_desc = 'An animal print bra is the perfect thing to highlight your animalistic sexual appeal';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 79>>
<<set
_type = 'Bra';
_style = 'Bimbo';
_img = 'Media/Clothing/Bras/Bimbo/4.webp';
_desc = 'Elegant pink lace with white trim will perfectly encase your best assets while showing how girly you really are';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 80>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/21.webp';
_desc = 'This lace half-cup bra is as black as the night';
_price = 35;
_stats = {
zCup: false
};
>>
<<case 81>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/26.webp';
_desc = 'Baby-blue material with red flowers and black lace - what\'s not to love?';
_price = 30;
_stats = {
zCup: false
};
>>
<<case 82>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/27.webp';
_desc = 'A sexy little pink bra with black lace trim';
_price = 30;
_stats = {
zCup: false
};
>>
<<case 83>>
<<set
_type = 'Bra';
_style = 'Casual';
_img = 'Media/Clothing/Bras/Casual/28.webp';
_desc = 'Combining maximum support with a sleek look this bra has everything you could want.';
_price = 30;
_stats = {
zCup: false
};
>>
<<case 84>>
<<set
_type = 'Bra';
_style = 'Slutty';
_img = 'Media/Clothing/Bras/Slutty/22.webp';
_desc = 'A sexy black lace bra with split cups for that perfect "Wardrobe Malfunction"';
_price = 30;
_stats = {
zCup: false
};
>>
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,_style,_img,_desc,_stats,_price)>>
<</widget>><<widget "genBracelet">>
<<switch _args[0]>>
<<case 0>>
<<set
_type = 'Bracelet';
_img = 'Media/Self/Body/Wrist/' + $player.presenting[0] + '/1.webp';
_desc = 'You are not wearing a bracelet';
_stats = {
price: 0
};
>>
<<case 1>>
<<set
_type = 'Bracelet';
_img = 'Media/Clothing/Bracelets/1.webp';
_desc = 'A beautiful delicate gold bangle that showcases your elegant wrist.';
_stats = {
price: 45
};
>>
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,_style,_img,_desc,_stats,_price)>>
<</widget>><<widget "genCoat">>
<<switch _args[0]>>
<<case 0>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/0.webp';
_desc = 'You are not wearing a coat';
_stats = {
warmth: 0
};
>>
<<case 1>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/1.webp';
_desc = 'A basic light jacket, good for early fall when it\'s not very cold.';
_price = 5;
_stats = {
warmth: 1
};
>>
<<case 2>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/2.webp';
_desc = 'A plain but warm winter coat, should keep the chill out of your bones.';
_price = 10;
_stats = {
warmth: 4
};
>>
<<case 3>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/3.webp';
_desc = 'A cute pink coat with warm fleece lining.';
_price = 20;
_stats = {
warmth: 3
};
>>
<<case 4>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/4.webp';
_desc = 'A red high school varisty jacket.';
_price = 20;
_stats = {
warmth: 2
};
>>
<<case 5>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/6.webp';
_desc = 'A doctor\'s white lab coat';
_price = 0;
_stats = {
warmth: 0
};
>>
<<case 6>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/6.webp';
_desc = 'Invest in the timeless tradition of classic design with this iconic rain coat.';
_price = 0;
_stats = {
warmth: 2
};
>>
<<case 7>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/7.webp';
_desc = 'Adorable calf-length pink coat with fluffy accents; guaranteed to keep you warm on even the coldest winter day.';
_price = 20;
_stats = {
warmth: 20
};
>>
<<case 8>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/8.webp';
_desc = 'Nothing screams elegance and class like a warm fur coat. Drape yourself in luxury this winter and say goodbye to the cold.';
_price = 500;
_stats = {
warmth: 20
};
>>
<<case 9>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/9.webp';
_desc = 'A powder blue winter parka with pleated seams and white fur collar. You don\'t have to sacrifice fashion for warmth!';
_price = 30;
_stats = {
warmth: 20
};
>>
<<case 10>>
<<set
_type = 'Coat';
_img = 'Media/Clothing/Coats/5.webp';
_desc = 'Standard issue football varsity jacket';
_price = 20;
_stats = {
warmth: 2
};
>>
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,'',_img,_desc,_stats,_price)>>
<</widget>><<widget "genEarrings">>
<<switch _args[0]>>
<<case 0>>
<<set
_type = 'Earrings';
_style = '';
_img = 'Media/Self/Body/Ear/' + $player.presenting[0] + '/1.webp';
_desc = ($player.body.earPierced === 0) ? 'Your ears are not pierced':'You are not wearing earrings';
_stats = {};
_price = 0;
>>
<<case 1>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/1.webp';
_desc = 'A cute take on the skull-and-cross bones in a hoop-style setting';
_stats = {};
_price = '10';
>>
<<case 2>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/2.webp';
_desc = 'A set of classic earings with a hoop and straight drop point';
_stats = {};
_price = '10';
>>
<<case 3>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/3.webp';
_desc = 'A small simple stud in the shape of a cartoonish skull';
_stats = {};
_price = '5';
>>
<<case 4>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/4.webp';
_desc = 'A large hoop ring attached to a faux black diamond stud';
_stats = {};
_price = '15';
>>
<<case 5>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/5.webp';
_desc = 'A rectangular faux black diamond stud, the multifaceted stone really twinkles and shines in the light';
_stats = {};
_price = '15';
>>
<<case 6>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/6.webp';
_desc = 'These sleek, modern silhouettes with colorful, sculptural designs are an eye-catching way to give an outfit a whole new vibe';
_stats = {};
_price = '10';
>>
<<case 7>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/7.webp';
_desc = 'A way to be both fun and fashionable, these cloud shaped earrings make a great bold statement';
_stats = {};
_price = '10';
>>
<<case 8>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/8.webp';
_desc = 'These toroise shell heart-shaped earrings are a great match to any outfit';
_stats = {};
_price = '10';
>>
<<case 9>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/9.webp';
_desc = 'A set of star-shapped lollipop earrings';
_stats = {};
_price = '35';
>>
<<case 10>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/10.webp';
_desc = 'There\'s nothing like oversized hoop earrings to bring out the sexy in you.';
_stats = {};
_price = '40';
>>
<<case 11>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/11.webp';
_desc = 'These diamond-encrusted "slut" earrings are a great way to claim the label.';
_stats = {};
_price = '80';
>>
<<case 12>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/12.webp';
_desc = 'A set of art-deco gold-plated dick earrings that will have you feeling naughty even if no one else notices';
_stats = {};
_price = '60';
>>
<<case 13>>
<<set
_type = 'Earrings';
_style = 'Regular';
_img = 'Media/Clothing/Earrings/Regular/13.webp';
_desc = 'Everyone loves lollipops and you will too with this earring set.';
_stats = {};
_price = '40';
>>
<<case 14>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/1.webp';
_desc = 'A dangling fang with a drop of blood.';
_stats = {};
_price = '40';
>>
<<case 15>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/2.webp';
_desc = 'A cute little grim reaper, with cute little scythe, ready to harvest hearts.';
_stats = {};
_price = '40';
>>
<<case 16>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/3.webp';
_desc = 'A big golden hoop encrusted with little stones.';
_stats = {};
_price = '45';
>>
<<case 17>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/4.webp';
_desc = 'This earring set looks like the articulated legs of an arachnid, gripping your ear from behind.';
_stats = {};
_price = '60';
>>
<<case 18>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/5.webp';
_desc = 'Dark and sinster, this huge black hoop has an upsidedown pentacle on it.';
_stats = {};
_price = '35';
>>
<<case 19>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/6.webp';
_desc = 'A dangling fang with a drop of blood made of a precious stone.';
_stats = {};
_price = '45';
>>
<<case 20>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/7.webp';
_desc = 'This earring set has all manter of hoops and clips and symbols.';
_stats = {};
_price = '50';
>>
<<case 21>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/8.webp';
_desc = 'Proclaim your lack of faith with this tasteful, upsidedown crucifix.';
_stats = {};
_price = '45';
>>
<<case 22>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/9.webp';
_desc = 'Mystical and mysterious, that\'s what this big teardrop hoop says.';
_stats = {};
_price = '50';
>>
<<case 23>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/10.webp';
_desc = 'Darker and more subtle, these earrings suggest cathedral-like architecture.';
_stats = {};
_price = '50';
>>
<<case 24>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/11.webp';
_desc = 'A long set of dangling chains and clips.';
_stats = {};
_price = '40';
>>
<<case 25>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/12.webp';
_desc = 'A little heart shaped clip, includes a simple stud as well.';
_stats = {};
_price = '35';
>>
<<case 26>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/13.webp';
_desc = 'A cascading set of shooting stars, climbing up your ear.';
_stats = {};
_price = '45';
>>
<<case 27>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/14.webp';
_desc = 'This set of curling gold lines swirl along the edge of your ear. Are they tentacles? Vines?';
_stats = {};
_price = '45';
>>
<<case 28>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/15.webp';
_desc = 'This ear clip has a little line of dangling golden skulls hanging from it.';
_stats = {};
_price = '50';
>>
<<case 29>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/16.webp';
_desc = 'A simple bronze filigreed ear clip.';
_stats = {};
_price = '30';
>>
<<case 30>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/17.webp';
_desc = 'Coil a hissing asp around your ear with this sliver clip.';
_stats = {};
_price = '45';
>>
<<case 31>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/18.webp';
_desc = 'A golden horseshoe, for luck, surrounded with blue petals.';
_stats = {};
_price = '45';
>>
<<case 32>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/19.webp';
_desc = 'The swirling silver tapering to a point almost makes you look like an elf! Or maybe that old guy on that sci-fi show.';
_stats = {};
_price = '45';
>>
<<case 33>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/20.webp';
_desc = 'A silver dagger with delicate black stones, creates an elegant, if brutal image.';
_stats = {};
_price = '45';
>>
<<case 34>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/21.webp';
_desc = 'A golden dagger, thrust through your ear.';
_stats = {};
_price = '45';
>>
<<case 35>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/22.webp';
_desc = 'A tasteful set of rings and clips, in silver.';
_stats = {};
_price = '40';
>>
<<case 36>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/23.webp';
_desc = 'A chained crucifix, thrust through your ear.';
_stats = {};
_price = '35';
>>
<<case 37>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/24.webp';
_desc = 'A silver dragon, coiled around your ear.';
_stats = {};
_price = '50';
>>
<<case 38>>
<<set
_type = 'Earrings';
_style = 'Goth';
_img = 'Media/Clothing/Earrings/Goth/25.webp';
_desc = 'Demonic wings and a little black heart. That\'s so you!';
_stats = {};
_price = '40';
>>
<<case 39>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/15.webp';
_desc = 'Giant oversized pink with rhinestone centers. Fabulous!';
_stats = {};
_price = '45';
>>
<<case 40>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/1.webp';
_desc = 'Gold hoop earrings with rhinestone dotted pink enamel flowers';
_stats = {};
_price = '30';
>>
<<case 41>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/2.webp';
_desc = 'Faux fur pom-pom dangle earrings';
_stats = {};
_price = '45';
>>
<<case 42>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/3.webp';
_desc = 'Fuzzy heart-shapped stud earrings';
_stats = {};
_price = '20';
>>
<<case 43>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/4.webp';
_desc = 'Adorable pink furry baby duck earrings';
_stats = {};
_price = '50';
>>
<<case 44>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/5.webp';
_desc = 'Puffer dangle ball earrings with adorable plastic pink hearts';
_stats = {};
_price = '40';
>>
<<case 45>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/6.webp';
_desc = 'Light pink pom-pom drop earrings';
_stats = {};
_price = '40';
>>
<<case 46>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/7.webp';
_desc = 'What\'s better than hoop earrings? Pink fuzzy hoop earrings';
_stats = {};
_price = '40';
>>
<<case 47>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/8.webp';
_desc = 'Cute pink bow earrings surrounded with diamond-lace';
_stats = {};
_price = '45';
>>
<<case 48>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/9.webp';
_desc = 'Oversized pink bow earrings with a diamond stud clasp';
_stats = {};
_price = '45';
>>
<<case 49>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/10.webp';
_desc = 'Tiny stylized anal plug earrings';
_stats = {};
_price = '45';
>>
<<case 50>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/11.webp';
_desc = 'Sparkles, Hearts, Bimbos -- the perfect trifecta!';
_stats = {};
_price = '45';
>>
<<case 51>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/12.webp';
_desc = 'Little magic wand vibrators. Self-love, earring style.';
_stats = {};
_price = '45';
>>
<<case 52>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/13.webp';
_desc = 'Three little letters, so much power! These earrings will defintely draw some attention.';
_stats = {};
_price = '45';
>>
<<case 53>>
<<set
_type = 'Earrings';
_style = 'Bimbo';
_img = 'Media/Clothing/Earrings/Bimbo/14.webp';
_desc = 'A set of bimbo pink heart earrings.';
_stats = {};
_price = '35';
>>
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,_style,_img,_desc,_stats,_price)>>
<</widget>><<widget "genNecklace">>
<<switch _args[0]>>
<<case 0>>
<<set
_type = 'Necklace';
_img = 'Media/Self/Body/Neckline/' + ($player.presenting === 'Female'?'f':'M') + 'BareNeck.webp';
_desc = 'You are not wearing a necklace.';
>>
<<case 1>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/1.webp';
_desc = 'Simple and classic, this yellow gold chain necklace with hanging bar through hoop design will look great with any outfit.';
_style = 'Necklace';
_price = 25;
>>
<<case 2>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/2.webp';
_desc = 'A stunning multi-wrap necklace with charms and a crescent moon pendant.';
_style = 'Necklace';
_price = 30;
>>
<<case 3>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/3.webp';
_desc = 'A non-traditional noodle chain with copper star charms.';
_style = 'Necklace';
_price = 15;
>>
<<case 4>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/4.webp';
_desc = 'Claim the label of "babygirl" with this fun and stylish pendant!';
_style = 'Necklace';
_price = 25;
>>
<<case 5>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/5.webp';
_desc = 'A simple gold chain with an understated "Angel" pendant -- good girls don\'t like to brag.';
_style = 'Necklace';
_price = 25;
>>
<<case 6>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/6.webp';
_desc = 'A faux diamond encrusted choker that proudly states your attitude toward sex';
_style = 'Necklace';
_price = 100;
>>
<<case 7>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/7.webp';
_desc = 'Let people know how much you love cum with this gold embossed choker';
_style = 'Necklace';
_price = 40;
>>
<<case 8>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/8.webp';
_desc = 'Combine elegance and debauchary with this diamond \'Daddy\'s Girl\' choker.';
_style = 'Necklace';
_price = 60;
>>
<<case 9>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/9.webp';
_desc = 'Show your claws with this sexy pink "kitten" choker.';
_style = 'Necklace';
_price = 45;
>>
<<case 10>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/10.webp';
_desc = 'Nothing screams "bimbo" like a diamond encrusted bimbo collar!';
_style = 'Necklace';
_price = 100;
>>
<<case 11>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/11.webp';
_desc = 'Broadcast your need for to be dominated sexually with this diamond choker.';
_style = 'Necklace';
_price = 80;
>>
<<case 12>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/12.webp';
_desc = 'A rough cut shard of some kind of green stone crudely encased in a kind of gold wrap.';
_style = 'Necklace';
_price = 80000;
>>
<<case 13>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/2.webp';
_desc = 'A wide choker made of black lace.';
_style = 'Necklace';
_price = 60;
>>
<<case 14>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/3.webp';
_desc = 'A lace choker encrusted with semi precious stones.';
_style = 'Necklace';
_price = 80;
>>
<<case 15>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/4.webp';
_desc = 'A wide lacy black choker.';
_style = 'Necklace';
_price = 70;
>>
<<case 16>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/5.webp';
_desc = 'A thin black lace choker for the more understated Goth.';
_style = 'Necklace';
_price = 40;
>>
<<case 17>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/6.webp';
_desc = 'A thin black lace choker for the more understated Goth.';
_style = 'Necklace';
_price = 40;
>>
<<case 18>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/7.webp';
_desc = 'There\'s no other way to describe this, it\'s a sturdy, studded dog collar, with a ring. The prefect place to hook a leash to.';
_style = 'Necklace';
_price = 75;
>>
<<case 19>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/8.webp';
_desc = 'An elaborate lace choker with chains, featuring a large black gem.';
_style = 'Necklace';
_price = 90;
>>
<<case 20>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/9.webp';
_desc = 'A simple leather collar with a steel heart, which doubles as a place to connect a leash.';
_style = 'Necklace';
_price = 50;
>>
<<case 21>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/10.webp';
_desc = 'A black velvet choker with a tiny black heart.';
_style = 'Necklace';
_price = 50;
>>
<<case 22>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/11.webp';
_desc = 'A simple lace choker with a tiny gem as an accent.';
_style = 'Necklace';
_price = 45;
>>
<<case 23>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/12.webp';
_desc = 'A thick leather collar with a steel ring, this one includes a leash!';
_style = 'Necklace';
_price = 80;
>>
<<case 24>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/13.webp';
_desc = 'A studded black leather choker, complete with chains spelling out the words \'Cry Baby\'.';
_style = 'Necklace';
_price = 65;
>>
<<case 25>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/14.webp';
_desc = 'A longer necklace decorated with a snake and a pentagram, upsidedown of course.';
_style = 'Necklace';
_price = 80;
>>
<<case 26>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Goth/15.webp';
_desc = 'A studded leather collar, with two rings. In case you need two leashes? If you\'re into that sort of thing.';
_style = 'Necklace';
_price = 65;
>>
<<case 27>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/Bimbo/1.webp';
_desc = 'Who loves a cock sucking slut? Wear this necklace and you might just find out!';
_style = 'Necklace';
_price = 65;
>>
<<case 28>>
<<set
_type = 'Necklace';
_img = 'Media/Clothing/Necklaces/13.webp';
_desc = 'A shiny choker made out of solid silver.';
_style = 'Necklace';
_price = 165;
>>
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,_style,_img,_desc,_stats,_price)>>
<</widget>><<widget "genFit">>
<<switch _args[0]>>
<<case 0>>
<<set
_type = 'Fit';
_style = '';
_img = 'Media/Self/Body/Body/' + $player.presenting[0] + '/0.webp';
_desc = 'You are not wearing an outfit';
_price = 0;
_stats = {
top:'Off',
btm: 'Off',
tight: 0,
topSkin: 0,
btmSkin: 0,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
>>
<<case 1>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/1.webp';
_desc = 'A casual outfit consisting of a strappy tank-top and a pair of slightly ripped jeans.';
_style = 'Casual';
_stats = {
top:'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
>>
<<if $alteredFit>><<genFit 242>><</if>>
<<case 2>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/2.webp';
_desc = 'A loose fitting tank top and a pair of relaxed fit jeans. It would be a normal outfit except for the slogan splashed across the front of the shirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 3>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/3.webp';
_desc = 'A comfortable spaghetti strap top with a floral print design that would show off a fair amount of skin on your upper body. Relaxed fit faded jeans with strategic holes pre-cut in them for that authentic look.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 4>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/4.webp';
_desc = 'A loose fitting casual dress, blue with white dots, reaching to the knee. Overall it\'s fairly conservative while still being feminine.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 5>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/5.webp';
_desc = 'A tight fitting top with a plunging neckline that would hug your upper body, and a pair of fitted yoga pants.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 6>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/6.webp';
_desc = 'This bright yellow outfit consists of a flowy top combined with a pair of shorts that, together, look like a summer dress.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 7>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/7.webp';
_desc = 'A plain off-white dress that would be pretty modest if the hem didn\'t end so far above the knee. Still, this would fit in most day-to-day situations a woman might find herself in.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 8>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/1.webp';
_desc = 'A loose fitting nightgown that just reaches your knees. It\'s light pink in color and has little cartoon bunnies printed all over it';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 9>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/1.webp';
_desc = 'A light pink stretchy tank top paired with a pair of black spandex pants with pink accents. This outfit covers a fair amount of skin and is pretty modest.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 10>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/2.webp';
_desc = 'A red and black themed workout outfit. The red stripes on the legs draw the eye toward your ass, and the bright red top makes sure the next thing someone looks at is your chest. It shows off quite a bit of your upper body, but the legs are completely covered.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 11>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/3.webp';
_desc = 'A form-hugging red top combined with blank red-striped spandex pants. It doesn\'t show off much skin, but your body shape will be clearly outlined by the close-fitting clothes.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 12>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/4.webp';
_desc = 'This outfit would cling to every curve of your body, and the cutouts on the back and upper thighs ensure that more of you would be showing than you would expect from such a neck-to-toe black outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 13>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/5.webp';
_desc = 'This bright pink outfit leaves almost nothing to the imagination. The skin-tight top leaves ample cleavage on display and the shorts barely extend past your crotch. Everything looks so tight that when you bend over people might even be able to see the outline of any worn panties.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 1,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 14>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/6.webp';
_desc = 'Both the gray top and the dark blue shorts look like they\'re made out of sweatpants material. They\'re both very stretchy and would easily fit onto most body types...even if unflatteringly. What it lacks in flash it more than makes up for in how little of it there is.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 15>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/7.webp';
_desc = 'This light pink number looks designed to show off toned abs and to hug round soft curves.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 16>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/1.webp';
_desc = 'A whimsical take on the \'Boyfriend shirt\' that shows off any bra -- or lack of one -- worn under it combined with a very short faded denim skirt that ends well above the knee.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 1,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 17>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/2.webp';
_desc = 'A form fitting dark red top with a skin-tight black miniskirt, both of which show off plenty of skin and, in the right position, can show off whether or not you\'re wearing any underwear.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 18>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/3.webp';
_desc = 'This isn\'t your mother\'s little black dress! This dress covers just enough to keep you from violating any decency laws while still showcasing the sexy feminine form.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 19>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/4.webp';
_desc = 'The light pink top features a comic book character and is barely larger than a bra, and the short shorts leave half your ass visible for any appreciative onlookers.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 20>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/1.webp';
_desc = 'This classic dark blue two-piece three-button wool suit will make you look as good as you feel while wearing it.';
_style = 'Fancy';
_price = 7500;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
cow: 0
};
>>
<<case 21>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/5.webp';
_desc = 'A tight black spaghetti-strapped crop top combined with a light green hip-hugging miniskirt. This outfit is sure to draw the eye of anyone nearby.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 22>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/6.webp';
_desc = 'This outfit boasts a see-through fishnet shirt along with an incredibly short polka-dot microskirt. This is definitely not an outfit meant to be modest -- everything is on display!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 23>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/7.webp';
_desc = 'This gold and purple number would fit on the beach almost as well as in the club. The glittery gold color is definitely not for the bashful at heart.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 24>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/8.webp';
_desc = 'This outfit manages to give off a \'Little Girl\' vibe while at the same time being incredibly sexy and revealing. The light pink see-through top barely covers the chest and the denim short skirt leaves plenty exposed for any adventurous onlooker.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 25>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/9.webp';
_desc = 'Inspired by your average cheerleader outfit, this number is sure to bring out the \'spirit\' of anyone wearing it.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 26>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/10.webp';
_desc = 'For the inner-cavewoman this outfit looks almost like torn leather straps that cover the bare minimum to avoid getting arrested for indecent exposure and the skirt is so short even standing in a normal position it shows off whatever you\'re packing between your thighs.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 27>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/11.webp';
_desc = 'An excellent party girl outfit, the black crop top has some midriff enhancing straps and the shredded shorts show off a certain willingness to push limits.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 28>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/12.webp';
_desc = 'If you ever wondered what it\'d be like to have skin of gold, this might be the closest you can come to finding out. The golden material is almost a second skin and shows off every valley and curve of a woman\'s body.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 29>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/8.webp';
_desc = 'A loose-fitting short-sleeved purple blouse paired with a pair of tight black leggings.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 30>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/13.webp';
_desc = 'Make a bold statement with this black two-piece fishnet outfit. Metal studs adorn both the bra-like top and the microskirt, giving a hard edge to the undeniably sexy style.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 31>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/14.webp';
_desc = 'This skin-tight spandex minidress is sure to make you the standout in any setting.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 32>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/15.webp';
_desc = 'While technically street legal, the open-cut tight bottom paired with an almost-not-there strap top will definitely rankle the more conservative public.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 33>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/16.webp';
_desc = 'Nothing says \'Party Girl\' like this body-hugging PVC dress that leaves more skin exposed than it covers.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 34>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/8.webp';
_desc = 'A form fitted top with maching leggings in a blue-and-white pattern';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: false,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 35>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/17.webp';
_desc = 'A version of the classic school girl outfit, sure to draw attention to the wearer';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 36>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/18.webp';
_desc = 'A shiny silver dress, more of a tubetop and miniskirt combo than an actual dress';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 37>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/19.webp';
_desc = 'A black and pink bikini paired with a poofy frilled miniskirt';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 38>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/20.webp';
_desc = 'A black leather zipper top and matching pencil skirt';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 39>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/21.webp';
_desc = 'A gold skin-tight dress with a plunging neckline, leaving almost nothing to the imagination';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 40>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/22.webp';
_desc = 'The sweater-like halter top pairs well with the jean short shorts';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 41>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/23.webp';
_desc = 'This shiny blue dress features cut-outs for maximum skin exposure and a tight hobble-skirt for that super sexy strut';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 42>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/2.webp';
_desc = 'A sultry purple and black nighty that is guaranteed to keep your partner up all night long';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 43>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/3.webp';
_desc = 'Your basic loose fitting shirt and shorts for sleeping';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 44>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/4.webp';
_desc = 'A floor length loose flowy nightgown, perfect for getting a good night\'s sleep';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 45>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/5.webp';
_desc = 'Your basic loose fitting shirt and shorts for sleeping';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 46>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/6.webp';
_desc = 'A loose almost transparent nightgown';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 47>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/7.webp';
_desc = 'A christmas-themed sleeping outfit, shorts with a loose fitting top';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 48>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/8.webp';
_desc = 'A whimsical cotton nightgown, extending down to the upper thighs';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 49>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/9.webp';
_desc = 'A light pink key-hole thigh length nightgown';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 50>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/10.webp';
_desc = 'An almost conservative pair of PJs';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 51>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/1.webp';
_desc = 'A basic blue-and-black one-piece swimsuit';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 2,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 52>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/2.webp';
_desc = 'A simple but pretty one-piece swimsuit that leaves the tops of your breasts exposed';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 2,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 53>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/3.webp';
_desc = 'A black two-piece swimsuit, the bottom is a pair of tie-on bikini panties while the top is almost a sports bra';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 54>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/4.webp';
_desc = 'Technically still a one-piece, this flower-print suit leaves most of your midsection exposed';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 2,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 55>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/24.webp';
_desc = 'A rather small white lace top with a pair of denim short shorts.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 56>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/25.webp';
_desc = 'A black sleeved halter top combined with denim short shorts, the sleeves of the shirt are 90% of the material in this outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 57>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/26.webp';
_desc = 'This white bikini top combined with a black slit short skirt exposes almost more than it covers.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 58>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/27.webp';
_desc = 'A short dress with a red top and black skirt, the skirt is slit in such a way that it often leaves your panties - or lack thereof - exposed';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 59>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/28.webp';
_desc = 'A wrap-style pink top that leaves most of your front exposed and a pair of tight high-waisted shorts';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 60>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/29.webp';
_desc = 'A tight blue knitted top with a pair of white extremely short shorts';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 61>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/11.webp';
_desc = 'This lacy white number covers as little as possible while you sleep, a good way to get something started before you even wake up!';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 62>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/12.webp';
_desc = 'A black translucent two-piece sleeping outfit for those who love feeling their sheets against most of their skin';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 63>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/13.webp';
_desc = 'A black and pink one-piece nightgown, for when you want to add a little fun to your night time patterns.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
himbo: 0,
cow: 0
};
_price = 8 * (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 64>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/9.webp';
_desc = 'This bright yellow sundress invites ideas of spring and rebirth, it definitely brings out a more feminine image in whomever wears it';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 65>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/30.webp';
_desc = 'A fairly normal office outfit that any woman from a secretary to a mid-level manager might wear to work.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 66>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/31.webp';
_desc = 'A slightly sexier version of a standard women\'s office attire. This would probably draw a few looks in most professional environments.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 67>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/32.webp';
_desc = 'This looks more like a slutty secretary halloween costume than an actual dress someone would wear to the office.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 68>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/13.webp';
_desc = 'This two-tone day dress is perfect for the lady who wants to be ready for a nice dinner even while out running errands.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 69>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/14.webp';
_desc = 'This long-sleeve top paired with a glam skirt will keep the eyes on you even on your day off.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 70>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/15.webp';
_desc = 'When you wear this outfit, consisting of a breezy white top, asymmetrical gauzy skirt, and leather jacket, no one will doubt you know where your wiles lie.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 1,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 71>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/16.webp';
_desc = 'If you love the feeling of wind on your skin, you will enjoy this combination of an open-back tank top and teal asymmetric gauzy skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 1,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 72>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/17.webp';
_desc = 'For ladies with places to be, this black top, gold belt, and moss green skirt keeps you looking good without weighing you down.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 1,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 73>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/18.webp';
_desc = 'This tie-front t-shirt and tie-dye skirt will have your date in knots.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 1,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 74>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/19.webp';
_desc = 'Be queen of casual Friday with this playful office combo, consisting of a white top, playful Prussian blue skirt, and pink cardigan.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 75>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/20.webp';
_desc = 'Serious and feminine, this outfit combines an ivory blouse, navy skirt, and fern green jacket.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 76>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/2.webp';
_desc = 'Classic styles with a modern cut, this three-piece suit should be in every man\' wardrobe.';
_style = 'Fancy';
_price = 8500;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 1,
cow: 0
};
_price = 8500;
>>
<<case 77>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/3.webp';
_desc = 'Boardroom or fundraisers, this patterned suit turns the charm to 11.';
_style = 'Fancy';
_price = 8750;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 1,
cow: 0
};
_price = 8750;
>>
<<case 78>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/4.webp';
_desc = 'For those looking for that classic \'I smoke cigars\' look in a modern two piece will need look no further.';
_style = 'Fancy';
_price = 7400;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 1,
cow: 0
};
_price = 7400;
>>
<<case 79>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/5.webp';
_desc = 'A suit made just for special agents, secret or not.';
_style = 'Fancy';
_price = 7700;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 1,
cow: 0
};
_price = 7700;
>>
<<case 80>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/14.webp';
_desc = 'You\'ll be tempted to wear this t-shirt styled combo all day long.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 81>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/15.webp';
_desc = 'A sheer babydoll so comfortable it\'s like you\'re wearing nothing at all.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 82>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/16.webp';
_desc = 'Lounge right into bed in this comfortable shirt and shorts combo.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 83>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/17.webp';
_desc = 'Be pulled into your night time in this ribboned lingerie.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 84>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/18.webp';
_desc = 'Profess your innocence at any age with this nightgown.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 1,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 85>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/19.webp';
_desc = 'Innocence is lost with this sexy babydoll.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 86>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/30.webp';
_desc = 'Show off without showing too much in this two piece combo.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 87>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/31.webp';
_desc = 'This cat\'s on the prowl in this form-fitting bodysuit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 88>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/32.webp';
_desc = 'Make them bow to you in this royal purple combo, which includes sleeves.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 89>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/33.webp';
_desc = 'Let them fill in the blanks when you wear this sexy lace dress.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 90>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/34.webp';
_desc = 'Power your sexy in this sleeved top and tight skirt combo.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 91>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/35.webp';
_desc = 'You\'ll be making them dance like your puppet when wearing this sleeved top and pants combo.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 92>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/36.webp';
_desc = 'Show them your fierce cat in this pink leopard-print dress.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 93>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/37.webp';
_desc = 'Weave a sexy spell in this dress that leaves nothing to the imagination.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 94>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/38.webp';
_desc = 'Nothing can escape the web you weave in this black dress.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 95>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/39.webp';
_desc = 'Be simply uncontrollable in this bra and skirt combo.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 96>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/40.webp';
_desc = 'This little black dress shows off all the right pieces';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 97>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/41.webp';
_desc = 'Everyone will be looking at who got caught in this netted dress.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 98>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/42.webp';
_desc = 'Like a prayer.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 99>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/43.webp';
_desc = 'Shine some light all over the dance floor in this club dress.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 100>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/44.webp';
_desc = 'Sparkle your night out in this sequined dress.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 101>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/45.webp';
_desc = 'The perfect camouflage for a jungle of flesh.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 102>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/46.webp';
_desc = 'Pink from top to bottom, and inbetween too.';
_style = 'Sleepwear';
_stats = {
top: 'Bodysuit',
btm: 'Bodysuit',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 103>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/47.webp';
_desc = 'All trussed up and nowhere to go.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 104>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/48.webp';
_desc = 'Retro sexy with this flapper-style micro miniskirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 105>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/49.webp';
_desc = 'Too hot to tutu.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 106>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/50.webp';
_desc = 'This animal print dress wasn\'t made for stripping, but for being ripped apart.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 107>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/51.webp';
_desc = 'A deceptively short pink dress.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 108>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/52.webp';
_desc = 'Bright pink and sparkles make this club minidress one to remember.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 109>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/53.webp';
_desc = 'A basque-inspired dress for a fun night out.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 110>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/54.webp';
_desc = 'A most breathable bodysuit, with a riveting striped pattern.';
_style = 'Casual';
_stats = {
top: 'Bodysuit',
btm: 'Bodysuit',
tight: 3,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 111>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/55.webp';
_desc = 'Glitter like gold in this shimmering club dress.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 112>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/56.webp';
_desc = 'Finding your top the next morning is easy with this clippable combo.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 113>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/57.webp';
_desc = 'For those days when you can\'t decide if you want a bare belly or not.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 114>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/58.webp';
_desc = 'This babydoll-inspired piece reminds of a particularly fun-loving demon.';
_style = 'Casual';
_stats = {
top: 'Bodysuit',
btm: 'Bodysuit',
tight: 4,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 115>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/59.webp';
_desc = 'Strap in for good times in this corset-inspired top and skirt combo.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 116>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/60.webp';
_desc = 'Zip in and shine on with this strappy bra top and pants combo.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 117>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/9.webp';
_desc = 'Flourescent green sports bra and striped sports leggings to keep you safe while running.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 118>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/10.webp';
_desc = 'Flourescent pink sports bra and striped sports leggings to keep you safe while running.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 119>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/11.webp';
_desc = 'Keep the heat up in this two piece exercise outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 120>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/12.webp';
_desc = 'Keep your style as high as your heart rate in this black outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 121>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/13.webp';
_desc = 'Work out your patriotism in this two piece outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 122>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/14.webp';
_desc = 'This outfit is perfect for that casual workout at home or with friends.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 2,
zCup: false,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 123>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/15.webp';
_desc = 'Show off your effort in this mesh-trimmed lilac outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 124>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/16.webp';
_desc = 'When you need something that works on the club floor or the gym, this combo has got you covered.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 125>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/17.webp';
_desc = 'Sparkle your way to good health and safety in this pink minimalist combo.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 126>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/18.webp';
_desc = 'Show your inner calm on the outside with this floral leggings and white top combo.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 127>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/19.webp';
_desc = 'This understated black top and leggings outfit will draw attention to you, not the clothes.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 128>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/20.webp';
_desc = 'Every day is leg day when working out in this Athletic shorts and neon pink top combo.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 129>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/21.webp';
_desc = 'Stretch things out in this stylish top and leggings outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 130>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/22.webp';
_desc = 'You won\'t be able to stay in neutral once you\'re wearing this comfy grey workout set.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 131>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/23.webp';
_desc = 'Red things go faster, which is why you need this workout set.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 132>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/24.webp';
_desc = 'Beauty and power are the themes of this high-contrast set.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 133>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/25.webp';
_desc = 'Nothing says pampered surbubanite as well as this faux camo workout set.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 134>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/26.webp';
_desc = 'A most classic set, consisting of a casual sports bra top and stretchy leggings.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 135>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/27.webp';
_desc = 'Throw a splash of color into your workout with this double-layer top and leggings set.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 136>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/5.webp';
_desc = 'A cut away to paradise in this one-piece.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 137>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/6.webp';
_desc = 'Enjoy this floral swim outfit consisting of a bandeau top and high leg bottom.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 138>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/7.webp';
_desc = 'A modest one piece swimsuit for when you want to enjoy the beach, not the attention.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 3,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 139>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/8.webp';
_desc = 'Stay light and breezy in this playful tropical plant-themed one piece.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 3,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 140>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/9.webp';
_desc = 'Intimidate any onlookers with this powerful black and red swimwear.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 4,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 141>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/10.webp';
_desc = 'Enjoy a fun day in the sun with this colorful, bandeau-inspired one-piece.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 3,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 142>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/10.webp';
_desc = 'The combination of a turquoise halter top with a small keyhole and denim skirt just screams summer.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 143>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/11.webp';
_desc = 'This stripped blouse, navy pullover, and lime skirt is perfect for ladies who want to say \'I work to have fun.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 144>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/12.webp';
_desc = 'A simple outfit for casual gatherings, consisting of a tank top, basic jacket, and navy skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 1,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 145>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/21.webp';
_desc = 'A breathable knitted top paired with a pair of comfortable stretchy jeans make this a perfect expectant mother outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 146>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/20.webp';
_desc = 'This loose-fitting soft pink nightgown cradles your new curves in just the right ways ensuring a peaceful rest for both you and your baby.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 8* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 147>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/28.webp';
_desc = 'The grey form-fitting top hugs your growing belly so you can stay confident during your workouts, and the stretchy-top black pants make your ass look great!';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 148>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/11.webp';
_desc = 'This sexy navy blue two-piece shows just how sexy your swelling belly can be.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 149>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/1.webp';
_desc = 'Wrap your growing bundle in this sexy green floor-length dress and you\'ll be the center of attention anywhere you go.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 150>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/1.webp';
_desc = 'Whether you\'re at a summer picnic or walking the halls of an office building this sleeveless patchwork dress with a knee-length skirt will have you looking great.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 151>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/22.webp';
_desc = 'This plaid overshirt with plain white t-shirt and jeans shows how even casual clothes make a pregnant woman beautiful';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 152>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/23.webp';
_desc = 'Combining comfort and beauty this gray sundress will have you feeling relaxed as well as supported.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 153>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/2.webp';
_desc = 'This puffy sleeve office dress is both professional and sexy, a winning combination!';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 154>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/3.webp';
_desc = 'A black workshirt paired with a white pleated pencil-skirt';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 155>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/4.webp';
_desc = 'A white sheer-sleeve keyhole top with a simple flowy black skirt, all business and all sexy.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 156>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/5.webp';
_desc = 'This is what happens when the standard schoolgirl outfit grows up and gets an office job.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 157>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/6.webp';
_desc = 'This pantsuit features a sleeveless top with plunging neckline, sure to get you that promotion you deserve!';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 158>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/7.webp';
_desc = 'This outfit is as severe as it is sexy with it\'s thigh-length black skirt and button-up shirt.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 159>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/8.webp';
_desc = 'An "office" version of the sexy red dress, it displays as much as it conceals.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 160>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/9.webp';
_desc = 'This black keyhole dress shows off your impressive assets while attempting to look professional.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 161>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/10.webp';
_desc = 'A sexy and fun interpretation of the "secretary" outfit -- whether at the office, or in the bedroom.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 162>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/11.webp';
_desc = 'This lace-window top and skirt do both to highlight your femininty as well as showcase your form.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 163>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/12.webp';
_desc = 'The office outfit version of a mullet -- business on the top, party on the bottom.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 2,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 164>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/13.webp';
_desc = 'This black, white, and red office dress will definitely get your boss\' attention.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 165>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/14.webp';
_desc = 'A puffy sleeve white blouse paired with a red-and-blue pinstripe pleated skirt.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 166>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/15.webp';
_desc = 'Simplistic and stylish, this gray and black body-hugging dress whill show off ever curve of your growing belly.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 167>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/16.webp';
_desc = 'This cream skirt with gray top is completed with a white waist coat and shows being pregnant doesn\'t mean being frumpy.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 168>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/17.webp';
_desc = 'The white top blouse meets the black pencil skirt right where your belly starts to bulge.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 169>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/18.webp';
_desc = 'Simple and comfortable, this white workshirt pair with a black body-suit toes the line on professional clothing.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 170>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/24.webp';
_desc = 'A breathable orange knitted top paired with a pair of pleated navy blue slacks.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 171>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/25.webp';
_desc = 'This colorful warm top compliments the distressed blue jeans for the perfect spring outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 172>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/26.webp';
_desc = 'A black sleeveless top and a pair of black straight-leg slacks';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 173>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/27.webp';
_desc = 'This lacy pink top and hip-hugging jeans will help bring out your feminine side.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 174>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/28.webp';
_desc = 'A ruffled sleeveless cream top and olive green slacks.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 175>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/29.webp';
_desc = 'A black crop top and pair of high-waist plaid pants.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 176>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/2.webp';
_desc = 'This crystal covered black mermaid dress with ostrich feathers just oozes sophistication';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 220* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 177>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/3.webp';
_desc = 'A timeless classic evening dress that will have you feeling as delicate and sexy as you look.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 220* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 178>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/4.webp';
_desc = 'This strapless navy blue mermaid dress is encrusted with Swarovski crystals.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 220* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 179>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/5.webp';
_desc = 'The only thing keeping this luxurious dress from being 100% see-through are all the diamonds covering its surface.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 220* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 180>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/6.webp';
_desc = 'A one-shoulder slim red dress that has just the right amount of sparkle.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 220* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 181>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/7.webp';
_desc = 'A sexy turquoise hobble dress that hugs every feminine curve.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 220* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 182>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/12.webp';
_desc = 'A white micro bikini that barely covers your nipples -- but even that isn\'t guaranteed';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 183>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/13.webp';
_desc = 'You could star in your own Baywatch series with this tight hot red one piece swimsuit';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 184>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/14.webp';
_desc = 'Show off both your femininity and your assets in this tiny pink bikini set.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 185>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/8.webp';
_desc = 'This elegant form-hugging red velvet dress will show off all your ample curves while still keeping you mostly PG-rated.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 220* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 186>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/9.webp';
_desc = 'As if all eyes wouldn\'t already be on your impressive figure, the light-catching sequins on this formal gown will guarantee it.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
zCup: true,
btmSkin: 1,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 220* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 187>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/10.webp';
_desc = 'Broadcast your pure intentions with this white sparkle gown that promises anything but innocence underneath';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 220* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 188>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/30.webp';
_desc = 'A tight orange spaghetti-strap tanktop and a pair of short shorts; leaving you mostly exposed above and below';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 189>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/31.webp';
_desc = 'The tight knitted sweater accentuates your developed curves more than hides them, but combined with the full-length jeans it does cover a fair amount of skin';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 190>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/32.webp';
_desc = 'Show off your impressive cleavage with this pink low-cut top and a pair of daisy-dukes';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 191>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/33.webp';
_desc = 'This skin-tight bubblegum pink affair is sure to have all the bimbos jealous of both your body and your style';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 192>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/19.webp';
_desc = 'For those the right figure this simple white dress takes puts a new spin on "Office Professional".';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 193>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/20.webp';
_desc = 'A classic blue dress that checks all the office prossional requirements while still highlighting your most noticeable asset.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 2,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 194>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/21.webp';
_desc = 'On a full figured-woman this thin white dress can look more like a shirt, but it is techncially still an office dress.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 195>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/29.webp';
_desc = 'This outfit won\'t do much to keep your girls in place while exercising -- but then that\'s not the point.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 196>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/21.webp';
_desc = 'A pink sleepshirt with lacy frills around the neckline designed to draw attention to your giant rack.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 3,
zCup: true,
btmSkin: 3,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 197>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/cheer1.webp';
_desc = 'A powder blue cheerleader outfit with "Angels" emblazened across the chest.';
_style = 'Athletic';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 4,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 198>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/Mens/2.webp';
_desc = 'A comfortable blue cotton shirt and a pair of relaxed fit flannel pants.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 199>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/jersey1.webp';
_desc = 'A loosefitting football jersey and a pair of jeans.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 200>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/23.webp';
_desc = 'A Grey-and-black matching outfit consiting of a pithy t-shirt and a pair of boy shorts.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 201>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/fbFit1.webp';
_desc = 'Standard issue football uniform, complete with pads and protections for all the physical contact.';
_style = 'Athletic';
_price = 0;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 202>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/mMaid1.webp';
_desc = 'A floor-length old-timey dress, the kind you might see on the set of a movie about a dairy farm girl.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 203>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/mMaid2.webp';
_desc = 'A sexier version of the standard milk maid uniform, with knee-high white socks for that extra look of innocence.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 204>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/11.webp';
_desc = 'Tweed jacket, dress shirt, and jeans -- the unofficial uniform of a College Professor.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 205>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/34.webp';
_desc = 'A plain gray top paired with a pleated forest green skirt -- cool, casual, minimalistic.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 206>>
<<set
_type = 'Fit';
_img = ($player.body.womb and $player.body.womb.showPreg?'Media/Clothing/Outfits/Costumes/maid1b.webp':'Media/Clothing/Outfits/Costumes/maid1.webp');
_desc = 'A standard maid\'s outfit with white apron and collar.';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: ($player.body.womb and $player.body.womb.showPreg?1:2),
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 207>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/maid2.webp';
_desc = 'This racy maid outfit is sure to leave your lower regions exposed while dusting or cleaning, and the fishnet stockings are icing on the cake.';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 208>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/bouncer1.webp';
_desc = 'An all black slightly-militaristic outfit. Looks great on the job, intimidating on the street.';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 209>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/hotelMaid1.webp';
_desc = 'This gray maid-inspired Room Service outfit is certainly sexier than you\'d find in most hotels.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 210>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/35.webp';
_desc = 'The classic "Jeans and Sweater" look for the more well endowed woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 211>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/36.webp';
_desc = 'A light grey tshirt and blue jeans. Classic. Casual. Beautiful.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 212>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/38.webp';
_desc = 'Your sweater puppies will feel right at home in this tight form-fitting white knitted top and fitted black jeans';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 213>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/11.webp';
_desc = 'People will mistake you as a piece of heaven in this cloud-pattern inspired low-cut dress.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 1,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 25* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 214>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/12.webp';
_desc = 'This slinky red-and-black affair will draw their eyes, your curves will handle the rest!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 25* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 215>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/24.webp';
_desc = 'This baby blue nightie is just the thing to have you looking sexy and daring in your wildest dreams!';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 216>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/61.webp';
_desc = 'This purple bikini top with wrap-around surong covers just enough to be legal, while showing more than enough to advertise your wares.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 217>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/62.webp';
_desc = 'A white two-piece dress that shows off as much skin as allowed in more formal settings.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 218>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/40.webp';
_desc = 'Fashion meets comfort in this casually sexy white breathable top with black pleather pants.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 219>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/41.webp';
_desc = 'Dare to be bold in this black stretchable top paried with distressed blue jeans that hug all the right spots.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 220>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/42.webp';
_desc = 'The white turtle kneck draws eyes to the pleated school-girl skirt, letting your legs be the focus.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 1,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 221>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/43.webp';
_desc = 'A stretchy pink top paid with casual blue jeans, perfect for lounging at home or running those never-ending errands.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 222>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/44.webp';
_desc = 'This comfortable cotton half-button up dress is just the thing for those lazy sundays.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 223>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/13.webp';
_desc = 'You\'ll be the talk of the ball -- for more than the usual reasons -- in this stunning sequin dress.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 224>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/14.webp';
_desc = 'A spaghetti-strapped little-Black-dress that lets all the right parts jiggle as you mingle at a cocktail party.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 5,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 225>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/15.webp';
_desc = 'Look like an angel flying through the clouds in this blue-and-white dress that\'s tight on top but loose and flowy on the bottom.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 226>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/16.webp';
_desc = 'This red-and-black form-fitting velvet dress is just to thing to have everyone at your next party eating out of the palm of your hand.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 227>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/17.webp';
_desc = 'The skirt might be a touch short, but no one will notice that with the eye-catching embroidery around your more impressive assets.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 2,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 228>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/25.webp';
_desc = 'Keep cool on those worm summer nights in this white cotton top and pink satin sleep-shorts';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 229>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/26.webp';
_desc = 'Feel sexy as you sleep in this adorable white affair with mesh leggings';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 230>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/27.webp';
_desc = 'This pair of short briefs and thin cotton top gives a freedom of movement some restless sleepers need.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 231>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/63.webp';
_desc = 'This neon-green low cut top paired with tight black jeans will make sure everyone knows which asset you most want to show off';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 5,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 232>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/22.webp';
_desc = 'This is the perfect office outfit to give everyone a little tease while staying well within the dress code.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 233>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/64.webp';
_desc = 'Channel your inner school girl with this sexy little outfit. Who says big girls can\'t go back to school?';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 234>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/15.webp';
_desc = 'You\'ll be classified as class 5 water hazard in this sexy dark brown swimsuit that hugs and accentuates your bountiful curves.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 235>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/16.webp';
_desc = 'A blue-floral pattern two-piece swim suit consisting of a shirt and pairt of shorts.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 3,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 236>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/30.webp';
_desc = 'A soft deep blue tracksuit that\'s tight enough to (almost) hold everything in place when you\'re deep in your workout.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
zCup: true,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 237>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/31.webp';
_desc = 'This purple stretch top with black yoga pants combines fashion with activity so you always look your best at the gym.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
zCup: true,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 238>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/32.webp';
_desc = 'Leave almost nothing to the imagination at your next workout with this form-fitting black top with skin-tight leopard print leggings.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 1,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
zCup: true,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 239>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/33.webp';
_desc = 'Simple but comfortable, a t-shirt and short shorts are always a winning outfit for a sweaty workout.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 240>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/23.webp';
_desc = 'Brighten up any office setting like a ray of sunshine in this soft gold and yellow skirt combo.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 241>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/24.webp';
_desc = 'Let our your animal side in this revealing - yet clothing code compliant - skin-tight leapord print dress.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 242>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/1b.webp';
_desc = 'A casual outfit consisting of a white crop-top and a pair of very short denim cut-offs.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 243>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/ZCups/mMaid1.webp';
_desc = 'A floor-length old-timey dress, the kind you might see on the set of a movie about a dairy farm girl.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 244>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/ZCups/mMaid2.webp';
_desc = 'A sexier version of the standard milk maid uniform, with knee-high white socks for that extra look of innocence.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 245>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/ZCups/maid1.webp';
_desc = 'A standard maid\'s outfit with white apron and collar.';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 246>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/ZCups/maid2.webp';
_desc = 'This racey maid outfit is sure to leave your lower regions exposed while dusting or cleaning, and the fishnet stockings are icing on the cake.';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 247>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/ZCups/hotelMaid1.webp';
_desc = 'This gray maid-inspired Room Service outfit is certainly sexier than you\'d find in most hotels.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 248>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/45.webp';
_desc = 'This grey any-time dress lets all the right parts jiggle while holding the necessary parts safely in place.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 249>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/46.webp';
_desc = 'You\'re never too big for the classic shirt-and-shorts combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 2,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 250>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/18.webp';
_desc = 'This elegent pink evening gown will have you as the center of attention for more than just your growing assets!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 251>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/19.webp';
_desc = 'This hot little-red-dress will have you looking sexy and desirable well into your pregnancy.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 4,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 252>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/20.webp';
_desc = 'Show off your flare for the dramatic with this body-tight dress that shows off more than it covers.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 3,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 253>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/21.webp';
_desc = 'A spin on the \'wardrobe malfunction\' -- this hot green dress will have all eyes on you to see what gets exposed next!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 254>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/22.webp';
_desc = 'Nothing screams \'princess\' like this pink ballgown with dramatic knee-skirt flare.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 255>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/23.webp';
_desc = 'Wrap your curves in this snakeskin dress for a sure way to be talk of the ball!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 256>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/28.webp';
_desc = 'This black see-through nightie will accentuate your growing femininity as well as feel amazing against your skin';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 4,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 257>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/29.webp';
_desc = 'This hot little pink nightie shows that you can be sexy even when you\'re sleeping';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 258>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/65.webp';
_desc = 'Throw tradition a curveball with this fishnet-top dress that screams \'I\'m ready for some fun!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 259>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/17.webp';
_desc = 'This animal-print bikini lets all your impressive curves hang out for show!';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 260>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/18.webp';
_desc = 'As elegent as it is sexy, this amazing bikini will have you look as sexy as you feel.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 261>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/34.webp';
_desc = 'This neon blue jumpsuit will keep your baby bump -- and your large breasts -- in place while you work out.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 262>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/35.webp';
_desc = 'Casual and unassuming, this is the outfit for days when you want to focus on the burn and not on who\'s watching you.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 263>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/36.webp';
_desc = 'Keep your body trim-and-fit well into your pregnancy with this hot-pink top with black yoga pants.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 264>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/37.webp';
_desc = 'Just because you\'re pregnant doesn\'t mean you can\'t let out your animal-side out at the gym with this animal-print athletic outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 265>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/47.webp';
_desc = 'This bright yellow sundress invites ideas of spring and rebirth, it definitely brings out a more feminine image in whomever wears it';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 3,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 266>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/22.webp';
_desc = 'A pleated black skirt decorated with little crosses. The top has a matched pair of Chinese Dragons, sure to draw the eye to your boobs!';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 267>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/1.webp';
_desc = 'An outfit consisting of a Tunic style top and some form fitting leggings. It\'s definitely not a minidress and tights, right? No one would look at this outfit and think that would they?';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 268>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/2.webp';
_desc = 'A black hoodie with dark gray shorts. The outfit also has handy black and white leg warmers for cooler weather.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 269>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/3.webp';
_desc = 'A black t-shirt emblazoned with the name of some band. Maybe they\'re cool? Also comes with tight black shorts, worn over black fishnets.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 270>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/4.webp';
_desc = 'A tight black top with criss-crossing straps that form a pentacle. Also comes with ripped black shorts and black fishnets.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 4,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
zCup: false,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 271>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/5.webp';
_desc = 'A detailed linen top that looks like it should belong to a much fancier outfit, in black of course. It comes with black leather shorts and fishnets.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 5,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
zCup: false,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 272>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/6.webp';
_desc = 'A close fitting black leather, strappy top, with tight leggings.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
zCup: false,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 273>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/7.webp';
_desc = 'A close fitting black top with a boob window, accompanied by a pair of tight fitting black leggings with red accents and lots of artful rips.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
zCup: false,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 274>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/8.webp';
_desc = 'A tight black crop-top with a mesh over-shirt and tight black jeans.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 1,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
zCup: false,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 275>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/9.webp';
_desc = 'A black lace up shirt, worn with a red and black corset for style. Also comes with black leather pants.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 276>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/10.webp';
_desc = 'Black jeans and a midrif bearing t-shirt. There are some Goth accents, but this is one of the most normal outfits in the store.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 277>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/11.webp';
_desc = 'Slinky and sexy, this tight black top and hip hugging pants are sure to catch admiring eyes.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 278>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/12.webp';
_desc = 'A midrif bearing t-shirt, and some tiny shorts, offset by a pair of artfully torn stockings.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 279>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/13.webp';
_desc = 'A tight, fitted crop-top and black shorts with laces up the sides..';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 280>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/14.webp';
_desc = 'Lovely and lacy, this outfit includes long flowing sleeves and lacy stockings for that extra feminine look.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 281>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/15.webp';
_desc = 'This outfit is all leather, the top is close fitting, with a plunging neckline as well as rising high enough to show some midriff. The pants offer full coverage, but are very tight.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 282>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/16.webp';
_desc = 'A long drapey tunic with close fitting leggings.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 283>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/17.webp';
_desc = 'The pants of this outfit are modest enough, though they do fit quite snugly. The top is extemely daring however, showing most your torso, only barely covered by a mesh shirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 284>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/18.webp';
_desc = 'A tight black, two layer top, with the outer layer artfully ripped to give the appearance of showing more than it does, there are also close fitting black leather shorts and fine mesh fishnets.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 285>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/19.webp';
_desc = 'This lacy top has long flowing sleeves and a plunging neckline, form fitting black leather pants complete the outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 286>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/20.webp';
_desc = 'A black top with a demonic logo emblazoned on it. The sleeves are meant to give the impression of a short, cropped leather jacket. Black pants with some studs and chains.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 287>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/21.webp';
_desc = 'This faux leather outfit consists of a tight, midriff-bearing bustier, and snug pants complete with belts and chains.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 288>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/22.webp';
_desc = 'A lacy black, midriff bearing top with black pants decorated with chains.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 289>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/23.webp';
_desc = 'A strappy top showing a hint of cleavage combined with black shorts over fishnets. And lots of chains!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 290>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/24.webp';
_desc = 'A Cheongsam style top with a pair of close fitting pants decorated with zippers. In black of course.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 291>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/25.webp';
_desc = 'A midriff and shoulder bearing top combined with a basic pair of black jeans.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 292>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/26.webp';
_desc = 'A flowing tunic and a pair of leggings. No one will think this is a minidress and tights. Right?.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 293>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/27.webp';
_desc = 'This is a tunic, right? It definitely isn\'t a minidress is it? It\'s got leggings, it\'s fine, it\'s just flowing.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 294>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/28.webp';
_desc = 'A lacy, see-through top decorated with Goth symbols, worn with a pair of snug fitting black jeans.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 295>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/29.webp';
_desc = 'This is a hooded smock or poncho, decorated with crescent moons, worn over leggings. Smocks are very fashionable, there\'s nothing feminine about it, right?';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 296>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/30.webp';
_desc = 'A red ruffly top with a built in black bustier over snug black leggings decorated with red accents meant to emulate stockings.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 297>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/31.webp';
_desc = 'A long loose sweater with artful rips worn over black leggings.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 298>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/1.webp';
_desc = 'Loose and flowly, this dress comes with a bustier designed to help show off your curves!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 299>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/2.webp';
_desc = 'A cute black minidress with lacy sleeves, perfect for the flirty Goth on the go!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 300>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/3.webp';
_desc = 'Show off your kinky side with this latex skirt and snug fitting top combination!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 10,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 301>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/4.webp';
_desc = 'A traditional Gothic inspired top paired with a risqué latex skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 302>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/5.webp';
_desc = 'A black mini-dress with lace trim and black tights.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 303>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/6.webp';
_desc = 'A tight, fitted bodice with a seethrough over-shirt, paired with a latex skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 304>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/7.webp';
_desc = 'Well, technically this is a top and skirt. But the top is a mesh bodystocking that clearly displays your bra. The skirt is made of latex.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 305>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/8.webp';
_desc = 'A black satin mini-dress, combined with a small bustier.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 306>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/9.webp';
_desc = 'An extremely small satin dress. The top is fitted and comes with a small bolero inspired jacket. The skirts are fun, kicky and frothy, but very, very short.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 307>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/10.webp';
_desc = 'A tight fitted top with lacy panels, combined with a black leather skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 308>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/11.webp';
_desc = 'A simple black cotton mini-dress in a Gothic inspired style.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 309>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/182.webp';
_desc = 'Prove that nerdy can be sexy in this form-fitting "Spiderman Heart" shirt and short cutoff jeans.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 310>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/13.webp';
_desc = 'This outfit consists of a tight black bustier combine with a tiny little satin skirt. There\'s not much that isn\'t visable here. It does have gloves though!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 311>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/14.webp';
_desc = 'A tight black dress in a Cheongsam style. The slit up the side makes it especially daring.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 312>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/15.webp';
_desc = 'A black cotton dress with zippers and straps. A hint of your cleavage is visable, and you could show more just by tugging the zipper down a bit. If you wanted to.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 313>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/16.webp';
_desc = 'A simple black mini-dress in a Gothic inspired style. It would almost be modest, if it wasn\'t so short.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 314>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/17.webp';
_desc = 'A tight black dress. It does come wiht a lacy black coverup that you can wear open, or closed.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 315>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/18.webp';
_desc = 'A tiny little dress inspired by Gothic fashion. Very short though. Very, very short.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 316>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/19.webp';
_desc = 'A ruffley, satiny dress in a Gothic style. The outer skirt falls to your ankles, but is completely transparent.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 317>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/20.webp';
_desc = 'A shapeless, long sleeved top (in black) combined with a tiny black miniskirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 1,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 318>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/21.webp';
_desc = 'An extremely risqué outfit consisting of a bodysuit and a gausey, nearly see-through over skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 319>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/22.webp';
_desc = 'A short black summer dress paired with a turtle-neck shirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 320>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/23.webp';
_desc = 'A black leather dress with straps, rings and zippers.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 321>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/24.webp';
_desc = 'A curve hugging black mini-dress with decorated sleeves.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 322>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/25.webp';
_desc = 'Ruffley and frothy this skirt is inspired by traditional Gothic fashion, but is much shorter. Includes a fairly modest black top.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 323>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/26.webp';
_desc = 'A sleek, slinky little black dress, just right for all sorts of occasions.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 324>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/27.webp';
_desc = 'A modest black dress. The see-through pannel on the shoulders makes it just a tiny bit daring.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 325>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/28.webp';
_desc = 'A short, abreviated version of a traditional Gothic gown. It comes with lacy sleeves!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 326>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/29.webp';
_desc = 'A form fitting black mini-dress with flowing, bat-wing sleeves. You feel almost like Morticia Addams wearing this!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 327>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/30.webp';
_desc = 'A snug little black dress accented with a curious stitching pattern.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 328>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/31.webp';
_desc = 'A tight latex dress, black on top, but fading to red below the waist, emphasizing your hips and butt!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 329>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/32.webp';
_desc = 'A tiny little black dress worn with a gauzy wrap.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 330>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/33.webp';
_desc = 'A Ghothic inspired dress with long, flowing sleeves..';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 331>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Sub/34.webp';
_desc = 'A fancy velvet gown with lacy sleeves, inspired by traditional Ghothic gowns.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 332>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/1.webp';
_desc = 'A delicate confection of an outfit made of lace and cashmere.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 333>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/2.webp';
_desc = 'The bodice of this dress consists of leaves done in black lace, the skirts are layers and layers of delicate see-through silk, creating a daring illusion of visability.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 334>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/3.webp';
_desc = 'Knock\'em dead in this tight, red velvet dress! Perfect for showing off your curves!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 335>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/4.webp';
_desc = 'Long, sleek, form fitting, black.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 336>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/5.webp';
_desc = 'Long, sleek, form fitting, red velvet. This will have them itching to run their hands all over you!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 337>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/6.webp';
_desc = 'Long red velvet, with delicate lacy sleeves.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 338>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/7.webp';
_desc = 'This dress has a plunging neckline and an extremely high cut on the side, prefect for showing off your legs!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 339>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/8.webp';
_desc = 'A long elegant dress in black satin, with a high cut on the side.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 340>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/9.webp';
_desc = 'An almost perfect Morticia Addams dress. A pity it doesn\'t have the bat-wing sleeves.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 341>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/10.webp';
_desc = 'Inspired by Victorian era gowns, this dress is a bit more daring on top. Perfect for a vampire though.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 342>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/11.webp';
_desc = 'A black bustier, with a skirts that are a delicious confection of black and vivid purple.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 343>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/12.webp';
_desc = 'A dress inspired by Victorian eara fashions, this one is an asymetrical black and blood red number. Perfect for Vampires.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 344>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/13.webp';
_desc = 'A black bustier with lots and lots of purple ruffles.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 345>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/14.webp';
_desc = 'A dress inspired by older fashions, complete with hoops for the skirt. The colors are on the somber side.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 346>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/15.webp';
_desc = 'A snug fitting Cheongsam style dress with high slits for your legs.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 347>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/16.webp';
_desc = 'A flowing gown inspired by Medieval styles. It\'s made of velvet and has flowing, lace trimmed sleeves. In black of course.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 348>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/17.webp';
_desc = 'A more modern gown, this one is snug fitting with lots of cutouts, giving the illusion of showing more skin than you actually are.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 349>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/18.webp';
_desc = 'Inspired by more medieval styles, this dress features a fitted boddice and flowing skirts.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 350>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/19.webp';
_desc = 'A modest tafetta dress with a jacket, for when you\'re feeling feminine, but not risqué.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 351>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/20.webp';
_desc = 'More daring than many of the fancier dresses, this one features black straps, and lacy, see-through skirts.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 30* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 352>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/21.webp';
_desc = 'This velvet dress hugs every curve, and comes with fun, lacy sleeves as well as a satin ruffle.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 30* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 353>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/22.webp';
_desc = 'Flowing and ruffley, this dress includes a tight boddice, and shows quite a bit of leg in front.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 30* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 354>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/23.webp';
_desc = 'The Goth version of a little black dress.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 30* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 355>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/Goth/24.webp';
_desc = 'A dark purple dress with a lacy over-dress to set it off. Vivid and somber all at the same time.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 30* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 356>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/1.webp';
_desc = 'A tight black top with a pleated black skirt. Simple, yet sexy.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 30* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 357>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/2.webp';
_desc = 'A flowing black top with a black plaid skirt. Show them even the Scotts can do Goth.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 30* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 358>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/3.webp';
_desc = 'Purple, it\'s the new black! This outfit consists of a lavender cardigan and a purple plaid, pleated skirt.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 30* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 359>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/4.webp';
_desc = 'A tight black top that shows a bit of midriff, paired with a plaid, pleated skirt that has a two-tone look. One side is a muted grey plaid, the other a more striking red, grey and black.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 30* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 360>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/5.webp';
_desc = 'A tiny, tight top with a two-tone skirt. One side is all black, the other black and white checks.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 361>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/6.webp';
_desc = 'An outfit as black as your heart. A somber tribute to fashion, and black. Comes with fishnets!';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 362>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/7.webp';
_desc = 'Well, it\'s half a skirt, but you\'ve got shorts on underneath, so it\'s okay. The midriff bearing shirt has cool snakes running up and down the sleeves!';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 363>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/8.webp';
_desc = 'A traditional red and black plaid, so colorful! It\'s paired with an undershirt of horizontial black and white stripes, with a black t-shirt worn over everything.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 364>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/9.webp';
_desc = 'A vertically bisected skirt, purple plaid on one side, all black on the other. Worn with a black, off the shoulder top.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 365>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/10.webp';
_desc = 'A simple black mini-dress with a subtle, textural pattern. Worn with black tights.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 366>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/11.webp';
_desc = 'A kicky black and white checked skirt with a snug black bodysuit. Show the boys you know how to be fun! Or girls, whichever.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 367>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/12.webp';
_desc = 'Somber, somber. Dark, dark, dark. Oh, and Not Yours!';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 368>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/13.webp';
_desc = 'Purple plaid! And the top has your favorite Anime character on it! They\'re so cool!';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 369>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/14.webp';
_desc = 'Purple flames! And belts! And a matching plaid skirt, just what you wanted!';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 370>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/15.webp';
_desc = 'A study in monochrome, short black pleated skirt, black under top, and a tight white over top, with feathers!';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 371>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/16.webp';
_desc = 'Grey plaid skirt, somber, long-sleeved top. Still Goth, but understated.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 372>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/17.webp';
_desc = 'A kicky purple plaid skirt, paired with a black top that has the 3 of Swords on it, show them your inner pain.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 373>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/18.webp';
_desc = 'This outfit is a daring take on a classic Gothic dress, with a lace-ribbon boddice. Except it\'s got a skirt a whole lot shorter than what you\'d have found on a period piece.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 374>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/19.webp';
_desc = 'Monochrome. Grey plaid skirt, black top. But the top has a little white heart, wrapped in barbed-wire.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 375>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/20.webp';
_desc = 'A mostly black plaid skirt, paired with a white, ribbed under-top, with a tiny black crop-top worn over it.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 376>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/GothSchool/21.webp';
_desc = 'A tight little black dress with pleated skirts, and lots of chains!';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 377>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/48.webp';
_desc = 'This too-small pink sweater and western chaps-style pants combo emphasizes your heft "up-top."';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 378>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/49.webp';
_desc = 'This classic stretchy t-shirt and jeans style is great for everyday wear in all situations.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 379>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/50.webp';
_desc = 'Jersey cotton in blue stretches perfectly around your massive orbs in this slightly-above-the knee blue number for everyday wear.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 380>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/51.webp';
_desc = 'Tan slacks and a light blue sweater with a modest neckline hints at what you\'ve got to offer the world.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 381>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/52.webp';
_desc = 'A casual yellow dress, modest on most people, can\'t help but show off your large breasts to the world.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 382>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/53.webp';
_desc = 'Stripes on this t-shirt can\'t do much to slim your massive breasts, but pair well with orange slacks for everyday wear.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 383>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/54.webp';
_desc = 'Purple and dark denim accentuate this classic tank top while providing generous support for the active, well-endowed woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 384>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/56.webp';
_desc = 'Pairing a tight red sweater with plunging neckline, a large decorative black belt, and tight jeans provides this winter combo with practicality, style, and substantial support.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 385>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/57.webp';
_desc = 'Finding dresses to fit your extreme frame can be hard, but this yellow t-shirt dress hugs your curves in all the right places.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 2,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 386>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/58.webp';
_desc = 'You may not be able to see your feet when you look down, but everyone else will see style with this loose pink poncho sweater and denim everyday combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 387>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/59.webp';
_desc = 'A form-fitting purple cable-knit sweater and tight black polyester shorts emphasize your breasts and butt with an easy, casual style.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 388>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/60.webp';
_desc = 'This over-the-shoulder blue poncho t-shirt with sleeve details paired with tight white capris is perfect for a coffee date with friends or a lover.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 389>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/61.webp';
_desc = 'Athleisure for the overly endowed woman arrives with this loose blue shirt over two sports bras to reinforce your massive breasts, paired with pink poly-spandex capri leggings for maximum mobility.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 390>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/62.webp';
_desc = 'A front pocket on this striped t-shirt is mostly for show above your massive breasts, but keeps things light and fun paired with cutoff jean shorts in this casual number.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 391>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/63.webp';
_desc = 'Spaghetti straps are mostly for show on this red knee-length dress with satin ribbon styling that may not quite close over your ample assets.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 392>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/64.webp';
_desc = 'Comfort-focused style meets practicality with this red, medium-sleeved hoodie and black legging combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 393>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/65.webp';
_desc = 'Short shorts disappear completely beneath this beachy linen dress tailored around your most prominent feature, perfect for long walks by the pier.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 394>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/66.webp';
_desc = 'Pink spaghetti straps and tan slacks dress up or down in a versatile fashion with this classic combination for the well-endowed woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 395>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/67.webp';
_desc = 'Front-zip blue velvet can hide or show as much cleavage as you want (and you have plenty to spare) in this outfit, perfect for errands around town.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 396>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/68.webp';
_desc = 'A pink tube dress with flower details is perfect for spring and summer in milder climates, but won\'t do much to hide your impressive chest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 397>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/69.webp';
_desc = 'This white sweater-green shirt combination emphasizes busty style while keeping things modest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 398>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/70.webp';
_desc = 'Blue leopard print provides a pop of motion to this fitted short sleeve shirt and jeans combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 399>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/71.webp';
_desc = 'Vertical stripes and green trim on this spaghetti-strap tank top keep things interesting when paired with tan slacks in this everyday outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 400>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/72.webp';
_desc = 'Keep on the move in style with this black linen top, tied up with a style knot to hug tight against your impressive upper body.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 401>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/73.webp';
_desc = 'Your hands will work in or out of these pockets (but your arms might vanish behind your chest) with this striped, u-neck medium sleeve shirt and gray slacks.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 402>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/74.webp';
_desc = 'Velvet and a large black leather style belt combine to keep this red jumper hip and trendy for everyday wear.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 403>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/75.webp';
_desc = 'This knit gray sweater with gray fashion belt will keep you and your breasts warm on chilly fall nights.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 404>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/76.webp';
_desc = 'Sometimes you just have to be practical while vacationing, with this blue button down shirt and pink tank top combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 405>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/77.webp';
_desc = 'This fitted red long-sleeve t-shirt emphasizes your impressive cup-to-waist ratio.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 406>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/78.webp';
_desc = 'This red long-sleeved sweater with black fashion belt tantalizes and teases the world with your giant orbs.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 407>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/79.webp';
_desc = 'A sheer, flowery top combines with a green u-neck shirt with satin trim for this lovely everyday number.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 408>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/80.webp';
_desc = 'You can keep warm but still be sexy in this black, front-zip jacket that keeps your breasts as warm as the rest of your body.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 409>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/81.webp';
_desc = 'The buttons on this white cotton sweater are mostly for show and style with a gold and white tube top and black pants to round out this fun outfits.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 410>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/82.webp';
_desc = 'Ruffles provide a fun accent to this classic pink tank top.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 411>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/83.webp';
_desc = 'Satin and lace style details enhance the plunging neckline on this tan short-sleeved shirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 412>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/84.webp';
_desc = 'A red halter top and tan fashion belt combination accentuate the tan slacks to provide a classy, fun outfit for a variety of settings.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 413>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/85.webp';
_desc = 'Vacation or staycation, this green collared shirt and tan shorts combination emphasizes practicality without sacrificing well-endowed style.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 414>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/86.webp';
_desc = 'Red vertical cabling in this looser-fit sweater keeps things warm and interesting for large-busted women.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 415>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/87.webp';
_desc = 'Busty fashion-forward is defined by this black and gold floral print top, plunging neckline, fashion belt, and matching brown slacks.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 416>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/88.webp';
_desc = 'Perfect for a Sunday football game, this white-collared striped polo shirt blends style and comfort in a classic combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 417>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/89.webp';
_desc = 'Around-the-neck straps provide an interesting detail to this pink textured halter top and sparkly fashion belt combination, completed with tight pleated white slacks.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 418>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/90.webp';
_desc = 'Black slacks, a white fashion belt with brown accents, and a short-sleeved tan shirt fit the form of even the most endowed women.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 419>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/91.webp';
_desc = 'This two-piece blue cotton dress has a separable top and bottom to ensure a tight fit around large breasts and a skinny waist.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 420>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/92.webp';
_desc = 'A teal, ankle-length dress with separate top and bottom enable even the bustiest woman to enjoy a proper fit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 421>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/93.webp';
_desc = 'Stylish and fitted for winter months, this white and peach striped sweater and jeans combo keeps you both warm and sexy.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 422>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/94.webp';
_desc = 'This front-zip salmon and black striped sweater helps adjust around a larger chest for everyday wear.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 423>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/95.webp';
_desc = 'Black abstract prints draw even more attention to your massive chest with this orange sleeveless t-shirt and jean skirt combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 1,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 424>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/96.webp';
_desc = 'This spaghetti-strap top and jeans combination evokes a candy-striper theme while supporting the largest of endowments.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 425>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/97.webp';
_desc = 'Blending tank-top, sweater, and sheer top with a gold fashion belt and jeans makes the perfect fall casual outfit for the busty woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 426>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/98.webp';
_desc = 'A red tight cotton dress with partial sleeves shows off every inch of your massive curves while still remaining somewhat modest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 427>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/99.webp';
_desc = 'Long sleeves and a plunging neckline with satin detailing keep this brown cotton shirt and jeans combination interesting.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 428>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/100.webp';
_desc = 'Perfect for the early winter, this navy blue sweater and jeans combination is big enough to cover your endowments without hiding them from the world.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 429>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/101.webp';
_desc = 'Enjoy a fun night out with this amply-stretchy striped tube top and pink floor-length skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 430>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/102.webp';
_desc = 'This black and white camouflage sweatshirt and jeans combination is perfect for a cabin retreat or everyday wear in an urban center.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 431>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/103.webp';
_desc = 'An aggressive v-shape plunge shows off your ample assets in this short sleeve, black/white/gray striped top with black fitted slacks.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 432>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/104.webp';
_desc = 'Turn some heads while staying casual in this floor-length pink cotton dress paired with a white fashion belt to show off your boob-to-waist ratio.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 433>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/105.webp';
_desc = 'Keep things simple with this classic white t-shirt and jeans combination, adjusted for a well-endowed woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 434>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/106.webp';
_desc = 'This bright purple short-sleeved top accents your endowments with a plethora of ruffles.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 435>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/107.webp';
_desc = 'Teal and gray stripes give this blouse and slacks combination a visually interesting pattern for people to appreciate while they appreciate your massive boobs.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 436>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/108.webp';
_desc = 'Brown doesn\'t have to be boring with this fitted medium-sleeve sweater and slacks combination, preserving ample modesty for your ample breasts.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 437>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/109.webp';
_desc = 'This loose-fitting, red spaghetti strap top is versatile enough for most everyday situations and sufficiently modest to downplay your chest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 438>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/110.webp';
_desc = 'A short-sleeve black corduroy button-down shirt is just too small to be buttoned up the way, showing off a little bit of your massive bra.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 439>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/111.webp';
_desc = 'White, floral, and satin with a knotted tie detail at your cleavage and brown textured slacks is both casual and trendy for the busty, busy woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 440>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/112.webp';
_desc = 'This yellow polo shirt and black skirt combination is perfect for summer everyday wear and is just big enough to accommodate your breasts.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 441>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/113.webp';
_desc = 'Pajama-chic is the name of the game with this brown satin blouse and pant combination, suitably large for the busty woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 442>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/114.webp';
_desc = 'Horizontal gray and white stripes provide visual interest for this poncho style top and jeans pairing.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 443>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/115.webp';
_desc = 'A red snakeskin pattern gives this short-sleeve shirt and black slack pairing another reason for people to stare at you.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 444>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/116.webp';
_desc = 'Black and white stripes give some motion to this knit poncho sweater and legging combination, adjusted to accommodate your endowments.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 445>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/117.webp';
_desc = 'A brown patterned sweater vest and white medium sleeved shirt is perfect for a late fall day in a fancy cafe.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 446>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/118.webp';
_desc = 'This blue cotton-poly long-sleeved top and jeans combination will show off some cleavage and legs without sacrificing comfort.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 447>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/119.webp';
_desc = 'An art print with silver shoulder highlights is only a little distorted by your massive breasts.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 448>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/120.webp';
_desc = 'A loose faux neck on this short-sleeved yellow sweater and jeans combination is the perfect accent for everyday wear in cooler weather.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 449>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/121.webp';
_desc = 'White fitted cotton keeps this casual dress perfect for a walk along the beach.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 450>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/122.webp';
_desc = 'Yellow, green, pink, and purple stripes offer a splash of color for this spaghetti strap tank top adjusted for your massive assets.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 451>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/123.webp';
_desc = 'White micro polka dots don\'t stretch too much around your chest; paired with pink fitted cargo pants, this is the perfect casual combination for everyday wear.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 452>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/124.webp';
_desc = 'Blue velour short shorts don\'t leave much to the imagination for your legs while this sleeveless top wraps loosely around your ample endowments.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 453>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/125.webp';
_desc = 'Adjusted for your chest, this pink sweatshirt and jegging combination effortlessly transitions between day and nighttime during cooler months.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 454>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/126.webp';
_desc = 'Hitting just above the knee, this red cotton dress with white rope detailing is perfect for a trip to the beach but won\'t quite tie closed around your chest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 455>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/127.webp';
_desc = 'Light wash jean short-shorts show off ample legs while this short-sleeved white t-shirt stretches to fit your generous chest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 456>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/128.webp';
_desc = 'Capri-length jeans pair with this white tank top with black and purple print detailing, giving people a different reason to look at your breasts.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 457>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/129.webp';
_desc = 'This ribbed cotton dress shows off lots of leg while stretching to accommodate your upper half.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 1,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 458>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/130.webp';
_desc = 'Perfect for a summer day, these white linen capri pants pair with a blue spaghetti strap tank top for a lounging/casual vibe.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 459>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/131.webp';
_desc = 'A pink wool sweater adds warmth and preserves some modesty when paired with this black and white-striped tank top and jeans combination for late fall/early winter days.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 460>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/132.webp';
_desc = 'White ruffles on this skirt match with the bright yellow tank top with detail accents to keep this summer outfit for the amply-endowed woman light and fun.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 461>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/133.webp';
_desc = 'Bright pink runner\'s shorts and a light pink t-shirt are the perfect picnic outfit for the most top-heavy of women.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 462>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/134.webp';
_desc = 'A halter-style bikini and slacks in tan velour accommodate your generous endowments while keeping things fun and stylish for everyday wear.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 463>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/135.webp';
_desc = 'Blue leggings and this peach sweater are a busty girl\'s best friend for long walks by the pier in early spring.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 464>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/136.webp';
_desc = 'Pink spaghetti straps and gray loose leggings keep this casual outfit comfortable for chores around the house or a quick errand on the weekend.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 465>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/137.webp';
_desc = 'This blue tank top, white fashion belt, and tan slack combination is on the dressy end of casual and is great for more formal outings for the bustiest of women.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 466>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/138.webp';
_desc = 'This stretchy pink and black striped top shapes around your massive breasts but accentuates your slim waist with a black pencil skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 467>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/139.webp';
_desc = 'Layers are in this spring with this white button down collared shirt and red/white striped tank top combination, paired with jeans for a casual boating vibe.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 468>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/140.webp';
_desc = 'Black slacks and a generous green, orange, pink, and black striped tube top accentuate your massive rack while preserving a little modesty and showing off your shoulders.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 469>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/141.webp';
_desc = 'This long-sleeved black and gold floral print shirt has ruffles at the end of the sleeves and ample room in the chest for a fun combination with tan slacks.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 470>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/142.webp';
_desc = 'Light jeans and this purple sheer floral top pair with a white tanktop but still barely contain your massive breasts.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 471>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/143.webp';
_desc = 'A blue low-cut tank top emphasizes your generous cleavage with black capri pants to complement.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 472>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/144.webp';
_desc = 'This gold-ribbed halter and jean shorts combination valiantly tries to keep your breasts in place for everyday living.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 473>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/145.webp';
_desc = 'Good for errands or lounging on the couch, this lightweight purple long-sleeved sweater has just enough room to contain your generous chest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 474>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/146.webp';
_desc = 'A black and white zebra-striped top needs a black and gold patterned tank top to avoid causing a commotion with your traffic-stopping rack.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 475>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/147.webp';
_desc = 'Blue bows draw even more eyes to your stretched neckline in this short-sleeved shirt and jeans pairing.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 476>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/148.webp';
_desc = 'This white poncho-style mid-sleeved shirt and leggings combination is warm enough for spring mornings without overheating your disproportionate upper body.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
:
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 477>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/167.webp';
_desc = 'An endless sea of white sweater is necessary to accommodate your massive chest in this warm winter combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 478>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/168.webp';
_desc = 'Show off on vacation with these tight white capris and amply-sized purple t-shirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 1,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 479>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/149.webp';
_desc = 'A jean skirt and a reinforced pink sleeveless print top are perfect for rollerblading along a country road while trying to maintain balance between your boobs and everything else.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 480>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/150.webp';
_desc = 'White ribbed tank top with thick straps and a second tank top underneath are the minimum to keep your girls in place, while an above-the-knee ruffled skirt adds a bit of fun to your outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 481>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/151.webp';
_desc = 'This salmon-colored sleeveless shirt hints at what your upper body screams, while keeping things stylish with a flared jean pairing.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 482>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/152.webp';
_desc = 'A t-shirt style red dress works for a day at the beach or out about town for even the bustiest of women.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 3,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 483>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/153.webp';
_desc = 'This pink t-shirt and white shorts combination is a versatile everyday or vacation outfit for busty women.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 484>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/154.webp';
_desc = 'Light pink ribs give this half-zip sweater an interesting texture to match your unusually large chest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 485>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/155.webp';
_desc = 'A red/brown halter uses a keyhole to hint at your massive mounds below in this everyday stunner for busty women.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 486>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/156.webp';
_desc = 'This lightweight poly/silk tube top dress is loose around the waist but tight around your generous bosom.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 487>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/157.webp';
_desc = 'White ties and lace detail give this tank top visual interest to distract from your cleavage; paired with brown corduroy pants, it\'s a surefire win for everyday wear.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 488>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/158.webp';
_desc = 'Floral sheer lace gives this top paired with a pink spaghetti strap tank and tan slacks a bit of everyday flair for the well-endowed.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 489>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/159.webp';
_desc = 'Floral sheer lace gives this top paired with a pink spaghetti strap tank and tan slacks a bit of everyday flair for the well-endowed.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 490>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/160.webp';
_desc = 'A fine example of the "just a bit too small" style for the busty woman, this sweater shows off some underboob while emphasizing your skinny waist with high-waisted jeans.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 491>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/161.webp';
_desc = 'A shiny gold top and black pants give this casual outfit a little bit of everyday flair for the busty woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 492>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/162.webp';
_desc = 'A pink knotted button-down shirt and white capris lend some summer style to the bustiest woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 493>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/163.webp';
_desc = 'A long-sleeved shirt and jeans can\'t help but show off some of your endless cleavage.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 494>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/164.webp';
_desc = 'Combining a red-knotted button down shirt to cover your massive cleavage with fitted jeans is a surefire win.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 495>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/55.webp';
_desc = 'Jumpers are all the rage and this blue number with gold accent belt fits nicely around your overly-large breasts.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 496>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/165.webp';
_desc = 'A little white knit sweater and gray pants show off your cleavage and your impossible-to-hide bra.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 497>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/24.webp';
_desc = 'Gold snakeskin texture keeps interest on your whole body, not just your chest in this form-fitting dress.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 3,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 498>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/25.webp';
_desc = 'This multicolored, multi-patterned dress uses a halter style to contain your massive chest while fitting tight to your waist and legs.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 499>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/26.webp';
_desc = 'A white bikini style top, black fashion belt, and black pants uses fashion to the advantage of your endowments for this fancy but hip combo.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 500>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/27.webp';
_desc = 'Velvet and flower detailed shoulder straps are double-reinforced to accommodate your massive chest but still make you feel like royalty in this floor-length dress.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 501>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/28.webp';
_desc = 'This sparkly sequined dress shows off your ample cleavage and makes your legs look even longer with a high slit, matching stockings, and garter belt.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 502>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/29.webp';
_desc = 'A sheer black tube dress with silver detailing above and below outlines everything you have to offer while still technically qualifying as evening wear.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 503>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/30.webp';
_desc = 'Floor-length hemline and sparkling sequins detail this evening-appropriate dress for the heavy-bosomed woman.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 504>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/31.webp';
_desc = 'Rainbow stars keep this floor-length strapless tube dress young and fun for a night out on the town.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 505>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/32.webp';
_desc = 'White pants, a white fashion sash, and a sparkly silver tube top complement even the most-endowed woman.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 506>>
<<set
_type = 'Fit';
_style = 'skipit';
_stats = {
: !TBD!
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 507>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/33.webp';
_desc = 'This teal sequined suit jacket, pants, and bowtie with white sequined top shows off your ample assets without showing any skin.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 508>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/34.webp';
_desc = 'This halter style teal two-piece dress shows the smallest bit of your midriff that isn\'t obstructed by your large chest.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 509>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/35.webp';
_desc = 'These horizontal black and white stripes can only do so much to slim down your impressive chest measurements in this above the knee dress.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 510>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/36.webp';
_desc = 'A combination lace bustier with velvet straps keeps the top of this jumper-style outfit interesting for reasons other than the sheer volume of your breasts.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 511>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/37.webp';
_desc = 'This little black sequined dress shows off what\'s up top and what\'s down below for a night out on the town.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 512>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/38.webp';
_desc = 'A blue two piece dress looks like a one piece from the front due to the massive scale of your breasts but keeps things equally interesting from other angles in this floor length gown.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 513>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/39.webp';
_desc = 'Red velvet is good in cupcakes and jumpers, especially when paired with this black fashion belt and your large endowments to make a high-fashion, modern statement.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 514>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/40.webp';
_desc = 'This velvet tube top barely contains your massive breasts but pairs well with black flared slacks for casual drinks or intense dancing.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 515>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/41.webp';
_desc = 'This black and white striped thigh-length two-piece dress simulates a one-piece dress to accommodate your large endowments.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 2,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 516>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/42.webp';
_desc = 'Black, white, and gray checks with a silver fashion belt strain to keep your massive assets in place while matching dressy black slacks show off your lower half.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 517>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/43.webp';
_desc = 'Black polka dots on a pink dress give even the bustiest woman a fancy, frilly, fun outfit option.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 518>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/44.webp';
_desc = 'Roses and flowers highlight this black dress with microdots and red and gold accents for a night out on the dance floor.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 519>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/25.webp';
_desc = 'This white two-piece outfit is dress-code compliant but cleavage emphasizing for the busty office worker.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 520>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/26.webp';
_desc = 'This black sweater dress and fashion belt will have as many of your officemates looking at your legs as normally look at your generous endowments.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 1,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 521>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/27.webp';
_desc = 'A black shirt, white fashion belt, and brown patterned slacks keep things dress-code appropriate for even the bustiest woman.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 522>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/28.webp';
_desc = 'These high-waisted tan pants emphasize your breast-to-waist ratio in a classic everyday office wear combo with a sufficiently-large red short-sleeved shirt.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 523>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/29.webp';
_desc = 'A blue short-sleeved top and fitted black pants help keep the office fun and interesting but still professional.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 524>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/30.webp';
_desc = 'This slinky green dress with blue, purple, green, and black details on the chest add a little excitement to your nighttime routine.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 525>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/31.webp';
_desc = 'A white nightie with matching garter belt, stockings, and underwear keep the evening time sexy for the busty woman.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 526>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/32.webp';
_desc = 'This sheer teal boyshort/tanktop combination emphasizes your sex appeal even more than your massive breasts already do.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 527>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/33.webp';
_desc = 'Black satin boyshorts and a double-reinforced bra-style top provide support and comfort while you and your endowments rest.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 528>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/34.webp';
_desc = 'A large orange tanktop and pink panties makes for a good casual sleepwear combination for the bustiest of women.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 2,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 529>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/35.webp';
_desc = 'These pink polka dots and black lace add a bit of fun and spice to this tank top and boyshort sleepwear combo.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 3,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 530>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/66.webp';
_desc = 'This little black dress gets a little sheer around your generous endowments but works well for a night out at the club.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 531>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/67.webp';
_desc = 'Blue-and-white horizontal stripes don\'t do much to hide your ample chest in this summery combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 532>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/68.webp';
_desc = 'This orange tube top hugs your breasts tightly, providing modesty but not much support.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 533>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/69.webp';
_desc = 'White lace and the size of your bust leaves little to the imagination in this frilly outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 534>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/70.webp';
_desc = 'A white velvet strapless dress wouldn\'t normally be this provocative, but some things can\'t be helped when your chest is as big as yours is.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 535>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/71.webp';
_desc = 'Tied off with a knot, this red button-down top and black pant combination shows off a fair bit of your ample cleavage.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 536>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/72.webp';
_desc = 'This sheer bodysuit hints at your ample bustline and sizable nipples.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 537>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/74.webp';
_desc = 'There\'s not much difference between this outfit top and some pieces of ripped white cloth, paired with a high-waisted frilly white skirt for an outfit that leaves little to the imagination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 538>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/75.webp';
_desc = 'Gold and shiny, this outfit - and your chest - ensure you\'re the center of attention with a tight tube top and short skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 539>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/76.webp';
_desc = 'A white tube dress leaves your massive breasts spilling out and will likely need multiple adjustments throughout the day.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 540>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/77.webp';
_desc = 'This too-small bikini top is barely large enough to cover your nipples.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 541>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/78.webp';
_desc = 'The message of this outfit - not the style - leaves nothing to the imagination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 542>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/79.webp';
_desc = 'With breasts as large as yours, a properly fitting bikini top is almost the size of an everyday shirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 543>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/80.webp';
_desc = 'A shiny gold patterned top with satin accent and a tied off knot can just barely accommodate your massive chest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 544>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/81.webp';
_desc = 'Velvet texture, faux collar styling, knotted detail across the chest, and a high slit showing your underwear scream sex appeal in this white dress.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 545>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/82.webp';
_desc = 'This classic knotted t-shirt and denim combination is perfect for chores on the farm for the excessively busty woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 546>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/83.webp';
_desc = 'A shirt that pre-empts the question everyone asks you about your breasts - “got milk?”';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 547>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/84.webp';
_desc = 'A white linen one-piece dress shows off ample skin above and below.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 548>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/85.webp';
_desc = 'A shiny knotted top and tan slacks combination provides style and sex appeal for the bustiest of women.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 549>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/86.webp';
_desc = 'Black and white stripes and a side-knot give style to your rack with a low-rider jeans pairing.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 550>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/87.webp';
_desc = 'A bikini top and boyshorts shows off your skin to anyone who wants to see it.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 551>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/88.webp';
_desc = 'A short red dress spends more fabric on your humongous hooters than on covering anything much below your waist.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 1,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 552>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/89.webp';
_desc = 'Short denim shorts and a white top that looks too small for your breasts make the perfect summer casual combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 553>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/90.webp';
_desc = 'Polka dots and swirl patterns are two more reasons to draw eyes to your chest in this sexy satin jumper.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 554>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/91.webp';
_desc = 'This maroon jumper makes sure you\'re showing off plenty of cleavage in everyday errands.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 555>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/92.webp';
_desc = 'A tiny blue top is just enough to prevent an indecent exposure charge for your massive mammaries.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 556>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/93.webp';
_desc = 'Shiny gold pants and a black top show off your never-ending cleavage to the world.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 557>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/94.webp';
_desc = 'Long black sleeves and a sheer wrap keep this sexy black two piece fun for the endowed woman.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 558>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/95.webp';
_desc = 'Pink with white polka dots strains to contain your massive chest in this tiny top-long pants combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 559>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/96.webp';
_desc = 'White pants and a too-small pink vest ensure your enormous endowments are on display to all passersby.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 560>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/97.webp';
_desc = 'Black boyshorts, fishnet stockings, and a knit yellow bra help advertise what you\'re offering.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 561>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/98.webp';
_desc = 'A red velvet dress combines a high slit and a generous view of your breasts to blend a lot of sexy and only a little classy.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 3,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 562>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/99.webp';
_desc = 'The tan slacks are loose fit and this front-zip white top is tight fit around your bountiful bosom.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 563>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/100.webp';
_desc = 'A red-orange summer dress hitting just above the knee is perfectly sized for the bustiest woman, but you\'ll have to watch out for your nipples in public.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 564>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/101.webp';
_desc = 'This green above-the-knee dress has just enough tension around your breasts to keep it from falling off.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 565>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/102.webp';
_desc = 'Nipple slips are almost inevitable at your size in this brown and white striped cotton dress.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 566>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/103.webp';
_desc = 'A teal halter-style top can\'t do much to keep your generous assets in place while walking or moving.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 567>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/104.webp';
_desc = 'This black cotton thigh-high summer dress shows off cleavage and leg to get the attention of anyone walking by.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 568>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/105.webp';
_desc = 'Pink textured frills keep this tube top interesting and sexy around your chest.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 569>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/106.webp';
_desc = 'A red tube top leaves little of your upper body to the imagination while you\'re out and about.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 570>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/107.webp';
_desc = 'This puffy-sleeved shimmery combination is perfect for when you want to show off your ample chest or legs.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 571>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/108.webp';
_desc = 'A shirt with a message that says it all (as if the size of your chest didn\'t already).';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 572>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/109.webp';
_desc = 'A teeny-tiny white dress that struggles to keep up with your hefty hoooters.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 573>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/110.webp';
_desc = 'A two-piece red dress with knotted front for a busty night out at the club.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 574>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/73.webp';
_desc = 'A shortsleeved black top and pleather boyshorts keeps this outfit fun and sexy.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 2,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 575>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/39.webp';
_desc = 'This purple spandex top and form-fitted running shorts are practical and sexy for working out or lounging around.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 1,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 576>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/40.webp';
_desc = 'A white spaghetti strap tank top and black workout leggings are good for basic exercises that require minimal upper body support.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 577>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/41.webp';
_desc = 'Even busty women can get in on team sports with this white soccer jersey with black pants and orange/yellow accents.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 1,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 578>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/42.webp';
_desc = 'Comfy gray pants and a front-zip white top containing your massive breasts is perfect for a low-impact workout during the cooler months.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 579>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/43.webp';
_desc = 'Black bikini bottoms and a tan tank top make for the perfect summer workout gear for well-endowed women.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 2,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 580>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/44.webp';
_desc = 'Lift weights or balance on an exercise ball with ample support with this teal dual-shirt combination with black workout shorts.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 2,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 581>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/45.webp';
_desc = 'This sheer pink cotton dress effortlessly supports yoga, pilates, or any other sport for even the bustiest of women.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 2,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 582>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/46.webp';
_desc = 'Send a message of hope with this blue print halter with blue boyshorts for an affirming and busty workout, every day.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 2,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 583>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/48.webp';
_desc = 'Red sweatpants and a white shortsleeved athletic top work for most everyday sporting needs for the well-endowed woman.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 584>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/49.webp';
_desc = 'A pink spaghetti-strap tank top and pink shorts give your workouts or walks a pop of busty color.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 585>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/19.webp';
_desc = 'This white bikini and pink sheer skirt combination keeps things interesting for the busty woman poolside.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 5,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 586>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/20.webp';
_desc = 'A plaid bikini top and purple boyshort trunks are a fun departure from the norm for well-endowed swimwear.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 587>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/21.webp';
_desc = 'This strapless animal print bikini and black and white wrap are fashionable and practical for the ample-chested beachgoer.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 588>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/22.webp';
_desc = 'A bronze metallic bikini top/bottom with black detail is perfect for a summer day on the lake, no matter the size of your top or bottom.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0
: ,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 589>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/166.webp';
_desc = 'A short-sleeved yellow shirt and black leggings is the perfect outfit for a busty woman\'s casual stroll along the water.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 2,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 590>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/36.webp';
_desc = 'A casual sleepwear combo in pink for the busty tomboy.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 591>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/169.webp';
_desc = 'This breezy summer outfit screams Tomboy even as it cradles your growing baby bump.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 592>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/170.webp';
_desc = 'Stay cool in the warm weather with this outfit! The soft velvety top will feel amazing rubbing against your pregnant belly and the shorts keep your legs on display!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 593>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/171.webp';
_desc = 'This lovely blue dress flows in all the right spots while keeping you swelling belly snug and firm.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 594>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/172.webp';
_desc = 'Even pregnant women can enjoy a sundress with this comfortable flowing stripped affair.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 20* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 595>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/173.webp';
_desc = 'Let your worries just slide off this relaxed lounge-around-the-house outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 596>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/174.webp';
_desc = 'This one-piece romper is guaranteed to have you feeling happy and comfortable as your belly grows bigger and bigger.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 597>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/175.webp';
_desc = 'Classic jeans and t-shirt look with added room for your +1.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 598>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/176.webp';
_desc = 'These stretch pants and comfortable shirt are guaranteed to fit you regardless of your size!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 599>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/37.webp';
_desc = 'Sleep soundly in this super comfy cotton over-sized t-shirt with room for your growing belly.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 600>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/38.webp';
_desc = 'This adorable nightgown looks great over a baby bump!';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 601>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/39.webp';
_desc = 'A pair of matching top-and-bottom pink polka-dot PJs.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 602>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/40.webp';
_desc = 'This sleek nightie accentuates both your growing baby bump as well as your other feminine assets.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 603>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/41.webp';
_desc = 'A pair of stretch pants and a comforable top will have you sleeping away like the baby you have growing in your belly!';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 604>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/42.webp';
_desc = 'This baby-blue nightie is just the thing to cradle your growing baby while you sleep.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 605>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/43.webp';
_desc = 'Little black dresses aren\'t just for going out! Both you and your baby will sleep in sexy style while wearing this black lacy nightgown.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 606>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/50.webp';
_desc = 'Declare your workout motivation with this cute green top and black shorts workout outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 607>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/51.webp';
_desc = 'This tight red-and-black workout number will hold all your new curves in place as you sweat it out in the gym.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 608>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/52.webp';
_desc = 'This pink top with gray stretch pants is just the thing to get you up and motivated to hit the gym.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 609>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/53.webp';
_desc = 'Muscle-shirts aren\'t just for guys! Stay cool while you workout in this cute little gym outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 610>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/54.webp';
_desc = 'This all-black lycra outfit will let you workout in easy knowing your baby bump is perfectly supported.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 611>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/44.webp';
_desc = 'This oversized nightgown will bring out the kid in you while you sleep.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 612>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/Mens/3.webp';
_desc = 'An oversized men\'s t-shirt, the most comfortable sleepwear there is!';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 613>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/22.webp';
_desc = 'This cute little black romper will hold you babybump securily while you drift off into dream-land.';
_style = 'Sleepwear';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 614>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/alterBoy.webp';
_desc = 'Standard alter-boy outfit of simple cotton clothes that you\'ll practically swim in because they\'re too large.';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 615>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/38.webp';
_desc = 'An orange and black dual tanktop outfit with blue track pants are perfect for the the busty, active woman.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 616>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Mens/1.webp';
_desc = 'Mens Tee made of cotton, paired with cargo shorts';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 617>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Mens/2.webp';
_desc = 'Mens Graphic Tee made of cotton, paired with jeans';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 618>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/Mens/1.webp';
_desc = 'Mens tee shirt with pajama pants';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 619>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Swimsuit/Mens/1.webp';
_desc = 'Mens swim trunks';
_style = 'Swimwear';
_stats = {
top: 'Off',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 2,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 620>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/23.webp';
_desc = 'A skimpy purple two-piece swimsuit with see-through wrap around your waist. It simultaneously covers and highlights your best assets!';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 621>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/24.webp';
_desc = 'A cute pastel tanktini that fits as well in the water as it does on land';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 622>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/111.webp';
_desc = 'This cute semi-transparent pink top and ripped denim miniskirt will show that you\'re a Mom-To-Be who still knows how to party.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 0,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 623>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/112.webp';
_desc = 'Treat that baby-bump like the ultimate accessory it as with some maternity bling! This Zicronium-mesh bikini top and micro skirt will make sure everyone knows exactly how you got in this situation.';
_style = 'Fancy';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 0,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 624>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/113.webp';
_desc = 'Technically, this counts as a dress. We checked. But what do you care? You\'ll look hot AF in this see-through mesh "sundress".';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 35* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 625>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/114.webp';
_desc = 'Let your party girl ride shotgun while your baby bump leads the way in this amazingly sexy maternity outfit straight from the Playboy Ranch.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 626>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/115.webp';
_desc = 'Just the outfit to let your natural pregnant glow shine through -- this see-through white dress covers just what is legally required for modern society.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 627>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/116.webp';
_desc = 'This hot little number has a skirt so short your might be showing off more than just your baby bump! But then maybe that\'s what a mother-to-be needs every now and then?';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 628>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Slutty/117.webp';
_desc = 'Trashy Trailer Park meets Motherhood, let your party flag fly high while your belly expands in front of you! The Party never stops for this girl!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 629>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/fDemon1.webp';
_desc = 'A bright red leather corset top holds everything in place and the ragged-edge skirt has a little slot for your tail to poke through above some sexy red fishnets -- just the thing for a demon girl on the prowl.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 630>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/fDemon2.webp';
_desc = 'Black leather -- commanding, dominant, sexy as fuck. The contrast with your bright red demon skin is part of what helps mesmerize your victims as you approach out of the shadows.';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 631>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/25.webp';
_desc = 'Highlight your baby bump at the pool with this stylish floral-print design one-piece bathing suit.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 0,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 632>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/26.webp';
_desc = 'As if your growing belly isn\'t evidence enough of your femininity, this pink ruffled swim suit will drive that point home!';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 0,
topSkin: 2,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 633>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/27.webp';
_desc = 'Show off your baby-bump at the beach with this eye-catching two-piece bikini suit!';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 634>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/28.webp';
_desc = 'This bubble-bum pink bikini set will have you, and your swelling belly, as the center of attention on any beach!';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 635>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/29.webp';
_desc = 'This bright red one-pice has some extra frills around your growing belly to show what a gift it is in any pool setting.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 0,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 636>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/30.webp';
_desc = 'Let the sun coat that baby-bump while wearing this bright and colorful flower-print bikini set.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 637>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/31.webp';
_desc = 'A two-tone one-piece bathing suit with an open back design.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 0,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 638>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/32.webp';
_desc = 'No matter how big your belly gets you\'ll always be able to fit into this striking orange bikini set.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 639>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/33.webp';
_desc = 'A lime green high-waist bikini set to keep your baby-bump swaddled and protected while at the beach.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 640>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/34.webp';
_desc = 'A bright and happy flower-print maternity bikini-set designed to show off your sexy baby bump!';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 641>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/SwimSuit/35.webp';
_desc = 'This multi-toned retro one-piece bathing suit is the best way to dress up your swelling belly for a day of sand and sun.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 0,
topSkin: 1,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 642>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/6.webp';
_desc = 'More than outfit. Less than a suit. This casual summer suit-outfit shows off your sense of style as well as your proffesionalism.';
_style = 'Office';
_price = 250;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 643>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/7.webp';
_desc = 'Just because it\'s casual doesn\'t mean it\'s not professional. This button up work shirt-and-slacks combo is a classic that never goes out of style!';
_style = 'Office';
_price = 300;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 644>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/8.webp';
_desc = 'The Blazer and Polo look is sure to give you a sense of confidence and pride in any business setting.';
_style = 'Office';
_price = 275;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 645>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/9.webp';
_desc = 'Step slightly out of the norm with this trend-inspired office attire. You\'re sure to turn heads when you walk down the hallway in this outfit.';
_style = 'Office';
_price = 275;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 646>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Professional/Mens/10.webp';
_desc = 'Show off your rebelious side with this trendy dishevelled outfit. You can meet office outfit requirements while still sticking it to the man!';
_style = 'Office';
_price = 325;
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 647>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/177.webp';
_desc = 'A white layered-frills top with a pair of hip-hugging jeans that will have heads turning your direction when you walk down the street.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 648>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/178.webp';
_desc = 'A white-and-black off-the shoulder affair that\'s as sexily feminine as it is unassumingly simple.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 649>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/179.webp';
_desc = 'Just a hair shy of being too risky, this daring ensemble is sure to make you the center of attention.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 650>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/180.webp';
_desc = 'A black ruffle top with a pair of white jeans is a timeless and feminine combination.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 651>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bodysuit/2.webp';
_desc = 'A skin tight black body suit that feels oddly warm to the touch.';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 652>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/1.webp';
_desc = 'You\'ll love the chic playfulness of this short and sweet dress that sweeps from adjustable spaghetti straps into a princess-seamed triangle bodice.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 653>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/2.webp';
_desc = 'Give off some serious spring vibes in this pink floral print sleeveless mini dress.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 654>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/3.webp';
_desc = 'You can\'t help but feel lighthearted and lovely in this cute and sweet pink floral print skater dress!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 655>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/4.webp';
_desc = 'This stretchy vinyl sheath dress has underwire cups to help hold your girls up and at attention';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 656>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/5.webp';
_desc = 'Everyone in the gym will be watching you stretch it out in this shiny metallic two-piece yoga outfit.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 657>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/6.webp';
_desc = 'Wrap yourself in pink femininity with this spaghetti-strap top and ruffled mini a-line skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 1,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 658>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/7.webp';
_desc = 'You\'ll look extra cute and feminine in this pink mini dress with paradise puff sleeves.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 659>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/8.webp';
_desc = 'Be a stand-out anywhere you go in this bubblegum pink slinky dress with halterneck tie.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 660>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/9.webp';
_desc = 'Show off your Girl Boss Mode with this adorable bright pink business suit';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 661>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/10.webp';
_desc = 'Be the talk of the town in this breezy bright pink and white floral print dress with a V-neckline and an adorable tying keyhole.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 662>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/11.webp';
_desc = 'Work out in style in this pink sports crop top featuring a round neckline and short sleeves. Team with the matching active running shorts for a delicously girly look.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 0,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 663>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/12.webp';
_desc = 'A two-piece workout fit with seamless high waist yoga shorts and a padded sports top.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 0,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 664>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/13.webp';
_desc = 'Show off your curves in this tight pink jumpsuit with crossing chest straps.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 0,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 665>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/14.webp';
_desc = 'High rise with thin straps to flatter your figure. Double lined for thickness and comfort!';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 666>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/15.webp';
_desc = 'A shiny pink metalic two-piece bikini that flatters what little it covers!';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 667>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/16.webp';
_desc = 'Never has being girly looked so sexy! Glory in your womanhood in this little pink two-piece swimsuit.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 668>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/17.webp';
_desc = 'A spaghetti-strap Cut-Out Mini Dress - just the thing to draw that extra wanted attention!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 669>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/18.webp';
_desc = 'You\'ll be the brightest beauty around in this strapless metallic dress with cross-cross back straps!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 670>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/20.webp';
_desc = 'Skin-tight workout pants that show off your glutes and a ring-hole top that will barely conceal your bouncing beauties';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 0,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 671>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/21.webp';
_desc = 'Cover as little was possible while still technically wearing a dress with this pink cutout micro dress';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 5,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 672>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/22.webp';
_desc = 'This pink bodysuit bandage-wrap micro dress is as sexy as it is dangerous';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 673>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/23.webp';
_desc = 'This white-top and pink school-girl skirt is just to thing if you want to draw a certain kind of attention.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 674>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/24.webp';
_desc = 'Declare your proud bimbo-hood in this hot little raunchy outfit!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 675>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/25.webp';
_desc = 'This pink satin sheath mini dress is as sexy as it is demure.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 676>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/26.webp';
_desc = 'Look as sexy as you feel in this pink high-cut monokini!';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 5,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 677>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/27.webp';
_desc = 'Show off as much as you\'re legally allowed in this shiny metallic slingshot bikini';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 5,
topSkin: 5,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 678>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/28.webp';
_desc = 'You\'ll definitly have all eyes on you in this slingshot micro g-string bikini!';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 5,
topSkin: 5,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 679>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/29.webp';
_desc = 'Whether it\'s the boardroom, ballroom, or bedroom; you\'ll be the hottest one there in this strapless cocktail dress';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 5,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 680>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/30.webp';
_desc = 'Brigthen up any office in this cute pink O-Neck hollow out peplum dress';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 681>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/31.webp';
_desc = 'Technically, it still counts as a gym outfit!';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 0,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 682>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/32.webp';
_desc = 'Feel soft and cuddly in this fuzzy pink sweater and lace-ruffled retro skirt';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 1,
topSkin: 1,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 683>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/33.webp';
_desc = 'Life in plastic <b>is</b> fantastic in this fun crop-top and pink mesh skirt';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 4,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 684>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/34.webp';
_desc = 'This lace-up leather skirt and revealing tubetop are sure to make you visit the dreams of anyone who sees you!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 685>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/35.webp';
_desc = 'This attention-grabbing little number is sure to earn you more than few phone numbers!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 686>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/36.webp';
_desc = 'Let people know your true nature in this daring "Pornstar" hot pink outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 687>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/37.webp';
_desc = 'Dress up any office setting with this amazing silk blouse with an asymmetric neck tie and an adorable knee-length pleated skirt.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 2,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 688>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/38.webp';
_desc = 'A hyper-feminine interpretation of the classic blazer-and-pants combination. Let them know you\'re a woman first and a coworker second.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 689>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/39.webp';
_desc = 'Accentuate your feminine hourglass curves with this narrow-waisted bubble-gum pink jacket and pencil skirt combination.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 690>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/40.webp';
_desc = 'Feel as beautiful as a flower in this two-piece hot pink bouclé "Jackie O" suit completely lined in fuchsia silk';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 691>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/41.webp';
_desc = 'A strapless v-neck inspired mini dress with built-in faux-belt. Being fancy never felt so girly.';
_style = 'Office';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 692>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/42.webp';
_desc = 'Give of soft feminine vibes in this pink silk button-up blouse and faux-leather kneelength pencil skirt.';
_style = 'Office';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 693>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/43.webp';
_desc = 'Be the center of any party in this low-cut plastic minidress, complete with an easy-access zipper so you can get flash your breasts at a moment\'s notice';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 694>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/44.webp';
_desc = 'Your sure to have more than a few admirers in this fitted honeycomb fishnet mini dress.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 695>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/1.webp';
_desc = 'Mens Top with a deep v cut down to your pecs.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 696>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/2.webp';
_desc = 'Oversized tank top with large arm holes and a pair of short shorts. Perfect for relaxing while showing off the gainz.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 3,
btmSkin: 5,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 697>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/3.webp';
_desc = 'A sheer mesh top that reveals more than it conceals and a pair of black shorts.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 4,
btmSkin: 3,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 698>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/4.webp';
_desc = 'Eye catching with a shiny polyester top. Hot pink for the perfectly secure.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 699>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/5.webp';
_desc = 'Be the center of attention with the glittering gold singlet.';
_style = 'Casual';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 4,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 700>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/6.webp';
_desc = 'Become Number 69 on the hottest football team with this revealing mesh jersey. Comes with tight leather pants to show off that tight end!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 701>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/7.webp';
_desc = 'Don this sleeveless hoodie to feel like a real SuperBro. Comfy long shorts for optimal relaxation after your set at the gym.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 2,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 702>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/8.webp';
_desc = 'A pair of shirtless suspenders and a pair of black jeans';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 2,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 703>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/9.webp';
_desc = 'Your classic harness, but fuzzy and pink! Because why not?';
_style = 'Casual';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 5,
topSkin: 5,
btmSkin: 5,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 704>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/10.webp';
_desc = 'Enough straps makes an outfit, right?';
_style = 'Casual';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 5,
topSkin: 5,
btmSkin: 5,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 705>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Himbo/11.webp';
_desc = 'Black leather harness with jeans. Lots of studs for a stud to wear.';
_style = 'Casual';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 5,
topSkin: 5,
btmSkin: 2,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 706>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/Himbo/1.webp';
_desc = 'Lime green workout gear that\'s perfect for jogging where others can watch.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 707>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/Himbo/2.webp';
_desc = 'Sleeveless hoodie and gym shorts combo.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 708>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/Himbo/3.webp';
_desc = 'Sexy jersey crop top and brief shorts. Probably won\'t get you thrown out of the gym if you have the body for it.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 709>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/Himbo/4.webp';
_desc = 'Singlet shorts with only straps to cover your torso.';
_style = 'Athletic';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 710>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/Himbo/5.webp';
_desc = 'Vibrant red singlet. Still tight enough to cling to pecs.';
_style = 'Athletic';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 4,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 711>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/Himbo/6.webp';
_desc = 'Extremely clingy green singlet. Boner not included.';
_style = 'Athletic';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 5,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 1,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 712>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Swimsuit/Himbo/1.webp';
_desc = 'You certainly not blend into the background with this camo swimsuit.';
_style = 'Swimwear';
_stats = {
top: 'Off',
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 1,
masc: 1,
fem: 1,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 713>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Swimsuit/Himbo/2.webp';
_desc = 'Bright red swim briefs that are sure to draw some eyes.';
_style = 'Swimwear';
_stats = {
top: '';
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 1,
masc: 1,
fem: 1,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 714>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Swimsuit/Himbo/3.webp';
_desc = 'Modestly lengthed trunks, but still quite the statement with pastel pink.';
_style = 'Swimwear';
_stats = {
top: 'Off',
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 1,
masc: 1,
fem: 1,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 715>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Swimsuit/Himbo/4.webp';
_desc = 'Stylish blue swim briefs. Where appeal meets function.';
_style = 'Swimwear';
_stats = {
top: 'Off',
btm: 'Pants',
tight: 5,
topSkin: 5,
btmSkin: 6,
zCup: false,
masc: 1,
masc: 1,
fem: 1,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 716>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/Himbo/1.webp';
_desc = 'Mesh top with camo pattern and matching briefs.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 2,
btmSkin: 5,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 717>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Sleepwear/Himbo/2.webp';
_desc = 'Satin leopard print robe.';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 718>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/32.webp';
_desc = 'A buckle-strap keyhole shirt paird with short shorts with built-in fishnet leggings -- dramatic *and* sexy!';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 719>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/33.webp';
_desc = 'Proudly declare your dark allegiance as well as your sexy fashion sense in this dark but alluring shirt and shorts combo';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 720>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/34.webp';
_desc = 'Skintight and lowcut to show you know how to party - the spikes are just the thorns to your rose!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 4,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 721>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/35.webp';
_desc = 'Show off that pale skin in this sexy halter-top and black leather skirt.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 722>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/36.webp';
_desc = 'The lacey top and it\'s flowing sleeves contrast with the skin-tight latex boyshorts but the flower embellishments ties it all together and enhnace it\'s femininty.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Shorts',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 723>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/37.webp';
_desc = 'This isn\'t your mommy\'s school girl outfit! The high top and slit skirt show off as much skin as is legally allowed in a public school setting.';
_style = 'Schoolgirl';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 724>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/38.webp';
_desc = 'Give new meaning to the term \'hand bra\' while showing off your sexy smooth thighs with this skeletal hardcore outfit.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 3,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 725>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/39.webp';
_desc = 'This croptop and short shorts outfit is a testament to your dark feminine appeal';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Shorts',
tight: 3,
topSkin: 3,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 726>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/40.webp';
_desc = 'A gothic take on the classic babydoll dress. Lace never goes out of style.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 727>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/1.webp';
_desc = 'This cow-print sleeveless tank dress is just the thing for those \'heavy milk\' days.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 728>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/2.webp';
_desc = 'The cowprint top helps hide unsightly stains and the pink lace skirt is just adorable!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 729>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/3.webp';
_desc = 'Sexy two-piece bikini with a distinctive camouflaging pattern.';
_style = 'Swimwear';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 730>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/4.webp';
_desc = 'Keep your milk-production bags contained in this sexy one-piece swimsuit.';
_style = 'Swimwear';
_stats = {
top: 'onePiece',
btm: 'onePiece',
tight: 3,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 731>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/5.webp';
_desc = 'A cute little sundress that draws the eyes away from any leaking that might occure.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 732>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/6.webp';
_desc = 'This adorable black-and-white spaghetti strapped dress is perfect for those \'heavy flow\' days.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 1,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 733>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/7.webp';
_desc = 'A perfect dress for any cocktail party, this form-fitting stretchy dress shows off all your jiggling curves - and then some!';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 734>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/9.webp';
_desc = 'Just a cute litte dress for life on a Dairy Farm, perfectly normal.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 735>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/10.webp';
_desc = 'Focus on your calorie burn in this distinctive animal print workout outfit!';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 736>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/11.webp';
_desc = 'This kneck-strap cocktail dress helps keep your milky tendancies in check, and the thigh-slit is simply icing on the cake.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 737>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/12.webp';
_desc = 'A cute little cowprint PJ outfit consiting of a shirt and pair of shorts';
_style = 'Sleepwear';
_stats = {
top: 'Shirt',
btm: 'Shorts',
tight: 2,
topSkin: 1,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 738>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/maid3a.webp';
_desc = 'A fairly standard french maid outfit. Only this one is stretches so it can fit on both small and larger bodies.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 739>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/santaFit.webp';
_desc = 'A very skimpy and suggestive \'Mrs. Clause\' outfit.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 740>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/181.webp';
_desc = 'Let the "Good Vibes" roll in this adorable baseball-inspired mid-riff top and denim short-shorts.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 4,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 741>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/silverSuit1.webp';
_desc = 'This shiny silver body suit will bring out the super-woman inside you!';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 5,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 742>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/mJanitor1.webp';
_desc = 'Dress for the job you have in this standard Janitor outfit';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 743>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Bimbo/19.webp';
_desc = 'Wrap your gorgeous body in this form-fitting neon pink, being sexy never looked so good!';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
himbo: 0,
bimbo: 1,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 744>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/37.webp';
_desc = 'Show off your impressive body in this form-fitting grayey-and-black combo that hugs all the right curves';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 745>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/38.webp';
_desc = 'This tight pink top and fitted black jeans as as timeless as it is beautiful';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 1,
btmSkin: 1,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 746>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Athletic/47.webp';
_desc = 'Gray athletic short shorts fit but this tiny white top may not be enough for more than a brisk walk to get your heart rate up.';
_style = 'Athletic';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: true,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 747>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Cowprint/8.webp';
_desc = 'A black-and-white patterned crop-top and high-rise pants, as sexy as it is simple.';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 1
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 748>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/madameFit1.webp';
_desc = 'A form-fitting bat-inspired dress. Dramatic, sexy, and dangerous all at once.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 749>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Preg/1.webp';
_desc = 'This sexy black lace dress will cradle your babybump more snuggly than a casket cradles a corpse.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 750>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Preg/2.webp';
_desc = 'A black lace-top babydoll dress with enough room for your growing Dark Passenger.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 751>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Preg/3.webp';
_desc = 'The rhinestone skull adds a bit of dark fun to this maternity babydoll dress.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 752>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Preg/4.webp';
_desc = 'A black velvet dress that\'s as soft as the night itself';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 753>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Preg/5.webp';
_desc = 'A black velvet knee-length dress that shows off your growing belly as well as your affinity for Dark things.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 754>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Preg/6.webp';
_desc = 'A midriff exposing two-piece dress that expertly showcases your assets';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 755>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Preg/7.webp';
_desc = 'Your classic "little black dress" with a skull-and-cross bones accent, perfect for the Dark Mother To Be.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 756>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Preg/8.webp';
_desc = 'A short black dress with a skull-patterned bust cinch.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 1,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 757>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/Goth/Preg/9.webp';
_desc = 'This dramatic black lacey dress accentuates your feminity while also advertising your dark outlook.';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 758>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/Cosplay/1.webp';
_desc = 'Sexy Knight';
_style = 'Costume';
_stats = {
top: 'Top',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 759>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/Cosplay/2.webp';
_desc = 'Bubblegum fighter';
_style = 'Costume';
_stats = {
top: 'Top',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 760>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/Cosplay/3.webp';
_desc = 'Sexy Villager';
_style = 'Costume';
_stats = {
top: 'Top',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 761>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/Cosplay/4.webp';
_desc = 'Fantasy costume';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 762>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/Cosplay/5.webp';
_desc = 'Disney Princess';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 763>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/Cosplay/6.webp';
_desc = 'Snow White';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Skirt',
tight: 5,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 1,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 764>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/Cosplay/7.webp';
_desc = 'Not all heros wear capes! This Handyman/Plumber costume is sure to save the day. Includes boots and realistic wrench!';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 1,
topSkin: 1,
btmSkin: 1,
zCup: false,
masc: 1,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 765>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/Cosplay/8.webp';
_desc = 'You\'ll be ready to "lay some pipe" with this sexy handy-woman costume! Complete with authentic-looking toolbelt!';
_style = 'Costume';
_stats = {
top: 'Shirt',
btm: 'Pants',
tight: 3,
topSkin: 4,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 766>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/maidPreg.webp';
_desc = 'Even a pregnant maid needs to work, and there\'s no reason you can\'t look sexy *and* efficient.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 3,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 767>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/hotelMaidPreg.webp';
_desc = 'You and your baby-to-be can clean up a storm in this accomodating maid outfit.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 768>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/candyCane1.webp';
_desc = 'Spice up your Christmas with this sexy Candy Cane outfit';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 769>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/fMasRobe1.webp';
_desc = 'A tight-fitting metallic blue silk robe';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 0,
topSkin: 3,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 770>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/45.webp';
_desc = 'This evening gown isn\'t really see-through, but no one will notice with the bright gemstone accents that draw the eye.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 771>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/46.webp';
_desc = 'Wrap your body in this sexy gossamer-inspired dress that leaves plenty to the imagination.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 772>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/47.webp';
_desc = 'This gold off-the-shoulder dress is studded with 10k diamonds for that extra flash of fancy';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 2,
topSkin: 3,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 773>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/48.webp';
_desc = 'You\'ll look fabulous in this pink velvet bustier dress that hugs you in all the right places.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 3,
btmSkin: 2,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 774>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/49.webp';
_desc = 'Push the boundries with this transparent diamond-encrusted evening gown that will be sure to have you at the center of every conversation.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 4,
btmSkin: 5,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 775>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/50.webp';
_desc = 'This Asian-inspired cocktail dress is so tight it shows of all your curves while maintaining an air of sophistication and class';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 776>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/51.webp';
_desc = 'Feel dangerous and sexy in this dress with a skirt flare to accentuate your hips.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 2,
btmSkin: 1,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 777>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Fancy/52.webp';
_desc = 'A bejeweled transparent gown that will definitely show off anything you have, or don\'t have, underneath.';
_style = 'Fancy';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 4,
btmSkin: 6,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 778>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/183.webp';
_desc = 'This adorable mid-driff bearing preasant blouse is perfectly paird with a denim mini-skirt to show your fun playful side while still keeping it PG13';
_style = 'Casual';
_stats = {
top: 'Shirt',
btm: 'Dress',
tight: 2,
topSkin: 4,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 779>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Casual/184.webp';
_desc = 'Make sure all eyes are on you in this sexy Little Black Dress with spaghetti straps and a bedazzled faux-belt';
_style = 'Casual';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 3,
topSkin: 2,
btmSkin: 3,
zCup: false,
masc: 0,
fem: 1,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<<case 780>>
<<set
_type = 'Fit';
_img = 'Media/Clothing/Outfits/Costumes/maid3b.webp';
_desc = 'A fairly standard french maid outfit. Only this one is stretches so it can fit on both small and larger bodies.';
_style = 'Costume';
_stats = {
top: 'Dress',
btm: 'Dress',
tight: 4,
topSkin: 2,
btmSkin: 4,
zCup: false,
masc: 0,
fem: 0,
bimbo: 0,
himbo: 0,
cow: 0
};
_price = 15* (_stats.tight + _stats.topSkin + _stats.btmSkin);
>>
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,_style,_img,_desc,_stats,_price)>>
<</widget>><<widget "genPanties">>
<<switch _args[0]>>
<<case 0>>
<<set _type = 'Panties'>>
<<set _style = ''>>
<<if $player.body.gender !== 'Female'>>
<<if $player.body.pubes >= 30>>
<<set _img = 'Media/Self/Body/Dick/Hairy/' + $player.body.cock + '.webp'>>
<<else>>
<<set _img = 'Media/Self/Body/Dick/Shaved/' + $player.body.cock + '.webp'>>
<</if>>
<<else>>
<<if $player.body.pubes >= 30>>
<<set _img = 'Media/Self/Body/Pussy/Hairy/1.webp'>>
<<else>>
<<set _img = 'Media/Self/Body/Pussy/Shaved/1.webp'>>
<</if>>
<</if>>
<<set _desc = 'An average pair of underwear. Nothing much to look at.'>>
<<set _price = 10>>
<<case 1>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/0.webp';
_desc = 'An average pair of underwear. Nothing much to look at.';
_price = 10;
_style = 'Casual';
_stats = {};
>>
<<case 2>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/1.webp';
_desc = 'An average pair of underwear. Nothing much to look at.';
_price = 8;
_style = 'Casual';
_stats = {};
>>
<<case 3>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/2.webp';
_desc = 'An average pair of underwear. Nothing much to look at.';
_price = 10;
_style = 'Casual';
_stats = {};
>>
<<case 4>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/3.webp';
_desc = 'An average pair of underwear. Nothing much to look at.';
_price = 9;
_style = 'Casual';
_stats = {};
>>
<<case 5>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/4.webp';
_desc = 'A cute pair of pink panties with some black lace trim.';
_price = 15;
_style = 'Casual';
_stats = {};
>>
<<case 6>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/5.webp';
_desc = 'An average pair of underwear. Nothing much to look at.';
_price = 8;
_style = 'Casual';
_stats = {};
>>
<<case 7>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/6.webp';
_desc = 'An average pair of underwear. Nothing much to look at.';
_price = 10;
_style = 'Casual';
_stats = {};
>>
<<case 8>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/7.webp';
_desc = 'An average pair of underwear. Nothing much to look at.';
_price = 10;
_style = 'Casual';
_stats = {};
>>
<<case 9>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Sporty/1.webp';
_desc = 'A dark blue pair of sports panties';
_price = 12;
_style = 'Athletic';
_stats = {};
>>
<<case 10>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Sporty/2.webp';
_desc = 'High-waisted athletic panties with a playful branding';
_price = 8;
_style = 'Athletic';
_stats = {};
>>
<<case 11>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/8.webp';
_desc = 'A thin pair of panties with a lacy band and a bow at the front, perfect for making you feel more feminine.';
_price = 8;
_style = 'Casual';
_stats = {};
>>
<<case 12>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/1.webp';
_desc = 'These lacy white panties are almost transparent and definitely play up the femininity of the person wearing them.';
_price = 8;
_style = 'Slutty';
_stats = {};
>>
<<case 13>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/2.webp';
_desc = 'A pair of bright pink panties designed to make you feel as sexy as you look.';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 14>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/3.webp';
_desc = 'These black lace cage panties are a good way to catch the attention of anyone who sees you in them.';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 15>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/4.webp';
_desc = 'The bow may be cute, but these purple thong panties are anything but innocent';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 16>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/9.webp';
_desc = 'A pair of plain grey boxer briefs.';
_price = 200;
_style = 'Casual';
_stats = {};
>>
<<case 17>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/10.webp';
_desc = 'This simple pair of pink panties is enhanced with a little bow.';
_price = 9;
_style = 'Casual';
_stats = {};
>>
<<case 18>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/11.webp';
_desc = 'This pair of low-cut red-and-black panties are sure to bring out your devilish playful side.';
_price = 10;
_style = 'Casual';
_stats = {};
>>
<<case 19>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/5.webp';
_desc = 'These baby blue butterfly panties will have you feeling sexy and feminine even if no one else sees them';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 20>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/6.webp';
_desc = 'A pair of lacy yellow panties that are as much fun to wear as they are for someone to peel off.';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 21>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/7.webp';
_desc = 'These semi-transparent yellow panties will have you feeling naughty all day long!';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 22>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/8.webp';
_desc = 'This pair of naughtly Black-lace panties will advertise your fun-loving side to anyone who sees them.';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 23>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/9.webp';
_desc = 'A pair of white-and-pink lacy panties that are as girly as they are sexy!';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 24>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/10.webp';
_desc = 'Dress up your unmentionables like a sweet piece of candy in these split level panties.';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 25>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/11.webp';
_desc = 'More one long ribbon than an actual pair of panties, but one thing this pair guarantees is an excited feeling in your tummy all day long!';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 26>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/1.webp';
_desc = 'Simple black panties in a mesh style.';
_price = 18;
_style = 'Slutty';
_stats = {};
>>
<<case 27>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/2.webp';
_desc = 'Black panties with a delicate lace trim.';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 28>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/3.webp';
_desc = 'Simple black panties in a mesh style.';
_price = 18;
_style = 'Slutty';
_stats = {};
>>
<<case 29>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/4.webp';
_desc = 'Simple black panties with some straps.';
_price = 18;
_style = 'Slutty';
_stats = {};
>>
<<case 30>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/5.webp';
_desc = 'Soft, lacy, frilly.';
_price = 23;
_style = 'Slutty';
_stats = {};
>>
<<case 31>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/6.webp';
_desc = 'Because who doesn\'t love an undead unicorn with an attitude.';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 32>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/7.webp';
_desc = 'Well, it\'s not...';
_price = 25;
_style = 'Slutty';
_stats = {};
>>
<<case 33>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/8.webp';
_desc = 'Simple black panties in a lacy style.';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 34>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/9.webp';
_desc = 'Simple blood red panties in a strappy style.';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 35>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/10.webp';
_desc = 'Simple black panties in a lacy style.';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 36>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/11.webp';
_desc = 'Simple black panties in a lacy style.';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 37>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/12.webp';
_desc = 'Simple black panties in a lycra style.';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 38>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/13.webp';
_desc = 'Simple black panties in a lacy style, of course, it\'s a demonic face, but hey, lace!';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 39>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/14.webp';
_desc = 'Simple black panties in a lacy style.';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 40>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/15.webp';
_desc = 'Simple black panties in a lacy style, with blood red pannels.';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 41>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Goth/16.webp';
_desc = 'Show off your demonic side!';
_price = 20;
_style = 'Slutty';
_stats = {};
>>
<<case 42>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/12.webp';
_desc = 'They may be boy shorts, but there\'s no mistaking these as anything less than a pair of pink panties';
_price = 20;
_style = 'Casual';
_stats = {};
>>
<<case 43>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/13.webp';
_desc = 'Reflect your fertility with these flower-embroidered panites.';
_price = 25;
_style = 'Casual';
_stats = {};
>>
<<case 44>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/14.webp';
_desc = 'These textured pink panties are as comfortable as they are adorable.';
_price = 22;
_style = 'Casual';
_stats = {};
>>
<<case 45>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Bimbo/1.webp';
_desc = 'Semi-transparent, lace-accented, and pink -- what more could a girl ask for?';
_price = 20;
_style = 'Casual';
_stats = {};
>>
<<case 46>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Bimbo/2.webp';
_desc = 'You\'ll look as sweet as strawberry in these cute panties!';
_price = 24;
_style = 'Casual';
_stats = {};
>>
<<case 47>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Bimbo/3.webp';
_desc = 'No-nonsense but still with a flair of feminine mystique, you\'re sure to feel beautiful in these.';
_price = 28;
_style = 'Casual';
_stats = {};
>>
<<case 48>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Himbo/1.webp';
_desc = 'Striking Black and Blue jockstrap. Lace up the front to keep your junk secure.';
_price = 28;
_style = 'Athletic';
_stats = {};
>>
<<case 49>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Himbo/2.webp';
_desc = 'Jockstrap with a front zipper. Easy access from the front and the back.';
_price = 30;
_style = 'Sexy';
_stats = {};
>>
<<case 50>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Himbo/3.webp';
_desc = 'Eye catching red, white and blue briefs.';
_price = 28;
_style = 'Athletic';
_stats = {};
>>
<<case 51>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Himbo/4.webp';
_desc = 'Purple jockstrap with a metallic shine. Includes a D-ring to connect with a harness for sexy times.';
_price = 35;
_style = 'Sexy';
_stats = {};
>>
<<case 52>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Himbo/5.webp';
_desc = 'Football pattern red jockstrap for someone that can\'t get enough of the sport.';
_price = 30;
_style = 'Athletic';
_stats = {};
>>
<<case 53>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Himbo/6.webp';
_desc = 'A revealing mesh pouch with a band around the waist, leaving your rear completely exposed..';
_price = 50;
_style = 'Sexy';
_stats = {};
>>
<<case 54>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/12.webp';
_desc = 'A super tight pair of shiny silver boy-shorts.';
_price = 15;
_style = 'Slutty';
_stats = {};
>>
<<case 55>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/15.webp';
_desc = 'These high-waisted panties are no-nonsense and functional.';
_price = 15;
_style = 'Casual';
_stats = {};
>>
<<case 56>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/16.webp';
_desc = 'Lace pink panties with a cute little bow';
_price = 20;
_style = 'Casual';
_stats = {};
>>
<<case 57>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/13.webp';
_desc = 'Accentuate your femininity with these garter-belt inspired panties';
_price = 35;
_style = 'Slutty';
_stats = {};
>>
<<case 58>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Bimbo/4.webp';
_desc = 'Delicate pink lace panties with a zirconium diamond in the bow';
_price = 35;
_style = 'Bimbo';
_stats = {};
>>
<<case 59>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/14.webp';
_desc = 'Black nearly-transparent panties never go out of style!';
_price = 35;
_style = 'Slutty';
_stats = {};
>>
<<case 60>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Casual/17.webp';
_desc = 'You\'l look like an elegently wrapped present in these sexy blue panties';
_price = 25;
_style = 'Casual';
_stats = {};
>>
<<case 61>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/15.webp';
_desc = 'Let them know who you really are with these \'Fucktoy\' panties!';
_price = 35;
_style = 'Slutty';
_stats = {};
>>
<<case 62>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/16.webp';
_desc = 'Wear your \'slut\' label with pride!';
_price = 35;
_style = 'Slutty';
_stats = {};
>>
<<case 63>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/17.webp';
_desc = 'Let them know just how seet you are';
_price = 35;
_style = 'Slutty';
_stats = {};
>>
<<case 64>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/18.webp';
_desc = 'These panties let everyone who sees them know what you really want.';
_price = 35;
_style = 'Slutty';
_stats = {};
>>
<<case 65>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/19.webp';
_desc = 'A good pair of panties for a good little girl.';
_price = 35;
_style = 'Slutty';
_stats = {};
>>
<<case 66>>
<<set
_type = 'Panties';
_img = 'Media/Clothing/Panties/Slutty/20.webp';
_desc = 'Everyone will know what you want when you show off these crotchless black lace panties.';
_price = 35;
_style = 'Slutty';
_stats = {};
>>
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,_style,_img,_desc,_stats,_price)>>
<</widget>><<genPurse $player.outfit.purse>>
<<if !$purseInventory and $player.outfit.purse != 0>>
<<set $purseInventory = [{name: 'Nothing', amount: 0}]>>
<</if>>
<center>
<div class="horzContainer" style="width: 80%">
<img @src="$clothingObj.image" height="450rem">
<<if $purseInventory.length === 0>>
<div class="badText">Your purse is empty</div>
<<else>>
<div class="vertContainer" id="itemContainer">
<<for _i to 0; _i < $purseInventory.length;_i++>>
<<if $player.inventory.checkInv($purseInventory[_i].name) === 0>>
<<set $purseInventory = $purseInventory.filter(obj => obj.name != $purseInventory[_i].name)>>
<<if _i > $purseInventory.length>>
<<set _i = $purseInventory.length>>
<<else>>
<<set _i-->>
<</if>>
<<else>>
<<capture _i>>
<<button $purseInventory[_i].name>>
<<usePurseItem $purseInventory[_i]>>
<</button>>
<</capture>>
<</if>>
<</for>>
</div>
<</if>>
</div>
<<if $purseInventory.length > 0>>
<br><br>
<span id="repCont">
You rummage through your purse, pushing things this way and that as you look for that one specific thing.
</span>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Put your purse down" $menuPassage>>
<<addSecs 5>>
<</button>>
</div>
</div><<if !$purseInventory>>
<<set $purseInventory = [{name: 'Nothing', amount: 0}]>>
<</if>>
<center>
<img src="Media/Misc/deskPurse.webp" height="450rem">
/* mood boosters,beachLotion,condoms,dildos, strapon, pads,tampons,water bottle, pepper spray,*/
<<set $portables = [
'Cigarettes',
'Suntan Lotion',
'Vape Juice',
'Lip Balm',
'Travel Mouthwash',
'Travel Brush',
'Tampons',
'Sanitary Pads',
'Water Bottle',
'Pepper Spray',
'Compact Mirror',
'Wet Wipes'
]>>
<span id="repCont">
<<managePurseMenu>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div button="buttonContainer">
<<button "Put down your purse" $menuPassage>>
<<addSecs 5>>
<</button>>
</div>
</div><<run $player.inventory.removeItem('Cigarettes',1)>>
<<set _tmpImg = 'Media/Smoking/' + $locType + '/'>>
<<if $locType === 'Indoors'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,12) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<<else>>
<<if $rainyDay>>
<<set _tmpImg += 'Rain/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<<elseif $dayStage > 4>>
<<set _tmpImg += 'Day/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,12) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'Night/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,12) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,3) + '.webp'>>
<</if>>
<</if>>
<</if>>
<<if random(0,1000) > 800>>
<<set $player.statBuffs.mascBuff += 1>>
<</if>>
<<set $lastDayCigs = clone($currJulianDate)>>
<<if $player.isSmoker>>
<<set $player.mood += 20>>
<</if>>
<<if !$player.cigsSmoked>>
<<set
$player.cigsSmoked = 1;
$player.minNicotine = 0;
$player.nicLevel = 0;
>>
<<else>>
<<set $player.cigsSmoked += 1>>
<</if>>
<<set
$player.energy += 2;
$player.stamina = ($player.stamina + 10).clamp(0,$player.stamMax);
$player.nicLevel += 100;
$player.minNicotine += 100;
>>
<<if $player.minNicotine >= 500>>
<<set $player.isSmoker = true>>
<</if>>
<center>
<img @src="_tmpImg" height="500rem">
<br><br>
You light up your cigarette and inhale the acrid smoke.
<br><br>
<<if $player.cigsSmoked < 10 and !$player.isSmoker>>
<b>You have to fight to keep from coughing, and the smoke hurts your lungs a little. It's a wonder anyone actually does this...</b>
<br><br>
Before long you feel the rush from the drug, making you more alert and responsive.
<<elseif $player.cigsSmoked >= 10 and !$player.isSmoker>>
<b>You hold the smoke in your lungs for a moment, enjoying the rush that you get from the drug.</b>
<<elseif $player.isSmoker>>
<b>You close your eyes and smile as the nicotine rushes into your system.</b>
<</if>>
<br><br>
<<if $player.inventory.checkInv('Cigarettes') <= 0>>
<div class="badText">You are now out of cigarettes.</div>
<<else>>
<font color=blue><b>You have <<print $player.inventory.checkInv('Cigarettes')>> cigarettes left.</b></font>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Smoke another">>
<<goto "SmokeCigs">>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go back" $menuPassage>>
<<addSecs 25>>
<</button>>
</div>
</div><<run $player.inventory.removeItem('Vape Juice',1)>>
<<set _tmpImg = 'Media/Vaping/' + $locType + '/'>>
<<if $locType === 'Indoors'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<if $rainyDay>>
<<set _tmpImg += 'Rain/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<<elseif $dayStage > 4>>
<<set _tmpImg += 'Day/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'Night/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,5) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<</if>>
<</if>>
<<if random(0,1000) > 800>>
<<set $player.statBuffs.menatlFem += 1>>
<</if>>
<<set $lastDayCigs = clone($currJulianDate)>>
<<if $player.isSmoker>>
<<set $player.mood += 20>>
<</if>>
<<if !$player.juiceVaped>>
<<set
$player.juiceVaped = 1;
$player.minNicotine = 0;
$player.nicLevel = 0;
>>
<<else>>
<<set $player.juiceVaped += 1>>
<</if>>
<<set
$player.energy += 2;
$player.stamina = ($player.stamina + 10).clamp(0,$player.stamMax);
$player.nicLevel += 100;
$player.minNicotine += 100;
>>
<<if $player.minNicotine >= 500>>
<<set $player.isSmoker = true>>
<</if>>
<center>
<img @src="_tmpImg" height="500rem">
<br><br>
You take a pull on your vape pen, enjoying the flavor of the juice in its cartridge.
<br><br>
<<if $player.cigsSmoked < 10 and !$player.isSmoker>>
<b>The vapor tickles your throat and you feel a tingle in your lungs, but you suppress the urge to cough.</b>
<br><br>
Before long you feel the rush from the drug, making you more alert and responsive.
<<elseif $player.cigsSmoked >= 10 and !$player.isSmoker>>
<b>You hold the vapor in your lungs for a moment, enjoying the rush that you get from the drug.</b>
<<elseif $player.isSmoker>>
<b>You close your eyes and smile as the nicotine rushes into your system.</b>
<</if>>
<br><br>
<<if $player.inventory.checkInv('Vape Juice') <= 0>>
<div class="badText">You are now out of vape juice.</div>
<<else>>
<font color=blue><b>You have <<print $player.inventory.checkInv('Vape Juice')>>mLs of juice left.</b></font>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Smoke another">>
<<goto "Vape">>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go back" $menuPassage>>
<<addSecs 25>>
<</button>>
</div>
</div><<widget "genPurse">>
<<switch _args[0]>>
<<case 0>>
<<set
_type = 'Purse';
_img = 'Media/Self/Body/Hands/' + ($player.presenting === 'Male'?'M/':'F/') + '1.webp';
_desc = 'You are not carrying a purse.';
>>
<<case 1>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/1.webp';
_desc = 'Solid black leather purse. Nothing fancy, but it\'ll hold plenty of things.';
_price = 7;
>>
<<case 2>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/2.webp';
_desc = 'A pink polyester purse. Has an outside pocket to hold your phone.';
_price = 25;
>>
<<case 3>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/3.webp';
_desc = 'A cute pink mini-backpack purse. It might be worn like a backpack, but it\'s clearly a purse.';
_price = 7;
>>
<<case 4>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/4.webp';
_desc = 'A white leather purse with a fun fuzzy keychain, show you still have a playful side even as a sophisticated woman.';
_price = 15;
>>
<<case 5>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/5.webp';
_desc = 'This metal studded black leather purse is large enough to hold anything you could need while still looking fashionable.';
_price = 20;
>>
<<case 6>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/6.webp';
_desc = 'This fabric quilted purse is sure to highlight your hippy-side!';
_price = 5;
>>
<<case 7>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/7.webp';
_desc = 'A pink leather Pusheen handbag, just perfect for those days when you want to be a little more playfull.';
_price = 20;
>>
<<case 8>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/8.webp';
_desc = 'A tall bronzed leather bag for when you want to carry your belongings with an air of sophisticated style.';
_price = 20;
>>
<<case 9>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Bimbo/3.webp';
_desc = 'A definitely eye catching bag. Cute and sexy style, that will make you stand out in the crowd.';
_price = 80;
>>
<<case 10>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/10.webp';
_desc = 'For the serious fashionista in all of us, this bright pink glittery purse declares your love of all things girly.';
_price = 60;
>>
<<case 11>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/11.webp';
_desc = 'This fun "slut" clutch will get conversations started whenever someone sees it.';
_price = 60;
>>
<<case 12>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/12.webp';
_desc = 'A small but fun clutch that will appeal to any Bimbo Princess.';
_price = 60;
>>
<<case 13>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/13.webp';
_desc = 'Just like you, this cute heart-shaped purse may seem delicate but it can pack a punch.';
_price = 60;
>>
<<case 14>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Fancy/1.webp';
_desc = 'Alligator printed in gold and caked with diamonds, this is definitely the way to carry your small items.';
_price = 2000;
>>
<<case 15>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Fancy/2.webp';
_desc = 'A ball purse comprised of dozens of flawless pearls with a solid gold clasp.';
_price = 3250;
>>
<<case 16>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Fancy/3.webp';
_desc = 'A heart shaped purse made of 18 kt gold which is encrusted with 4,517 diamonds.';
_price = 5700;
>>
<<case 17>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Fancy/4.webp';
_desc = 'A lovely silver handbag with a diamond coated cord and massive gem-covered clasp.';
_price = 4700;
>>
<<case 18>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Fancy/5.webp';
_desc = 'A clasp coated in flawless saltwater pearls, the envy of any woman who doesn\'t own one.';
_price = 4200;
>>
<<case 19>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Fancy/6.webp';
_desc = 'A mother-of-pearl case encased in gold ivy with precious gem flowers. Very feminine, very expensive.';
_price = 8200;
>>
<<case 20>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Male/1.webp';
_desc = 'The sleek design of this leather flap shoulder bag is enriched by a luxurious Saffiano leather stripe. Perfect for any occasion.';
_price = 1500;
>>
<<case 21>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Male/2.webp';
_desc = 'This blue Korean style shoulder-bag looks great with any outfit and can hold any day-to-day items the average man needs out on the town.';
_price = 1250;
>>
<<case 22>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Male/3.webp';
_desc = 'This sleek understated shoulder-bag provides a high level of functionality and comfort without sacrificing quality or style.';
_price = 2500;
>>
<<case 23>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Male/4.webp';
_desc = 'A soft-leather crossbody messenger bag designed to hang perfectly off the male frame.';
_price = 800;
>>
<<case 24>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/14.webp';
_desc = 'A bubblegum pink backpack with unicorm charms and kitten stickers.';
_price = 800;
>>
<<case 25>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/1.webp';
_desc = 'A hobo style bag, decorated with studs and a skull.';
_price = 60;
>>
<<case 26>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/2.webp';
_desc = 'A classic satchel bag, with buckles. It could almost pass for a traditional purse.';
_price = 55;
>>
<<case 27>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/3.webp';
_desc = 'A cloth, hobo style bag with little skulls printed all over it.';
_price = 45;
>>
<<case 28>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/4.webp';
_desc = 'A small frame purse that flies in the face of superstition.';
_price = 60;
>>
<<case 29>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/5.webp';
_desc = 'A tote style bag, decorated with a crescent moon, and kitties!';
_price = 60;
>>
<<case 30>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/6.webp';
_desc = 'Awww, look at the kitty! And the little flower accents are so cute!';
_price = 60;
>>
<<case 31>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/7.webp';
_desc = 'A basic tote bag, with Egyptian style cats.';
_price = 85;
>>
<<case 32>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/8.webp';
_desc = 'Mysterious and obscure.';
_price = 60;
>>
<<case 33>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/9.webp';
_desc = 'A practical, backpack style bag.';
_price = 65;
>>
<<case 34>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/10.webp';
_desc = 'A tasteful frame bag, with crescent moons.';
_price = 85;
>>
<<case 35>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/11.webp';
_desc = 'A simple tote bag featuring a pentagram.';
_price = 50;
>>
<<case 36>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/12.webp';
_desc = 'Goth Juice! For when you\'ve got that lust for braaaaiiins.';
_price = 90;
>>
<<case 37>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/13.webp';
_desc = 'A simple messenger style bag, except with an evil eye to glare at your enemies!';
_price = 85;
>>
<<case 38>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/14.webp';
_desc = 'Goth Flakes, to feed your soul. Your soooouuul...';
_price = 90;
>>
<<case 39>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/15.webp';
_desc = 'Soul flavored, popped in Hell.';
_price = 90;
>>
<<case 40>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/16.webp';
_desc = 'A round clutch with a sleepy kitty.';
_price = 55;
>>
<<case 41>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/17.webp';
_desc = 'A frame bag decorated with the image of a Ouija Board.';
_price = 75;
>>
<<case 42>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/18.webp';
_desc = 'A simple hobo style bag, it almost looks normal.';
_price = 35;
>>
<<case 43>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/19.webp';
_desc = 'A tote, with skulls and roses.';
_price = 55;
>>
<<case 44>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/20.webp';
_desc = 'A little handle clutch. Decorated with skulls and roses.';
_price = 65;
>>
<<case 45>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/21.webp';
_desc = 'Show them your dark side with this blackwidow tote.';
_price = 65;
>>
<<case 46>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/22.webp';
_desc = 'Even Hello Kitty has a Goth side.';
_price = 55;
>>
<<case 47>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/23.webp';
_desc = 'A purse for the girl who can\'t decide between Goth or Bimbo.';
_price = 65;
>>
<<case 48>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/24.webp';
_desc = 'Undead kitties need love too.';
_price = 45;
>>
<<case 49>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/25.webp';
_desc = 'Chains, leather, and it\'s so cute!';
_price = 70;
>>
<<case 50>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/26.webp';
_desc = 'A bright pink backpack purse, covered in skulls.';
_price = 60;
>>
<<case 51>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/27.webp';
_desc = 'A Doctor\'s bag style purse featuring classic horror popart.';
_price = 85;
>>
<<case 52>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/28.webp';
_desc = 'A tiny cute pink coffin style bag, with a skull!';
_price = 65;
>>
<<case 53>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/29.webp';
_desc = 'A more somber coffin shaped bag.';
_price = 60;
>>
<<case 54>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/30.webp';
_desc = 'The Evil Eye is watching.';
_price = 65;
>>
<<case 55>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/31.webp';
_desc = 'Boho meets Goth in this dark fringe bag.';
_price = 50;
>>
<<case 56>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/32.webp';
_desc = 'A cute coffin shaped bag, it has straps in the shape of a pentegram.';
_price = 55;
>>
<<case 57>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/33.webp';
_desc = 'It\'s dark, it\'s bright, it\'s pink! All at the same time.';
_price = 60;
>>
<<case 58>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/34.webp';
_desc = 'A strappy satchel bag, with a coffin decoration.';
_price = 75;
>>
<<case 59>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/35.webp';
_desc = 'For when cheap poison just won\'t do.';
_price = 90;
>>
<<case 60>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/36.webp';
_desc = 'Dead kitty backpack, dead fish too.';
_price = 65;
>>
<<case 61>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/37.webp';
_desc = 'A subtle frame bag with delicate red embroidery. Blood red embroidery.';
_price = 125;
>>
<<case 62>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/38.webp';
_desc = 'Goth. We\'re clear on that part, right? That doesn\'t change because we\'re into pink.';
_price = 60;
>>
<<case 63>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/39.webp';
_desc = 'A tote style bag, decorated with a Ouija Board.';
_price = 60;
>>
<<case 64>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/40.webp';
_desc = 'Sleek, modern, with stylized dripping.';
_price = 55;
>>
<<case 65>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/41.webp';
_desc = 'A bright pink pastel Goth backpack.';
_price = 60;
>>
<<case 66>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/42.webp';
_desc = 'What Goth doesn\'t love Alice?';
_price = 50;
>>
<<case 67>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/43.webp';
_desc = 'Black backpack, pink skulls and bones.';
_price = 45;
>>
<<case 68>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/44.webp';
_desc = 'A backpack style bag with drippy droopy hearts.';
_price = 45;
>>
<<case 69>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/45.webp';
_desc = 'This backpack is covered with pink bats. Creepy and cute at the same time!';
_price = 45;
>>
<<case 70>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/46.webp';
_desc = 'A somber, bat winged purse.';
_price = 90;
>>
<<case 71>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/47.webp';
_desc = 'A tiny little handle clutch that\'s oh so chic!';
_price = 125;
>>
<<case 72>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/48.webp';
_desc = 'A cute little kitty, with flowers, and blood red accents.';
_price = 60;
>>
<<case 73>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/49.webp';
_desc = 'Oh my gosh, look at all the details, that\'s so beautiful!';
_price = 60;
>>
<<case 74>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/50.webp';
_desc = 'A backpack style bag with a crescent moon.';
_price = 70;
>>
<<case 75>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/51.webp';
_desc = 'This purse looks like a little house! How cute!';
_price = 85;
>>
<<case 76>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/52.webp';
_desc = 'An undead owl cross-body bag.';
_price = 45;
>>
<<case 77>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/53.webp';
_desc = 'A purse for those with vampiric leanings.';
_price = 50;
>>
<<case 78>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/54.webp';
_desc = 'A cross-body bag with undead Bambi, and roses.';
_price = 55;
>>
<<case 79>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/55.webp';
_desc = 'A crescent moon and a skull face.';
_price = 60;
>>
<<case 80>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/56.webp';
_desc = 'A slim little clutch purse that looks like a spell book.';
_price = 85;
>>
<<case 81>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/57.webp';
_desc = 'Ooooh, look at all those details!';
_price = 95;
>>
<<case 82>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/58.webp';
_desc = 'A leather backpack style purse that looks like an angry owl.';
_price = 90;
>>
<<case 83>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/59.webp';
_desc = 'A cute little vampire bat cross-body bag.';
_price = 45;
>>
<<case 84>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/60.webp';
_desc = 'A cartoon skellington with a little heart, and she\'s a cross-body bag.';
_price = 50;
>>
<<case 85>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/61.webp';
_desc = 'A big tote bag spell book.';
_price = 70;
>>
<<case 86>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/62.webp';
_desc = 'A big satchel style spell book bag.';
_price = 90;
>>
<<case 87>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/63.webp';
_desc = 'A little satchel bag with a Day of the Dead skull.';
_price = 70;
>>
<<case 88>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Goth/64.webp';
_desc = 'Oh that\'s so cute! What\'s it doing in this store?';
_price = 65;
>>
<<case 89>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/15.webp';
_desc = 'Own your labels with this slutty thong-wearing pineapple purse!';
_price = 120;
>>
<<case 90>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/9.webp';
_desc = 'Fuckity-fuck purse; It\'s cute when a girl says it!';
_price = 180;
>>
<<case 91>>
<<set
_type = 'Purse';
_img = 'Media/Clothing/Purses/Bimbo/1.webp';
_desc = 'Show love for your sexy curves with this \'big butt\' purse!';
_price = 180;
>>
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,_style,_img,_desc,_stats,_price)>>
<</widget>>
<<widget "managePurseMenu">>
<div class="purseContainer" style="height: 25rem; width: 50%;">
<div class="vertContainer" style="height: 25rem;">
In Purse
<<if $purseInventory>>
<<for _i to 0; _i < $purseInventory.length;_i++>>
<<if $player.inventory.checkInv($purseInventory[_i].name) === 0>>
<<set $purseInventory = $purseInventory.filter(item => item.name != $purseInventory[_i].name)>>
<<if _i > $purseInventory.length>>
<<set _i = $purseInventory.length>>
<<else>>
<<set _i-->>
<</if>>
<<else>>
<<capture _i>>
<<button $purseInventory[_i].name>>
<<set $purseInventory = $purseInventory.filter(item => item.name != $purseInventory[_i].name)>>
<<replace "#repCont">>
<<managePurseMenu>>
<</replace>>
<</button>>
<</capture>>
<</if>>
<</for>>
<</if>>
</div>
<div class="vertContainer">
On Table
<<for _i to 0; _i < $portables.length;_i++>>
<<capture _i>>
<<if $player.inventory.checkInv($portables[_i]) > 0 and !($purseInventory.some(obj => obj.name == $portables[_i]))>>
<<button $portables[_i]>>
<<set _tmpItm = $player.inventory.items.find(item => item.name === $portables[_i])>>
<<run $purseInventory.push({name: $portables[_i], amount: _tmpItm.quantity})>>
<<replace "#repCont">>
<<managePurseMenu>>
<</replace>>
<</button>>
<</if>>
<</capture>>
<</for>>
</div>
</div>
<</widget>>
<hr>
<div id="actionsContainer">
<div button="buttonContainer">
<<button "Put down your purse" $menuPassage>>
<<addSecs 5>>
<</button>>
</div>
</div>
<<widget "usePurseItem">>
<<switch _args[0].name>>
<<case 'Compact Mirror'>>
<<goto "CompactMirror">>
<<case 'Lip Balm'>>
<<run $player.inventory.removeItem(_args[0].name,1)>>
<<set _tmpItem = $purseInventory.find(obj => obj.name == _args[0].name)>>
<<set _tmpItem.amount -= 1>>
<<replace "#repCont">>
<<set $player.statBuffs.lips += 1>>
<<if $player.chappLips>>
<<run delete $player.chappedLips>>
<font color=blue><b>You apply some lip balm and instantly your lips feel better.</b></font>
<<else>>
<<set $player.statBuffs.femBuff += 1>>
<font color=blue><b>You apply some lip balm, even though you don't really need it.</b></font>
<</if>>
<br>
You have _args[0].amount uses remaining.
<</replace>>
<<if $purseInventory.find(obj => obj.name == _args[0].name).amount <= 0>>
<<timed 0s>>
<<set $purseInventory = $purseInventory.filter(obj => obj.name !== _args[0].name)>>
<<replace '#itemContainer'>>
<<for _i to 0; _i < $purseInventory.length;_i++>>
<<button $purseInventory[_i].name>>
<<usePurseItem $purseInventory[_i]>>
<</button>>
<</for>>
<</replace>>
<</timed>>
<</if>>
<<case 'Travel Brush'>>
<<replace "#repCont">>
<<if $player.body.hair.length < 30>>
<div class="badText">Your hair is too short to brush.</div>
<<else>>
<<set $player.body.hair.styled = true>>
You run the brush through your hair a few times to straighten it back out.
<</if>>
<</replace>>
<<case 'Travel Mouthwash'>>
<<replace "#repCont">>
<<unset $cumBreathFlag>>
<<set $player.body.breath = 100>>
<<refreshCaption>>
<<run $player.inventory.removeItem(_args[0].name,1)>>
<<set _tmpItem = $purseInventory.find(obj => obj.name == _args[0].name)>>
<<set _tmpItem.amount -= 1>>
You rinse your mouth clean with some mouthwash.
<br>
You have _args[0].amount uses remaining.
<</replace>>
<<if $purseInventory.find(obj => obj.name == _args[0].name).amount <= 0>>
<<timed 0s>>
<<set $purseInventory = $purseInventory.filter(obj => obj.name !== _args[0].name)>>
<<replace '#itemContainer'>>
<<for _i to 0; _i < $purseInventory.length;_i++>>
<<button $purseInventory[_i].name>>
<<usePurseItem $purseInventory[_i]>>
<</button>>
<</for>>
<</replace>>
<</timed>>
<</if>>
<<case 'Cigarettes'>>
<<goto "SmokeCigs">>
<<case 'Vape Juice'>>
<<goto "Vape">>
<</switch>>
<</widget>><<widget "genRing">>
<<switch _args[0]>>
<<case 0>>
<<set
_type = 'Ring';
_img = 'Media/Self/Body/Nails/nails_unpainted_0.webp';
_desc = 'You are not wearing any rings';
_stats = {};
_price = 0;
>>
<<case 1>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/1.webp';
_desc = 'A beautiful heart-shaped blue topaz surrounded by brilliant side-stones that gleam like diamonds.';
_stats = {};
_price = 45;
>>
<<case 2>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/2.webp';
_desc = 'As elegant as it is simple, this ring is sure to look glamorous in any social setting.';
_stats = {};
_price = 30;
>>
<<case 3>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/3.webp';
_desc = 'The minimalist band focuses the eye on the faux pearl at the center, just as the ring itself will focus the eye on you!';
_stats = {};
_price = 35;
>>
<<case 4>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/4.webp';
_desc = 'Some people wear their heart on their sleeve, but with this "Love" ring you can wear it on your finger.';
_stats = {};
_price = 25;
>>
<<case 5>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/Goth/1.webp';
_desc = 'The heart-shaped amethyst stone pops out of the field of faux-diamonds. The skulls are just cool.';
_stats = {};
_price = 30;
>>
<<case 6>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/Goth/2.webp';
_desc = 'Let your Wiccan flag fly with this natural-looking bejeweled ring.';
_stats = {};
_price = 20;
>>
<<case 7>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/Goth/3.webp';
_desc = 'These blood-red gemstones have an energy that\'s as feminine as it is deadly.';
_stats = {};
_price = 40;
>>
<<case 7>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/Goth/4.webp';
_desc = 'A screaming solid black skull you can wear on your finger. Now that\'s metal.';
_stats = {};
_price = 30;
>>
<<case 8>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/Goth/5.webp';
_desc = 'As if the ephemeral energies of the world solidfied around your finger, this ring will show you are intune with the world around you.';
_stats = {};
_price = 20;
>>
<<case 9>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/Goth/6.webp';
_desc = 'Show your affinity for the dark and spooky with this adorable bat-ring. Look at how he hugs your finger!';
_stats = {};
_price = 20;
>>
<<case 10>>
<<set
_type = 'Ring';
_img = 'Media/Clothing/Rings/Goth/7.webp';
_desc = 'The purple gemstones give off just a flash of color in this stark black setting. So dramatic.';
_stats = {};
_price = 35;
>>
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,_style,_img,_desc,_stats,_price)>>
<</widget>><<widget "genShoes">>
<<switch _args[0]>>
<<case 0>>
<<set
_type = 'Shoes';
_img = 'Media/Self/Body/Feet/feet.webp';
_desc = 'You are not wearing any shoes.';
_stats = {
heel: 0
};
>>
<<case 1>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/1.webp';
_desc = 'Basic sneakers, the kind you can run into the ground because they don\'t cost much.';
_style = 'Casual';
_stats = {
heel: 0
};
>>
<<case 2>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/1.webp';
_desc = 'Basic entry level running shoes. With rearfoot GEL cushioning and a sturdy design, these sneakers cushion every step so your feet stay protected as you get started on the road to fitness.';
_style = 'Athletic';
_price = 15;
_stats = {
heel: 0
};
>>
<<case 3>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/2.webp';
_desc = 'These mid-level running shoes are made of a breathable fabric that keeps your feet from overheating during those extended workout sessions.';
_style = 'Athletic';
_price = 25;
_stats = {
heel: 0
};
>>
<<case 4>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/3.webp';
_desc = 'For the fashioin-conscious athlete, these eye-catching shoes feature a mesh outer material with accented side-straps to both hold them snuggly against your feet but to also showcase your sense of style.';
_style = 'Athletic';
_price = 35;
_stats = {
heel: 0
};
>>
<<case 5>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/4.webp';
_desc = 'These mid-level running shoes offer a flexible sole featuring padded collar and cushioned foam ankle-liner.';
_style = 'Athletic';
_price = 30;
_stats = {
heel: 0
};
>>
<<case 6>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/5.webp';
_desc = 'These high quality running shoes feature the trifecta: support, cushioning, and they are lightweight. In addition they come with a sleek design and sparkle-top coat to show that even when working out you can still look your best.';
_style = 'Athletic';
_price = 40;
_stats = {
heel: 0
};
>>
<<case 7>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/6.webp';
_desc = 'These are a prime example of a high quality running shoe with style and a well thought out design. Not only are they great looking, they are also easy to wear, durable, and supportive.';
_style = 'Athletic';
_price = 35;
_stats = {
heel: 0
};
>>
<<case 8>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/7.webp';
_desc = 'An excellent set of shoes for the novice runner. They are durable, comforable, breathable and best of all, reasonably priced. Perfect for short to mid-range runs.';
_style = 'Athletic';
_price = 20;
_stats = {
heel: 0
};
>>
<<case 9>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/8.webp';
_desc = 'A high quality set of running shoes. The soles offer a softer ride with a stretch back heel to help prevent unwanted Achilles tendon. These shoes are technology married with comfort, balancing weight and pressure across your whole foot.';
_style = 'Athletic';
_price = 50;
_stats = {
heel: 0
};
>>
<<case 10>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/2.webp';
_desc = 'These cool light pink slip-on sneakers feature removable memory foam insoles that deliver all-day support. You could style them with a pair of jeans or a dress — they are as versatile as shoes can be.';
_style = 'Casual';
_price = 25;
_stats = {
heel: 0
};
>>
<<case 11>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/22.webp';
_desc = 'A scalloped topline and slight rubber wedge add some feminine style to these comfy slip-ons that will have you looking as good as your feet feel.';
_style = 'Casual';
_price = 30;
_stats = {
heel: 0
};
>>
<<case 12>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/3.webp';
_desc = 'Nothing about this chic loafer says "comfort shoe," except for how sneakily supportive they feel once you slip a pair on. The style goes with any outfit — casual or dressed-up.';
_style = 'Casual';
_price = 15;
_stats = {
heel: 0
};
>>
<<case 13>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/4.webp';
_desc = 'These vintage-inspired slip-on ankle boots will add a touch of boho chic to your ensemble, and the small heel will add that extra \'something\' to your gate.';
_style = 'Heel';
_stats = {
heel: 3
};
_price = 25
>>
<<case 14>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/5.webp';
_desc = 'This strapped wedge is the epitome of comfy and stylish with two small pearls on the ankle clasp for that extra touch of feminine appeal.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 1
};
>>
<<case 15>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/6.webp';
_desc = 'The shoe that defines the term "classic sneaker." This canvas sneaker was an instant classic when it was first introduced (over 100 years ago), and its iconic "goes-with-everything style" design, and cushiony comfort has made it a worldwide favorite today. This pair comes in bubble-gum pink.';
_style = 'Casual';
_price = 15;
_stats = {
heel: 0
};
>>
<<case 16>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/7.webp';
_desc = 'A fun twist on the classic sneaker. Polka-dots and flower decals showcase a more feminine look to the rugged tennis shoe style.';
_style = 'Casual';
_price = 15;
_stats = {
heel: 0
};
>>
<<case 17>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/8.webp';
_desc = 'Simple but functional, these light pink shoes will definitely get you to where you\'re going with ease and comfort.';
_style = 'Casual';
_price = 15;
_stats = {
heel: 0
};
>>
<<case 18>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/9.webp';
_desc = 'A pair of slim white strappy sandals, perfect for both a stroll on a beach as well as through a dinner party.';
_style = 'Casual';
_price = 15;
_stats = {
heel: 0
};
>>
<<case 19>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/10.webp';
_desc = 'A pair of boating-inspired shoes. The rough seams help give off an air of independence while retaining the classic outline.';
_style = 'Casual';
_price = 15;
_stats = {
heel: 0
};
>>
<<case 20>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/11.webp';
_desc = 'These simple no-nonsense Mary Janes will look great with almost any outfit.';
_style = 'Casual';
_price = 15;
_stats = {
heel: 0
};
>>
<<case 21>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/12.webp';
_desc = 'Mary Jane inspired shoes that feature a thick wedge heel and a sexy ankle strap. Make a statement, but do it with comfort.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 2
};
>>
<<case 22>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/1.webp';
_desc = 'These eye catching two-tone high heels will definitely add that extra swagger to your step. Best paired with an equally flashy, or at least gold, outfit.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 4
};
>>
<<case 23>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/2.webp';
_desc = 'Striking black platform stilettos with a sexy ankle strap.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 5
};
>>
<<case 24>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/3.webp';
_desc = 'Combining sophistication with after-hours adult charm, these strappy stilettos will improve any outfit from the boardroom to the boardwalk.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 5
};
>>
<<case 25>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/11.webp';
_desc = 'Bright red leather heels with a diminutive ankle strap and a small platform, just the right mix of business and play.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 4
};
>>
<<case 26>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/4.webp';
_desc = 'Not all that glitters is gold, sometimes it\'s a pair of glittery pink open top platform shoes.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 6
};
>>
<<case 27>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/5.webp';
_desc = 'Bright neon blue snakeskin platforms, guaranteed to make you the center of attention.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 6
};
>>
<<case 28>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/6.webp';
_desc = 'These sexy open-top stilettos feature a glass end on the heel, giving a distinct click sound every time your foot hits the floor and the double ankle strap let\'s everyone know you\'re not afraid of restraints.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 6
};
>>
<<case 29>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/7.webp';
_desc = 'Bright red PVC stilettos. These kind of shoes only give off one impression, but then that might be just the look you\'re going for.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 6
};
>>
<<case 30>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/8.webp';
_desc = 'Bubblegum pink straps with neon pink translucent platorm and heels give this pair a unique look that requires certain other assets to pull off well.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 6
};
>>
<<case 31>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/10.webp';
_desc = 'A timeless classic, black PVC stilettos will make even the most conservative outfit look a little tawdry.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 5
};
>>
<<case 32>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/13.webp';
_desc = 'Simple and casual black pumps that go with almost any outfit.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 1
};
>>
<<case 33>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/9.webp';
_desc = 'Lace-up sneaker-heels, for the athlete who wants to feel like a woman';
_style = 'Athletic';
_price = 15;
_stats = {
heel: 3
};
>>
<<case 34>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/10.webp';
_desc = 'Combining an athletic footwear with elegance and class, these trainers will have you as the center of attention on any court.';
_style = 'Athletic';
_price = 15;
_stats = {
heel: 1
};
>>
<<case 35>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/11.webp';
_desc = 'You can dribble the ball across the court and then be the belle at the royal court in this pair of athletic heeled trainers.';
_style = 'Athletic';
_price = 15;
_stats = {
heel: 1
};
>>
<<case 36>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/14.webp';
_desc = 'Lightweight clear plastic wedge heels with a flower decoration on the top, these would look great at a summer cocktail party.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 1
};
>>
<<case 37>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/9.webp';
_desc = 'Ankle-high black leather heels that lace up all the way to the top. They somehow look both sexy and intimidating at the same time';
_style = 'Heel';
_price = 15;
_stats = {
heel: 5
};
>>
<<case 38>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Professional/1.webp';
_desc = 'A comfortable pair of black round-toe Mary Jane pumps that don\'t hurt your feet from wearing them all day';
_style = 'Heel';
_price = 15;
_stats = {
heel: 2
};
>>
<<case 39>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Professional/2.webp';
_desc = 'These low-cut round-toe pumps provide great support for any woman who has to be on her feet all day';
_style = 'Heel';
_price = 15;
_stats = {
heel: 2
};
>>
<<case 40>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Professional/3.webp';
_desc = 'A pair of powder blue ankle-straps that show professionalism can still be sexy.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 3
};
>>
<<case 41>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Professional/4.webp';
_desc = 'The classic bright red pumps, a staple in any woman\'s wardrobe.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 3
};
>>
<<case 42>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Professional/5.webp';
_desc = 'Soft and flexible, these beige pumps yield to comfort over fashion.';
_style = 'Heel';
_price = 15;
_stats = {
heel: 2
};
>>
<<case 43>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/1.webp';
_desc = 'These sexy metallic heels have an artistic top-foot cover made from polished pure titanium';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 44>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/2.webp';
_desc = 'Gold butterfly sandals that will have your footwear as the hit of the party.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 45>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/3.webp';
_desc = 'Classic black heels with a sexy calf-wrap to show you\'re not afraid of your naughty side.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 46>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/4.webp';
_desc = 'These open-toe wrap sandals are completely covered in 2 carat diamonds.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 47>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Mens/4.webp';
_desc = 'A pair of classic black wingtips, a staple in any man\'s wardrobe.';
_style = 'Dress';
_price = 350;
_stats = {
heel: 0
};
>>
<<case 48>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Mens/5.webp';
_desc = 'Buck tradition while maintaining your classic style with these genuine leather brown dress shoes.';
_style = 'Dress';
_price = 350;
_stats = {
heel: 0
};
>>
<<case 49>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Mens/6.webp';
_desc = 'These men\'s shoes have a pointed toe, raised wedge heel, and faux alligator print.';
_style = 'Dress';
_price = 150;
_stats = {
heel: 0
};
>>
<<case 50>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Mens/7.webp';
_desc = 'Get that classic two-tone look but with a modern sleek brown finish.';
_style = 'Dress';
_price = 350;
_stats = {
heel: 0
};
>>
<<case 51>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/12.webp';
/*
_desc = 'Comfortable, breathable, and guaranteed to not leave marks on the gymasium floor.' + iif($currSunNPC = 'npc_13',' Standard issue cheerleader shoes.',\');
*/
_desc = 'Comfortable, breathable, and guaranteed to not leave marks on the gymasium floor.';
_style = 'Athletic';
_price = 350;
_stats = {
heel: 0
};
>>
<<case 52>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Athletic/13.webp';
_desc = 'Comfortable and breathable, with cleats to help you dig into the ground of football field.';
_style = 'Athletic';
_price = 350;
_stats = {
heel: 0
};
>>
<<case 53>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/MilkMaid/1.webp';
_desc = 'These slingback soft-soled clogs are at home everywhere from the dairy farm to downtown.';
_style = 'Heel';
_price = 0;
_stats = {
heel: 1
};
>>
<<case 54>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/MilkMaid/2.webp';
_desc = 'Sexy and sleek, these slip-on clogs will add that extra perk to your step.';
_style = 'Heel';
_price = 0;
_stats = {
heel: 2
};
>>
<<case 55>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Mens/8.webp';
_desc = 'Brown dress shoes, comfortable and sleek they can be worn with a 3-piece suit or a jacket and jeans.';
_style = 'Professor';
_price = 0;
_stats = {
heel: 0
};
>>
<<case 56>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Maid/1.webp';
_desc = 'These open-toed black pumps will make your legs look great, the perfect addition to any sexy maid uniform.';
_style = 'Heel';
_price = 0;
_stats = {
heel: 2
};
>>
<<case 57>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/15.webp';
_desc = 'Black ankle-high lace-up shoes, perfect for any neck-stomping or mud-slushing you might need to do.';
_style = 'Casual';
_price = 0;
_stats = {
heel: 0
};
>>
<<case 58>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/49.webp';
_desc = 'These boots have it all, laces, buckles, straps. And they\'re black!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 59>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/48.webp';
_desc = 'Buckles, buckles, buckles, all the way up!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 60>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/49.webp';
_desc = 'Shiny, with lots of buckles, and a slightly lower, more approachable heel.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 4
};
>>
<<case 61>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/50.webp';
_desc = 'Climbing all the way up to mid thigh, these boots have zippers to make getting them on (and off) a bit easier.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 62>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/51.webp';
_desc = 'Tall, and black.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 63>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/52.webp';
_desc = 'Still a platform heel, but these lace-up boots are a bit easier for those used to flats.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 64>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/53.webp';
_desc = 'More platforms than heels, these boots are almost comfortable.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 65>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/54.webp';
_desc = 'Cute! Chunky! Strappy!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 66>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/55.webp';
_desc = 'My goodness, these are actually some other color that isn\'t black, could that be purple?.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 67>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/56.webp';
_desc = 'They\'re boots, they\'re sandals. They\'re sandal-boots! Perfect for showing off your pedicure while still being all Goth.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 68>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/57.webp';
_desc = 'Why, these lace up boots are barely heels at all, and so comfortable!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 69>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/58.webp';
_desc = 'Strappy Goth sandal-boots. Just the thing for summer.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 70>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/59.webp';
_desc = 'Terribly tall boots covered in skulls.';
_style = 'Heel';
_price = 25;
_stats = {
heel: 7
};
>>
<<case 71>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/60.webp';
_desc = 'Spiky heels and lots of buckles.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 72>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/61.webp';
_desc = 'Impress your date with these fun, heart candy boots!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 73>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/62.webp';
_desc = 'Climbing all the way up to mid thigh, these boots have zippers to make getting them on (and off) a bit easier. And they\'re pink!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 74>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/63.webp';
_desc = 'Electric pink and lots of buckles!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 75>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/64.webp';
_desc = 'These boots are sparkly and glittery, as well as being hot pink!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 76>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/1.webp';
_desc = 'These lace up booties could almost be the ones your great-grandmother wore. Except for the chunky platform heels of course.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 77>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/2.webp';
_desc = 'Subtle and understated, these lace up boots have a crescent moon cut through the platform wedge.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 78>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/3.webp';
_desc = 'Delicate pink with stylized black flames running up the sides.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 79>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/4.webp';
_desc = 'These sandals could almost be considered flats. Almost.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 2
};
>>
<<case 80>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/5.webp';
_desc = 'Slip on booties with dangling chains.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 81>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/6.webp';
_desc = 'Lots of platform, but not much actual heel, these are fairly comfortable.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 82>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/7.webp';
_desc = 'Almost mainstream, these lace up booties have only minimal Goth accents.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 83>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/8.webp';
_desc = 'These booties have great big buckles, and crescent moon decorations.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 4
};
>>
<<case 84>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/9.webp';
_desc = 'Pentagrams, skulls, crucifixes and chains, these platform wedges are sure to be the hit of the party.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 85>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/10.webp';
_desc = 'Utterly black, utterly tall.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 86>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/11.webp';
_desc = 'With the exception of the laces on the back, these heels could almost pass for a pair of more traditional ladies shoes.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 87>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/12.webp';
_desc = 'Sleek black booties, with a bit of lace and gold accents.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 88>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/13.webp';
_desc = 'Chunky enough to be Goth, but still almost a pair of flats compared to other styles.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 89>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/14.webp';
_desc = 'Outrageous hot pink treads, and little doll heads as trophy decorations!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 2
};
>>
<<case 90>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/15.webp';
_desc = 'Lacy, with chains, these booties are very, very tall.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 91>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/16.webp';
_desc = 'Ribbons and chains, for that soft, yet hard look.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 92>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/17.webp';
_desc = 'Lace up booties with buckles, in black of course.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 93>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/18.webp';
_desc = 'Studs and chains and spikes and buckles. These booties are the epitome of Goth.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 7
};
>>
<<case 94>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/19.webp';
_desc = 'A chunky platform wedge, with buckles.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 4
};
>>
<<case 95>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/20.webp';
_desc = 'None more Goth.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 96>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/21.webp';
_desc = 'They\'ve got zippers on the side, so you\'ll never have to lace them, and tread on the bottom so you won\'t slip. They\'re so practical!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 97>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/22.webp';
_desc = 'Chunky boots with delicate embroidered pentagrams on the side.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 4
};
>>
<<case 98>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/23.webp';
_desc = 'Oh, those are nice, and thank goodness they come in black!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 99>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/24.webp';
_desc = 'None more Goth.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 100>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/25.webp';
_desc = 'Open-toed platform wedges with a lace panel.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 101>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/26.webp';
_desc = 'No nonsense and practical, with buckles.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 102>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/27.webp';
_desc = 'Chunky and strappy.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 103>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/28.webp';
_desc = 'A sleek zip up bootie with faux laces. Very tall.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 7
};
>>
<<case 104>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/29.webp';
_desc = 'A trim bootie with gold accents.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 105>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/30.webp';
_desc = 'A simple, lace up bootie.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 106>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/31.webp';
_desc = 'Tall platform wedges, all in black.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 107>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/32.webp';
_desc = 'Tall black booties decorated with little silver bats.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 108>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/33.webp';
_desc = 'Simple lace up booties with black ankle straps.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 109>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/34.webp';
_desc = 'Shiny lace up booties. Wait, those aren\'t black...';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 110>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/35.webp';
_desc = 'Terribly, terribly tall black slip on booties with securing ankle straps.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 7
};
>>
<<case 111>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/36.webp';
_desc = 'Chunky, with buckles, if not for the plaform, these would almost be flats. Almost.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 112>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/37.webp';
_desc = 'None more Goth.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 113>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/38.webp';
_desc = 'Tall fuzzy, blue booties covered in googly eyes. Terriflying cute!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 114>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/39.webp';
_desc = 'Tall fuzzy, Barbie pink booties covered in googly eyes. Terriflying cute!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 115>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/40.webp';
_desc = 'Tall fuzzy, lime green booties covered in googly eyes. Revoltingly cute!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 116>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/41.webp';
_desc = 'Tall, pastel lavender booties decorated with pink chains and little pink butterflies!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 117>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/42.webp';
_desc = 'Shiny wedge booties with laces and straps, all the colors of the rainbow!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 118>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/43.webp';
_desc = 'Fuzzy pink booties with little hearts decorating the straps.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 119>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/44.webp';
_desc = 'Shiny black, with hot pink shin guards and accents, you could almost run in these!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 120>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/45.webp';
_desc = 'Smooth white booties, secured with velcro straps';
_style = 'Heel';
_price = 20;
_stats = {
heel: 4
};
>>
<<case 121>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/46.webp';
_desc = 'Tall, shiny, pastel blue booties with little wings to show your angelic side!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 122>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Goth/47.webp';
_desc = 'Pale pink wedge booties with spikes and chains. ';
_style = 'Heel';
_price = 20;
_stats = {
heel: 5
};
>>
<<case 123>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Mens/1.webp';
_desc = 'Once you own your brown loafers you will find any opportunity to add them to your smart-casual attire. High-quality brown loafers made to order right the way you want them. Shop brown loafers now.';
_style = 'Professional';
_price = 75;
_stats = {
heel: 0
shoe: 1
};
>>
<<case 124>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Mens/2.webp';
_desc = 'These genuine leather Oxford wingtips are the height of both fashion and comfort.';
_style = 'Professional';
_price = 150;
_stats = {
heel: 0
shoe: 1
};
>>
<<case 125>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Mens/3.webp';
_desc = 'Made from full-grain leather upper and features a soft, moisture-wicking lining with non-exposed seams that helps keep feet comfortable, this collection offers the ultimate in comfort and function without compromising style. ';
_style = 'Professional';
_price = 225;
_stats = {
heel: 0
shoe: 1
};
>>
<<case 126>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Himbo/1.webp';
_desc = 'Basic athletic footwear capable of withstanding the manliest of workouts. ';
_style = 'Athletic';
_price = 125;
_stats = {
heel: 0
shoe: 1
};
>>
<<case 127>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Himbo/2.webp';
_desc = 'Pristine white shoes with reinforced ankles and soles with grip. Perfect for lifting in the gym or boxing in the ring. ';
_style = 'Athletic';
_price = 125;
_stats = {
heel: 0
shoe: 1
};
>>
<<case 128>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Himbo/3.webp';
_desc = 'Sandles with reinfored straps for any occasion';
_style = 'Athletic';
_price = 125;
_stats = {
heel: 0
shoe: 1
};
>>
<<case 129>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Himbo/4.webp';
_desc = 'Well-worn green and white sneakers.';
_style = 'Athletic';
_price = 60;
_stats = {
heel: 0
shoe: 1
};
>>
<<case 130>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Himbo/5.webp';
_desc = 'Feel like an All-Star in the gym with these stylish red sneakers.';
_style = 'Athletic';
_price = 125;
_stats = {
heel: 0
shoe: 1
};
>>
<<case 131>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/12.webp';
_desc = 'These metalic block-heel ankle boots are out of this world!';
_style = 'Heel';
_price = 125;
_stats = {
heel: 2
};
>>
<<case 132>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/13.webp';
_desc = 'These metalic knee-high heels are as sexy as they are dangerous';
_style = 'Heel';
_price = 125;
_stats = {
heel: 5
};
>>
<<case 133>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Maid/2.webp';
_desc = 'Black stilhettos with frilly lace white socks. So demure, so sexy.';
_style = 'Heel';
_price = 0;
_stats = {
heel: 3
};
>>
<<case 134>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/14.webp';
_desc = 'Hyper-accentuate your feminine assets with these amazing red platform high heels';
_style = 'Heel';
_price = 0;
_stats = {
heel: 3
};
>>
<<case 135>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/16.webp';
_desc = 'These classic white pumps never go out of style';
_style = 'Heel';
_price = 20;
_stats = {
heel: 1
};
>>
<<case 136>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/17.webp';
_desc = 'Two-tone kitten heels for when you feel a little playful';
_style = 'Heel';
_price = 20;
_stats = {
heel: 2
};
>>
<<case 137>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/18.webp';
_desc = 'These no-nonsense low-heel pumps have rubber soles to help you stay balanced.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 1
};
>>
<<case 138>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/19.webp';
_desc = 'These heels are perfect for dancing the night away at your favorite hot spot.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 1
};
>>
<<case 139>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/20.webp';
_desc = 'These pink pointed open-back heels have an adoriable little bow on top';
_style = 'Heel';
_price = 15;
_stats = {
heel: 1
};
>>
<<case 140>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Casual/21.webp';
_desc = 'An adorable pair of open-toe ankle-strap heels.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 2
};
>>
<<case 141>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/15.webp';
_desc = 'You can\'t find a better pair of "Come Fuck Me" shoes!';
_style = 'Heel';
_price = 20;
_stats = {
heel: 6
};
>>
<<case 142>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/5.webp';
_desc = 'These hyper-feminine pink heels will make you feel like you have wings on your feet!';
_style = 'Heel';
_price = 30;
_stats = {
heel: 4
};
>>
<<case 143>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/6.webp';
_desc = 'What\'s better than sexy pink heels with a bow? Sexy pink heels with TWO bows!';
_style = 'Heel';
_price = 30;
_stats = {
heel: 3
};
>>
<<case 144>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Slutty/16.webp';
_desc = 'These platform heels have pink rhinestones on the ankle strap to showcase your "Princess" status.';
_style = 'Heel';
_price = 30;
_stats = {
heel: 6
};
>>
<<case 145>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/7.webp';
_desc = 'These sexy metallic purple heels are just the thing to stand out at your next party.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 1
};
>>
<<case 146>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/8.webp';
_desc = 'These Red-and-gold butterfly-inspired open-toed heels are perfect for any occasion.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 1
};
>>
<<case 147>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/9.webp';
_desc = 'Give them another reason to love to watch you go in these rear-bejewled creamy white pumps';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 148>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/10.webp';
_desc = 'A very sexy pair of metallic strappy heels, for when you want to send a certain message.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 149>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/11.webp';
_desc = 'A pair Arabian inspired gold-strapped sandals for that extra special occasion.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 150>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/12.webp';
_desc = 'The simple classics never go out of style, but adding diamonds never hurts either.';
_style = 'Heel';
_price = 20;
_stats = {
heel: 2
};
>>
<<case 151>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/13.webp';
_desc = 'Channel your Egyptian ruler vibes with these sexy gold and jewel encrusted sandals';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 152>>
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Fancy/14.webp';
_desc = 'These elegant lacy pumps will highlight your delicate femininty while adding to your provactive alure';
_style = 'Heel';
_price = 20;
_stats = {
heel: 3
};
>>
<<case 153>>
/*
<<set
_type = 'Shoes';
_img = 'Media/Clothing/Shoes/Cursed/1.webp';
_style = 'Casual';
_img = 'Media/Clothing/Shoes/Cursed/2.webp';
_style = 'Heel';
_img = 'Media/Clothing/Shoes/Cursed/3.webp';
_style = 'Heel';
_img = 'Media/Clothing/Shoes/Cursed/4.webp';
_style = 'Heel';
_img = 'Media/Clothing/Shoes/Cursed/5.webp';
_style = 'Heel';
_stats = {
heel: 3
};
_stats = {
if curseHeel: 0:
heel: 0
: elseif curseHeel < 1:
heel: 1
: elseif curseHeel < 4:
heel: 3
: elseif curseHeel < 5:
heel: 5
elseif curseHeel >: 5:
heel: 6
};
>>
*/
<</switch>>
<<set $clothingObj = new Clothing(_args[0],_type,_style,_img,_desc,_stats,_price)>>
<</widget>><center>
<b><font size="10em">Your Wardrobe</font></b>
<br>
<img @src="$wardImg" height="500rem">
<br>
<span id="repCont">
You can access your outfits and other items from here.
<hr>
<<set _tmpFaves = $player.wardrobe.plannedFits.filter(fit => fit.fave)>>
<<if _tmpFaves.length > 0>>
<<for _fitIdx to 0;_fitIdx < _tmpFaves.length and _fitIdx < 4;_fitIdx++>>
<<capture _fitIdx>>
<<button _tmpFaves[_fitIdx].name>>
<<set $pickedFit = _tmpFaves[_fitIdx].clothes>>
<<wearFit $pickedFit>>
<</button>>
<</capture>>
<</for>>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Pick an outfit" "ViewIcons">>
<<set $pickedFit = $player.outfit>>
<<addSecs 5>>
<</button>>
</div>
<div class="buttonContainer">
<<if $homeWardrobe>>
<<button "Plan your wardrobe" "WardPlanning">>
<<addSecs 5>>
<</button>>
<<button "Open your gym bag" "GymBagManage">>
<<addSecs 5>>
<</button>>
<<button 'Check your laundry basket'>>
<<set _dirtyFits = $player.wardrobe.items.filter(obj => obj.type === 'Fit' and obj.stats.fitSoil > 2 and obj.sku != $player.outfit.fit)>>
<<replace '#repCont'>>
<<set _tmpVal = 'Your laundry basket '>>
<<if _dirtyFits.length === 0>>
<div class="goodText">
_tmpVal is completely empty.
</div>
<<elseif _dirtyFits.length === 1>>
<div class="goodText">
_tmpVal only has one fit in it.
</div>
<<elseif _dirtyFits.length < 3>>
<div class="goodText">
_tmpVal has only a couple of fits.
</div>
<<elseif _dirtyFits.length < 4>>
<div class="goodText">
_tmpVal is half full.
</div>
<<elseif _dirtyFits.length < 6>>
<div class="goodText">
_tmpVal is almost full.
</div>
<<elseif _dirtyFits.length < 8>>
<div class="badText">
_tmpVal completely full.
</div>
<<else>>
<div class="badText">
_tmpVal overflowing with dirty clothes.
</div>
<</if>>
<</replace>>
<<replace '#actionsContainer'>>
<div class='buttonContainer'>
<<if _dirtyFits.length > 0>>
<<button "Time to do some laundry">>
<<preFlightCheck _tmpVal 'LaundryHauler' .25>>
<</button>>
<</if>>
</div>
<div class='buttonContainer'>
<<button "Step back" "Wardrobe">>
<<set $homeWardrobe = true>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<unset $homeWardrobe>>
<<button "Step back" $wardLoc>><<addSecs 10>><</button>>
</div>
</div><center>
<div class="wardIcons">
<div>
<<genFit $pickedFit.fit>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Fit']]
</div>
<div class="iconList">
<div class="vertContainer">
<<genBra $player.outfit.bra>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Bra']]
<<if $player.outfit.bra !== 0>>
[[Remove|ViewIcons][$player.outfit.bra = 0,$pickedFit.bra = 0]]
<</if>>
</div>
<div class="vertContainer">
<<genPanties $pickedFit.panties>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Panties']]
<<if $player.outfit.panties !== 0>>
[[Remove|ViewIcons][$player.outfit.panties = 0,$pickedFit.panties = 0]]
<</if>>
</div>
</div>
<div class="vertContainer">
<<genCoat $pickedFit.coat>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Coat']]
<<if $player.outfit.coat !== 0>>
[[Remove|ViewIcons][$player.outfit.coat = 0,$pickedFit.coat = 0]]
<</if>>
</div>
</div>
<div class="subWardIcons">
<div class="vertContainer">
<<genPurse $pickedFit.purse>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Purse']]
<<if $player.outfit.purse !== 0>>
[[Remove|ViewIcons][$player.outfit.purse = 0, $pickedFit.purse = 0]]
<</if>>
</div>
<div class="vertContainer">
<<genShoes $pickedFit.shoes>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Shoes']]
<<if $player.outfit.shoes !== 0>>
[[Remove|ViewIcons][$player.outfit.shoes = 0, $pickedFit.shoes = 0]]
<</if>>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $lastWornFit>>
<<button "Wear last outfit">>
<<set $pickedFit = $lastWornFit>>
<<wearFit $pickedFit>>
<<addMins 5>>
<</button>>
<</if>>
<<if !compareObjects($pickedFit,$player.outfit)>>
<<button "Get dressed">>
<<set _preFit = clone($player.outfit)>>
<<wearFit $pickedFit>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Go back">>
<<addSecs 5>>
<<if !$homeWardrobe>>
<<goto $wardLoc>>
<<else>>
<<goto "Wardrobe">>
<</if>>
<</button>>
</div>
</div><<if !$gymFit>>
<<set $gymFit=$gymBag[0].clothes>>
<<set $gymFitIdx = $gymBag[0].idx>>
<</if>>
<center>
<b><font size="10em">Gym Bag Inventory</font></b>
<br><br>
<div class="horzContainer">
<div>
<div class="buttonList">
<div>
Gym Bag
</div>
<div>
<<for _i to 0;_i < $gymBag.length; _i++ >>
<<capture _i>>
<span @id="$gymBag[_i].idx">
<<if compareObjects($gymBag[_i].clothes,$preGymFit)>>
<<set _tmpVal = 'Street clothes'>>
<<else>>
<<set _tmpVal = $player.wardrobe.plannedFits.find(fit => fit.idx === $gymBag[_i].idx).name>>
<</if>>
<<button _tmpVal "ViewGymBag">>
<<set $gymFit = $gymBag[_i].clothes>>
<<set $gymFitIdx = $gymBag[_i].idx>>
<</button>>
</span>
<</capture>>
<</for>>
<span id='repCont'><br></span>
</div>
</div>
<div id="menuContainer">
<div class="buttonContainer">
<<button "Wear outfit">>
<<if $gymBag.find(fit => fit.idx === $gymFitIdx).clothes.fit === $player.outfit.fit>>
<<replace "#repCont">>
<div class="badText">You are already wearing this outfit</div>
<</replace>>
<<else>>
<<set $isWardrobe = true>>
<<if !$preGymFit>>
/* not wearing a gym bag outfit */
<<set $preGymFit = clone($player.outfit)>>
<<set $pickedFit = clone($gymFit)>>
<<set $gymBag.find(obj => obj.idx === $gymFitIdx).clothes = $preGymFit>>
<<unset $gymFit>>
<<elseif compareObjects($gymBag.find(fit => fit.idx === $gymFitIdx).clothes,$preGymFit)>>
/* wearing gym bag outfit - swapping with non-gym bag outfit */
<<set _tmpVal = $player.wardrobe.plannedFits.find(fit => fit.idx === $gymFitIdx)>>
<<set $gymBag.find(obj => obj.idx === $gymFitIdx).clothes = _tmpVal.clothes>>
<<set $pickedFit = clone($preGymFit)>>
<<unset $preGymFit>>
<<unset $gymFit>>
<<else>>
/* wearing gym bag outfit - swapping with gym bag outfit */
<<for _j to 0;_j < $gymBag.length;_j++>>
<<if compareObjects($gymBag[_j].clothes,$preGymFit)>>
<<set _tmpIdx = $gymBag[_j].idx>>
<<set _tmpVal = $player.wardrobe.plannedFits.find(fit => fit.idx === _tmpIdx)>>
<<set $gymBag.find(obj => obj.idx === _tmpIdx).clothes = _tmpVal.clothes>>
<<set _j = $gymBag.length>>
<</if>>
<<set $pickedFit = clone($gymBag[_j])>>
<</for>>
<</if>>
<<wearFit $pickedFit>>
<</if>>
<</button>>
</div>
</div>
</div>
<div>
<div class="wardIcons">
<div class="vertContainer">
<<genFit $gymFit.fit>>
[img[clothing|$clothingObj.image]]
</div>
<div class="iconList">
<div class="vertContainer">>
<<genBra $gymFit.bra>>
[img[clothing|$clothingObj.image]]
</div>
<div class="vertContainer">>
<<genPanties $gymFit.panties>>
[img[clothing|$clothingObj.image]]
</div>
</div>
<div>
<<genCoat $gymFit.coat>>
[img[clothing|$clothingObj.image]]
</div>
</div>
<div class="subWardIcons">
<div>
<<genPurse $gymFit.purse>>
[img[clothing|$clothingObj.image]]
</div>
<div class="vertContainer">
<<genShoes $gymFit.shoes>>
[img[clothing|$clothingObj.image]]
</div>
</div>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close your gym bag" >>
<<unset $gymFitIdx>>
<<unset $gymFit>>
<<addSecs 15>>
<<if $homeWardrobe>>
<<goto "Wardrobe">>
<<else>>
<<goto $wardLoc>>
<</if>>
<</button>>
</div>
</div>
<<timed 0s>>
<<if $gymFitIdx>>
<<script>>
document.getElementById(State.variables.gymFitIdx).children[0].style.backgroundColor = 'green';
<</script>>
<</if>>
<</timed>><<if $currMenu is undefined>>
<<set $currMenu = 'Casual'>>
<</if>>
<center>
<b><font size="10em">Viewing your Wardrobe</font></b>
<br>
<b>
<font size="5em">
<<switch $wardrobeType>>
<<case 'Fit'>>
Outfits
<<case 'Panties' 'Shoes'>>
$wardrobeType
<<default>>
<<print $wardrobeType + 's'>>
<</switch>>
</font>
</b>
<<if $wardrobeType === 'Fit'>>
<<include "WardrobeTabs">>
<</if>>
<div class='clothesList'>
<<for _rowIndex to 0; _rowIndex < $player.wardrobe.items.length; _rowIndex++>>
<<capture _rowIndex>>
<<if $player.wardrobe.items[_rowIndex].type === $wardrobeType>>
<<genClothing $player.wardrobe.items[_rowIndex].type $player.wardrobe.items[_rowIndex].sku>>
<<if $wardrobeType !== 'Fit' or $clothingObj.style === $currMenu>>
<span @id="$player.wardrobe.items[_rowIndex].sku">
<<if $wardrobeType == 'Fit'>>
<<if $player.outfit.fit !== $clothingObj.sku or $fitPlanning>>
<<if $clothingObj.stats.fem === 1 or $clothingObj.stats.bimbo === 1>>
<span class="pinkBorder">
[img[clothing|$clothingObj.image][viewWardrobe][$tmpPick to $player.wardrobe.items[_rowIndex].sku]]
</span>
<<elseif $clothingObj.stats.masc === 1>>
<span class="blueBorder">
[img[clothing|$clothingObj.image][viewWardrobe][$tmpPick to $player.wardrobe.items[_rowIndex].sku]]
</span>
<<else>>
<span>
[img[clothing|$clothingObj.image][viewWardrobe][$tmpPick to $player.wardrobe.items[_rowIndex].sku]]
</span>
<</if>>
<</if>>
<<else>>
[img[clothing|$clothingObj.image][viewWardrobe][$tmpPick to $player.wardrobe.items[_rowIndex].sku]]
<</if>>
</span>
<</if>>
<</if>>
<</capture>>
<</for>>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $tmpPick>>
<<if $fitPlanning>>
<<set $plannedFit[$wardrobeType.toLowerCase()] = $tmpPick>>
<<unset $tmpPick>>
<<goto "WardPlanning">>
<<else>>
<<set $pickedFit[$wardrobeType.toLowerCase()] = $tmpPick>>
<<unset $tmpPick>>
<<goto "ViewIcons">>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Step back">>
<<unset $wardrobeType>>
<<addSecs 10>>
<<if $fitPlanning>>
<<goto "WardPlanning">>
<<else>>
<<goto "ViewIcons">>
<</if>>
<</button>>
</div>
</div>
<<timed 0s>>
<<if $tmpPick>>
<<script>>
document.getElementById(State.variables.tmpPick).classList.add('currentPick');
<</script>>
<</if>>
<</timed>><center>
<div class="dressingCombo">
<<getDressingClips>>
<<genFit $pickedFit.fit>>
<img @src="$clothingObj.image">
</div>
<br><br>
<<if $fitConflicts and $fitConflicts.length > 0>>
<<for _i to 0;_i < $fitConflicts.length;_i++>>
<div class="badText">
<<print $fitConflicts[_i]>>
</div>
<</for>>
<</if>>
<<if $wardTxt.length > 0>>
<<for _i to 0;_i < $wardTxt.length;_i++>>
<div class="badText">
<<print $wardTxt[_i]>>
</div>
<</for>>
<</if>>
</center>
<<unset $wardTxt>>
<hr>
<<if $fitConflicts and $fitConflicts.length > 0>>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Pick something else to wear" 'ViewIcons'>>
<<unset $fitConflicts>>
<<unset $wardTxt>>
<<addSecs 10>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stick with your previous outfit" $wardLoc>>
<<unset $homeWardrobe>>
<<unset $fitConflicts>>
<<unset $wardTxt>>
<<unset $pickedFit>>
<<addSecs 10>>
<</button>>
</div>
</div>
<<else>>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $pickedFit.fit === 0 and $pickedFit.panties === 0 and $pickedFit.bra === 0>>
<<set $nudeFit = {
bra: 0,
fit: 0,
panties: 0,
shoes: $player.outfit.shoes,
earrings: $player.outfit.earrings,
bracelet: $player.outfit.bracelet,
ring: $player.outfit.ring,
purse: $player.outfit.purse,
coat: $player.outfit.coat,
relic: $player.outfit.relic
}>>
<<if !compareObjects($player.outfit,$nudeFit)>>
<<set $player.isNude = false>>
<</if>>
<<unset $homeWardrobe>>
<<unset $fitConflicts>>
<<unset $pickedFit>>
<<addSecs 10>>
<<goto $wardLoc>>
<<else>>
<<button "Continue" $wardLoc>>
<<set $nudeFit = {
bra: 0,
fit: 0,
panties: 0,
shoes: $player.outfit.shoes,
earrings: $player.outfit.earrings,
bracelet: $player.outfit.bracelet,
ring: $player.outfit.ring,
purse: $player.outfit.purse,
coat: $player.outfit.coat,
relic: $player.outfit.relic
}>>
<<if !compareObjects($player.outfit,$nudeFit)>>
<<set $player.isNude = false>>
<</if>>
<<unset $homeWardrobe>>
<<unset $fitConflicts>>
<<unset $pickedFit>>
<<addSecs 10>>
<</button>>
<</if>>
</div>
</div>
<</if>><<set _tmpImg = 'Media/Misc/Laundry/'>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/1.webp'>>
<<elseif !$player.body.womb or !$player.body.womb.showPreg>>
<<set _tmpImg += 'F/1.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/1.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You lug your dirty clothes to the laundromat.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<set $hasLaundry = true>>
<<addMins 5>>
<<goto "Laundromat">>
<</button>>
</div>
</div><<if $player.outfit[$jewelryMenu.toLowerCase()] != 0 and !$fitPlanning and !$tmpPick>>
<<set $tmpPick = $player.outfit[$jewelryMenu.toLowerCase()]>>
<</if>>
<center>
<b><font size="10em">Your Jewelry</font></b>
<br>
<<include "JewelryTabs">>
<div class='clothesList'>
<<for _rowIndex to 0; _rowIndex < $player.wardrobe.items.length; _rowIndex++>>
<<capture _rowIndex>>
<<if $player.wardrobe.items[_rowIndex].type === $jewelryMenu>>
<<genClothing $player.wardrobe.items[_rowIndex].type $player.wardrobe.items[_rowIndex].sku>>
<span @id="$player.wardrobe.items[_rowIndex].sku">
[img[$jewelryMenu|$clothingObj.image][JewelryBox][$tmpPick to $player.wardrobe.items[_rowIndex].sku]]
</span>
<</if>>
<</capture>>
<</for>>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $tmpPick>>
<<if $player.outfit[$jewelryMenu.toLowerCase()] == $tmpPick and !$fitPlanning>>
<<button "Remove <<print $jewelryMenu.toLowerCase()>>">>
<<set $player.outfit[$jewelryMenu.toLowerCase()] = 0>>
<<unset $tmpPick>>
<<goto "JewelryBox">>
<</button>>
<<else>>
<<button "Wear <<print $jewelryMenu.toLowerCase()>>">>
<<if $fitPlanning>>
<<set $plannedFit[$jewelryMenu.toLowerCase()] = $tmpPick>>
<<unset $tmpPick>>
<<goto "WardPlanning">>
<<else>>
<<set $player.outfit[$jewelryMenu.toLowerCase()] = $tmpPick>>
<<unset $tmpPick>>
<<goto "JewelryBox">>
<</if>>
<</button>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<if $fitPlanning>>
<<button "Go back" "WardPlanning">>
<<unset $jewelryMenu>>
<<addSecs 10>>
<</button>>
<<else>>
<<button "Close your jewelry box" "Bathroom">>
<<unset $jewelryMenu>>
<<addSecs 10>>
<</button>>
<</if>>
</div>
</div>
<<timed 0s>>
<<if $tmpPick and $tmpPick.length > 0>>
<<script>>
document.getElementById(State.variables.tmpPick).classList.add('currentPick');
<</script>>
<</if>>
<</timed>><<widget genClothing>>
<<if _args[0] === 'Bras' or _args[0] === 'Bra'>>
<<genBra _args[1]>>
<<elseif _args[0] == 'Panties'>>
<<genPanties _args[1]>>
<<elseif _args[0] == 'Fits' or _args[0] === 'Fit'>>
<<genFit _args[1]>>
<<elseif _args[0] == 'Purses' or _args[0] === 'Purse'>>
<<genPurse _args[1]>>
<<elseif _args[0] == 'Shoes'>>
<<genShoes _args[1]>>
<<elseif _args[0] == 'Coats' or _args[0] === 'Coat'>>
<<genCoat _args[1]>>
<<elseif _args[0] == 'Earrings'>>
<<genEarrings _args[1]>>
<<elseif _args[0] == 'Rings' or _args[0] === 'Ring'>>
<<genRing _args[1]>>
<<elseif _args[0] == 'Bracelets' or _args[0] === 'Bracelet'>>
<<genBracelet _args[1]>>
<<elseif _args[0] == 'Necklaces' or _args[0] === 'Necklace'>>
<<genNecklace _args[1]>>
<</if>>
<</widget>>
<<widget "getDressingClips">>
<<set _tmpVid = 'Media/Wardrobe/Changing/'>>
<<set _tmpArr = []>>
<<if $pickedFit.bra and $pickedFit.bra != 0>>
<<run _tmpArr.push('Bra')>>
<</if>>
<<if $pickedFit.panties and $pickedFit.panties !== 0>>
<<run _tmpArr.push('Panties')>>
<</if>>
<<if $pickedFit.fit and $pickedFit.fit !== 0>>
<<run _tmpArr.push('Fit')>>
<</if>>
<<if _tmpArr.length === 0>>
<<run _tmpArr.push('Fit')>>
<</if>>
<<if _tmpArr.length === 0 and $player.outfit.fit === 0 and $player.outfit.panties === 0 and $player.outfit.bra === 0>>
<<set _tmpVid += 'Nude/'>>
<<if $player.presenting === 'Female'>>
<<if $player.body.show_preg === 1>>
<<set _tmpVid += 'F/Preg/' + random(1,5) + '.webm'>>
<<elseif $player.body.gender === 'Female'>>
<<set _tmpVid += 'F/' + random(1,4) + '.webm'>>
<<else>>
<<set _tmpVid += 'T/' + random(1,4) + '.webm'>>
<</if>>
<<else>>
<<set _tmpVid += 'M/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<switch _tmpArr[random(0,_tmpArr.length-1)]>>
<<case "Bra">>
<<if $braNewb === 1>>
<<set $braNewb = 2>>
<<set _tmpVid += 'Bra/badBra' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Bra/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpVid += 'F/' + random(1,4) + '.webm'>>
<<else>>
<<set _tmpVid += 'M/'>>
<<if $player.mentalFem >= 50 or $prefDir === 1>>
<<set _tmpVid += random(1,1) + '.webm'>>
<<else>>
<<set _tmpVid += random(1,2) + '.webm'>>
<</if>>
<</if>>
<</if>>
<<case 'Panties'>>
<<set _tmpVid += 'Panties/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpVid += 'F/' + random(1,3) + '.webm'>>
<<else>>
<<set _tmpVid += 'M/' + random(1,4) + '.mp4'>>
<</if>>
<<case 'Fit'>>
<<if $pickedFit.fit === 651>>
/* <<set _tmpVid += 'VenomFit/' + iif(mc_femImage = 1,'F/','M/') +'1.webm'>>*/
<<else>>
<<genFit $pickedFit.fit>>
<<if random(0,1) === 0 or ($clothingObj.stats.btm === 'Skirt' or $clothingObj.stats.btm === 'Dress' or $player.body.tits === 13)>>
<<if ($clothingObj.stats.btm === 'Pants' or $clothingObj.stats.btm === 'Shorts')>>
<<set _tmpVid += 'Pants/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpVid += 'F/'>>
<<if $pickedFit.panties or $player.outfit.panties != 0>>
<<set _tmpVid += random(1,5) + '.webm'>>
<<else>>
<<set _tmpVid += random(10,10) + '.webm'>>
<</if>>
<<else>>
<<if $player.body.ass >= 10>>
<<set _tmpVid += 'M/ass' + random(1,1) + '.webm'>>
<<else>>
<<set _tmpVid += 'M/' + random(1,1) + '.webm'>>
<</if>>
<</if>>
<<else>>
<<set _tmpVid += 'Dress/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpVid += 'F/'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'ZCup/' + random(1,3) + '.webm'>>
<<elseif $player.body.show_preg === 1>>
<<set _tmpVid += 'Preg/' + random(1,1) + '.webm'>>
<<else>>
<<if $pickedFit.panties or $player.outfit.panties != 0>>
<<set _tmpVid += random(1,2) + '.webm'>>
<<elseif $player.body.gender === 'Female'>>
<<set _tmpVid += random(10,12) + '.webm'>>
<<else>>
<<set $isPic = 1>>
<<set _tmpVid = 'Images/System/image_needed.png'>>
<</if>>
<</if>>
<<else>>
<<set _tmpVid += 'M/' + random(1,1) + '.webm'>>
<</if>>
<</if>>
<<else>>
<<set _tmpVid += 'Shirt/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpVid += 'F/'>>
<<if $pickedFit.bra or $player.outfit.bra != 0>>
<<set _tmpVid += 'Bra/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Tits/' + random(1,8) + '.mp4'>>
<</if>>
<<else>>
<<set _tmpVid += 'M/' + random(1,2) + '.webm'>>
<</if>>
<</if>>
<</if>>
<<case "Shoes">>
clip of wearing shoes
<</switch>>
<</if>>
/*
<<if $player.body.tits === 13 and canWear = 0: $tmpVid = 'Images/Shared/Transformation/Tits/Grow/ZCups/tryOn1.mp4'
*/
<<if $isPic is undefined>>
<video autoplay loop @src="_tmpVid" height="500rem"></video>
<<else>>
<<unset $isPic>>
<img @src="_tmpVid" height="500rem">
<</if>>
<</widget>>
<<widget 'getUndressClips'>>
<<set _tmpImg = 'Media/Wardrobe/Undress/'>>
<<if _args[0] === 'self'>>
<<if $player.presenting == 'Female'>>
<<switch _args[1]>>
<<case 'top'>>
<<set _tmpImg += 'F/Top/' + random(1,4) + '.mp4'>>
<<case 'bottom'>>
<<set _tmpImg += 'F/Bottoms/' + random(1,3) + '.mp4'>>
<<case 'bra'>>
<<set _tmpImg += 'F/Bra/' + random(1,3) + '.mp4'>>
<<case 'panties'>>
<<set _tmpImg += 'F/Panties/' + random(1,4) + '.mp4'>>
<</switch>>
<<else>>
<<switch _args[1]>>
<<case 'top'>>
<<set _tmpImg += 'M/Top/' + random(1,1) + '.mp4'>>
<<case 'bottom'>>
<<set _tmpImg += 'M/Bottoms/' + random(1,1) + '.mp4'>>
<<case 'bra'>>
<<set _tmpImg += 'M/Bra/' + random(0,0) + '.mp4'>>
<<case 'panties'>>
<<set _tmpImg += 'M/Panties/' + random(1,1) + '.mp4'>>
<</switch>>
<</if>>
<video muted @src="_tmpImg" width="640" height="480" autoplay loop></video>
<</if>>
<</widget>>
<<widget "UndressActions">>
<<timed 0s>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $sexFit.top != 'Off' or $sexFit.btm != 'Off' or $sexFit.bra > 0 or $sexFit.panties > 0>>
<<button "Strip">>
<<if $sexFit.top != 'Off'>>
<<set _tmpVal = 'top'>>
<<elseif $sexFit.btm != 'Off'>>
<<set _tmpVal = 'bottoms'>>
<<elseif $sexFit.bra != 0>>
<<set _tmpVal = 'bra'>>
<<else>>
<<set _tmpVal = 'panties'>>
<</if>>
<<set $sexFit.top = 'Off'>>
<<set $sexFit.btm = 'Off'>>
<<set $sexFit.bra = 0>>
<<set $sexFit.panties = 0>>
<<set $pExposed = true>>
<<set $player.isNude = true>>
<<calcArousal 'strip', 2>>
<<replace '.stripScene'>>
<<getUndressClips 'self' _tmpVal>>
<br>
You quickly strip off any remaining clothes you have on and toss them aside.
<</replace>>
<<UndressActions>>
<</button>>
<</if>>
<<if $sexFit.top != 'Off'>>
<<if $sexFit.top === 'Shirt'>>
<<button "Take your top off">>
<<set $sexFit.top = 'Off'>>
<<calcArousal 'strip', 1>>
<<replace '.sexScene'>>
<<getUndressClips 'self' 'top'>>
<br>
<<switch random(1,3)>>
<<case 1>>
You slowly pull off your top, revealing more and more of your $player.body.skinTone skin.
<<case 2>>
Grasping the hem of your top you whip it up and over your head, tossing it aside in one fluid motion.
<<case 3>>
The cool air hits your heated skin as you yank off your top and let it drop in a puddle at your feet.
<</switch>>
<</replace>>
<<UndressActions>>
<</button>>
<</if>>
<</if>>
<<if $sexFit.top === 'Off' and $sexFit.bra != 0>>
<<button "Take your bra off">>
<<set $sexFit.bra = 0>>
<<calcArousal 'strip', 1>>
<<replace '.sexScene'>>
<<getUndressClips 'self' 'bra'>>
<br>
<<switch random(1,3)>>
<<case 1>>
The clasp on your bra springs open and shrug the straps down my shoulders, freeing your <<descTits $player>> tits
<<case 2>>
You let out a soft sigh at the delicious sensation of cool air caressing your sensitive skin as you slowly peel the flimsy fabric of your bra away from your <<descTits $player>> breasts .
<<case 3>>
Raising your arms above your head you stretch languidly, arching your back to thrust out your chest as your bra slips away leaving you exposed and open.
<</switch>>
<</replace>>
<<UndressActions>>
<</button>>
<</if>>
<<if $sexFit.btm != 'Off'>>
<<if $sexFit.btm === 'Pants' or $sexFit.btm === 'Skirt' or $sexFit.btm === 'Dress'>>
<<button "Take your <<print $sexFit.btm>> off">>
<<set _tmpVal = $sexFit.btm >>
<<set $sexFit.btm = 'Off'>>
<<if $sexFit.panties == 0>>
<<set $pExposed = true>>
<</if>>
<<calcArousal 'strip', 1>>
<<replace '.sexScene'>>
<<getUndressClips 'self' 'bottoms'>>
<br>
<<switch random(1,3)>>
<<case 1>>
With a wicked grin, you unzip your <<print _tmpVal>> slowly, the sound of the slider teeth parting like a dirty promise.
<<case 2>>
You shimmy the garment over your ass and down your thighs, bending at the waist slightly as you let it drop to the ground.
<<case 3>>
With a flick of your wrist, your <<print _tmpVal>> pools at your feet, leaving you exposed.
<</switch>>
<</replace>>
<<UndressActions>>
<</button>>
<</if>>
<</if>>
<<if $sexFit.btm === 'Off' and $sexFit.panties != 0>>
<<button "Take your panties off">>
<<set $sexFit.panties = 0>>
<<set $pExposed = true>>
<<calcArousal 'strip', 1>>
<<replace '.sexScene'>>
<<getUndressClips 'self' 'panties'>>
<br>
<<switch random(1,3)>>
<<case 1>>
You hook yours thumbs into the waistband of your panties and shimmy them down your thighs, letting them drop to pool around your ankles.
<<case 2>>
You slide your panties down your quivering thighs, the damp cloth clinging to your feverish skin.
<<case 3>>
With a sharp tug, you yank your panties down your thighs, and kick them away haphazardly.
<</switch>>
<</replace>>
<<UndressActions>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Go back" $undressLoc>>
<<addSecs 1>>
<</button>>
</div>
<</replace>>
<</timed>>
<</widget>>
<<widget "wearFit">>
<<set $wardTxt = []>>
<<set $isWardrobe = true>>
<<set _tmpArr = ['fit','bra','panties','coat','purse','shoes','earrings','bracelet']>>
<<set _tmpConflitctArr = []>>
<<for _i to 0; _i <_tmpArr.length; _i++>>
<<if _args[0][_tmpArr[_i]]>>
<<canWearIt _args[0][_tmpArr[_i]] _tmpArr[_i]>>
<<if $fitConflicts.length > 0>>
<<run _tmpConflitctArr.push($fitConflicts[0])>>
<</if>>
<</if>>
<</for>>
<<unset $isWardrobe>>
<<if _tmpConflitctArr.length > 0>>
<<set $fitConflicts = _tmpConflitctArr>>
<</if>>
<<if _args[1] !== 'Auto'>>
<<goto "DressingRoom">>
<<else>>
<<set $nudeFit = {
bra: 0,
fit: 0,
panties: 0,
shoes: $player.outfit.shoes,
earrings: $player.outfit.earrings,
bracelet: $player.outfit.bracelet,
ring: $player.outfit.ring,
purse: $player.outfit.purse,
coat: $player.outfit.coat,
relic: $player.outfit.relic
}>>
<<if !compareObjects($player.outfit,$nudeFit)>>
<<set $player.isNude = false>>
<</if>>
<</if>>
<</widget>>
<<widget "canWearIt">>
<<set $fitConflicts = []>>
<<switch _args[1]>>
<<case "bra">>
<<genBra _args[0]>>
<<if $isWardrobe>>
<<set _tmpBra = $player.wardrobe.items.find(obj => obj.type === 'Bra' and obj.sku == _args[0])>>
<<else>>
<<set $canWearFit = true>>
<<set _tmpBra = {
type: $clothingObj.type,
sku: $clothingObj.sku,
stats: {
cupSize: $player.body.tits
}
}>>
<</if>>
<<if _args[0] !== 0>>
<<if _tmpBra.stats.zCup and $player.body.tits < 13>>
<<unset $canWearFit>>
<<set $fitConflicts.push('This massive bra is way too big for your <<descTits $player>> <<sizeTits $player>> breasts.')>>
<<elseif !_tmpBra.stats.zCup and $player.body.tits == 13>>
<<set $fitConflicts.push('Your <<descTits $player>> <<sizeTits $player>>tits are way too big for this tiny bra.')>>
<<else>>
<<if _tmpBra.stats.cupSize === $player.body.tits>>
<<set $canWearFit = true>>
<<if $isWardrobe>>
<<set $player.outfit.bra = _tmpBra.sku>>
<</if>>
<<elseif _tmpBra.stats.cupSize>>
<<if _tmpBra.stats.cupSize >= $player.body.tits + 2>>
<<unset $canWearFit>>
<<set $fitConflicts.push('This bra is way too big for your <<descTits $player>> <<sizeTits $player>> breasts.')>>
<<elseif _tmpBra.stats.cupSize === $player.body.tits + 1>>
<<set $wardTxt.push('Your <<sizeTits $player>> breasts float in the oversized bra, you should probably do something about that soon')>>
<<elseif _tmpBra.stats.cupSize === $player.body.tits - 1>>
<<set $wardTxt.push('This bra feels a little tight around your <<sizeTits $player>> breasts, if this keeps up you won\'t be able to wear it.')>>
<<elseif _tmpBra.stats.cupSize < $player.body.tits - 1>>
<<set $fitConflicts.push('This bra is way too small for your <<descTits $player>> <<sizeTits $player>> breasts.')>>
<</if>>
<</if>>
<</if>>
<</if>>
<<case "panties">>
<<set $canWearFit = true>>
<<if $isWardrobe>>
<<removeCum 'panties'>>
<<set $player.outfit.panties = _args[0]>>
<<if $player.wardrobe.items.find(obj => obj.type === 'Panties' and obj.sku === _args[0]).stats.cumStain>>
<<set $player.cumArr.push($player.wardrobe.items.find(obj => obj.type === 'Panties' and obj.sku === _args[0]).stats.cumStain)>>
<</if>>
<</if>>
<<case 'fit'>>
<<set _wardFit = $player.wardrobe.items.find(obj => obj.type === 'Fit' and obj.sku == _args[0])>>
<<if _args[0] !== 0>>
<<genFit _args[0]>>
/* physical dimensions */
<<if $clothingObj.stats.tight === 0 and (!$player.body.womb or !$player.body.womb and $player.body.womb.showPreg)>>
<<set $fitConflicts.push('You can\'t wear a maternity outfit, it\'s way too big for you!')>>
<<elseif $clothingObj.stats.tight > 0 and ($player.body.womb and $player.body.womb.showPreg)>>
<<set $fitConflicts.push('You\'ll never stretch this outfit over your swollen pregnant belly!')>>
<</if>>
<<if $clothingObj.stats.zCup and $player.body.tits < 13>>
<<set $fitConflicts.push('This outfit is way too big for your <<descTits $player>> <<sizeTits $player>> breasts.')>>
<<elseif !$clothingObj.stats.zCup and $player.body.tits == 13>>
<<set $fitConflicts.push('You\'ll never stretch this outfit over your <<descTits $player>> <<sizeTits $player>> melons.')>>
<</if>>
<<if _wardFit>>
<<if _wardFit.sku === 1>>
<<retroFit _wardFit.sku>>
<</if>>
<<if _wardFit.stats.fitCup + 2 < $player.body.tits>>
<<set $fitConflicts.push('You simply cannot stretch your outfit over your <<descTits $player>> breasts.')>>
<<elseif _wardFit.stats.fitCup + 1 < $player.body.tits>>
<<set $wardTxt.push('Your outfit feels a little tight around your <<sizeTits $player>> breasts.')>>
<<elseif _wardFit.stats.fitSize + 2 < ($player.body.hips + $player.body.ass + $player.body.weight)>>
<<set $fitConflicts.push('You\'re a little too thicc to fit into this outfit any longer.')>>
<<elseif _wardFit.stats.fitSize + 1< ($player.body.hips + $player.body.ass + $player.body.weight) >>
<<set $wardTxt.push('This outfit feels a little snug around your midsection, you must be gaining weight.')>>
<<elseif _wardFit.stats.fitSize > $player.body.hips + $player.body.ass + $player.body.weight + 2>>
<<set $fitConflicts.push('This outfit is so loose and baggy you can hardly keep it on your body.')>>
<<elseif _wardFit.stats.fitSize > $player.body.hips + $player.body.ass + $player.body.weight + 2>>
<<set $wardTxt.push('Your clothes are a bit baggy and ill-fitting.')>>
<</if>>
<</if>>
/*traits */
/* sensitive skin */
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'SkinTrial')>>
<<if (_tmpCheck and _args[0] != 651 and (!$player.body.womb or ($player.body.womb and !$player.body.womb.isPreg))) or $player.traits.includes(2)>>
<<if $clothingObj.stats.topSkin < 3>>
<<if _tmpCheck and _tmpCheck.level < 5>>
<<set $canWearFit = true>>
<<if $isWardrobe>>
<<set $wardTxt.push('<div class="badText">This outfit rubs unbearably against your skin on your upper chest. You can still wear it, but it\'s going to be incredibly uncomfortable and can ruin any good mood you might have had.</div>')>>
<</if>>
<<else>>
<<set $fitConflicts.push('<div class="badText">The top of this outfit would rub unbearably against the skin on your upper chest. You couldn\'t possibly wear it for more than a few minutes at a time.</div>')>>
<</if>>
<</if>>
<<if $clothingObj.stats.btmSkin < 3 and $fitConflicts.length === 0 and (!$isWardrobe or $wardTxt.length === 0)>>
<<if _tmpCheck and _tmpCheck.level < 5>>
<<set $canWearFit = true>>
<<if $isWardrobe>>
<<set $wardTxt.push('<div class="badText">This outfit rubs unbearably against the skin of your upper thighs. You can still wear it, but it\'s going to be incredibly uncomfortable and can ruin any good mood you might have.</div>')>>
<</if>>
<<else>>
<<set $fitConflicts.push('<div class="badText">The top of this outfit would rub unbearably against the skin on your upper thighs. You couldn\'t possibly wear it for more than a few minutes at a time.</div>')>>
<</if>>
<</if>>
<</if>>
<<if $fitConflicts.length === 0 or $forceFit>>
<<set $canWearFit = true>>
<<set _tmpFitInhib = calcFitInhib($clothingObj)>>
<<if (_tmpFitInhib + 12).clamp(0,100) < $player.inhib and !_wardFit>>
<<set $canWearFit = false>>
<</if>>
<<if $forceFit>>
<<set $wardTxt = []>>
<<unset $forceFit>>
<<set $fitConflicts = []>>
<<set $canWearFit = true>>
<</if>>
<<if $canWearFit and $isWardrobe>>
<<removeCum 'shirt'>>
<<set $player.outfit.fit = _args[0]>>
<<if $player.wardrobe.items.some(obj => obj.type === 'Fit' and obj.sku === _args[0])>>
<<if $player.wardrobe.items.find(obj => obj.type === 'Fit' and obj.sku === _args[0]).stats.cumStain>>
<<set $player.cumArr.push($player.wardrobe.items.find(obj => obj.type === 'Fit' and obj.sku === _args[0]).stats.cumStain)>>
<</if>>
<</if>>
<</if>>
<<else>>
<<set $canWearFit = false>>
<</if>>
<<else>>
<<set $canWearFit = true>>
<<set $player.outfit.fit = _args[0]>>
<</if>>
<<case 'shoes'>>
<<unset $canWearFit>>
<<if $isWardrobe>>
<<set _tmpShoes = $player.wardrobe.items.find(obj => obj.type === 'Shoes' and obj.sku == _args[0])>>
<<else>>
<<set _tmpShoes = _args[0]>>
<</if>>
<<if _args[0] !== 0>>
<<genShoes _args[0]>>
<<if $player.traits.includes(6) and $clothingObj.stats.heel < 1>>
<<set $canWearFit = false>>
<<elseif ($clothingObj.stats.heel > ($player.skills.heels + 1))>>
<<set $fitConflicts.push('<div class="badText">You can\'t wear these shoes! You\'ll likely fall and break your kneck on heels that tall.</div>')>>
<<elseif $clothingObj.sku != 0 and $clothingObj.stats.heels > ($player.skills.heels)>>
<<set $canWearFit = true>>
<<set $wardTxt.push('You\'re not very good at walking in heels this tall, but you shouldn\'t fall and break anything.')>>
<<else>>
<<set $canWearFit = true>>
<</if>>
<<else>>
<<set $canWearFit = true>>
<</if>>
<<if $canWearFit and $isWardrobe>>
<<set $player.outfit.shoes = _args[0]>>
<</if>>
<<case 'purse'>>
<<set $canWearFit = true>>
<<if $isWardrobe>>
<<set $player.outfit.purse = _args[0]>>
<</if>>
<<case 'coat'>>
<<set $canWearFit = true>>
<<if $isWardrobe>>
<<set $player.outfit.coat = _args[0]>>
<</if>>
<<default>>
<<set $canWearFit = true>>
<</switch>>
<<if $player.outfit.fit != _preFit and !$blockLastWorn>>
<<set $lastWornFit = _preFit>>
<</if>>
<<unset $blockLastWorn>>
<</widget>>
<<widget "checkFitInhib">>
<<set $canWearFit = true>>
<<set _tmpFitInhib = calcFitInhib(_args[0])>>
<<if (_args[0].stats.himbo ===1 and ($player.mentalFem >= 50 or $player.inhib >= 80))>>
<<set $canWearFit = false>>
<</if>>
<<if _tmpFitInhib < $player.inhib - 10 and (!$player.traits.includes(2) or (_args[0].stats.topSkin <= 3 and _args[0].stats.btmSkin <=3))>>
<<set $canWearFit = false>>
<</if>>
<<if (_args[0].stats.btm === 'Dress' or _args[0].stats.btm === 'Skirt') and ($player.mentalFem < 40 and !($player.traits.includes(27))) and _args[0].style != 'Sleepwear'>>
<<set $canWearFit = false>>
<</if>>
<</widget>>
<<widget "playerFitRx">>
<<set _tmpFitInhib = calcFitInhib(_args[0])>>
<<canWearIt _args[0].sku 'fit'>>
<<if $canWearFit>>
<<if _tmpFitInhib + 10 > $player.inhib>>
<div class="goodText"><b>You have no problem wearing this outfit.</b></div>
<<else>>
<div class="goodText">This outfit is <b>borderline</b> acceptable</div>
<</if>>
<<elseif $fitConflicts.length > 0>>
<<print $fitConflicts>>
<<else>>
<div class="badText">
This outfit is way too
<<if _args[0].stats.himbo === 1 and $player.mentalFem >= 50>>
<font color="blue"><b>masculine</b></font>
<</if>>
<<if $player.mentalFem < 50 and _args[0].stats.fem === 1>>
<font color="#f558d5"><b>girly</b></font>
<</if>>
<<checkFitInhib _args[0]>>
<<if !$canWearFit>>
<<if ($player.mentalFem < 50 and _args[0].stats.fem === 1) or (_args[0].stats.himbo === 1 and $player.mentalFem >= 50)>>
and
<</if>>
<font color="red"><b>revealing</b></font>
<</if>>
</div>
<</if>>
<</widget>>
<<widget "playerShoeRx">>
<<canWearIt _args[0].sku 'shoes'>>
<<if $canWearFit>>
<<if _args[0].stats.heel <= $player.skills.heels>>
<div class="goodText"><b>You have no problem wearing these shoes.</b></div>
<<else>>
<div class="goodText">This shoe is <b>borderline</b> wearable</div>
<</if>>
<<elseif $fitConflicts.length > 0>>
<<print $fitConflicts>>
<<else>>
<div class="badText">
This heels on this pair are way too
<<if $player.traits.includes(6)>>
<font color="#f558d5"><b>short</b></font>
<<else>>
<font color="red"><b>long</b></font>
<</if>>
</div>
<</if>>
<</widget>>
<<widget "retroFit">>
<<set _tmpWardFit = $player.wardrobe.items.find(item => item.sku === _args[0] && item.type === 'Fit')>>
<<set
_tmpWardFit.stats.fitCup = $player.body.tits;
_tmpWardFit.stats.fitSize = $player.body.hips + $player.body.ass + $player.body.weight;
>>
<</widget>>
<<widget "retroBra">>
<<set _tmpWardBra = $player.wardrobe.items.find(item => item.sku === _args[0] && item.type === "Bra")>>
<<set _tmpWardBra.stats.cupSize = $player.body.tits>>
<</widget>>
<<widget "stripPlayer">>
<<set $player.outfit.fit = 0>>
<<set $player.outfit.bra = 0>>
<<set $player.outfit.panties = 0>>
<<set $player.outfit.shoes = 0>>
<<set $player.isNude = true>>
<</widget>>
<<widget "calcFitSoil">>
<<if $player.outfit.fit != 0 and $player.wardrobe.items.some(obj => obj.type === 'Fit' and obj.sku == $player.outfit.fit)>>
<<set _tmpFit = $player.wardrobe.items.find(obj => obj.type === 'Fit' and obj.sku == $player.outfit.fit)>>
<<if _tmpFit.stats.fitSoil >= 10>>
<div class="badText">Your clothes really stink</div><br>
<<elseif _tmpFit.stats.fitSoil >= 7>>
<font color="#cc5308">Your clothes are ruffled and smelly</font><br>
<<elseif _tmpFit.stats.fitSoil >= 5>>
<font color="#fc6c12">Your clothes are looking really rough</font><br>
<<elseif _tmpFit.stats.fitSoil > 3>>
<font color="#fcba03">Your clothes look wrinkled and worn</font><br>
<</if>>
<</if>>
<</widget>><<set $fitPlanning = true>>
<<set $homeWardrobe = true>>
<<if !($plannedFit)>>
<<set $plannedFit = {
bra: 0,
bracelet: 0,
coat: 0,
earrings: 0,
necklace: 0,
fit: 0,
panties: 0,
purse: 0,
ring: 0,
shoes: 0
}>>
<</if>>
<center>
<b><font size="10em">Wardrobe Planning</font></b>
<br>
<<include "FitPlanningTabs">>
<div id="menuContainer">
<div class="buttonContainer">
<<button "Add New" "WardPlanning">>
<<set _tmpFit = {
idx: Math.random().toString(36).substring(2) + Date.now().toString(36),
name: $planningCat + '_' + $player.wardrobe.plannedFits.length,
clothes: $plannedFit,
type: $planningCat,
fave: false
}>>
<<run $player.wardrobe.plannedFits.push(_tmpFit)>>
<<set $plannedFit = $player.wardrobe.plannedFits[$player.wardrobe.plannedFits.length-1].clothes>>
<<set $plannedFitIdx = $player.wardrobe.plannedFits[$player.wardrobe.plannedFits.length-1].idx>>
<</button>>
<<if $plannedFitIdx>>
<<if !compareObjects($player.wardrobe.plannedFits.find(fit => fit.idx === $plannedFitIdx)['clothes'],$plannedFit)>>
<<button 'Save Changes' "WardPlanning">>
<<set $player.wardrobe.plannedFits.find(fit => fit.idx === $plannedFitIdx).clothes = $plannedFit>>
<</button>>
<<else>>
<<if $player.wardrobe.plannedFits.find(fit => fit.idx === $plannedFitIdx).fave>>
<<button 'Remove from Favories' "WardPlanning">>
<<set $player.wardrobe.plannedFits.find(fit => fit.idx === $plannedFitIdx).fave = false>>
<</button>>
<<elseif $player.wardrobe.plannedFits.filter(fit => fit.fave).length < 4 >>
<<button 'Add to Favories' "WardPlanning">>
<<set $player.wardrobe.plannedFits.find(fit => fit.idx === $plannedFitIdx).fave = true>>
<</button>>
<</if>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<if $plannedFitIdx>>
<<if $player.wardrobe.plannedFits.find(fit => fit.idx === $plannedFitIdx)['clothes'] != $plannedFit>>
<span id="wearButton">
<<button 'Wear Outfit'>>
<<unset $fitPlanning>>
<<set $isWardrobe = true>>
<<set $pickedFit = $plannedFit>>
<<unset $plannedFit>>
<<wearFit $pickedFit>>
<</button>>
</span>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<include "FitPlanningSubTabs">>
</div>
</div>
<<timed 0s>>
<<if $plannedFitIdx and !compareObjects($player.wardrobe.plannedFits.find(fit => fit.idx === $plannedFitIdx)['clothes'],$plannedFit)>>
<<script>>
document.getElementById('wearButton').children[0].setAttribute("disabled", "disabled");
<</script>>
<</if>>
<</timed>>
<br><br>
<<if $subPlanningMenu === 'Outfit'>>
<div class="wardIcons">
<div>
<<set _tmpList = $player.wardrobe.plannedFits.filter(fit => fit.type === $planningCat)>>
<<for _i to 0;_i < _tmpList.length; _i++ >>
<<capture _i>>
<<button _tmpList[_i].name "WardPlanning">>
<<set $plannedFit = _tmpList[_i].clothes>>
<<set $plannedFitIdx = _tmpList[_i].idx>>
<</button>>
<</capture>>
<</for>>
</div>
<div class="vertContainer">
<<genFit $plannedFit.fit>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Fit']]
<<if $plannedFit.fit !== 0>>
[[Remove|WardPlanning][$plannedFit.fit = 0]]
<</if>>
</div>
<div class="iconList">
<div class="vertContainer">>
<<genBra $plannedFit.bra>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Bra']]
<<if $plannedFit.bra !== 0>>
[[Remove|WardPlanning][$plannedFit.bra = 0]]
<</if>>
</div>
<div class="vertContainer">>
<<genPanties $plannedFit.panties>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Panties']]
<<if $plannedFit.panties !== 0>>
[[Remove|WardPlanning][$plannedFit.panties = 0]]
<</if>>
</div>
</div>
<div>
<<genCoat $plannedFit.coat>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Coat']]
<<if $plannedFit.coat !== 0>>
[[Remove|WardPlanning][$plannedFit.coat = 0]]
<</if>>
</div>
</div>
<div class="subWardIcons">
<div class="vertContainer">
<<genPurse $plannedFit.purse>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Purse']]
<<if $plannedFit.purse !== 0>>
[[Remove|WardPlanning][$plannedFit.purse = 0]]
<</if>>
</div>
<div class="vertContainer">
<<genShoes $plannedFit.shoes>>
[img[clothing|$clothingObj.image][viewWardrobe][$wardrobeType = 'Shoes']]
<<if $plannedFit.shoes !== 0>>
[[Remove|WardPlanning][$plannedFit.shoes = 0]]
<</if>>
</div>
</div>
<<else>>
<div class="jewelryIcons">
<div class="vertContainer">
<<set _tmpList = $player.wardrobe.plannedFits.filter(fit => fit.type === $planningCat)>>
<<for _i to 0;_i < _tmpList.length; _i++ >>
<<capture _i>>
<<button _tmpList[_i].name "WardPlanning">>
<<set $plannedFit = _tmpList[_i].clothes>>
<<set $plannedFitIdx = _tmpList[_i].idx>>
<</button>>
<</capture>>
<</for>>
</div>
<div class="vertContainer">
<div class="jewelryIcons">
<div class="vertContainer">
<<genEarrings $plannedFit.earrings>>
[img[clothing|$clothingObj.image][JewelryBox][$jewelryMenu = 'Earrings', $tmpPic = '']]
<<if $plannedFit.earrings !== 0>>
[[Remove|WardPlanning][$plannedFit.earrings = 0]]
<</if>>
</div>
<div class="vertContainer">
<<genNecklace $plannedFit.necklace>>
[img[clothing|$clothingObj.image][JewelryBox][$jewelryMenu = 'Necklace', $tmpPic = '']]
<<if $plannedFit.necklace !== 0>>
[[Remove|WardPlanning][$plannedFit.necklace = 0]]
<</if>>
</div>
</div>
<div class="jewelryIcons">
<div class="vertContainer">
<<genBracelet $plannedFit.bracelet>>
[img[clothing|$clothingObj.image][JewelryBox][$jewelryMenu = 'Bracelet', $tmpPic = '']]
<<if $plannedFit.bracelet !== 0>>
[[Remove|WardPlanning][$plannedFit.bracelet = 0]]
<</if>>
</div>
<div class="vertContainer">
<<genRing $plannedFit.ring>>
[img[clothing|$clothingObj.image][JewelryBox][$jewelryMenu = 'Ring', $tmpPic = '']]
<<if $plannedFit.ring !== 0>>
[[Remove|WardPlanning][$plannedFit.ring = 0]]
<</if>>
</div>
</div>
</div>
</div>
<</if>>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Stop planning" "Wardrobe">>
<<unset $plannedFit>>
<<unset $fitPlanning>>
<<addSecs 10>>
<</button>>
</div>
</div><<if !$gymBag>>
<<set $gymBag = []>>
<</if>>
<<if !$gymFit>>
<<set $gymFit = {
bra: 0,
bracelet: 0,
coat: 0,
earrings: 0,
fit: 0,
panties: 0,
purse: 0,
ring: 0,
shoes: 0
}>>
<</if>>
/* check if street clothes were left in bag */
<<if $preGymFit>>
<<for _j to 0;_j < $gymBag.length;_j++>>
<<if compareObjects($gymBag[_j].clothes,$preGymFit)>>
<<set _tmpIdx = $gymBag[_j].idx>>
<<set _tmpVal = $player.wardrobe.plannedFits.find(fit => fit.idx === _tmpIdx)>>
<<set $gymBag.find(obj => obj.idx === _tmpIdx).clothes = _tmpVal.clothes>>
<<set _j = $gymBag.length>>
<</if>>
<</for>>
<<unset $preGymFit>>
<</if>>
<center>
<b><font size="10em">Gym Bag Inventory</font></b>
<br>
Whether going to the gym, the beach, or an overnight stay; you can always use a gym bag!
<div id="menuContainer">
<<if !$gymFitIdx>>
<<set _tmpBlocker = 'blockButton'>>
<<else>>
<<unset _tmpBlocker>>
<</if>>
<div class="buttonContainer">
<<if $gymFitIdx>>
<<if $gymBag.some(obj => obj.idx === $gymFitIdx) or $gymBag.length >= 4>>
<<set _tmpBlocker = 'blockButton'>>
<<else>>
<<unset _tmpBlocker>>
<</if>>
<</if>>
<span @class="_tmpBlocker">
<<button "Add to Bag" "GymBagManage">>
<<run $gymBag.push({idx: $gymFitIdx,clothes:$gymFit})>>
<</button>>
</span>
<<if $gymFitIdx>>
<<if !$gymBag.some(obj => obj.idx === $gymFitIdx)>>
<<set _tmpBlocker = 'blockButton'>>
<<else>>
<<unset _tmpBlocker>>
<</if>>
<</if>>
<span @class="_tmpBlocker">
<<button "Remove from Bag" "GymBagManage">>
<<set $gymBag = $gymBag.filter(fit => fit.idx !== $gymFitIdx)>>
<</button>>
</span>
</div>
</div>
<div class="horzContainer">
<div>
<div class="buttonList">
<div>
Wardrobe
</div>
<div>
<<set _tmpList = $player.wardrobe.plannedFits.filter(fit => fit.type === $planningCat)>>
<<for _i to 0;_i < _tmpList.length; _i++ >>
<<if !$gymBag.some(obj => obj.idx === _tmpList[_i].idx)>>
<<capture _i>>
<span @id="_tmpList[_i].idx">
<<button _tmpList[_i].name "GymBagManage">>
<<set $gymFit = _tmpList[_i].clothes>>
<<set $gymFitIdx = _tmpList[_i].idx>>
<</button>>
</span>
<</capture>>
<</if>>
<</for>>
</div>
</div>
</div>
<div>
<div class="wardIcons">
<div class="vertContainer">
<<genFit $gymFit.fit>>
[img[clothing|$clothingObj.image]]
</div>
<div class="iconList">
<div class="vertContainer">>
<<genBra $gymFit.bra>>
[img[clothing|$clothingObj.image]]
</div>
<div class="vertContainer">>
<<genPanties $gymFit.panties>>
[img[clothing|$clothingObj.image]]
</div>
</div>
<div>
<<genCoat $gymFit.coat>>
[img[clothing|$clothingObj.image]]
</div>
</div>
<div class="subWardIcons">
<div>
<<genPurse $gymFit.purse>>
[img[clothing|$clothingObj.image]]
</div>
<div class="vertContainer">
<<genShoes $gymFit.shoes>>
[img[clothing|$clothingObj.image]]
</div>
</div>
</div>
<div>
<div class="buttonList">
<div>
Gym Bag
</div>
<div>
<<for _i to 0;_i < $gymBag.length; _i++ >>
<<capture _i>>
<span @id="$gymBag[_i].idx">
<<set _tmpVal = $player.wardrobe.plannedFits.find(fit => fit.idx === $gymBag[_i].idx).name>>
<<button _tmpVal "GymBagManage">>
<<set $gymFit = $gymBag[_i].clothes>>
<<set $gymFitIdx = $gymBag[_i].idx>>
<</button>>
</span>
<</capture>>
<</for>>
</div>
</div>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close your gym bag" "Wardrobe">>
<<set $homeWardrobe = true>>
<<unset $gymFitIdx>>
<<unset $gymFit>>
<<addSecs 15>>
<</button>>
</div>
</div>
<<timed 0s>>
<<script>>
const collection = document.getElementsByClassName("blockButton");
for (let i = 0; i < collection.length; i++) {
collection[i].children[0].setAttribute("disabled", "disabled");
}
<</script>>
<<if $gymFitIdx>>
<<script>>
document.getElementById(State.variables.gymFitIdx).children[0].style.backgroundColor = 'green';
<</script>>
<</if>>
<</timed>>/*pick dream from array */
<<goto $dreamsArr[0]>><<run $dreamsArr.delete("Titty TF")>>
<<set _tmpImg = 'Media/Dreams/Tits/'>>
<<if $player.body.tits < 4>>
<<set _tmpImg += 'Small/' + random(1,8) + '.webp'>>
<<elseif $player.body.tits < 8>>
<<set _tmpImg += 'Med/' + random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg += 'Large/' + random(1,11) + '.webp'>>
<</if>>
<div id="dreamContainer">
<center>
<img @src="_tmpImg" height="450rem">
<br><br>
You dream of a woman but you don't think she's anyone you know in real life. Your point of view seems to float around her as she walks around and does normal everyday things. As you float along next to her your view keeps getting drawn to her chest. You find yourself mesmerized by how they bounce and jiggle with her movements, almost like they have a life of their own. Your sleeping mind wonders if she enjoys breasts that size.
</center>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Wonder what that would feel like">>
<<replace "#dreamContainer">>
<center>
<<set _tmpImg = 'Media/Dreams/Tits/POV/' + random(1,21) + '.mp4'>>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<br><br>
Your vision swirls as you feel yourself getting sucked into the woman you've been watching!
<br>
As the world finally settles down you realize that you're now looking out from her point of view -- no longer the watcher but the watched.
<br><br>
You can feel the extra weight across your chest and how the material of your bra rubs against your nipples and the straps dig into your shoulders. Your new breasts jiggle in unavoidable ways with every movement, constantly reminding you of their presence.
<br>
In the back of your mind you feel a small voice telling you that choices have consequences; whatever that might mean.
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button 'Feels kind of nice'>>
<<replace "#dreamContainer">>
<center>
<<set _tmpImg = 'Media/Dreams/Tits/POV/' + random(1,22) + '.mp4'>>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<br><br>
Dream you shakes her shoulders, making her tits bounce and rub even more against the silky material of her bra. You smile to yourself and enjoy the sensations, it's just a dream after all, right?
<<set $titGrowth = 1>>
<<set $player.statBuffs.tits += 1>>
<<set $player.statBuffs.femBuff += 1>>
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Wake up">>
<<goto "Wakeup">>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Scream yourself awake">>
<<set $titGrowth = 1>>
<<set $player.statBuffs.femBuff = ($player.statBuffs.femBuff -1).clamp(0,20)>>
<<goto "Wakeup">>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Resist the dream">>
<<goto "Wakeup">>
<</button>>
</div>
</div><<run $dreamsArr.delete("Ass TF")>>
<<set _tmpImg = 'Media/Random/Squeeze/Ass/NonNude/' + random(1,11) + '.webm'>>
<div id="dreamContainer">
<center>
<video @src="_tmpImg" width="640" height="480" autoplay loop></video>
<br><br>
Your dreams are filled with visions of large plump jiggling asses.
</center>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Feel a pang of admiration">>
<<set $assGrowth = 1>>
<<goto "Wakeup">>
<</button>>
</div>
<div class="buttonContainer">
<<button "Resist the dream">>
<<goto "Wakeup">>
<</button>>
</div>
</div><<run $dreamsArr.delete("Hips TF")>>
<<set _tmpImg = 'Media/Dreams/Hips/' + random(1,8) + '.mp4'>>
<div id="dreamContainer">
<center>
<video @src="_tmpImg" width="640" height="480" autoplay loop></video>
<br><br>
You dream of women showing off their sexy hourglass figures.
</center>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Wonder if you could ever move like that">>
<<set $hipGrowth = 1>>
<<goto "Wakeup">>
<</button>>
</div>
<div class="buttonContainer">
<<button "Resist the dream">>
<<goto "Wakeup">>
<</button>>
</div>
</div><<run $dreamsArr.delete("Lips TF")>>
<<set _LipsArr = []>>
<div class="tripleContainer">
<<for _i to 0;_LipsArr.length < 3;_i++>>
<<set _tmpImg = 'Media/Dreams/Lips/'+ random(1,8) + '.webp'>>
<<if !_LipsArr.includes(_tmpImg)>>
<<set _LipsArr.push(_tmpImg)>>
<div class="box">
<img @src="_tmpImg" width="100%">
</div>
<</if>>
<</for>>
</div>
You dream of various women's faces flashing before you. Each one comes in a paired set, one on the left and one on the right. All the different faces have something in common, but your sleeping mind can't quite grasp what they're trying to show you.
<br><br>
You feel the urge to pick between them as they flash by but you are torn on which "face" to select -- the left one, or the right one?
<<if $lipBlock >= 3>>
<br><br>
<div class="badText">You have a feeling this decision is important - as if turning it away again could close the door forever.</div>
<</if>>
<hr>
<div class="actionsContainer">
<div button="buttonContainer">
<<button "The left one" "Wakeup">>
<<if $lipBlock>>
<<set $lipBlock += 1>>
<<else>>
<<set $lipBlock = 1>>
<</if>>
<</button>>
<<button "The right one" "Wakeup">>
<<set $lipGrowth = 1>>
<<unset $lipBlock>>
<<set $lipRx = true>>
<<set $player.body.lips += 1>>
<</button>>
</div>
</div><<run $dreamsArr.delete("Height TF")>>
<<set _tmpImg = 'Media/Dreams/Height/' + random(1,7) + '.webp'>>
<div id="dreamContainer">
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You dream of tall and short woman standing together, as if offering a contrasting opinion. Your conciousness drifts from to the other, comparing them and gauging their benefits.
<br><br>
<b>If you had to choose - which one has the advantage?</b>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Being tall">>
<<set $heightGrowth = 1>>
<<goto "Wakeup">>
<</button>>
<<button "Being short">>
<<set $heightGrowth = -1>>
<<goto "Wakeup">>
<</button>>
</div>
</div><<set $lastDreamOffer = $currJulianDate + random(5,8)>>
<<run $dreamsArr.delete("Gender TF")>>
<center>
<span id="repCont">
<img src="Media/Dreams/Gender/1.webp" height='550rem'>
<br>
You find yourself standing on a path in a creepy fog-filled forrest. Just-glimpsed shapes move in the middle-distance but the only sound you can here is your own increasingly-ragged breathing.
<br><br>
A pressure starts to build and just when you feel your ears are about to pop you sense a persence behind you - it's the Fortune Teller! She's just standing there smiling at you in that weird way she has.
</span>
</center>
<span id="NPCCont">
<<set _tmpLocAr =['Gender TF']>>
<<addNPC $npc_0 _tmpLocAr 'FTChoices'>>
<<getCurrNPCs 'Gender TF'>>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Turn and run">>
<<replace "#repCont">>
You turn and run back the path behind you; back where you came from - away from the woman, the fork in the road, and the implied choices it all presents.
<br><br>
You can hear her laugh echo through the darkness around you and you know that all you've done is postponed the inevitable.
<</replace>>
<<replace "#NPCCont">>
<<purgeNPCLocation 'Gender TF'>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Wake up" "Wakeup">><</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<run $dreamsArr.delete("Anal Dream")>>
<<if $player.body.gender === 'Trans'>>
<<set $sexType = 'TM'>>
<<else>>
<<set $sexType = 'MF'>>
<</if>>
<<set
$sexPos = 'OnBot';
$sexPosition = 'Missionary';
$isAnal = true;
$isCoitus = false;
>>
<<unset $sexAct>>
<center>
<<getSexClips>>
<br><br>
Your dreams are filled with visions of you getting fucked up the ass by random strong and virile men.
<br><br>
You moan softly in your sleep as the ring buried inside your ass radiates a gentle warm hunger as if reacting to your dream.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Wake up" "Wakeup">>
<<unset
$sexType;
$sexPos;
$sexPosition;
$isAnal;
$isCoitus;
>>
<<if $analKinkTicker > 3 and !$player.kinks.includes(52)>>
<<unset $analKinkTicker>>
<<addKink 52>>
<</if>>
<</button>>
</div>
</div><<run $dreamsArr.delete("Purse Dream")>>
<center>
<span id='repCont'>
<img src="Media/Dreams/purse0.webp" height="600rem">
<br><br>
Your dreams are filled with images of messy table tops, people struggling to carry too many items, and lots of things being dropped and broken.
<br>
For some reason this fills you with a kind of dread you haven't known before.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<img src="Media/Dreams/purse1.webp" height="600rem">
<br><br>
Then your purse backpack suddenly shows up in the dream and everything is better -- nothing is dropped, things are more organised. Eventually the backpack starts changing into other purses, all of them making your life more organized and cleaner.
<br><br>
Something clicks inside your mind and you now will pick up a purse, or at least a backback, anytime you leave the house without even thinking about it.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Wake up" "Wakeup">>
<<addTrait 53>>
<</button>>
</div>
<</replace>>
<</button>>
</div>some kind of dream of a man's boddy
<br>
you have a new appreciation for the masculine form
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Wake up" "Wakeup">>
<<if ['Male','Female'].includes($player.prefs.gender)>>
<<set $player.prefs.gender = 'Bisexual'>>
<<else>>
<<set $player.prefs.gender = 'Male'>>
<</if>>
<</button>>
</div>
</div>some kind of dream of a woman's boddy
<br>
you have a new appreciation for the feminine form
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Wake up" "Wakeup">>
<<if ['Male','Female'].includes($player.prefs.gender)>>
<<set $player.prefs.gender = 'Bisexual'>>
<<else>>
<<set $player.prefs.gender = 'Male'>>
<</if>>
<</button>>
</div>
</div><<widget "genDream">>
/* generate non-TF dreams - event related and fluff-filler */
/* relics */
<<if $player.outfit.relic.idx === 1 and $relicLog.find(log => log.idx === 1).level === 3 and random($player.arousal, 100) > 50>>
<<if !$analKinkTicker>>
<<set $analKinkTicker = 0>>
<</if>>
<<set $analKinkTicker += 1>>
<<set $dreamsArr.push('Anal Dream')>>
<</if>>
<</widget>><center>
<<set $player.statBuffs.femBuff += 1>>
<<workoutPic "Hula Hoop">>
<br><br>
You swivel your midsection and keep the hoop rotating as long as you can.
<br><br>
It doesn't take long before your hips start to tingle in a strange way...
</center>
<hr>
<div id="actionsContainer">
<<if $player.stamina > 30>>
<div class="buttonContainer">
<<button "Keep hula-ing">>
<<set $returnLoc = 'FairhavenCommons'>>
<<set $player.statBuffs.hips += 1>>
<<exerciseImpact 'Cardio' 10>>
<<goto "HulaHoop">>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Stop" $returnLoc>>
<<addSecs 15>>
<</button>>
</div>
</div><<set $player.statBuffs.height += 1>>
<center>
<<workoutPic "Jump Rope">>
<br><br>
<<if $player.body.tits > 0 or $player.presenting === 'Female'>>
<<set $player.statBuffs.femBuff += 1>>
<<if $player.outfit.fit === 0>><<set $player.statBuffs.femBuff += 1>><</if>>
<<switch random(1,3)>>
<<case 1>>
<<set $player.statBuffs.hips += 1>>
Each time you land your <<descHips $player>> hips sway and your <<descAss $player>> ass flexes.<<if $player.body.tits > 0>>The vibrant jiggle of your <<descTits $player>> breasts is almost mesmerizing, a symphony of movement orchestrated by your agile body.<</if>>
<<case 2>>
<<set $player.statBuffs.ass += 1>>
Jolts of force course from your ankles, surging up your legs to collide with your <<descHips $player>> hips. The momentum reverberates through your <<descAss $player>> ass, making it squeeze and release with each landing.
<<case 3>>
<<set $player.statBuffs.tits += 1>>
<<if $player.body.tits > 0>>Your sensitive, <<descTits $player>> breasts jiggle and bounce as you jump over the rope.<</if>> The stress of each jump radiates through your supple torso, creating a tingling awareness of your form that echoes in your mind like a loud but distant shout.
<</switch>>
<<else>>
<<set $player.statBuffs.mascBuff += 1>>
Each hop over the rope sends a ripple through your frame, but it's the insistent jiggle of your <<sizeDick $player>>cm cock that captures your attention.
<</if>>
<br><br>
<b>And before long you can feel a tingling in your legs that feels deeper than simple muscle burn...</b>
</center>
<hr>
<div id="actionsContainer">
<<if $player.stamina > 30>>
<div class="buttonContainer">
<<button "Keep jumping">>
<<set $returnLoc = 'FairhavenCommons'>>
<<exerciseImpact 'Cardio' 10>>
<<goto "Jumprope">>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Stop" $returnLoc>>
<<addSecs 15>>
<</button>>
</div>
</div><<widget "exerciseImpact">>
<<if $player.traits.includes(22)>>
<<set $player.mood += 10>>
<</if>>
<<addMins _args[1]>>
<<switch _args[0]>>
<<case 'Cardio'>>
<<set $player.statBuffs.fitness += 1>>
<<set $player.calories -= random(500,800)/60*_args[1]>>
<<set $player.thirst -= 1*(Math.max(1,Math.min(_args[1],_args[1]-1.5*$player.skills.fitness)))>>
<<set $player.hunger -= .1*(Math.max(1,Math.min(_args[1],_args[1]-1.5*$player.skills.fitness)))>>
<<set $player.stamina = ($player.stamina - (.5*(_args[1]-1.5*$player.skills.fitness))).clamp(0,$player.stamMax)>>
<<set $player.body.sweat += .5*(_args[1]-1.5*$player.skills.fitness)>>
<<case 'LightCardio'>>
<<set $player.calories -= random(150,300)/60*_args[1]>>
<<set $player.thirst -= (Math.max(1,Math.min(_args[1],_args[1]-1.5*$player.skills.fitness)))/2>>
<<set $player.hunger -= (Math.max(1,Math.min(_args[1],_args[1]-1.5*$player.skills.fitness)))/10>>
<<set $player.stamina = ($player.stamina - (.25*(_args[1]-1.5*$player.skills.fitness))).clamp(0,$player.stamMax)>>
<<set $player.body.sweat += .25*(_args[1]-$player.skills.fitness)>>
<<default>>
<<set $player.statBuffs.fitness += 1>>
<<if ['Weights','ChestFly'].includes(_args[0])>>
<<set
$player.statBuffs.strength += 1;
$muscleBoost = true;
>>
<</if>>
<<set $player.calories -= random(300,600)/60*_args[1]>>
<<set $player.thirst -= 1*(Math.max(1,Math.min(_args[1],_args[1]-1.5*$player.skills.fitness)))>>
<<set $player.hunger -= .1*(Math.max(1,Math.min(_args[1],_args[1]-1.5*$player.skills.fitness)))>>
<<set $player.stamina = ($player.stamina - (.6*(_args[1]-1.5*$player.skills.fitness))).clamp(0,$player.stamMax)>>
<<set $player.body.sweat += .5*(_args[1]-1.5*$player.skills.fitness)>>
<</switch>>
<</widget>>
<<widget "workoutPic">>
<<switch _args[0]>>
<<case "Treadmill">>
<<set _tmpImg = 'Media/Exercise/Treadmill/'>>
<<if $locType === 'Indoors'>>
<<set _tmpImg += 'Indoors/'>>
<<if !$player.isNude>>
/* Clothed */
<<set _tmpImg += 'Clothed/'>>
<<if _args[1] === 'Solo'>>
/* solo rider */
<<set _tmpImg += 'Solo/'>>
<<if $player.presenting === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += 'F/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/' + random(1,8) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,4) + '.webp'>>
<</if>>
<<else>>
/* group event */
<<set _tmpImg += 'Group/'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'Preg/' + random(1,3) + '.webp'>>
<</if>>
<</if>>
<<else>>
/* Nude */
<</if>>
<<else>>
/* outdoors */
<</if>>
<img @src='_tmpImg' height="600rem">
<<case "Yoga">>
<<set _tmpImg = 'Media/Exercise/Yoga/'>>
<<if $locType === 'Indoors'>>
<<set _tmpImg += 'Indoors/'>>
<<if !$player.isNude>>
/* Clothed */
<<set _tmpImg += 'Clothed/'>>
<<if _args[1] === 'Solo'>>
/* solo rider */
<<set _tmpImg += 'Solo/'>>
<<if $player.presenting === 'Female'>>
<<if (!$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)) and $player.body.tits < 13>>
<<set _tmpImg += 'F/' + random(1,5) + '.webp'>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,14) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/ZCups/' + random(1,5) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<<else>>
/* group event */
<<set _tmpImg += 'Group/'>>
<<if $player.presenting === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += 'F/' + random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/' + random(1,7) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<</if>>
<<else>>
/* Nude */
<<set _tmpImg += 'Nude/'>>
<<if _args[1] === 'Solo'>>
/* solo rider */
<<set _tmpImg += 'Solo/'>>
<<if $player.body.gender === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += 'F/' + random(1,12) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/' + random(1,11) + '.webp'>>
<</if>>
<<else>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'T/' + random(1,3) + '.webp'>>
<</if>>
<</if>>
<<else>>
/* group event */
/*no nude group yoga events */
<</if>>
<</if>>
<<else>>
/* outdoors */
<<set _tmpImg += 'Outdoors/'>>
<<if !$player.isNude>>
/* Clothed */
<<set _tmpImg += 'Clothed/'>>
<<if _args[1] === 'Solo'>>
/* solo rider */
<<set _tmpImg += 'Solo/'>>
<<if $player.presenting === 'Female'>>
<<if $player.body.womb and $player.body.womb.showPreg >>
<<set _tmpImg += 'F/Preg/' + random(1,16) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,15) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,4) + '.webp'>>
<</if>>
<<else>>
/* group event */
/* No outdoor group yoga */
<</if>>
<<else>>
/* Nude */
<<set _tmpImg += 'Nude/'>>
<<if _args[1] === 'Solo'>>
/* solo rider */
<<set _tmpImg += 'Solo/'>>
<<if $player.body.gender === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += 'F/' + random(1,20) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/' + random(1,5) + '.webp'>>
<</if>>
<<else>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'T/' + random(1,5) + '.webp'>>
<</if>>
<</if>>
<<else>>
/* group event */
/*no nude group yoga events */
<</if>>
<</if>>
<</if>>
<img @src='_tmpImg' height="600rem">
<<case "Ball">>
<<set _tmpImg = 'Media/Exercise/Ball/'>>
<<if $locType === 'Indoors'>>
<<set _tmpImg += 'Indoors/'>>
<<if !$player.isNude>>
/* Clothed */
<<set _tmpImg += 'Clothed/'>>
<<if $player.presenting === 'Female'>>
<<if (!$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)) and $player.body.tits < 13>>
<<set _tmpImg += 'F/' + random(1,7) + '.webp'>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,16) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/ZCups/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,3) + '.webp'>>
<</if>>
<<else>>
/* Nude */
<<set _tmpImg += 'Nude/'>>
<<if $player.body.gender === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += 'F/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/' + random(1,4) + '.webp'>>
<</if>>
<<else>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/' + random(0,0) + '.webp'>>
<<else>>
<<set _tmpImg += 'T/' + random(1,1) + '.webp'>>
<</if>>
<</if>>
<</if>>
<<else>>
/* outdoors */
/* No outdoor Exercise ball use */
<</if>>
<img @src='_tmpImg' height="600rem">
<<case "Bike">>
<<set _tmpImg = 'Media/Exercise/Bike/Indoors/'>>
<<if !$player.isNude>>
/* Clothed */
<<set _tmpImg += 'Clothed/'>>
<<if _args[1] === 'Solo'>>
/* solo rider */
<<set _tmpImg += 'Solo/'>>
<<if $player.presenting === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += 'F/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/' + random(1,9) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<<else>>
/* group event */
<<set _tmpImg += 'Group/'>>
<<if $player.body.womb and $player.body.womb.showPreg >>
<<set _tmpImg += 'Preg/' + random(1,5) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,5) + '.webp'>>
<</if>>
<</if>>
<<else>>
/* Nude */
<<set _tmpImg += 'Nude/'>>
<<if _args[1] === 'Solo'>>
/* solo rider */
<<set _tmpImg += 'Solo/'>>
<<if $player.body.gender === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += 'F/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/' + random(0,0) + '.webp'>>
<</if>>
<<else>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/' + random(0,0)+ '.webp'>>
<<else>>
<<set _tmpImg += 'T/' + random(0,0) + '.webp'>>
<</if>>
<</if>>
<<else>>
/* group event */
/*no nude group yoga events */
<</if>>
<</if>>
<img @src='_tmpImg' height="600rem">
<<case "Weights">>
<<set _tmpImg = 'Media/Exercise/Bench/Indoors/'>>
<<if !$player.isNude>>
/* Clothed */
<<set _tmpImg += 'Clothed/'>>
<<if $player.presenting === 'Female'>>
<<if (!$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)) and $player.body.tits < 13>>
<<set _tmpImg += 'F/' + random(1,9) + '.webp'>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,5) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/ZCups/' + random(1,6) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,6) + '.webp'>>
<</if>>
<<else>>
/* Nude */
<<set _tmpImg += 'Nude/'>>
<<if $player.body.gender === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += 'F/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/' + random(0,0) + '.webp'>>
<</if>>
<<else>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/' + random(1,1)+ '.webp'>>
<<else>>
<<set _tmpImg += 'T/' + random(1,2) + '.webp'>>
<</if>>
<</if>>
<</if>>
<img @src='_tmpImg' height="600rem">
<<case "Kettlebell">>
<<set _tmpImg = 'Media/Exercise/Kettlebell/Indoors/'>>
<<if !$player.isNude>>
/* Clothed */
<<set _tmpImg += 'Clothed/'>>
<<if $player.presenting === 'Female'>>
<<if (!$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg))>>
<<set _tmpImg += 'F/' + random(1,2) + '.mp4'>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
/* Nude */
<<set _tmpImg += 'Nude/'>>
<<if $player.body.gender === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpImg += 'F/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpImg += 'F/Preg/' + random(0,0) + '.mp4'>>
<</if>>
<<else>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/' + random(0,0)+ '.mp4'>>
<<else>>
<<set _tmpImg += 'T/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<video @src="_tmpImg" autoplay loop></video>
<<case "ChestFly">>
<<set _tmpImg = 'Media/Exercise/ChestFly/Indoors/'>>
<<set _tmpImg += 'Clothed/'>>
<<if $player.presenting === 'Female'>>
<<if (!$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)) and $player.body.tits < 13>>
<<set _tmpImg += 'F/' + random(1,5) + '.mp4'>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpImg += 'F/ZCups/' + random(0,0) + '.mp4'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.mp4'>>
<</if>>
<video @src="_tmpImg" autoplay loop></video>
<<case "Squats">>
<<set _tmpImg = 'Media/Exercise/Squats/Indoors/'>>
<<if !$player.isNude>>
/* Clothed */
<<set _tmpImg += 'Clothed/'>>
<<if $player.presenting === 'Female'>>
<<if (!$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)) and $player.body.tits < 13>>
<<set _tmpImg += 'F/' + random(1,6) + '.webm'>>
<video @src="_tmpImg" autoplay loop></video>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,5) + '.webp'>>
<img @src='_tmpImg' height="600rem">
<<else>>
<<set _tmpImg += 'F/ZCups/' + random(1,0) + '.webp'>>
<img @src='_tmpImg' height="600rem">
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webm'>>
<video @src="_tmpImg" autoplay loop></video>
<</if>>
<<else>>
/* Nude */
<<set _tmpImg += 'Nude/'>>
<<if $player.body.gender === 'Female'>>
<<set _tmpImg += 'F/' + random(1,2) + '.webm'>>
<video @src="_tmpImg" autoplay loop></video>
<<else>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/' + random(1,2)+ '.webm'>>
<video @src="_tmpImg" autoplay loop></video>
<<else>>
<<set _tmpImg += 'T/' + random(1,3) + '.webp'>>
<img @src='_tmpImg' height="600rem">
<</if>>
<</if>>
<</if>>
<<case "Hula Hoop">>
<<set _tmpVid = 'Media/Exercise/Hula/'>>
<<if !$player.isNude>>
<<if $player.presenting === 'Female'>>
<<if $player.outfit.fit === 0 and $player.outfit.bra === 0 >>
<<set _tmpVid += 'Topless/F/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/' + random(0,0) + '.mp4'>>
<<elseif $player.body.tits < 5>>
<<set _tmpVid += 'Reg/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Big/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<set _tmpVid += 'Clothed/F/'>>
<<if $player.body.tits < 5>>
<<set _tmpVid += 'Reg/' + random(1,6) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Big/' + random(1,2) + '.mp4'>>
<</if>>
<</if>>
<<else>>
<<set _tmpVid += 'Clothed/M/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<if $player.presenting === 'Female'>>
<<set _tmpVid += 'Nude/F/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/' + random(1,3) + 'mp4'>>
<<else>>
<<if $player.body.tits < 5>>
<<set _tmpVid += 'Reg/' + random(1,5) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Big/' + random(1,2) + '.mp4'>>
<</if>>
<</if>>
<<else>>
<<set _tmpVid += 'Clothed/M/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<video @src="_tmpVid" autoplay loop></video>
<<case "Jump Rope">>
<<set _tmpVid = 'Media/Exercise/Jumprope/'>>
<<if !$player.isNude>>
<<if $player.presenting === 'Female'>>
<<if $player.isNude >>
<<set _tmpVid += 'Nude/F/' + random(1,2) + '.mp4'>>
<<elseif $player.outfit.fit === 0 and $player.outfit.bra === 0>>
<<set _tmpVid += 'Topless/F/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Clothed/F/'>>
<<if $player.body.tits < 3>>
<<set _tmpVid += 'Small/' + random(1,2) + '.mp4'>>
<<elseif $player.body.tits < 5>>
<<set _tmpVid += 'Mid/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Large/' + random(1,2) + '.mp4'>>
<</if>>
<</if>>
<<else>>
<<set _tmpVid += 'Clothed/M/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<if $player.presenting === 'Female'>>
<<set _tmpVid += 'Nude/F/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/' + random(1,3) + 'mp4'>>
<<else>>
<<if $player.body.tits < 5>>
<<set _tmpVid += 'Reg/' + random(1,5) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Big/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<<else>>
<<set _tmpVid += 'Clothed/M/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<video @src="_tmpVid" autoplay loop></video>
<</switch>>
<</widget>>
<<widget "getWorkoutText">>
<<switch _args[0]>>
<<case 'Treadmill'>>
<<switch random(1,3)>>
<<case 1>>
<<if $player.body.tits < 5>>
You find your rhythm - sweat beads on your brow, your breath deepens, and each stride adding to the building burning sensation in your legs.
<<else>>
Your <<descTits $player>> <<sizeTits $player>> breasts bounce and jiggle with each stride, straining against the confines of your sports top. Sweat drips down your cleavage, pooling in the small areas under your breasts.
<</if>>
<<case 2>>
<<if $player.body.tits < 5>>
The world fades into the background—just you, the motion, and the quiet pulse of your thoughts. Each footfall is a meditation, each minute a gentle reminder that progress is built one step at a time.
<<else>>
With each pounding footfall, your <<descTits $player>> breasts bounce up-and-down, threatening to escape the grasp of your overstretched sports bra. The sweat-soaked fabric clings to every curve, emphasizing the obscene jiggle as you move.
<</if>>
<<case 3>>
<<if $player.body.tits < 5>>
Your feet slap the belt in a rhythmic thud, each impact sending a jolt up through your calves. Heat builds in your thighs, a slow burn that deepens with every stride
<<else>>
The bouncing motion of your <<sizeTits $player>> tits creates a hypnotic rhythm, drawing attention to your heaving cleavage. The sensation borders on painful, yet there's a twisted thrill in enduring the relentless jostling as you put on the miles on the treadmill.
<</if>>
<</switch>>
<<case 'Yoga'>>
<<switch random(1,4)>>
<<case 1>>
<<if $player.body.womb and $player.body.womb.showPreg>>
As you assume downward-facing dog, your swollen belly hangs low, pulling you into a deeper backbend than intended. The pressure on your pelvic floor is intense, a stark reminder of your pregnancy's progress.
<<elseif $player.body.tits < 5>>
As you settle into child's pose, your forehead gently kisses the mat, allowing your breath to calm the waves of your mind.
<<else>>
In downward-facing dog, your heavy breasts strain against your arms, forcing them lower than intended. You adjust, trying to distribute the weight evenly, but it's a losing battle.
<</if>>
<<case 2>>
<<if $player.body.womb and $player.body.womb.showPreg>>
In seated forward bend, your belly rises like a huge infaltable donut, the extra weight making it difficult to fully straighten your spine.
<<elseif $player.body.tits < 5>>
In downward-facing dog, you stretch luxuriously, the strength of your arms and legs creating an inverted V, the world turned upside down for a precious moment.
<<else>>
In warrior pose, your ample chest presses forward, stretching the fabric of your top taut. The movement highlights the cleavage, a tempting target for curious gazes.
<</if>>
<<case 3>>
<<if $player.body.womb and $player.body.womb.showPreg>>
Pigeon pose proves particularly challenging with your pregnant belly. Straddling your right knee, you stretch your left arm forward, but the pressure on your core forces you to adjust. You find a modified version, knees closer together, allowing your rounded abdomen to rest comfortably
<<elseif $player.body.tits < 5>>
In cobra pose, your chest lifts, open and receptive, as your body resonates with the energy of renewal.
<<else>>
In camel pose, you arch your back, presenting your substantial bust to the heavens. The fabric of your top rides up, exposing a tantalizing expanse of skin above your waistband.
<</if>>
<<case 4>>
<<if $player.body.womb and $player.body.womb.showPreg>>
As you flow into bridge pose, your ample bust struggles to remain contained by your sports bra, threatening to burst free. Sweat beads on your cleavage, drawing glances from people around you.
<<elseif $player.body.tits < 5>>
Legs extended, toes pointed, you float effortlessly into king pigeon, a tranquil oasis in the midst of a busy day.
<<else>>
In warrior II, your broad shoulders bear the weight of your impressive bust, straining the seams of your top. With each inhale, your breasts swell, testing the limits of containment.
<</if>>
<</switch>>
<<case 'Ball'>>
<<switch random(1,4)>>
<<case 1>>
The rubber conforms to the shape of your ass, highlighting its natural curves as the ball forces a subtle arch in your lower back in order to keep your balance.
<<case 2>>
Your core stretches and relaxes, a warm, fluid sensation that radiates outward. The ball's movement forces a subtle arch in your back, thrusting your chest out more prominently.
<<case 3>>
The exercise ball cradles your voluptuous derrière, conforming to the <<descAss $player>> contours. As you rock gently, your toned muscles yield to the motion, stretching taut fibers with each subtle oscillation.
<<case 4>>
A soothing warmth spreads through your core, radiating from the tender interplay between ball and body. Your pelvic floor clenches and releases, responding instinctively to the rhythmic pressure.
<</switch>>
<<if $player.body.hips < 66>>
<br><br>
<div class="badText">You feel a burning-tingle spread across your hips that you somehow just know has nothing to do with the workout...</div>
<</if>>
<<case 'Bike'>>
<<switch random(1,3)>>
<<case 1>>
<<if $player.body.tits > 2>>
Leaning forward slightly, your ample bust strains against the confines of your workout top, the fabric pulled taut over <<descTits $player>> cleavage. Each rotation of the pedals makes them jiggle and bounce, sweat pooling in the creavaces.
<<else>>
Pedaling the stationary bike, your thighs flex and extend, the muscles rippling beneath smooth skin. Sweat glistens on your brow as you put forth a steady effort
<</if>>
<<case 2>>
<<if $player.presenting === 'Female'>>
Riding the stationary bike, your curvy figure commands attention, the way your tank top stretches tight over your breasts draws appreciative glances. With each pedal stroke, your ass lifts and falls, the fabric of your outfit clinging tightly to your cheeks.
<<else>>
Your legs propel the pedals in a steady rhythm and sweat beads on your brow, but your focus is on the goal and you push forward.
<</if>>
<<case 3>>
<<if $player.body.tits === 13>>
As you pedal the stationary bike, your colossal bosom rises and falls with each labored breath, the generous mounds straining against the confines of your sports bra.
<<elseif $player.body.tits > 2>>
The way your breasts strain against the fabric, pushed upward by your hunched posture, is both flattering and distracting. But you focus on your work out and block out the glances from the guys around you.
<<else>>
Your hips gyrate subtly with each pedal stroke, creating a mesmerizing dance of flesh and steel. The soft, dewy sheen of perspiration glistening on your skin helps cool you off in the breeze from the gym's AC units.
<</if>>
<</switch>>
<<case 'Weights'>>
<<switch random(1,4)>>
<<case 1>>
Your muscles tremble under the strain, each rep carving out a deeper sense of power. The burn is sharp, but it feels like proof that you're alive and pushing forward.
<<case 2>>
You feel the iron in your hands, cold and unforgiving, yet somehow familiar. With every lift, your breath grows louder, syncing with the rhythm of your determination.
<<case 3>>
Sweat beads down your back as your focus narrows to the weight in front of you. The ache in your arms is a quiet roar, reminding you that growth never comes easy.
<<case 4>>
Your grip tightens as the barbell rises, each movement a quiet war between effort and resolve. Time blurs—only the pulse in your ears and the fire in your core remain.
<</switch>>
<<case 'ChestFly'>>
<<switch random(1,4)>>
<<case 1>>
<<if $player.body.tits === 0>>
Adjusting to the chest fly machine, you sit with your back straight, gripping the handles firmly. As you start the exercise you can feel the muslces over your ribcage lifting and spreading with each repetition.
<<else>>
As you perform the chest fly exercise, your <<descTits $player>> breasts swell and flatten with each press of the weights. A tingle soon spreads across your chest from the workout.
<</if>>
<<case 2>>
<<if $player.body.tits === 0>>
The sensation of your chest muscles contracting and relaxing is both invigorating and sensual. You feel the stretch and tug as the weights move, your chest rising and falling in a rhythmic dance.
<<else>>
With each expansion, your <<sizeTits $player>> tits seem to inflate, the outer curves blurring together as the inner tissues compress. Then, as you release and retract, the flesh billows back, nipples pebbling and aureoles puckering.
<</if>>
<<case 3>>
<<if $player.body.tits === 0>>
As you drive the chest fly machine, the pectoralis major muscles in your chest surge with each contraction, a burning intensity searing through the fibers. Your pecs throb with effort, the connective tissue tensing and releasing in rhythmic pulses.
<<else>>
As you pump the chest fly machine, your <<sizeTits $player>> breasts undulate and shift, reacting with fluid grace to the orchestrated push-pull. Each expansion forces your <<descTits $player>> mounds to stretch wide, nipples pulling taut against the surrounding flesh.
<</if>>
<<case 4>>
<<if $player.body.tits === 0>>
The weights hang heavy, forcing your arms and shoulders to labor alongside your chest muscles, the trifecta of strength coalescing into a unified effort. With each rep, you feel your pecs growing tighter, the meaty ridges and valleys etching themselves deeper into your physique.
<<else>>
With each contraction, your <<descTits $player>> breasts cinch inward, only to bloom outward once more, the cycle of compression and release sending tingles racing along your nerves. The visceral sensations are intoxicating
<</if>>
<</switch>>
<<if $player.body.tits > 0 and $player.body.tits < 13>>
<br><br>
<div class="tfText">You feel a burning-tingle spread across your chest that you somehow just know has nothing to do with the workout...</div>
<</if>>
<<case 'Squats'>>
<<switch random(1,4)>>
<<case 1>>
As you descend into a squat, the muscular planes of your glutes and thighs ignite with a fiery burn, the gluteus maximus, adductor magnus, and vastus lateralis all engaged in unison. Each rep drives the inferno deeper, your muscles crying out for mercy even as they strain to complete the demanding exercise.
<<case 2>>
Your ass clenches and releases with each squat, the intense squeeze of your glutes forcing the pain into sharp, electric jolts. Your quadriceps throb in time with your heart, the fatigue building with each successive rep.
<<case 3>>
Squatting lower with each repetition, the fire raging in your ass and thighs intensifies, consuming your muscles with an agonizing hunger. Your glutes ache from the unrelenting pressure, the fibrous tissue twisting and contorting with every downward plunge.
<<case 4>>
Every fiber in your lower half throbs with the exertion, a raw, animalistic agony that borders on pleasure. You're a warrior, forging your body into a temple of strength through sheer, brutal persistence.
<</switch>>
<<case 'Kettlebell'>>
<<switch random(1,4)>>
<<case 1>>
As you swing the kettlebell back and forth, your tight workout clothes cling to your <<descAss $playuer>> ass, accentuating every curve. <<if $player.body.tits > 2>>The repetitive motion causes your <<descTits $player>> <<sizeTits $player>> breasts to bounce hypnotically within the confines of your sports top, drawing appreciative glances from nearby gym-goers.<</if>>
<<case 2>>
With each powerful swing, your body moves in sync with the kettlebell, highlighting the definition in your abs and thighs. The snug material of your tank top rides up slightly, exposing a tantalizing strip of bare midriff. Perspiration glistens on your skin, giving you an overall sheen.
<<case 3>>
The seam of your shorts nestles between your cheeks, creating a deliciously provocative outline as you bend and stretch to swing the kettlebell.
<<case 4>>
Breathing heavily from exertion, your chest heaves, and your ass pushes against the tight material enticingly.
<</switch>>
<br><br>
<div class="mascText">But it's not long before you sense a tingling spread across your ass that feels more meaningful than physical strain.</div>
<</switch>>
<</widget>>
<<widget "calcGymBunny">>
<<if !($player.traits.includes(22))>>
<<if !$lastGymDay or ($currJulianDate - $lastGymDay === 1)>>
<<set $lastGymDay = clone($currJulianDate)>>
<<if !$gymBunny>>
<<set $gymBunny = 1>>
<<else>>
<<set $gymBunny += 1>>
<</if>>
<<elseif $lastGymDay != $currJulianDate>>
<<unset $lastGymDay>>
<<unset $gymBunny>>
<</if>>
<</if>>
<</widget>><center>
<img src="Media/Intro/Carnival.webp" height="600rem">
<br><br>
You're not even sure why you decided to come to the carnival. But after the week you've had, getting out of the house just sounded like something worth doing. The music and laughter seem to wash around you, though, leaving an empty dead space for you to take up. Maybe this wasn't such a good idea after all.
<br><br>
After wandering aimlessly through the grounds you find yourself standing in front of a House of Mirrors. Unfortunately the mirrors on the outside aren't even funhouse mirrors, but just regular ones, and they reflect your self back at you...warts and all.
</center>
<hr>
<table>
<tr>
<td>
<<button "Look at your reflection" "FirstReflection">>
<<addSecs 5>>
<</button>>
</td>
</tr>
</table><center>
<img src="Media/Intro/selfie.webp" height="600rem">
<br><br>
You try to smile and wave at yourself as if it will improve your mood, but it does not. You can't help but focus on everything that's gone wrong in your life.
<br><br>
You haven't even touched a woman in years -- not since Linda divorced you and left with your son. You never should have gotten married so young anyway, but that's what happens when you have an unplanned pregnancy with your high school sweetheart.
<br><br>
Your hair started falling out in your early 20's and now that you're pushing 40 you've got an extremely "high hairline" as balding guys like to say.
You can barely afford your crappy apartment on the money you make at your dead end job...correction: the money you <b>made</b> at your dead end job. That asshole manager, Terri, suddenly fired you without warning or reason -- "lack of work ethic and unprofessional attitude"? What was that fucking bitch even talking about?
<br><br>
Trying not to think about how you'll probably be evicted soon you sigh and turn away from the mirror; maybe it's best to just head home and wait for fate to claim you as its latest victim.
</center>
<hr>
<table>
<tr>
<td>
<<button "Head for home" "BeautyPagent">>
<</button>>
</td>
</tr>
</table><center>
<img src="Media/Intro/pagent1.webp" height="600rem">
<br><br>
You pass a stage holding some sort of beauty pagent contest. You can't help but feel a little bitterness at how happy the women on stage seem. They've probably never had the worries you have to deal with; beautiful women always seem to have things handed to them.
<br><br>
In the back of your mind you wonder what your life might be like if you looked more like those women...would your life have turned out differently?
<br><br>
Idly, your mind wanders as you stand there like a rock in the flood of passing revelers - would different aspects have different outcomes?
</center>
<hr>
<table>
<tr>
<td>
<<button "Continue" "StatLimits">>
<</button>>
</td>
</tr>
</table><center>
<img src="Media/Intro/pagent1.webp" height="600rem">
<br><br>
<div id="repContainer">Without conciously realizing it, you start picking traits from the women on stage you think would be most beneficial for a woman to have.</div>
<br>
<div id="buttonPane" class="horzContainer" style="width:80%;">
<<getBodyLimitButtons>>
</div>
<br><br>
After an unknown amount of time daydreaming you shake your head back to focus - where did that line of thinking come from? You do your best to push those thoughts out of your mind; resolving to head home and put this day behind you.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Time to go" "FailedExit">>
<<unset
$heightIdx;
$hipsIdx;
$titsIdx;
$assIdx;
>>
<</button>>
<div>
</div>
<<timed 0s>>
<<if $sizeLimits.height == 175>>
<<set $hgtIdx = 1>>
<<elseif $sizeLimits.height == 163>>
<<set $hgtIdx = 2>>
<<else>>
<<set $hgtIdx = 3>>
<</if>>
<<script>>
document.getElementById('HeightDiv').children[State.variables.hgtIdx].classList.add('activePick');
<</script>>
<<if $sizeLimits.tits == 12>>
<<set $titsIdx = 1>>
<<elseif $sizeLimits.tits == 4>>
<<set $titsIdx = 2>>
<<else>>
<<set $titsIdx = 3>>
<</if>>
<<script>>
document.getElementById('TitsDiv').children[State.variables.titsIdx].classList.add('activePick');
<</script>>
<</timed>><center>
<img src="Media/Intro/crowd1.webp" height="600rem">
<br><br>
As you drag your feet down the road passing various loud and flashing attractions that you easily tune out, you hear what can only be described as a whisper inside your head.
<br><br>
<i>Come to me, lost one</i>
<br><br>
You stop dead in your tracks and scan the crowd around you, not entirely certain what just happened. You shake your head and sway on your feet a little as your vision blurs and your sense of confusion increases.
</center>
<hr>
<table>
<tr>
<td>
<<button "Look around" "FTIntro">>
<</button>>
</td>
</tr>
</table><center>
<img src="Media/Intro/gypsy.webp" height="600rem">
<br><br>
Everything seems normal and no one is even paying attention to you -- something you're more than used to by now -- except for one wisened old woman sitting at a table. She's looking directly at you with an amused expression on her face.
<br><br>
"Excuse me," you say. "Did you say something just now?"
<br><br>
The woman just continues to stare at you. You should just walk away but your feet are rooted to the ground and all you can do is stare back at her, getting lost in her gaze. Almost without realizing it you find yourself walking up to her table.
</center>
<hr>
<table>
<tr>
<td>
<<button "Sit down" "FTTable">>
<</button>>
</td>
</tr>
</table><center>
<img src="Media/Intro/gypsy2.webp" height="600rem">
<br><br>
The woman leans forward and places her hands on her crystal ball -- you mentally laugh, an actual crystal ball! This lady knows how to put on a show -- and she looks up at you over the top of it as it starts to glow. Her face looks decades younger in the light from her weird ornament.
<br><br>
<i>Tell me, what is it you are looking for?</i>
<br><br>
"I'm -- I'm looking for a clean slate, to start over." you stammer. Wait, where did that come from? And did her lips even move when she spoke?
<br><br>
She nods, as if expecting this answer and her crystal ball starts to pulse slowly, the light almost washing over your body as you suddenly start feeling tired.
</center>
<hr>
<table>
<tr>
<td>
<<button "Continue" "FTOffer">>
<</button>>
</td>
</tr>
</table><center>
<img src="Media/Intro/gypsy2.webp" height="600rem">
<br><br>
<i>What are you willing to give for this fresh beginning, hm? This is no easy thing, what you seek</i>
<br><br>
You try to pull your eyes away from the mesmerizing light coming from her crystal ball, the paint on her finger nails standing out in sharp contrast to the mind-numbing white glow. As if it was being said by someone else using your voice you hear yourself whisper "...anything...".
<br><br>
<i>I accept your terms, lost one. But remember, new starts don't always turn out the way we may want them to...</i>
<br><br>
Her words echo in your ears as the light from her crystal ball suddenly flares to an incredible intensity. Everything in your field of view is replaced by a warm inviting white light. Something this bright should be searing your eyeballs but all you feel is comfort and acceptance.
</center>
<hr>
<table>
<tr>
<td>
<<button "Continue" "Whiteout">>
<</button>>
</td>
</tr>
</table><div id='repCont'>
<center>
<img src="Media/Intro/shift.webp" height="600rem">
<br><br>
As the whiteness starts to invade your inner self your last thoughts are "What did she say about my terms?.."
</center>
<hr>
<table>
<tr>
<td>
<<button "Continue">>
<<replace '#repCont'>>
<center>
<img src="Media/Locations/Bench/Sit/11.webp" height="600rem">
<br><br>
After an untold eternity the warm white light begins to fade. At some point it seems to lose its almost magical quality and turns into normal light that makes you squint and blink your eyes a few times. You raise your hand up to shade your eyes and you realize it's sunlight, and the sounds around you are sounds of a city rather than a carnival. What is going on?
</center>
<hr>
<table>
<tr>
<td>
<<button "Stand up" "CleanSlate">>
<</button>>
</td>
</tr>
</table>
<</replace>>
<</button>>
</td>
</tr>
</table>
</div><center>
<img src="Media/Intro/stumble.webp" height="600rem">
<br><br>
As you rise to your feet you suddenly stumble and fall down to your hands and knees, it feels as if your entire center of gravity has shifted! As you push yourself back to your feet you realize something is wrong -- if nothing else these aren't the clothes you were wearing just a few minutes ago! Other changes start jumping out at you -- your hands and arms are smaller, your once considerable belly is no longer blocking the view of your feet, and if you're not mistaken the ground looks closer too.
<br><br>
<b>What is happening!?</b>
<br><br>
There's a building with some reflective windows nearby, maybe looking at your reflection will help answer some questions.
</center>
<hr>
<table>
<tr>
<td>
<<button "Look at your reflection" "FirstLook">>
<</button>>
</td>
</tr>
</table><center>
<img src="Media/Self/Reflection/M/White/firstView.webp" height="600rem">
<br><br>
It takes a few minutes to register that the reflection in the window is actually you. There's not even a trace of the face you've seen every day for the last 40 years. Just to be sure you raise your hand, still not believing that the image in the window is you when it also raises the same hand. Your features appear almost delicate and your eyes look bigger than you remember them being. And why do you look so much more...not quite feminine, but definitely less male.
<br><br>
Your mind races to try and come up with an explanation -- the last thing you remember was sitting at the fortune teller's table at the carnival. What was it she said? You had said you wanted a clean slate and she agreed in some way..but no that couldn't be it. No one could do something like this! Transfer you to a new body? Not possible.
<br><br>
Suddenly you feel a vibration coming from the back pocket of your jeans. Is that a cell phone?'
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Get out your phone" "FirstCall">><</button>>
</div>
</div><center>
<img src="Media/Intro/unknownCaller.webp" height="600rem">
<br><br>
You stare blankly at the screen for a few moments. The fact that this isn't your cellphone doesn't even register, you're trying to figure out who could already be calling you. Something in the pit of your stomach tells you that your questions can be answered by the person on the other end of that phone.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Answer the call" "FirstChat">><</button>>
</div>
</div><div id="repCont">
<center>
<img src="Media/Intro/mChat.webp" height="600rem">'
<br><br>
You tentatively raise the phone to your ear and croak out a weak "Hello?" -- even your voice sounds different! Not exactly high pitched, but not your normal baritone.
<br><br>
"Hello, dearie." The voice on the phone sounds familiar, but you can't quite place it. "I bet you're a bit confused at the moment. Let me explain."
<br><br>
You suddenly place the voice on the other end -- it's that Fortune Teller from the carnival!
<br><br>
"First, everything that is happening to you is real, this is not a dream and there are no do-overs. Mess up and you'll be stuck with the consequences."
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "wha...?">>
<<replace '#repCont'>>
<center>
<img src="Media/Intro/mChat.webp" height="600rem">
<br><br>
"You asked for a clean slate, and so you have one. As you no doubt already found out, you're no longer the 'you' that you remember. That person is gone. There was even a nice obituary in the paper a few months back."
</center>
<hr>
<table>
<tr>
<td>
<<button "I'm dead?...But why do I look so... girly?!?">>
<<replace "#repCont">>
<center>
<img src="Media/Intro/mChat.webp" height="600rem">
<br><br>
"Well, no *you* are not dead, after all we're talking at the moment aren't we? But the person you used to be is dead. Literally. If you go dig up the coffin there will be an actual body inside -- your old body." she says with a calm cool voice like this is a normal conversation she has every day. Who is this lady?
<br><br>
Then her voice takes on a tinge of something you can't quite place -- confusion? fear? awe? -- when she says "As for you being a girl...actually you're not. You're still a male but definitely a more androgynous one. The spell I cast on you was supposed to create the life you most wanted deep down in your being. Often there's some ambiguity in the final result -- gaps are filled by your own mind as you adjust to the new reality. But, with you, there was some deep internal conflict about what you wanted from your life. Even down to what gender you should take. So my spell took you as far as it could and it seems what happens now is up to you."
</center>
<hr>
<table>
<tr>
<td>
<<button "Fix this!">>
<<replace "#repCont">>
<center>
<img src="Media/Intro/angryPhone.webp" height="600rem">
<br><br>
Almost without thinking your free hand drops to your crotch and grabs for that familiar friend between your legs. You almost giggle when your hand feels the unmistakable lump of your dick...but it's definitely smaller. You weren't going to win any awards with the size of your junk before, but still, this isn't right. This witch even messed with your only source of joy! Suddenly your anger flares up and shoves your confusion aside, no one has the right to do this!
<br><br>
"Still not seeing the bigger picture, hm? OK I'll spell it out for you. Your old life is gone, never coming back. Deal with it. The bargain we struck delivered your inner personal ideal as much as it could so even if we do it again you'll end up in this same boat." Up until now her voice had a hard edge to it but now it softened again. "But you are not locked into your current fate. I can still sense the magic at work on you -- your change isn't complete yet and it can still be influenced."
</center>
<hr>
<table>
<tr>
<td>
<<button "Continue">>
<<replace "#repCont">>
<center>
<img src="Media/Intro/mChat.webp" height="600rem">
<br><br>
"Your actions and decisions will impact your physical form. With the amount of energy I used on this transformation you should be...let's say 'malleable'..for about one year. At that point whatever form you are in will be yours for the rest of your days. So tread carefully, lost one."
<br><br>
"Since I upheld my end of the bargain, it's time for you to uphold yours. You did say you'd give anything for this opportunity, so you are now in my debt. I will come calling on you when I have something I need you to do. Until then, enjoy your new life." After a brief pause she adds, with what almost feels to you like some sort of ironic mirth, "If you need a place to stay, I would suggest looking at Fairhaven."
<br><br>
With a click the line goes silent and you're left holding your phone to your ear as you stare out at people going about their normal daily lives. What now?'
</center>
<hr>
<table>
<tr>
<td>
<<button "Put your phone away" "Downtown">>
<<set $player.mood = 55>>
<</button>>
</td>
</tr>
</table>
<</replace>>
<</button>>
</td>
</tr>
</table>
<</replace>>
<</button>>
</td>
</tr>
</table>
<</replace>>
<</button>>
</td>
</tr>
</table>
<</replace>>
<</button>>
</div>
</div>
</div><<widget "getBodyLimitButtons">>
<div id='HeightDiv' class="vertContainer">
<div >Height</div>
<<button "Tall">>
<<set $sizeLimits.height = 175>>
<<replace "#repContainer">>
You look at the tallest woman on the stage, subconciously deciding being a tall woman would be best.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
<<button "Average">>
<<set $sizeLimits.height = 163>>
<<replace "#repContainer">>
You're of average height now, so you naturally lean toward the same as an imaginary woman.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
<<button "Short">>
<<set $sizeLimits.height = 150>>
<<replace "#repContainer">>
Shorties are the best, aren't they? You can't help but focus on the shortest woman on stage and how dainty and cute she is.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
</div>
<div id='TitsDiv' class="vertContainer">
<div>Breasts</div>
<<button "Large">>
<<set $sizeLimits.tits = 12>>
<<replace "#repContainer">>
The woman with the largest breasts seems the most confident and you could always use help with more confidence.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
<<button "Average">>
<<set $sizeLimits.tits = 4>>
<<replace "#repContainer">>
More than a handful is a waste, you've always thought; admiring a woman on stage with mid-sized breasts.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
<<button "Small">>
<<set $sizeLimits.tits = 3>>
<<replace "#repContainer">>
You look at the woman on stage with the smallest breasts and nod to yourself, there's just something about small and pert breasts that seem fun.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
</div>
<div id='HipsDiv' class="vertContainer">
<div>Hips</div>
<<button "Child-bearing">>
<<set $sizeLimits.hips = 66>>
<<replace "#repContainer">>
You can't help but admire the woman with the widest hips. Something about the way her small waist flares out to such wide hips is appealing to you.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
<<button "Feminine">>
<<set $sizeLimits.hips = 63>>
<<replace "#repContainer">>
You pick out a woman with mid-range hips - curvy and feminine but nothing too over-the-top.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
<<button "Narrow">>
<<set $sizeLimits.hips = 60>>
<<replace "#repContainer">>
You're drawn to a woman near the end with an almost boyish figure. Her narrow hips barely register and add to her attractive slim physique.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
</div>
<div id='AssDiv' class="vertContainer">
<div>Ass</div>
<<button "Plump">>
<<set $sizeLimits.ass = 13>>
<<replace "#repContainer">>
Much like the song; you cannot lie and you stare approvingly at a woman on stage with a very pronounced and jiggly rear end.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
<<button "Mid-range">>
<<set $sizeLimits.ass = 10>>
<<replace "#repContainer">>
As with all things, even in backsides moderation is key and you settle one somone with a modest, but not ridiculous, posterior.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
<<button "Pert">>
<<set $sizeLimits.ass = 9>>
<<replace "#repContainer">>
Never a fan of too much junk in the trunk, you subconsiously pick a woman with a smaller rear end.
<</replace>>
<<replace "#buttonPane">>
<<getBodyLimitButtons>>
<</replace>>
<</button>>
</div>
<<timed 0s>>
<<if $sizeLimits.height == 175>>
<<set $hgtIdx = 1>>
<<elseif $sizeLimits.height == 163>>
<<set $hgtIdx = 2>>
<<else>>
<<set $hgtIdx = 3>>
<</if>>
<<if $sizeLimits.tits == 12>>
<<set $titsIdx = 1>>
<<elseif $sizeLimits.tits == 4>>
<<set $titsIdx = 2>>
<<else>>
<<set $titsIdx = 3>>
<</if>>
<<if $sizeLimits.hips == 66>>
<<set $hipsIdx = 1>>
<<elseif $sizeLimits.hips == 63>>
<<set $hipsIdx = 2>>
<<else>>
<<set $hipsIdx = 3>>
<</if>>
<<if $sizeLimits.ass == 13>>
<<set $assIdx = 1>>
<<elseif $sizeLimits.ass == 10>>
<<set $assIdx = 2>>
<<else>>
<<set $assIdx = 3>>
<</if>>
<<script>>
document.getElementById('HeightDiv').children[State.variables.hgtIdx].classList.add('activePick');
document.getElementById('TitsDiv').children[State.variables.titsIdx].classList.add('activePick');
document.getElementById('HipsDiv').children[State.variables.hipsIdx].classList.add('activePick');
document.getElementById('AssDiv').children[State.variables.assIdx].classList.add('activePick');
<</script>>
<</timed>>
<</widget>><<set $locType = 'Indoors'>>
<<set _tmpLocArr = ['Fairhaven','FH_Walkthrough_1']>>
<center>
<b><font size="10em">Fairhaven Shelter for Women</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/lobby1.webp" height="450rem">
<br>
<span id='repCont'>
<<if $home>>
<<if $home.name === 'Fairhaven' and ($home.lastRentDay < $currJulianDate - 1 or ($home.lastRentDay === $currJulianDate -1 and $gameDate.getHours() >= 12))>>
<div class="badText">You need to pay your rent</div>
<</if>>
<</if>>
Fairhaven is a rundown halfway house that offers rooms to disadvantaged people. No one really wants to live here so no one even attempts to clean up the place. Litter and garbage are strewn around the floor and you can see mouse tracks in the dust that covers everything.
<br><br>
Behind the old decaying fake-wood desk sits a tired old man, his rheumy eyes seem to barely be able to process the room around him.
</span>
</center>
<<addNPC $npc_3 _tmpLocArr 'FHFrontDesk'>>
<span id='NPCCont'><<getCurrNPCs 'Fairhaven'>></span>
<hr>
<div id='actionsContainer'>
<<if $home.name === 'Fairhaven'>>
<<if !$isMaid and $jobArr.some(job => job.title === 'Fairhaven Maid') and $jobArr.find(job => job.title === 'Fairhaven Maid').lastWorkDay < $currJulianDate - 2>>
<div class="buttonContainer">
<<button "Work as a maid" "FHMaidCloset">>
<<addMins 2>>
<</button>>
</div>
<</if>>
<<if $isMaid>>
<<set $maidLoc = passage()>>
<<getMaidActs $maidLoc>>
<</if>>
<<if $home.lastRentDay >= $currJulianDate or ($home.lastRentDay === $currJulianDate -1 and $gameDate.getHours() < 12)>>
<div class="buttonContainer">
<<if !$isMaid>>
<<button "Go to your room">>
<<addSecs 20>>
<<goto "FHBedroom">>
<</button>>
<</if>>
<<button "Go upstairs">>
<<if $isMaid and $maidJob.level < 2>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You should finish cleaning first.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<goto "FairhavenHall">>
<<addSecs 20>>
<</if>>
<</button>>
</div>
<</if>>
<</if>>
<div class="buttonContainer">
<<button "Leave">>
<<if $isMaid>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You should finish cleaning first.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<addSecs 20>>
<<goto "Downtown">>
<</if>>
<</button>>
</div>
</div>
<<if !$isMaid>>
<<FHEvents>>
<</if>><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">Fairhaven Shelter for Women</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/hallway.webp" height="450rem">
<br>
The hallway is dim and musty, lit by a single flickering bulb that casts long shadows on the stained tile floor. The air smells of damp plaster, old pipes, and decades of dust.
Nearly identical doors line the corridor — scuffed, numbered, and silent, each leading to a room like yours. At the far end, the bathroom glows faintly, its door ajar and a steady rythmic drip echoes from within like a ticking clock in a place that had long since stopped caring.
</center>
<span id="repCont">
<<getCurrNPCs 'FairhavenHall'>>
</span>
<hr>
<div id='actionsContainer'>
<<if $isMaid>>
<<set $maidLoc = passage()>>
<<getMaidActs $maidLoc>>
<</if>>
<div class="buttonContainer">
<<button "Go to your room" "FHBedroom">>
<<addSecs 20>>
<</button>>
<<button "Go to the common room" "FairhavenCommons">>
<<addSecs 20>>
<</button>>
<<button "Go to the bathroom" "Bathroom">>
<<set $homeBath = true>>
<<set $bathType = 'Private'>>
<<set $bathLoc = 'FairhavenHall'>>
<<set $bathImg = 'Media/Locations/Downtown/Fairhaven/sharedBath1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = 'A simple room providing the basic necessities for a group of young women. There are shower stalls along the far side of the room, a handful of toilets opposite them, and a row of sinks along the wall as soon as you enter.'>>
<<addSecs 20>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go downstairs">>
<<set _tmpVal = passage()>>
<<preFlightCheck _tmpVal 'FairhavenLobby' .5>>
<</button>>
</div>
</div>
<<timed 0s>>
<<if $player.questTracker.some(obj => obj.idx === 'ParkPhotoQuest') and $player.questTracker.find(obj => obj.idx === 'ParkPhotoQuest').level === 1>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Julia stops you" "JulesParkPhotosInit">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<<replace "#repCont">>
<<set _tmpLocAr =['FairhavenHall']>>
<<addNPC $npc_1 _tmpLocAr 'JulesParkPhotosInit'>>
<<getCurrNPCs 'FairhavenHall'>>
<</replace>>
<</if>>
<</timed>><<genNPCs 'FairhavenCommons'>>
<<if $gameDate.getHours() > 19 and $gameDate.getHours() < 22>>
<<set _tmpVal = ['FairhavenCommons']>>
<<addNPC $npc_1 _tmpVal 'JuliaEngine'>>
<<else>>
<<purgeNPC $npc_1.dna>>
<</if>>
<center>
<b><font size="10em">Fairhaven Common Room</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/commonRoom.webp" height="450rem">
<br>
The room is constantly just-colder-than-comfortable and somehow damp feeling. You can't see any mold, but you just know it's there.
<br><br>
A large and [[ancient TV|AncientTV]] takes up most of the room in one corner and even when it's off you can almost feel the radiation emminating from its tubes.
/* home actions */
<br><br>
In one corner is a would-be home gym - but just about the only useable pieces of 'equipment' are an old [[hula hoop|HoopIntro]] and a frayed [[jump rope|RopeIntro]]
<br>
Opposite the "Workout area" is a [[donation bin|FHBin]] where girls can sift through clothing left by previous residents.
</center>
<<getCurrNPCs 'FairhavenCommons'>>
<hr>
<div id="actionsContainer">
<<if $isMaid>>
<<set $maidLoc = passage()>>
<<getMaidActs $maidLoc>>
<</if>>
<div class="buttonContainer">
<<button "Go to the kitchenette" "Kitchen">>
<<set $kitchenName = 'Fairhaven Kitchen'>>
<<set $kitchenType = 'Private'>>
<<set $kitchenLoc = 'FairhavenCommons'>>
<<set $kitchenImg = 'Media/Locations/Downtown/Fairhaven/kitchen.webp'>>
<<set $kitchenDesc = 'The kitchen is moderatly clean; as long as you don\'t look too closely in the corners. But it has the tools and items needed to prepare and eat a meal - so technically you can eat here.'>>
<<addSecs 20>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Leave the room" "FairhavenHall">><<addSecs 20>><</button>>
</div>
</div><center>
<span id="repCont">
<b><font size="10em">Fairhaven Common Room</font></b>
<br>
<img src='Media/Locations/Downtown/Fairhaven/donationbin1.webp'>
<br><br>
An assortment of cast off clothing items from previous tenants of Fairhaven. You can only see the top layer of
<<if $player.mentalFem < 30 and !($player.questLog.items.some(obj => ['BinQuest','MoreFits'].includes(obj.idx)))>>
<<set _blockBin = true>>
<br><br>
<div class="badText">You can't imagine there's anything for you in a donation bin at a girls' halfway house.</div>
<</if>>
</span>
</center>
<hr>
<div id='actionsContainer'>
<<if !_blockBin>>
<div class="buttonContainer">
<<button "Look through the bin">>
<<addMins 5>>
<<refreshCaption>>
<<if $player.questLog.items.some(obj => obj.idx === 'BinQuest')>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<if $player.body.tits === 13>>
<<set _tmpFit = 257>>
<<else>>
<<set _tmpFit = 146>>
<</if>>
<<else>>
<<if $player.body.tits === 13>>
<<set _tmpFit = 215>>
<<else>>
<<set _tmpFit = 8>>
<</if>>
<</if>>
<<genFit _tmpFit>>
<<replace "#repCont">>
<img @src="$clothingObj.image" height="600rem">
<br><br>
Sadly mostly what you see are unpaired shoes and ripped coats -- all of them having seen better days. But at the bottom of the pile you do manage to find something that might work. <<if $player.mentalFem < 40>>You cringe inwardly as you realize it's a bunny printed nightgown. Not the girliest thing you've ever seen, but definitely something a man wouldn't normally wear.<</if>>
<br><br>
Looks like you've got a choice. Stay up all night; risk getting kicked out already; or swallow your pride and sleep in the nightgown. Just great.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $dayStage >= 4>>
<<button "Put it on">>
<<run $player.questLog.removeQuest('BinQuest')>>
<<set
$player.wardrobe.addItem($clothingObj);
$player.statBuffs.femBuff += 1;
$player.statBuffs.sub += 1;
>>
<<set $player.outfit.shoes = 0>>
<<set $pickedFit = {
bra: 0,
bracelet: 0,
coat: 0,
earrings: 0,
fit: $clothingObj.sku,
panties: 0,
purse: 0,
ring: 0,
shoes: 0
}>>
<<if $player.body.gender != 'Female'>>
<<set $wardLoc = 'Bathroom'>>
<<set $homeBath = true>>
<<set $bathType = 'Private'>>
<<set $bathLoc = 'FairhavenHall'>>
<<set $bathImg = 'Media/Locations/Downtown/Fairhaven/sharedBath1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = '<div class="badText">You moved to the bathroom to change in private.</div><br><br>A simple room providing the basic necessities for a group of young women. There are shower stalls along the far side of the room, a handful of toilets opposite them, and a row of sinks along the wall as soon as you enter.'>>
<<addMins 5>>
<<else>>
<<set $wardLoc = 'FairhavenCommons'>>
<<addMins 3>>
<</if>>
<<wearFit $pickedFit>>
<</button>>
<</if>>
<<button "Take it with you" 'FairhavenCommons'>>
<<addSecs 15>>
<<run $player.questLog.removeQuest('BinQuest')>>
<<set
$player.wardrobe.addItem($clothingObj);
$player.statBuffs.femBuff += 1;
$player.statBuffs.sub += 1;
>>
<</button>>
</div>
<div class="buttonContainer">
<<button "No way are you wearing that">>
<<addSecs 5>>
<<goto "FairhavenCommons">>
<</button>>
</div>
<</replace>>
<<elseif $player.questLog.items.some(obj => obj.idx === 'MoreFits')>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<if $player.body.tits === 13>>
<<set $newFit = 595>>
<<else>>
<<set $newFit = 249>>
<</if>>
<<else>>
<<if $player.body.tits === 13>>
<<set $newFit = 463>>
<<else>>
<<set $newFit = 29>>
<</if>>
<</if>>
<<genFit $newFit>>
<<replace "#repCont">>
<img @src="$clothingObj.image" height="600rem">
<br><br>
The pickings are slim and you don't get a lot of choice so you only find one outfit that you'd be willing to wear out in public. Only problem is the pants don't have pockets! In order to wear this you'll need to find something to carry your personal belongings.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Put it back and figure something else out" "FairhavenCommons">>
<<addSecs 15>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Look for a backpack">>
<<genPurse 3>>
<<replace "#repCont">>
<img @src="$clothingObj.image" height="600rem">
<br><br>
You hold up the pink backpack and
<<if $player.mentalFem >= 50>>
smile at how cute it is. This will work perfectly to hold your items.
<<else>>
wrinkle your nose at how girly it is -- this is clearly a purse and it will make it that much harder for you to convince people you're a guy -- or at least not a crossdresser -- while carrying it. But it doesn't appear as if you have much of a choice.
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<run $dreamsArr.push('Purse Dream')>>
<<button "Just...no. You can't do it." "FairhavenCommons">>
<<addSecs 15>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Put on your new outfit">>
<<genFit $newFit>>
<<set
$player.wardrobe.addItem($clothingObj);
$player.statBuffs.femBuff += 1;
$player.statBuffs.sub += 1;
>>
<<genPurse 3>>
<<set
$player.wardrobe.addItem($clothingObj);
$player.statBuffs.femBuff += 2;
$player.statBuffs.sub += 1;
>>
<<set $pickedFit = {
bra: 0,
bracelet: 0,
coat: 0,
earrings: 0,
fit: $newFit,
panties: 0,
purse: 3,
ring: 0,
shoes: 0
}>>
<<if $player.body.gender != 'Female'>>
<<set $wardLoc = 'Bathroom'>>
<<set $homeBath = true>>
<<set $bathType = 'Private'>>
<<set $bathLoc = 'FairhavenHall'>>
<<set $bathImg = 'Media/Locations/Downtown/Fairhaven/sharedBath1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = '<div class="badText">You moved to the bathroom to change in private.</div><br><br>A simple room providing the basic necessities for a group of young women. There are shower stalls along the far side of the room, a handful of toilets opposite them, and a row of sinks along the wall as soon as you enter.'>>
<<addMins 5>>
<<else>>
<<set $wardLoc = 'FairhavenCommons'>>
<<addMins 3>>
<</if>>
<<wearFit $pickedFit>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<<else>>
<<replace "#repCont">>
<b><font size="10em">Fairhaven Common Room</font></b>
<br>
<img src='Media/Locations/Downtown/Fairhaven/donationbin1.webp'>
<br><br>
You don't find anything of particular interest
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonConainer">
<<button "Step back" "FairhavenCommons">>
<<addSecs 10>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step back" "FairhavenCommons">>
<<addSecs 5>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<<if $gameDate.getHours() > 14 and $gameDate.getHours() < 18>>
<<set _tmpVal = ['FHBedroom']>>
<<addNPC $npc_1 _tmpVal 'JuliaEngine'>>
<<else>>
<<purgeNPC $npc_1.dna>>
<</if>>
<center>
<b><font size="10em">Fairhaven Bedroom</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/sharedRoom1.webp" height="450rem" >
<br>
The room looks almost like it belongs in a prison. Bunkbeds line the walls with lockers placed in between them. You can see some scattered personal belongings surrounding some of the beds, you must not be the only person staying here right now. You can see various stacks of magazines spread out through the room, like the clothes probably left here for future girls.
<br><br>
<<if $player.outfit.fit != 0 and $player.wardrobe.items.some(obj => obj.type === 'Fit' and obj.sku == $player.outfit.fit) and $player.wardrobe.items.find(obj => obj.type === 'Fit' and obj.sku == $player.outfit.fit).stats.fitSoil >= 7>>
<<if $player.wardrobe.items.filter(obj => obj.type === 'Fit' and obj.stats.fitStyle === 'Casual').length < 2 and !$player.questTracker.some(obj => obj.idx === 'MoreFits')>>
<<run $player.questLog.addQuest('MoreFits','You need more than just one or two outfits. Go to the mall and buy more clothes; or maybe take your chance with the donation bin.')>>
<<set $player.questTracker.push({idx: 'MoreFits',level:1})>>
<div class="badText">You should find more outfits to wear, what you have is not enough to stay clean</div>
<br>
<</if>>
<</if>>
<<if $NPCList.some(function (obj) { return obj.dna === $npc_1.dna; })>>
<<if $npc_1.relationship === 0>>
<b>You see a woman with long silken blond hair sitting on one of the beds. She's not exactly ignoring you, but she's not setting out the welcome mat either.</b>
<</if>>
<</if>>
<<homeActions>>
<<getCurrNPCs 'FHBedroom'>>
</center>
<hr>
<div id="actionsContainer">
<<if $isMaid>>
<<set $maidLoc = passage()>>
<<getMaidActs $maidLoc>>
<</if>>
<<bedroomActions>>
<div class="buttonContainer">
<<button "Leave the room">>
<<set _tmpVal = passage()>>
<<preFlightCheck _tmpVal 'FairhavenHall' .5>>
<</button>>
<<button "Go downstairs">>
<<set _tmpVal = passage()>>
<<preFlightCheck _tmpVal 'FairhavenLobby' 1>>
<</button>>
<<button "Go outside">>
<<if $isMaid>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You should finish cleaning first.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<set _tmpVal = passage()>>
<<preFlightCheck _tmpVal 'Downtown' 2>>
<</if>>
<</button>>
</div>
</div><center>
<img src="Media/Exercise/Hula/hulaHoop1.webp">
<br><br>
Just your standard plastic hoop filled with a little bit of sand to increase the fun.
<span id="repCont"></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Give it a try">>
<<if $player.stamina > 30>>
<<set $returnLoc = 'FairhavenCommons'>>
<<exerciseImpact 'Cardio' 10>>
<<set $player.statBuffs.hips += 1>>
<<goto "HulaHoop">>
<<else>>
<<replace "#repCont">><br><div class="badText">You don't have the energy for that right now.</div><</replace>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step back" 'FairhavenCommons'>>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<img src="Media/Exercise/Jumprope/rope1.webp">
<br><br>
A long strand of old rope attached to two wooden handles; even as old jump ropes go this one is pretty threadbare.
<span id="repCont"></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Give it a try">>
<<if $player.stamina > 30>>
<<set $returnLoc = 'FairhavenCommons'>>
<<exerciseImpact 'Cardio' 10>>
<<set $player.statBuffs.hips += 1>>
<<goto "Jumprope">>
<<else>>
<<replace "#repCont">><br><div class="badText">You don't have the energy for that right now.</div><</replace>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step back" 'FairhavenCommons'>>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<b><font size="10em">Fairhaven Shelter Front Desk</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/deskClerk1.webp" height="450rem" >
<br>
<span id='repCont'>
<<if $npc_3.relationship === 0>>
The man behind the desk instantly gives you creepy vibes as soon as you lay eyes on him. He looks almost deathly ill with unwashed skin and hair -- if you saw him out on the street you would have assumed he was an unemployed bum living in an alley. You can feel his eyes crawl up your body as you approach and you can't help but let a small shiver run up your spine.
<br><br>
Still, you don't see anyone else in the lobby so it looks he's it if you want to stay here.
<<else>>
<<if $player.presenting === 'Female'>>
<<print $npc_3.firstName>> nods his withered head at you as you step up to his desk. You can smell the whiskey that is always wafting on his breath and you can't remember the last time you saw him wear different clothes. Sometimes you think he's been rooted to his stool like a tree and is just rotting away behind the desk, stuck there for the rest of time.
<<else>>
<<if $player.questTracker.some(item => item.idx === 'ManSus')>>
<<set $player.questTracker.find(item => item.idx === 'ManSus').level += 2>>
<div class="badText">$npc_3.firstName narrows his eyes as you approach, letting him see you this close while looking like this can't be good!</div>
<</if>>
<</if>>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $home.name != 'Fairhaven' and !$bannedHomes.includes('Fairhaven')>>
<<button "Ask about getting a room">>
<<if !$usedHomes or !$usedHomes.includes('Fairhaven')>>
<<replace '#repCont'>>
The man just stares at you for a moment through milky blood-shot eyes and you start to wonder if he's even alive. Then he slowly extends one finger and presses a button on the side of the desk and you can hear a buzzer somewhere deeper in the building. A few moments later a door opens and a rather normal looking business woman greets you.
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue" "ScogginsGreet">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</replace>>
<<else>>
<<if $player.presenting === 'Male'>>
<<replace '#repCont'>>
<div class="badText">
$npc_3.firstName blinks slowly and then taps the "Women only" sign on the wall next to his shoulder.
</div>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Step back" "FairhavenLobby">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<<else>>
<<replace '#repCont'>>
$npc_3.firstName licks his lips with a thick dry tongue as his eyes crawl over you. "You know the drill. But no free-stay this time. Welcome back, $player.firstName."
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Step back" "FairhavenLobby">>
<<moveOut $home.name>>
<<set _tmpHome = ['Downtown','Fairhaven','FHBedroom',25,$gameDate.getTime()]>>
<<moveIn _tmpHome>>
<<set $home.lastRentDay = $currJulianDate - 2>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</if>>
<</if>>
<</button>>
<<else>>
<<if $home.name === 'Fairhaven' and ($home.lastRentDay < $currJulianDate - 1 or ($home.lastRentDay === $currJulianDate -1 and $gameDate.getHours() >= 12))>>
<div class="buttonContainer">
<<set _tmpQst = $player.questTracker.find(item => item.idx === 'FHDiscount')>>
<<if !(_tmpQst)>><<set $player.questTracker.push({idx: 'FHDiscount',level:1})>><</if>>
<<set _tmpQst = $player.questTracker.find(item => item.idx === 'FHDiscount')>>
<<if $player.money >= $home.rent>>
<<button "Pay your rent">>
<<if _tmpQst.level < 3>>>
<<set _tmpQuest.level += 1>>
<</if>>
<<if _tmpQuest.level != 5 or ($player.body.tits === 0 or $player.presenting !== 'Female')>>
<<set $player.money -= $home.rent>>
<<set $home.lastRentDay = clone($currJulianDate)>>
<<addMins 2>>
<<replace '#repCont'>>
You pay the fee without making eye contact with him, trying to do everything you can to speed up this interaction and get going.
<<if _tmpQuest.level === 3 and $player.body.tits > 0 and $player.presenting === 'Female'>>
<br><br>
This whole time you could feel Jeffory's eyes crawling over your body and so you almost jump when he croaks out "Time's are tough, right? Maybe we could help make things easier for each other. Save you some cash, interested?"
<br>
You cock your head to the side as you replay his statement -- is he offering you a discount on rent or something?
<</if>>
<</replace>>
<<replace '#actionsContainer'>>
<<if _tmpQuest.level === 3 and $player.body.tits > 0 and $player.presenting === 'Female'>>
<div class="buttonContainer">
<<button "Ask what he means" "FHDiscountOffer">>
<<addMins 2>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step back" "FairhavenLobby">>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<<else>>
<<set _tmpQst.level = 6>>
<<replace '#repCont'>>
You hand Jeffory $10 for the day but he just raises his eyebrow while his eyes zero in on your <<descTits $player>> chest again he doesn't make a move to take the money. You shake your hand a little and move it forward some more as if to say "Here, take it". Jeffory sucks on his teeth and squints at you through his red puffy eye-lids.
<br><br>
"Now, the agreement I remember," he pauses to clear his throat and when he starts up again his voice is slightly less gravely. "It's $10 per day -- *if* you show me your tits!"'
<br><br>
You wrinkle your face in confusion <<if $player.inhib > 60>>and your cheeks flush red at the embarrassing memory. You harshly,<<else>>. You hesitantly <</if>> remind him that you already did that and you again brandish the $10 in your hand.
<br><br>
Jeffory looks down at the $10 in your hands and then back up to your tits, "You have to do it each time you want the discount, girl." His face hasn't changed but you can sense a distaste in his tone. He clearly doesn't like repeating himself. You roll back in your memory to try and see if that's what he said last time, but don't recall that specific rule. You can tell Jeffory's getting impatient and he can throw you out on your ass at any minute. Better make up your mind quick.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $player.money >= $home.rent>>
<<button "Pay the full amount" "FairhavenLobby">>
<<set $player.money -= $home.rent>>
<<set $home.lastRentDay = clone($currJulianDate)>>
<</button>>
<</if>>
<<if $player.body.tits > 0 and $player.presenting === 'Female'>>
<<button "Get the discount" "TittyFlash">>
<<calcArousal 'flash' $player.exhib/10 1>>
<<set $npc_3.relationship += 1>>
<<set $returnLoc = 'PostFHDiscount'>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Leave the counter" "FairhavenLobby">>
<<addSecs 20>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
<</if>>
<<if $player.body.tits > 0 and $player.presenting === 'Female'>>
<<if _tmpQst.level > 5 and ($player.money < $home.rent or $player.exhib > 20 or $player.slutLevel > 0)>>
<<button "Get the discount" "TittyFlash">>
<<if _tmpQst.level < 8>>
<<set _tmpQuest.level += 1>>
<</if>>
<<calcArousal 'flash' $player.exhib/10 1>>
<<set $npc_3.relationship += 1>>
<<set $returnLoc = 'PostFHDiscount'>>
<</button>>
<</if>>
<<if _tmpQuest.level === 10 and ($player.money < 10 or $player.exhib > 30 or $player.slutLevel > 2)>>
<<button "Get in free" "TittyGrope">>
<<if _tmpQst.level < 8>>
<<set _tmpQuest.level += 1>>
<</if>>
<<calcArousal 'flash' $player.exhib/10 1>>
<<calcArousal 'grope' $player.exhib/10 1>>
<<set $npc_3.relationship += 1>>
<<set $returnLoc = 'PostFHDiscount'>>
<</button>>
<</if>>
<</if>>
<<if _tmpQuest.level < 10 and (($player.money < $home.rent and _tmpQst.level < 4) or ($player.money < 10 and _tmpQst.level >= 5)) or ($player.exhib > 30 and $player.dom > 40)>>
<<button "Tell him you don't have enough cash">>
<<addMins 2>>
<<replace '#repCont'>>
Jeffory leers down at you from his higher position perched behind the desk and you can feel his eyes slide across your body. "Can't pay, can't stay. Don't care what's in your bank account -- cash only here." he croaks out in his gravely sick-sounding voice.
<<if _tmpQuest.level > 1 and _tmpQuest.level < 6 and $player.body.tits > 0 and $player.presenting === 'Female'>>
<<set _tmpOffer = true>>
<br><br>
But then his cracked dry lips spread into what he must think is a smile and he says "Time's are tough, right? Maybe we could help make things easier for each other. Save you some cash, interested?"
<br>
You cock your head to the side as you replay his statement -- is he offering you a discount on rent or something?
<</if>>
<<if _tmpQst.level >= 6>>
<<set _tmpOffer = true>>
<br><br>
<<if _tmpQst.level !== 9>>
<<set _tmpQst.level = 9>>
"But..." he draws out a pause "maybe if you want to give me a little extra, I could give you a little extra - so to speak."
<<else>>
"Maybe you want to reconsider my other offer?" He asks in a tired deadpan voice.
<</if>>
<</if>>
<br><br>
<</replace>>
<<replace '#actionsContainer'>>
<<if _tmpOffer>>
<div class="buttonContainer">
<<button "Ask what he means" "FHDiscountOffer">>
<<if $player.questTracker.find(item => item.idx === 'FHDiscount').level <= 3>>
<<set $player.questTracker.find(item => item.idx === 'FHDiscount').level = 4>>
<<else>>
<<set $player.questTracker.find(item => item.idx === 'FHDiscount').level = 9>>
<</if>>
<<addMins 2>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step back" "FairhavenLobby">>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<</if>>
<</if>>
</div>
<<if $home.name === 'Fairhaven' and $home.lastRentDay <= $currJulianDate>>
<div class="buttonContainer">
<<button "Move out of Fairhaven">>
<<moveOut 'Fairhaven'>>
<<replace "#repCont">>
$npc_3.firstName simply nods his head once, that's apparently all it takes to move out.
<br><br>
<b>You are no longer a resident at Fairahaven.</b>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Step back" "FairhavenLobby">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step back" "FairhavenLobby">>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<b><font size="10em">Fairhaven Shelter Front Desk</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/deskClerk1.webp" height="450rem" >
<br>
<span id='repCont'>
<<if $player.questTracker.find(item => item.idx === 'FHDiscount').level < 4>>
/* show dem titties */
You hear a soft sound like sandpaper as his dry tongue snakes out to lick his lips, without getting them any wetter. There's a heat in his eyes you hadn't noticed before.
<br>
"Show me them titties, and I'll knock your rent down to $10 a day." he finally croaks out as if the he couldn't get the words out fast enough.
<br>
You stand there for a moment, not showing any reaction at all to his offer as your brain processes through the information.
<<if $currJulianDate < 2460878>>This isn't something you ever ran into before this whole mess started. What do women do in these situations?<<else>> This isn't all-together that surprising, really. You've only been experiencing life from a feminine view for a little while but you've already ran into this kind of overt sexism before.<</if>>
<br><br>
On the one hand, you should object to being coerced and used like this -- but on the other hand you'd be saving $15 each day just to give this old man a quick ogle at your tits one time. That might mean the difference between sleeping in a bed and sleeping on the streets. And with the money you save you could move out of here that much quicker.
<<elseif $player.questTracker.find(item => item.idx === 'FHDiscount').level <= 9>>
/* grope them titties */
"I'll waive the entire daily charge if you let me feel those titties of yours." He says, staring at you completely dead faced.
<br><br>
<<if $player.expo >= 3>>
You can't help the smile that spreads across your lips, getting your titties groped *and* getting paid for it? That sounds delicious.
<<else>>
<<if $player.slutLevel > 2>>
You bite your lip as a sudden rush of alien feelings run through your body -- you know this is wrong if anything it being wrong just makes it even hotter!
<<else>>
Your momentary hope that he's joking quickly fades, he's dead serious so it looks like you have to make a choice.
<</if>>
<</if>>
<br><br>
"So, how about it?" he says as if he's asking if you want a turn down service. "Lemme grope them titties once a day and you can come and go as you please!"
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.money < $home.rent or $player.inhib < 80 or $player.slutLevel > 1>>
<<button "Agree">>
<<if $player.questTracker.find(item => item.idx === 'FHDiscount').level < 4>>
<<set $player.questTracker.find(item => item.idx === 'FHDiscount').level = 4>>
<<replace "#repCont">>
You swallow hard as you nod your head, agreeing to show him your tits in exchange for a reduced daily rent. After all, showing your chest was no big deal back when you were a full-fledged man, right?'
<br><br>
Jeffory smiles wide and rubs his hands together. "Excellent," he says and you try to not picture a snake when he does it. "And since youre so agreeable, this time Ill waive the full daily amount. But dont expect that again!" He grins again and his eyes stay glued to your chest, his lips puckering and quivering slightly as he waits for you to start.
<</replace>>
<<else>>
<<set $player.questTracker.find(item => item.idx === 'FHDiscount').level = 9>>
<<replace "#repCont">>
You nod your head in agreement, already reaching to pull your shirt up to fullfill your end of the deal.
<</replace>>
<</if>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<set $npc_3.relationship += 1>>
<<if $player.questTracker.find(item => item.idx === 'FHDiscount').level === 4>>
<<calcArousal 'flash' $player.exhib/10 1>>
<<set $returnLoc = 'PostFHDiscount'>>
<<goto "TittyFlash">>
<<else>>
<<set $player.questTracker.find(item => item.idx === 'FHDiscount').level = 10>>
<<calcArousal 'flash' $player.exhib/10 1>>
<<calcArousal 'grope' $player.exhib/10 1>>
<<set $returnLoc = 'PostFHDiscount'>>
<<goto "TittyGrope">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<button "Refuse">>
<<addMins 1>>
<<replace "#repCont">>
You straighten your back, which coincidentally pushes your tits out a little further -- something that Jeffory apprently likes -- and turn your back to walk away. You hear him mumble something about ungrateful bitches but you pay it no mind. You'll never be so low that doing something like that will be even a consideration!
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Leave the desk" "FairhavenLobby">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $home.lastRentDay = clone($currJulianDate)>>
<center>
<b><font size="10em">Fairhaven Shelter Front Desk</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/deskClerk1.webp" height="450rem" >
<br>
<span id='repCont'>
Jeffory grins widely and tips an imaginary hat while his dry tongue drags itself across his wrinkled and chapped lips.
<br><br>
<<if $player.questTracker.find(item => item.idx === 'FHDiscount').level === 4>>
<<set $player.money += $home.rent>>
"No charge today as I said. Think of it as my own show of appreciation" he adds with a degrading wink.
<<elseif $player.questTracker.find(item => item.idx === 'FHDiscount').level < 9>>
But still he holds out a hand "That'll be $10, then."
<</if>>
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="button Container">
<<button "Continue" "FairhavenLobby">>
<<if $player.questTracker.find(item => item.idx === 'FHDiscount').level === 4>>
<<addSecs 10>>
<<set $player.questTracker.find(item => item.idx === 'FHDiscount').level = 5>>
<<else>>
<<if $player.questTracker.find(item => item.idx === 'FHDiscount').level < 9>>
<<addMins 2>>
<<set $player.money -= 10>>
<</if>>
<</if>>
<</button>>
</div>
</div><center>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
<<if $player.presenting === 'Female'>>
"Hi there, I'm Ms. Scoggins and I'm the director here. I take it you are interested in staying here for a few days? Please follow me and we'll get you sorted."
<br><br>
You glance back at the near-corpse behind the desk but he doesn't look like he's moved an inch since he pressed the call button. You can either follow this woman or head back out and find lodging elsewhere.
<<else>>
"Hi there, I'm Ms. Scoggins and I'm the director here. I take it you are interested in staying here for a few days?" She openly lets her eyes trail over you, as if taking your measure and not liking what she sees.
<br><br>
"I'm afraid that won't be possible. You see, this is a shelter for at-risk women. I'm sure you can find a male shelter elsewhere in the city." she says as she gently escorts you to the door.
<br><br>
<font color="red"><b>If you don't think fast you're going to be booted out on the street!</b></font>
<</if>>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.presenting === 'Female'>>
<<button "Continue" "FH_Int_1">>
<<addSecs 5>>
<</button>>
<<else>>
<<button "Claim to be a girl">>
<<goto 'FairFemHand'>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Leave" "Downtown">>
<<addMins 1>>
<</button>>
</div>
</div><<if $player.mentalFem <= 20>><<set $player.mentalFem = 21>><</if>>
<<set $forceFem = [{source:'Fairhaven',end: ($currJulianDate + 7)}]>>
<<calcGender>>
<div id='repContainer'>
<center>
<video autoplay loop src="Media/Transformation/Hand/change.mp4" height="450rem"></video>
<br><br>
As you make the claim that you really are, in fact, a woman you feel a strange tingling sensation rush over your skin.
<br><br>
You happen to glance down at your hand just in time to a subtle but distinct shift. Somehow you just physically changed towared a more feminine appearance!
<br><br>
Was that caused by you deciding to claim to be a woman, or was the timing a coincidence?
</center>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace '#repContainer'>>
<center>
<<if $player.mentalFem < 40>>
<img src="Media/Self/Reflection/F/White/firstView.webp" height="450rem">
<br><br>
You catch a reflection of yourself in a nearby pane of glass and your stomach siezes when you see an undeniably feminine reflection! For a moment your heart beat thumps deafeningly loud in your ears and the world seems to squeeze in around you. Then right when you think you're about to pass out it snaps back to normal.
<br><br>
You pull yourself away, hearing Ms. Scoggin's voice still pratteling on. "Why yes, of course you are. I just thought -- well I don't know what I thought." she says with a wave of her hand, as if shooing away an annoying fly. "Please, come with me this way and we can talk about our requirements for living here."'
<br><br>
She either didn't see your transformation, or she just assumes she mistook you intially -- either way she seems to accept that you're a woman now. During a discreet moment with Ms. Scoggins glances away you do a quick pat-check and verify that you do still have a cock.
<<else>>
<img src="Media/Self/Reflection/F/White/firstView_alt.webp" height="450rem">
<br><br>
You catch a reflection of yourself in a nearby pane of glass and it just confirms what you already know. You take a moment to study your new appearance with a clinical eye, noting that you can still feel your cock between your legs, and then turn back toward Ms. Scoggins.
<br><br>
"Why yes, of course you are. I just thought -- well I don't know what I thought." she says with a wave of her hand, as if shooing away an annoying fly. "Please, come with me this way and we can talk about our requirements for living here."'
<br><br>
She either didn't see your transformation, or she just assumes she mistook you intially -- either way she seems to accept that you're a woman now.
<</if>>
</center>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttContianer">
<<button "Follow her" "FH_Int_1">>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Downtown/Fairhaven/interview1.webp" height="450rem">'
<br><br>
You sit down with the Fairhaven Director and inquire about staying at the center and give some cover story of being a runaway from an abusive foster family, now on your own in a strange city and you just need a place to stay while you figure out what to do next. You also hint that it would be bad if they tried to contact your foster parents -- that should keep anyone from digging too deeply into your non-existent past.
<br><br>
"We do have some space available, and from the sound of it you're exactly the sort of woman we're aiming to help." she says, getting out some paperwork to record your information.
<br><br>
<<if $player.mentalFem < 40>>
You cringe inwardly at the 'woman' reference, damn that Fortune Teller! You simply have to find some way out of this mess as fast as possible.
<<elseif $player.mentalFem < 60>>
You barely register the 'woman' reference, you've gotten used to it by now. You're still not sure how you feel about it, but it no longer makes you pause.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "FH_Int_2">>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Downtown/Fairhaven/interview1.webp" height="450rem">
<br><br>
"There are just a few ground rules we need to cover. First; you only get 1 week free here, after that you need to either start paying $25.00 per day or move out so we can keep room open for other at-need individuals."
<br><br>
"Second, this place isn't co-ed -- so no overnight boy guests. Repeated violation will result in being kicked out."
<br><br>
<<if $player.mentalFem < 40>>
Her words fall like heavy weights on your back. In order to stay here you have to keep up the act of being a woman 24/7, is that something you can do full-time? At least maybe you can be normal in your own room where you'd have some privacy.
<<if $player.body.gender === 'Female'>>
Sure, you don't have a dick anymore but that doesn't mean you're still not a man inside. Is it worth it?
<</if>>
<<elseif $player.mentalFem < 60>>
You nod your head, agreeing with her as she lists the house rules.'
<<if $player.body.gender === 'Female'>>
Sure, you don't have a dick anymore but that doesn't mean you're still not a man inside. Is it worth it?
<<else>>
You'll have to be careful that none of the other girls see your <<descDick $player>> dick.
<<if $player.body.cock < 4>>
As small as it is, they might even mistake it for a larger than normal clitoris.
<<else>>
No erections around the other woman, your dick will be unmistakable when fully hard.
<</if>>
<</if>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "FH_Int_3">>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Downtown/Fairhaven/interview1.webp" height="450rem">
<br><br>
She had kept talking while you were thinking to yourself but you missed anything she might have said. She now has an expectant look on her face as if she's waiting for you to decide.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Nod your head and agree to stay at the shelter" "FH_Int_4">>
<<addSecs 5>>
<</button>>
</div>
<div class="buttonContainer">
<<button "No way - get out of here while you can" "Downtown">>
<<unset $forceFem>>
<<addSecs 30>>
<</button>>
</div>
</div><<set $player.statBuffs.femBuff += 5>>
<center>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
She smiles at you and stands up "Excellent, then follow me to you'll be sleeping."
<br><br>
"Oh, one last thing. We have strict hygiene rules here. If we catch you sleeping in bed in your street clothes you will be banned from the premises. We've had more than one girl bring in lice and vermin on outside clothes so we have a zero tolerance policy. Each night you are to put your clothes from the day in the laundry basket so they can be collected for washing the next day. If you don't have any PJs or nightgowns you can look in the donation bin provided for this exact reason. I'm sure you'll be able to find something in there. Now, please follow me."
<br><br>
Great, the hits just keep on coming. What sort of sleeping gear are you going to find in an all-girls halfway house? You shake your head to dispel the thoughts and stand up to move as she leads you back to through lobby.
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "FH_Walkthrough_1">>
<<addSecs 5>>
<</button>>
</div>
</div><<set _tmpLocArr = ['Fairhaven','FH_Walkthrough_1','FH_Walkthrough_2','FH_Walkthrough_3']>>
<<addNPC $npc_4 _tmpLocArr 'NoLink'>>
<<set $npc_3.relationship = 1>>
<center>
<img src="Media/Locations/Downtown/Fairhaven/lobby1.webp" height="450rem" >
<br><br>
"You've already met Jeffory," she says as she waves a hand at the creepy old man behind the front desk. "See him if you need anything, he's always here. And if you do stay past your week he'll be the one to collect your money."
<br><br>
Ms. Scoggins waves her hand dismissively again, as if anticipating your reaction. "Oh I know it might seem strange to have a man working the desk at a women's shelter." she says. "But I assure you he's harmless. He more or less came with the building and not a single girl who has stayed behind these walls has said a negative thing about him. You'll get used to him, I'm sure. Let's move upstairs".
<<getCurrNPCs 'FH_Walkthrough_1'>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Follow her upstairs" "FH_Walkthrough_2">>
<<addSecs 30>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Downtown/Fairhaven/hallway.webp" height="450rem">
<br><br>
At the top of the stairs you see a plain non-descript hallway stretching off in front of you. There are doors spaced at regular intervals all down its length and you can hear different sounds coming from behind some of them, but it's impossible to say what they are.
<br><br>
Ms. Scoggins stops and folds her hands together at her waist, "This is the main hallway," she says this as if she's rehearsed it a thousand times. "Space is limited here so you have to share the facilities. Down this hall you will find the shared bathroom, a common area, some study rooms, and the kitchen - we stock it with basic food stuffs but you have to prepare your own meals. Please try to keep this place clean on your own, your mother isn't here to clean up after you. Follow me to your living quarters."
<<getCurrNPCs 'FH_Walkthrough_2'>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "FH_Walkthrough_3">>
<<addSecs 30>>
<</button>>
</div>
</div><center>
<<set _tmpLocArr = ['FHBedroom',"FH_Walkthrough_3"]>>
<<addNPC $npc_1 _tmpLocArr 'JuliaEngine'>>
<img src="Media/Locations/Downtown/Fairhaven/sharedRoom1.webp" height="450rem">
<br><br>
Ms. Scoggins opens one of the doors in the hallway and gestures you inside but she stays outside the doorway instead of following you in.
<br><br>
"This is where you'll be sleeping while you're with us. There are a couple of other girls here as well so you will probably see them there eventually. That bunk there against the wall and the locker next to it are yours, keep your things put away when you're not using them." She says as she points around the room from out in the hallway.
<br><br>
"The rest I'm sure you will figure out, and I need to get back to file your paperwork. See Jeffory if you have any questions."
<br><br>
You look around at the communal living space and <<if $player.body.gender != 'Female'>>feel a chill run up your spine. You don't have a private living space so you'll have to keep up the woman disguise full-time!<<else>>wonder what it will be like living with other women for a while.<</if>>
<<getCurrNPCs 'FH_Walkthrough_3'>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "FH_Walkthrough_4">>
<<addSecs 30>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Downtown/Fairhaven/lastChat.webp" height="450rem">
<br><br>
She stops you right as you turn to walk away.
<br><br>
"One last thing, <<print $player.firstName>>, if you're looking to make some money to move out of here I can give you two pieces of advice. First is that the restaurant Hooters down the block is hiring and that the AMI Labs offers paid trials for their new experiments.." She pauses to cast a more piercing gaze over you for a second.
<br><br>
"And the second thing I'll say is don't go for the easy cash. Waitressing might not be glamorous, but you don't know what they're doing up in that lab."
<br><br>
And on that note she promptly turns on her heels and walks off down the hallway, leaving you somewhat bewildered at her warning.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Check out your new room" "FHBedroom">>
<<set _tmpHome = ['Downtown','Fairhaven','FHBedroom',25,$gameDate.getTime()]>>
<<moveIn _tmpHome>>
<<set $home.lastRentDay = $currJulianDate + 7>>
<<purgeNPC $npc_4.dna>>
<<addSecs 30>>
<</button>>
</div>
</div><<if $player.presenting === 'Female'>>
<center>
<<set _tmpImg = 'Media/Social/Chat/Livingroom/FF/Platonic/' + random(1,7) + '.webp'>>
<img @src="_tmpImg" height="450rem">
<br><br>
<span id="repCont">
<<switch random(1,9)>>
<<case 1>>
She's been bouncing around from foster home to foster home for the past several years. But once she hit 18 she moved out on her own, this place is just a pit-stop while she saves money for a better apartment. Despite her experiences she seems bright and outgoing, maybe a touch overly friendly.
<<case 2>>
She left a pretty abusive situation at home just recently. Fairhaven saved her from living on the streets and she couldn't be happier.
<<case 3>>
Although she seems polite and friendly you don't learn much aside from her name.
<<case 4>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> used to work in a pediatric ICU before a car accident left her with chronic pain and a dependency on prescription meds. After losing her job and housing, she came to the shelter to get clean and start fresh. She's fiercely protective of the younger women and often shares medical tips and gentle encouragement.
<<case 5>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> is <<print $NPCArray.find(npc => npc.dna == $currDNA).age>> and left college after her mental health spiraled during a toxic relationship with a professor. She's witty, guarded, and always has earbuds in, listening to podcasts about philosophy and feminism. She's trying to figure out who she is without the pressure of academic achievement.
<<case 6>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>, <<print $NPCArray.find(npc => npc.dna == $currDNA).age>>, escaped her controlling household after giving birth to her son. She's fiercely independent and has a quiet determination to build a stable life for her child, even if she's still figuring out how. She spends her evenings researching housing programs and writing letters to her son's future self.
<<case 7>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> came to the shelter after being evicted from the apartment she shared with unreliable roommates. She used to work in a trendy restaurant and dreams of opening her own food truck one day
<<case 8>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> is an avid reader and spends most of her free time at the local library. She's passionate about social justice and often volunteers at community events.
<<case 9>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> has a knack for fashion and often customizes her clothes to express her unique style. She's considering enrolling in a design course once she saves enough money.
<</switch>>
<br><br>
<<switch random(1,8)>>
<<case 1>>
"Have you ever been to the park in the Business District at sunset? It's so beautiful!"
<<case 2>>
"OMG, I got the cutest outfit at the mall yesterday! Remind me to show it to you later."
<<case 3>>
"I love going to the movie theater at the top of the mall."
<<case 4>>
"Watch out for those AMI trials -- I hear they can really mess you up if things go wrong."
<<case 5>>
"I got totally wasted and lost all my money at the Golden Nugget Casino last night!"
<<case 6>>
"I've been thinking of visiting the law firm in the Anderson Building over in the Business District to change my name. A new name might just shake things up!"
<<case 7>>
/*
if fightClub = 0: fightClub = 1
if pendantQuest > 0:
if arrpos('$pendPaths','fightClub') = -1: $pendPaths[] = 'fightClub'
$tmpTxt = 'You need to find someway into the St Timothy's archives. '
if arrpos('$pendPaths','alterBoy') ! -1: $tmpTxt += ' Perhaps you can disguise yourself as an altar boy and walk right in.'
if arrpos('$pendPaths','fightClub') ! -1: $tmpTxt += ' There's a Fight Club in the basement on Friday nights at 9pm, maybe you can use that.'
gs 'JournalLogs','AddQuest','MagicMansion',$tmpTxt
end
*/
"Be careful around St. Timothy Church in the University District -- I hear they have a Fight Club in the basement! What kind of church does that?"'
<<case 8>>
"There's a pretty cool costume shop in the Red Light district. You should check it out."'
<<if $player.questLog.items.some(quest => quest.idx == 'ManSus')>>
<<set $player.questlog.addQuest('ManSus','There\'s a costume shop in the Red Light district that might have something to help you with $npc_6.firstName\'s suspicions about you.')>>
<<elseif !$player.questTracker.find(item => item.idx === 'CostumeShoppe')>>
<<set $player.questTracker.push({idx:'CostumeShoppe',level:0})>>
<</if>>
<</switch>>
</span>
</center>
<<else>>
<div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div>
She gives you a sus look and then shakes her head and turns away from you, clearly not interested in conversation.
</div>
</div>
<</if>>
<hr>
<div id="actionsContainer">
<<set _tmpQuest = $player.questTracker.find(item => item.idx === 'ItchyNips')>>
<<if _tmpQuest and _tmpQuest.level > 4 and $player.presenting === 'Female' and !($player.questTracker.find(obj => obj.idx === 'BreastCream'))>>
<div class="buttonContianer">
<<button "Ask <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> about itchiness ">>
<<replace "#repCont">>
"Oh god yes! This place has the worst sheets!" she says.
<br><br>
"You need to wear some proper sleepwear at night to prevent that from happening. But once your nips <b>do</b> start to itch the only sure-fire cure is this stuff called 'Honeydew Cream' over at Safeway. Shit is a lifesaver!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<run $player.questLog.addQuest('ItchyNips','You need some Honeydew cream from Safeway to cure your itchy nipples problem')>>
<<addSecs 10>>
<<goto $returnLoc>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 10>>
<<goto $returnLoc>>
<</button>>
</div>
</div><center>
<span id='repCont'>
<b><font size="10em">Fairhaven Shelter for Women</font></b>
<br>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
"Ms. $player.lastName, I'm afraid you have to come with me." Ms. Scoggins says in a very grave and serious tone.
<br><br>
"There's been a report against you that the board is taking very seriously. A review has been called and they're waiting for you now."
</div>
</div>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class='buttonContainer'>
<<button "Follow her to the conference room" "FHReviewBoard">>
<<addMins 4>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/Fairhaven/boardMeeting' + random(1,3) + '.webp'>>
<center>
<b><font size="10em">Fairhaven Review Board</font></b>
<br>
<img @src="_tmpImg" height="500rem">
<br><br>
<span id='repCont'>
<<if $FHReport.contains('GenderBender') or $FHReport.contains('ManSus')>>
<<set $FHBootReason = 'GenderBender'>>
Ms. Scoggins calls the meeting to order and down at her desktop for a moment before continuing, "We have it on good authority that you are not what you claim to be. That you are, in fact, what this very institution was built to protect these women against -- a Male Sexual Predator!"
<br><br>
<<if $player.presenting === 'Male'>>
<div class="badText">A few of the other board members nod and mumble in agreement and you can't help but feel your current appearance is not helping your side.</div>
<<else>>
<div class="goodText">A few of the other board members frown and lean forward, clearly unconvinced of the charges - you certainly don't <b>look</b> like a male sexual predator</div>
<</if>>
<<elseif $FHReport.contains('MaidTheft')>>
<<set $FHBootReason = 'MaidTheft'>>
Ms. Scoggins quikly outlines the evidence - multiple reports of missing money since your tenure as the official Maid. And the nail in the coffin is the wad of cash $npc_3.firstName reported finding on you.
<</if>>
<br><br>
"Do you have anything to say for yourself?" She asks, staring down her nose at you. Clearly her mind is already made up.
</span>
</center>
<hr>
<div id="actionsContainer">
<<switch $FHBootReason>>
<<case "GenderBender">>
<<if $player.body.gender === 'Female'>>
<div class="buttonContainer">
<<button "Deny the allegations">>
/* will need proof */
<<replace "#repCont">>
You square your shoulders and raise your head up high as you deny the allegations against you. I mean, what are they going to do...check?
<br><br>
Ms. Scoggins just nods and motions the other board members out of the room. "Ok, then that leaves just one choice. We'll maintain your privacy as best as we can but the only way to know for certain is to check."
<br><br>
Once it's just the two of you alone she gestures for you to approach
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "ScogginsInspect">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "Claim you are transitioning" "FHTransit">>
<<addMins 15>>
<</button>>
<<button "Talk your way out of this">>
/* will need charm - being masc presenting will make this harder */
<<replace "#repCont">>
charm it up in charm-ville. Chance you still get banned.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Back to the lobby" "FairhavenLobby">>
<<unset $FHReport>>
<<addMins 2>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Get escorted out" "Downtown">>
<<unset $FHReport>>
<<moveOut 'Fairhaven'>>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Say nothing in your defense">>
<<if !$bannedHomes>>
<<set $bannedHomes = [$home.name]>>
<<else>>
<<run $bannedHomes.push($home.name)>>
<</if>>
<<moveOut 'Fairhaven'>>
<<unset $FHReport>>
<<replace "#repCont">>
After a short debate you are evicted from Fairhaven with prejudice - you will never be allowed to stay here again.
<br><br>
Whatever belongings you have will be placed in a bag for you out on the sidewalk.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Leave the building" "Downtown">>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<<default>>
<div class="buttonContainer">
<<button "Say nothing in your defense">>
<<if !$bannedHomes>>
<<set $bannedHomes = [$home.name]>>
<<else>>
<<run $bannedHomes.push($home.name)>>
<</if>>
<<moveOut 'Fairhaven'>>
<<unset $FHReport>>
<<replace "#repCont">>
After a short debate you are evicted from Fairhaven with prejudice - you will never be allowed to stay here again.
<br><br>
Whatever belongings you have will be placed in a bag for you out on the sidewalk.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Leave the building" "Downtown">>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Deny the allegations">>
<</button>>
</div>
<</switch>>
</div><<set _tmpImg = 'Media/Locations/Downtown/Fairhaven/boardMeeting' + random(1,3) + '.webp'>>
<center>
<span id="repCont">
<b><font size="10em">Fairhaven Review Board</font></b>
<br>
<img @src="_tmpImg" height="600rem">
<br><br>
You tell them that it's a personal subject, but that you're actually transitioning to female. The board members cast glances at each other, sensing the dangerous minefield it can be to question such a claim.
<br><br>
Finally Ms. Scoggins clears her throat and leans forward, "Well, that changes things doesn't it? If you'll excuse us I think we have a few things to discuss."
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go out to the hall">>
<<addMins 15>>
<<set _tmpImg = 'Media/Misc/' + ($player.presenting=== 'Female'?'fWait.webp':'mWait.webp')>>
<<replace "#repCont">>
<img @src="_tmpImg" height='600rem'>
<br><br>
You move out and spend the next unmoving eternity waiting for other people to decide your fate.
<br><br>
Eventually Ms. Scoggins calls you to a side room for a follow up.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
"First I just want you to know you have our full support on your journey. We're not here to judge you for that. If only you had been more upfront when you moved in, but now.... Well, we have to be certain you aren't just making that claim to be allowed to stay here, you undersand?"
<br><br>
"So the board has arranged for you to visit a therapist in town who specializes in such matters. You can continue to stay here as long as you attend these sessions until Dr. Thayer gives his sign off, ok? If you refuse you'll be forced to leave."
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Agree to therapy">>
<<set $player.questTracker.push({idx: 'JuliaBlock',level: 1})>>
<<unset $FHReport>>
<<set $player.questTracker = $player.questTracker.filter(qst => qst.idx !== 'JuliaSexToy')>>
<<set $player.questTracker = $player.questTracker.filter(qst => qst.idx !== "ParkPhotoQuest")>>
<<set $player.questTracker = $player.questTracker.filter(item => item.idx != 'ManSus')>>
<<run $player.questLog.removeQuest('ManSus')>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
Ms. Scoggins' shoulders sag in relief a little at your answer. "Oh good, I was worried this was going to get unpleasant. Now you won't have any problems with Dr. Thayer at all; he's very experienced in helping people like - in your situation." She says, producing a business card like she'd been holding it ready.
<br><br>
"His office is over in the Business District - the big Anderson building, you know it? Your first appointment is this Saturday at 4:00pm"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Take the card and leave" "FairhavenLobby">>
<<run $player.questTracker.push({idx: 'FairhavenCover',level:1})>>
<<run $player.questTracker.push({idx: 'TherapyPath',level:1})>>
<<run $player.questLog.addQuest('TherapyPath','You\'ve agreed to attend therapy as a condition for staying at Fairhaven as a Trans Woman')>>
<<set _tmpStartTime = clone($gameDate)>>
<<set _mins2Event = (60-$gameDate.getMinutes()) + (23 - ($gameDate.getHours()))*60 + 16*60>>
<<if $gameDate.getDay() == 6>>
<<set _tmpTicker = 6>>
<<else>>
<<set _tmpTicker = 6 - ($gameDate.getDay()+1)>>
<</if>>
<<run _tmpStartTime.setUTCMinutes(_tmpStartTime.getUTCMinutes() + _tmpTicker * 24*60 + _mins2Event)>>
<<set _tmpEndTime = clone(_tmpStartTime)>>
<<run _tmpEndTime.setUTCMinutes(_tmpStartTime.getUTCMinutes() + 30)>>
<<set _tmpNPC = $npc_9>>
<<set _tmpEvent = new DateObject(
_dateType = 'Therapy',
_lable = 'Therapy',
_npc = _tmpNPC,
_location = 'ThayerOffice',
_passage = '',
_julDate = $currJulianDate + _tmpTicker+1,
_startTime = _tmpStartTime,
_endTime = _tmpEndTime,
_details = "Meet with Dr. Thayer in the Business District Anderson Building at 4:00pm",
_repeat = 7
)>>
<<run $player.phone.calendar.addDate(_tmpEvent)>>
<<addSecs 34>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Refuse therapy">>
<<set _tmpImg = 'Media/Misc/' + ($player.presenting === 'Female'?'fBanned.web':'mBanned.webp')>>
<<replace "#repCont">>
<img @src='_tmpImg' height="600rem">
<br><br>
<div class="badText">You are escorted off the premises and permanently banned from every staying at Fairhaven again</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "Downtown">>
<<run $bannedHomes.push($home.name)>>
<<moveOut 'Fairhaven'>>
<<unset $FHReport>>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
<<if $player.presenting === 'Female'>>
I'm not happy about this, but we have to be certain. Let's make it quick and painless, ok?
<</if>>
</div>
</div>
<hr>
<div id='actionsContainer'>
<div class='buttonContainer'>
<<button "Undress for Ms. Scoggins" "ScogStrip">>
<<addMins 5>>
<</button>>
</div>
<div class='buttonContainer'>
<<button "Refuse">>
<<replace "#repCont">>
"Then we'll have to dismiss you - with prejudice. You will never be allowed to stay here again. Do you want to push it that far?"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Agree to an inpsection" "ScogStrip">>
<<addMins 5>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stand your ground">>
<<replace "#repCont">>
"Then this is far as we go. Goodbye, $player.firstName. And good luck. Someone will collect your things and bring them to you outside."
<</replace>>
<<replace "#actionsContainer">>
<<button "Continue" "Downtown">>
<<run $bannedHomes.push($home.name)>>
<<moveOut 'Fairhaven'>>
<<unset $FHReport>>
<<addMins 5>>
<</button>>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<calcArousal 'strip' $player.exhib/10 2>>
<<sexPowerDown>>
<center>
<<if $player.body.gender === 'Female'>>
<<set _tmpImg = 'Media/Misc/Inspection/'>>
<<if $player.inhib > 50>>
<<set _tmpImg += 'F/Shy/' + random(1,2) + '.webp'>>
<<elseif $player.slutLevel < 2>>
<<set _tmpImg += 'F/Mid/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Slutty/' + random(1,10) + '.webp'>>
<</if>>
<img @src='_tmpImg' height="600rem">
<br><br>
Ms. Scoggins nods her head as soon as she sees your exposed pussy. She quickly turns away and tells you to get dressed.
<br><br>
"That should settle the matter." she says matter-of-factly. "I don't think you'll have to deal with this again while you are staying with us."
<<else>>
<<set _tmpImg = 'Media/Sex/Surprise/Cock/F/' + random(1,1) + '.webp'>>
<img @src="_tmpImg" height="550rem">
<br><br>
Ms. Scoggins gasps when your <<sizeDick $player>>cm cock pops into view.
<br><br>
"Get out! Get out of here right now! And never come back!" she cries, scrambling up to her feet to call in the other board members to drag you away.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.body.gender === 'Female'>>
<<button "Get dressed and leave" "FairhavenLobby">>
<<unset $FHReport>>
<<addMins 2>>
<</button>>
<<else>>
<<button "Get escorted out" "Downtown">>
<<unset $FHReport>>
<<if !$bannedHomes>>
<<set $bannedHomes = [$home.name]>>
<<else>>
<<run $bannedHomes.push($home.name)>>
<</if>>
<<moveOut 'Fairhaven'>>
<<addMins 2>>
<</button>>
<</if>>
</div>
</div><<addMins 2>>
<<run $player.questTracker.push({idx: 'FHMaid', level: 1,canPromo: true})>>
<span id="repCont">
<center>
<b><font size="10em">Fairhaven Shelter for Women</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/lobChat1.webp" height="500rem" >
<br><br>
Ms. $npc_4.lastName seems to be in mid-rant, berating $npc_3.firstName for how dirty and poor the lobby looks.
<br><br>
"How am I supposed to attract investors with a lobby looking as shitty as it does? I told you to find someone to clean this place up!" she says through gritted teeth, her little fists white-knuckling some folders in her hand.
<br><br>
She must have seen your movement from the corner of her eye because she suddenly spins on her pointy little heels and calls out to you.
</center>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<<addMins 2>>
<<refreshCaption>>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
"You there! Uhm - $player.firstName, right? Any experience cleaning? How'd you like a reduction in your daily rent in exchange for keeping the place tidied up? Every day that you clean the lobby here is a day you don't have to pay rent."
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Agree">>
<<addMins 1>>
<<refreshCaption>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
Ms. $npc_4.lastName seems to instantly relax now that the problem seems solved.
<br><br>
"Good. Excellent." she says, matter-of-factly. "Jeffory, show her where the supplies are kept and handle any issues that come up. I have some calls to make, and thanks again $player.firstName."
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" >>
<<replace "#repCont">>
<<addMins 2>>
<<refreshCaption>>
<center>
<b><font size="10em">Fairhaven Shelter Front Desk</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/deskClerk1.webp" height="450rem" >
<br><br>
$npc_3.firstName fixes you with that yellowed gaze of his for a few moments before he finally speaks
<br><br>
"That closet over there holds the cleaning supplies. Just get out what you need to clean the place and then put them back when you're done. But know that I'll be watching you."
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "FairhavenLobby">>
<<set _tmpJob = new Job('Fairhaven','AdHoc','Fairhaven Maid','You get free rent for each day you work as a maid at Fairhaven',0,[0,1,2,3,4,5],$currJulianDate - 3,0,'N/A')>>
<<set $jobArr.push(_tmpJob)>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
"Well, come talk to $npc_3.firstName if you ever change your mind. Lord knows he's apparently not going to clean the place. Now excuse me, I have some important calls to make." she says.
<br><br>
You watch her stomp her dainty feet down the hall as if she were a much larger and more intimidating person.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "FairhavenLobby">>
<<purgeNPCLocation 'FairhavenLobby'>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<addMins 2>>
<<run $player.questTracker.push({idx: 'FHMaid', level: 1})>>
<span id="repCont">
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
"$player.firstName", she says with a smile. "I just want to say how pleased I am at how well you've been maintaining the lobby here.We had an investor walkthrough the other day and it went smashingly well! In fact, I'd like to make you a new offer."
<br><br>
"How about we make this official? If you start cleaning the upstairs rooms as well as the lobby we'll pay you $50 on top of your waived daily rent. Of course, you'd need to wear a uniform while cleaning since you'd be our official maid."'
</div>
</div>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Uniform?">>
<<replace "#repCont">>
<<if $player.body.tits === 13>>
<<set $FHMaidFit = 246>>
<<else>>
<<set $FHMaidFit = 206>>
<</if>>
<<genFit $FHMaidFit>>
<center>
<img @src="$clothingObj.image" height="500rem">
<br><br>
"Here, take a look. Nothing scandulous I assure you. It will just make it seem more appropriate for you to wear a uniform while cleaning the bedrooms. That way people instantly know you're there on official business and not some rando off the street going through their things."'
<br><br>
"So, what do you think? Am I looking at Fairhaven's offical new Maid?" she asks with raised eybrows.
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Agree">>
<<set $player.questTracker.find(obj => obj.idx === 'FHMaid').level = 2>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
"Excellent. I look forward to seeing more of your work around here!" She says with nod. "$npc_3.firstName will keep your uniform here and make sure that it's cleaned and ready for the next time you need it. Good day, $player.firstName"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "FairhavenLobby">>
<<addSecs 15>>
<<set _tmpJob = $jobArr.find(job => job.title === 'Fairhaven Maid')>>
<<set _tmpJob.desc = 'You get free rent and $50 for each day you work as a maid at Fairhaven'>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline">>
<<set $player.questTracker.find(obj => obj.idx === 'FHMaid').canPromo = false>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_4.image" height="450rem">
</div>
<div>
The smile stays plastered on her face, but it no longer reaches her eyes.
<br><br>
"Oh, well. I suppose you have your reasons. Good day, Ms. $player.lastName" she says before brusquely walking away.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "FairhavenLobby">>
<<purgeNPCLocation 'FairhavenLobby'>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $maidJob = $player.questTracker.find(obj => obj.idx === 'FHMaid')>>
<center>
<span id="mainRepCont">
<b><font size="10em">Fairhaven Janitorial Room</font></b>
<br>
<img src="Media/Locations/Downtown/Fairhaven/jCloset.webp" height="600rem" >
<br><br>
<span id="repCont">
The room is larger than you might have expected, and the walls are lined with chemical cleaning agents that give the air an oddly artificial -- yet sweet - odor.
<<if !$isMaid and (($maidJob.level == 2 and $player.outfit.fit != 206) or ($maidJob.level >= 3 and $player.outfit.fit != 207))>>
<div class="badText">
You need to put on your maid uniform before you can start working.
</div>
<<elseif $isMaid>>
<<if $badMaid and $badMaid > 3 and $maidJob.level < 3 and !$dailyLimit.includes("MaidSearch") and random(0,100) > 50>>
<<set _searchMaid = true>>
<font color=red><b>Suddenly a hand grabs your arm and shoves you up against the wall. It's $npc_3.firstName!</b></font>
<<else>>
<<set $player.money += 50>>
You drop off your cleaning supplies and pick up the $50 that $npc_3.firstName left tacked to the corkboard.
<<if (($maidJob.level == 2 and $player.outfit.fit === 206) or ($maidJob.level >= 3 and $player.outfit.fit === 207))>>
<div class="badText">You need to get dressed back in your street clothes</div>
<</if>>
<</if>>
<</if>>
</span>
</span>
</center>
<span id='npcCont'>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if !$isMaid>>
<<if $maidJob.level === 1 or ($maidJob.level >= 2 and $player.outfit.fit === $FHMaidFit)>>
<<button "Start working">>
<<if !$maidCount>>
<<set $maidCount = 1>>
<<else>>
<<set $maidCout += 1>>
<</if>>
<<addSecs 15>>
<<set $jobArr.find(job => job.title === 'Fairhaven Maid').lastWorkDay = $currJulianDate>>
<<set $home.lastRentDay = $currJulianDate>>
<<set $maidReturnLoc = 'FHMaidCloset'>>
<<set $isMaid = true>>
<<set $FHMaid = true>>
<<set $maidRooms = ['FairhavenLobby']>>
<<if $maidJob.level > 1>>
<<set $maidRooms.push("FairhavenHall","FairhavenCommons","FHBedroom","Bathroom","Kitchen")>>
<</if>>
<<goto "FairhavenLobby">>
<</button>>
<<else>>
<<button "Get dressed">>
<<if $maidJob.level === 2>>
<<if $player.presenting === 'Male'>>
<<set $FHMaidFit = 780>>
<<elseif $player.body.tits === 13>>
<<set $FHMaidFit = 245>>
<<else>>
<<set $FHMaidFit = 206>>
<</if>>
<<elseif $maidJob.level === 4>>
<<if $player.presenting === 'Male'>>
<<set $FHMaidFit = 780>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set $FHMaidFit = 766>>
<<elseif $player.body.tits === 13>>
<<set $FHMaidFit = 246>>
<<else>>
<<set $FHMaidFit = 207>>
<</if>>
<</if>>
<<genFit $FHMaidFit>>
<<set $preMaidFit = clone($player.outfit)>>
<<set $pickedFit = {
bra: 0,
bracelet: 0,
coat: 0,
earrings: 0,
fit: $FHMaidFit,
panties: 0,
purse: 3,
ring: 0,
shoes: 32
}>>
<<set
$forceFit = true;
$wardLoc = 'FHMaidCloset';
$isWardrobe = true;
>>
<<wearFit $pickedFit>>
<</button>>
<</if>>
<<else>>
<<if $maidJob.level >= 2 and $player.outfit.fit === $FHMaidFit>>
<<button "Get changed">>
<<set
$player.money += 50;
$forceFit = true;
$pickedFit = $preMaidFit;
$wardLoc = 'FHMaidCloset';
$isWardrobe = true;
>>
<<unset $preMaidFit>>
<<wearFit $pickedFit>>
<</button>>
<<else>>
<<button "Back to the lobby" "FairhavenLobby">>
<<unset
$isMaid;
$FHMaid;
$maidMoney;
$maidRooms;
>>
<<addSecs 15>>
<</button>>
<</if>>
<</if>>
</div>
</div>
<<if _searchMaid>>
<<timed 0s>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "MaidSearch">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<<replace "#npcCont">>
<<set _tmpLocAr =['FHMaidCloset']>>
<<addNPC $npc_3 _tmpLocAr 'MaidSearch'>>
<<getCurrNPCs 'FHMaidCloset'>>
<</replace>>
<</timed>>
<</if>>
<<if $maidJob.level === 3 and $jobArr.find(job => job.title === 'Fairhaven Maid').lastWorkDay != $currJulianDate>>
<<timed 0s>>
<<append "#repCont">>
<div class="badText">There's a folded maid's uniform and a note with $npc_3.firstName's chicken scratch: "Your new uniform is part of your punishment - no pockets to tempt you!"</div>
<</append>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Look at the outfit">>
<<replace "#mainRepCont">>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set $FHMaidFit = 766>>
<<elseif $player.body.tits === 13>>
<<set $FHMaidFit = 246>>
<<else>>
<<set $FHMaidFit = 207>>
<</if>>
<<genFit $FHMaidFit>>
<img @src="$clothingObj.image" height="500rem">
<br><br>
You can't say you're surprised, knowing what you know about $npc_3.firstName. But you also don't see that you have much of a choice.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "FHMaidCloset">>
<<set $player.questTracker.find(obj => obj.idx === 'FHMaid').level = 4>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</timed>>
<</if>><<set $dailyLimit.push('MaidSearch')>>
<<calcArousal 'grope' 1 1>>
<center>
<span id="repCont">
<img src="Media/Misc/wallPinned.webp" height="600rem" >
<br><br>
You smell his milk-sour breath before you see his face but that's all you need to know that it's Jeffory pinning you aginst the wall in a surprisingly strong grip. What does that old freak want now?
<br><br>
<<if $maidJob.level === 2>>
"Someone's been thieving, little harlot. And dollars to donuts that thief is you!" $npc_3.firstName hisses as his hands glide over your body, pressing and cupping way more than would strictly be needed for a contragand search.
<<else>>
"What am I going to find today, harlot?" He whispers harshly against your ear. "Let's find out!"
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<<set $player.statBuffs.femBuff += 1>>
<<set _tmpImg = 'Media/Grope/Shirt/POV/'+ random(1,8) + '.webm'>>
<center>
<video autoplay loop @src="_tmpImg" height="600rem"></video>
<br><br>
He doesn't hide his enjoyment as he forcibly searches you for any illicit items.
</center>
<<sexPowerDown>>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue">>
<<if $dailyLimit.includes('MaidTheft')>>
<<set $player.money -= $maidMoney>>
<<unset $maidMoney>>
<<refreshCaption>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_3.image" height="450rem">
</div>
<div>
'"Hah! I knew it!" he claims, brandishing the stolen cash in front of your face. "Don't even try and deny it, it won't do you any good!"
<br><br>
'"You have two choices. I can report you to Ms. Scoggins -- who will probably kick you out for being a no-good thief -- or you can let me decide your punishment. Which will it be, girlie?"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContianer">
<<button "Tell him to report you">>
<<append "#repCont">>
<br>
<div class="badText">$npc_3.firstName snarls at you and the hobbles out of the supply closet, heading directly for the Director's Office!</div>
<</append>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "FHMaidCloset">>
<<if !$FHReport>>
<<set $FHReport = ['MaidTheft']>>
<<else>>
<<run $FHReport.push('MaidTheft')>>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContianer">
<<button "Deal with $npc_3.firstName directly">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_3.image" height="450rem">
</div>
<div>
"Smart move, girlie. I think the first problem are those pockets -- filling them up seems too tempting for you. So when you come to clean next time there will be new outfit for you -- one without pockets!" You can tell from the look in his eye that he's not just talking about sewing the pockets closed in your current uniform.
<br><br>
"I'll have to think of a proper punishment later. You'll know when I do. Now I gotta get back to my desk - but don't let me catch you doing bad stuff again!"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "FHMaidCloset">>
<<set $player.questTracker.find(obj => obj.idx === 'FHMaid').level = 3>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<<else>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_3.image" height="450rem">
</div>
<div>
$npc_3.firstName narrows his eyes as he drops his hands. "I guess you're clean. This time" he mutters as he leaves the supply closet. The emphasis on his last words let you know he's not done checking up on you.
<br><br>
</div>
</div>
<center><div class="badText">You'd better be careful from now on.</div></center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContianer">
<<button "Continue" "FHMaidCloset">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<widget "FHEvents">>
<<if $FHReport>>
<<timed 0s>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Ms Scoggins stops you" "FHIncident">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<<replace "#NPCCont">>
<<purgeNPCLocation 'FairhavenLobby'>>
<<set _tmpLocAr =['FairhavenLobby']>>
<<addNPC $npc_4 _tmpLocAr 'FHIncident'>>
<<getCurrNPCs 'FairhavenLobby'>>
<</replace>>
<</timed>>
<<elseif $home.name === 'Fairhaven'>>
<<if !$player.questTracker.some(obj => obj.idx === 'FHMaid') and random(0,100) > 76 and $player.presenting === 'Female' and $currJulianDate > 2460865>>
<<timed 0s>>
<<prepend "#repCont">>
<div class="badText">You see $npc_3.firstName and Ms. $npc_4.lastName talking by the front desk.</div>
<</prepend>>
<<replace "#NPCCont">>
<<purgeNPCLocation "FairhavenLobby">>
<<set _tmpLocAr =['FairhavenLobby','FHMaidIntro']>>
<<addNPC $npc_3 _tmpLocAr 'FHMaidIntro'>>
<<addNPC $npc_4 _tmpLocAr 'FHMaidIntro'>>
<<getCurrNPCs 'FairhavenLobby'>>
<</replace>>
<</timed>>
<<elseif $player.questTracker.some(obj => obj.idx === 'FHMaid') and $player.questTracker.find(obj => obj.idx === 'FHMaid').level === 1 and $player.questTracker.find(obj => obj.idx === 'FHMaid').canPromo and $maidCount > 7 and random(0,100) > 50 >>
<<timed 0s>>
<<prepend "#repCont">>
<div class="badText">Ms. $npc_4.lastName is standing near $npc_3.firstName's desk waiting for you.</div>
<</prepend>>
<<replace "#NPCCont">>
<<purgeNPCLocation "FairhavenLobby">>
<<set _tmpLocAr =['FairhavenLobby','FHMaidIntro']>>
<<addNPC $npc_3 _tmpLocAr 'FHMaidUpgrade'>>
<<addNPC $npc_4 _tmpLocAr 'FHMaidUpgrade'>>
<<getCurrNPCs 'FairhavenLobby'>>
<</replace>>
<</timed>>
<<else>>
<<checkJefforySus>>
<</if>>
<</if>>
<</widget>><div style="width: 100%; display: flex; align-items: center;">
<div style="position: relative; top: 0; left: 0; width: 25%; vertical-align: middle;">
<center><<reflection>></center>
</div>
<div style="width: 75%; display: table-cell; vertical-align: middle; padding: 100px">
<<mirrorStats>>
</div>
</div>
<center>
<span id="repCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Use the sink" "Basin">>
<<set $sinkLoc = clone($mirrorLoc)>>
<<unset $mirrorLoc>>
<<addSecs 2>>
<</button>>
<<if !$player.body.hair.styled and $player.body.hair.length >= 30>>
<<button "Brush your hair">>
<<if $player.inventory.checkInv('Hair Brush') >= 1 or ($player.outfit.purse != 0 and $purseInventory.some(obj => obj.name === 'Travel Brush'))>>
<<set $player.body.hair.styled = true>>
<<if $player.body.hair.length < 80>>
<<addMins 2>>
<<elseif $player.body.hair.length < 260>>
<<addMins 4>>
<<else>>
<<addMins 8>>
<</if>>
<<goto "MirrorView">>
<<else>>
<<replace "#repCont">>
<div class="badText">You don't have a hairbrush</div>
<</replace>>
<</if>>
<</button>>
<</if>>
<<if $player.inventory.checkInv('Cosmetics') >= 1 and $player.body.makeup == 0>>
<<button "Apply makeup" "MirrorMakeup">><<addSecs 2>><</button>>
<</if>>
</div>
<div class="buttonContainer">
<<if !$dailyLimit.includes('Mirror Pose') and !$dailyLimit.includes('Mirror Flex')>>
<<button "Pose" "MirrorPose">>
<<run $dailyLimit.push('Mirror Pose')>>
<<set $player.statBuffs.femBuff += 1>>
<<addSecs 45>>
<</button>>
<<button "Flex" "MirrorFlex">>
<<run $dailyLimit.push('Mirror Flex')>>
<<if $player.mentalFem > 10>><<set $player.statBuffs.mascBuff += 1>><</if>>
<<if $player.presenting === 'Male'>><<set $player.statBuffs.mascBuff += 1>><</if>>
<<if $player.strength > 30>><<set $player.statBuffs.mascBuff += 1>><</if>>
<<if $player.presenting === 'Female' and $player.strength < 20>><<set $player.statBuffs.femBuff += 1>><</if>>
<<addSecs 30>>
<</button>>
<</if>>
<<if $player.body.womb and $lastPregMirrorDay != $currJulianDate and $player.body.womb.showPreg>>
<<button "Check out your belly" "MirrorPreg">>
<<set $player.statBuffs.femBuff += 3>>
<<if $player.traits.includes(23)>>
<<set $player.mood += 10>>
<<elseif $player.mentalFem < 40>>
<<set $player.mood -= 10>>
<</if>>
<<addSecs 45>>
<</button>>
<</if>>
<<if $lastTitMirrorDay != $currJulianDate and $player.body.tits > 0 and ($player.mentalFem > 30 or $player.arousal > 20)>>
<<button "Check out your tits" "MirrorTits">>
<<calcArousal 'tits' 1 2>>
<<set $player.statBuffs.tits += random(0,1)>>
<<set $player.statBuffs.femBuff += 1>>
<</button>>
<</if>>
<<if !$dailyLimit.includes('MirrorAss') and ($player.arousal > 35 or $player.mentalFem > 30)>>
<<button "Check out your ass" "MirrorAss">>
<<calcArousal 'ass' 1 2>>
<<set $player.statBuffs.ass += random(0,1)>>
<<set $player.statBuffs.femBuff += 1>>
<<addSecs 45>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Step back" >>
<<set _tmpLoc = clone($mirrorLoc)>>
<<unset $mirrorLoc>>
<<addSecs 5>>
<<goto _tmpLoc>>
<</button>>
</div>
</div><<set $lastPoseMirrorDay = clone($currJulianDate)>>
<div class="tripleContainer">
<<set _refArr = []>>
<<for _i to 0;_refArr.length < 3;_i++>>
<<set _tmpImg = "Media/Self/Reflection/Poses/Pose/">>
<<if $player.presenting === "Female">>
<<set _tmpImg += "F/" + random(1,59) + '.webp'>>
<<else>>
<<set _tmpImg += "M/" + random(1,6) + '.webp'>>
<</if>>
<<if !_refArr.includes(_tmpImg)>>
<<set _refArr.push(_tmpImg)>>
<div class="box">
<img @src="_tmpImg" height="400rem">
</div>
<</if>>
<</for>>
</div>
<center>
You strike a few poses, checking out your body in the mirror.
<br><br>
<<if $player.mentalFem < 30>>
<<set $player.mood -= 5>>
<<if $player.skills.charm < 40>><<set $player.statBuffs.charm += 2>><</if>>
You stop after a few minutes because your stomach starts feeling queezy and your brain begins to hurt. The image in the mirror is you and isn't you at the same time -- this is too confusing. You wonder if you'll ever recognize your own reflection again. And weren't some of those poses a little feminine? You shake your head and try to push the images out of your memory.
<br>
You don't think you could handle doing that again today. But you think you have a better idea of how other people perceive the new you.
<<elseif $player.mentalFem < 40>>
<<if $player.skills.charm < 50>><<set $player.statBuffs.charm += 3>><</if>>
Suddenly you realize that some of those poses were rather...girly. You clear your throat and shake your head, bringing yourself back to the here and now.
<br>
That's enough for one day -- you've got to stay focused. But you feel more charming and confident, maybe there's a benefit to primping in front of a mirror.
<<elseif $player.mentalFem < 50>>
<<if $player.skills.charm < 60>><<set $player.statBuffs.charm += 4>><</if>>
You almost lose yourself in your reflection but eventually you pull yourself out and clear your throat. You look around a few times to get your bearings and get ready to leave.
<<else>>
<<if $player.skills.charm < 80>><<set $player.statBuffs.charm += 5>><</if>>
<<set $player.mood += 10>>
You admire yourself for a few minutes before blowing yourself a kiss and a wink. "Lookin' good, babe!"
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Go back" "MirrorView">>
<<addSecs 3>>
<</button>>
</td>
</tr>
</table><<run $dailyLimit.push('Mirror Pose')>>
<div class="tripleContainer">
<<set _refArr = []>>
<<for _i to 0;_refArr.length < 3;_i++>>
<<set _tmpImg = "Media/Self/Reflection/Poses/Flex/">>
<<if $player.presenting === "Female">>
<<if $player.strength > 30>>
<<set _tmpImg += "F/Strong/">>
<<if $player.outfit.fit === 0 and $player.outfit.bra === 0>>
<<set _tmpImg += "Topless/" + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,4) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += "F/Reg/">>
<<if $player.outfit.fit === 0 and $player.outfit.bra === 0>>
<<set _tmpImg += "Topless/" + random(1,10) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,5) + '.webp'>>
<</if>>
<</if>>
<<else>>
<<if $player.strength > 30>>
<<set _tmpImg += "M/Strong/">>
<<if $player.outfit.fit === 0 and $player.outfit.bra === 0>>
<<set _tmpImg += "Topless/" + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += "M/Reg/">>
<<if $player.outfit.fit === 0 and $player.outfit.bra === 0>>
<<set _tmpImg += "Topless/" + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</if>>
<</if>>
<</if>>
<<if !_refArr.includes(_tmpImg)>>
<<set _refArr.push(_tmpImg)>>
<div class="box">
<img @src="_tmpImg" width="100%">
</div>
<</if>>
<</for>>
</div>
<center>
You strike a few poses, checking out your body in the mirror.
<br><br>
<<if $player.femLevel > 60>>
<<set $player.mood -= 10>>
You have to stop after just a few poses, seeing those hard masculine angles where your mind says should be soft sexy curves is too much.
<<elseif $player.femLevel > 50>>
The image you see in the mirror doesn't match the soft and squishy mental image you have of yourself and the difference makes you a little dizzy.
<<elseif $player.femLevel > 30>>
<<if $player.skills.charm < 60 and $player.strength > 20>><<$player.statBuffs.charm += 2>><</if>>
You still have that manly look, no one can doubt that!
<<else>>
<<set $player.mood += 5>>
<<if $player.skills.charm < 80 and $player.strength > 25>><<$player.statBuffs.charm += >><</if>>
<<if $player.strength > 25>>
You let your guns do the talking as you try out different flexing positions.
<<else>>
You don't really have a lot of muscles to flex, but you show off what you got. Every bit counts, right?
<</if>>
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Go back" "MirrorView">>
<<addSecs 3>>
<</button>>
</td>
</tr>
</table><<set $lastPregMirrorDay = clone($currJulianDate)>>
<<set _tmpImg = 'Media/Self/Reflection/Pregnant/'>>
<<if $player.outfit.fit > 0>>
<<set _tmpImg += 'Clothed/' + random(1,8) + '.webp'>>
<<elseif $player.outfit.bra > 0>>
<<set _tmpImg += 'Undies/' + random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += 'Nude/' + random(1,9) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">
<br>
<<if $player.traits.includes(23)>>
<<switch random(1,3)>>
<<case 1>>
You study the curve of your belly with quiet amazement, feeling both foreign and familiar. It's surreal to think a life is growing inside you, and the thought makes your heart swell with a kind of love you've never known before.
<<case 2>>
You stand in front of the mirror, eyes tracing the curve of your belly with a kind of disbelief. It's real — finally and truely real — and you feel a rush of warmth in your chest. You smile, not just with your mouth but with your whole body, as if your skin itself is celebrating.
<<case 3>>
You study your reflection, marveling at how your body knows exactly what to do. There's a quiet pride blooming in you — this is your journey, your transformation. You feel powerful, beautiful, and deeply connected to something bigger than yourself.
<</switch>>
<<elseif $player.mentalFem > 40>>
<<switch random(1,3)>>
<<case 1>>
You glance at your belly in the mirror, noting how it's grown, but the feeling doesn't quite land. It's happening, yes — but it still feels distant, like something you're watching rather than living.
<<case 2>>
You study your reflection with a kind of clinical interest, like you're tracking changes without attaching meaning. You tilt your head, wondering at what further changes you'll experience.
<<case 3>>
You rest a hand on your belly, not with excitement or dread — just acknowledgment. This is your reality now. There's no use in fighting what's right in front of your eyes.
<</switch>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
You stare at your reflection, unsure if you can even recognize yourself anymore. The changes feel overwhelming— your body no longer your own — and you wonder if you'll ever feel like herself again.
<<case 2>>
You look at your swollen belly, trying to connect with the reality of it all. It feels strange — like your body belongs to someone else now. The weight of your future presses in, even as you search for the joy you've been told you should feel.
<<case 3>>
Your eyes scan the curve of your stomach, and instead of wonder, you feel a flicker of fear. The questions swirl louder than the answers in your mind, you wish it would all just go back to normal.
<</switch>>
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Go Back" "MirrorView">><<addSecs 1>><</button>>
</td>
</tr>
</table><<set $lastTitMirrorDay = clone($currJulianDate)>>
<<set _tmpImg = 'Media/Random/Squeeze/Tits/'>>
<<if $player.outfit.fit > 0 or $player.outfit.bra > 0>>
<<if $player.body.tits === 13>>
<<set _tmpImg += 'NonNude/' + random(100,102) + '.webm'>>
<<else>>
<<set _tmpImg += 'NonNude/' + random(1,13) + '.webm'>>
<</if>>
<<else>>
<<if $player.body.tits === 13>>
<<set _tmpImg += 'Nude/' + random(100,103) + '.webm'>>
<<else>>
<<set _tmpImg += 'Nude/' + random(1,12) + '.webm'>>
<</if>>
<</if>>
<center>
<video @src="_tmpImg" width="640" height="480" autoplay loop></video>
<br><br>
<<if $player.mentalFem < 25>>
<<switch random(1,5)>>
<<case 1>>
Tentatively, you reach up to cup your <<descTits $player>> <<sizeTits $player>> breasts, marveling at their <<if $player.body.tits > 3>>weight<<else>>perkiness<</if>> In a daze you give them a gentle squeeze and a jolt of pleasure shoot through you. Your nipples harden beneath your palms.
<<case 2>>
Your reach out to touch the unfamiliar weight on your chest, cupping your <<sizeTits $player>> breasts in your hands. Your lips part as you absent-mindedly massage the soft mounds, your fingers sending bolts of pleasure ricocheting through you.
<<case 3>>
As you cup and explore your tender flesh, you marvel at the weight and density of your breats. <<if $player.body.tits > 3>>They jiggle enticingly with every movement.<</if>>
<<case 4>>
Cupping your breasts in your hands, you marvel at the silky texture. the way they<<if $player.body.tits > 3>>overflow your palms and spill out between your fingers.<<else>>fit perfectly into your palms.<</if>> Rolling and squeezing the tender flesh, you lose yourself in the sensuality of your own touch
<<case 5>>
Cupping the <<descTits $player>> globes in your palms, you feel them respond to your touch, the sensitive peaks hardening under your fingers. Each gentle squeeze and caress sends sparks of pleasure zinging through your body, pooling in your core.
<</switch>>
<<elseif $player.mentalFem < 50>>
<<switch random(1,5)>>
<<case 1>>
A soft moan escapes your lips as you gently knead your tender <<sizeTits $player>>, your thumbs brushing teasingly over the pebbled peaks of your nipples.
<<case 2>>
You lift and fondle your breasts, feeling the undeniable weight and pliancy of the flesh. Rolling the nipples between your fingers, you observe the way they pucker and swell under your touch, sending non-unpleasant tingles straight to your core
<<case 3>>
You raise your hands to cup the soft, <<descTits $player>> mounds of your breasts, marveling at the strange yet familiar new sensations from this new vantage point.
<<case 4>>
Experimentally, you give your nipples a slight pinch, gasping as the jolt of pleasure radiates through your chest and straight to your core, the foreign yet arousing feelings overwhelming your senses.
<<case 5>>
Reaching up, you cup the soft mounds of your <<sizeTits $player>> breasts in your hands, marveling at how <<if $player.body.tits > 3>>they overflow your hands<<else>>perfectly they fill your palms<</if>>. A shudder of unfamiliar pleasure ripples through you as you gently knead the pliant flesh, feeling it yield and mold to your touch.
<</switch>>
<<elseif $player.mentalFem < 75>>
<<switch random(1,5)>>
<<case 1>>
You trail your fingertips lightly over the swell of your <<descTits $player>> breasts, admiring the way the delicate skin dimples at your touch. Circling your areolas with a feather-light caress, you watch in fascination as the rosy peaks crinkle and pucker, straining toward your fingers.
<<case 2>>
You reach out to trail your fingers over the smooth, supple skin of your <<sizeTits $player>> breasts. A soft sigh escapes your lips as you cup the soft mounds, feeling their weight and pliancy in your palms. Gently kneading the tender flesh, you marvel at the way it yields and molds to your touch, the skin pebbling under your fingertips.
<<case 3>>
You cup your <<descTits $player>> globes fully, feeling them <<if $player.body.tits > 3>>overflow your palms<<else>>settle into your palm<</if>> as you give them a gentle squeeze. Gasping softly at the pleasant pressure, you continue to fondle and knead the tender mounds, each caress sending a thrill straight to your core.
<<case 4>>
You cup your <<descTits $player>> <<sizeTits $player>> tits, savoring their soft weight in your hands. Fingertips circle your areolas, making the nipples pucker and strain. Gently squeezing the pliant mounds, you groan at the pleasure as a heat builds in your center.
<<case 5>>
You cup your breasts, feeling their softness yield to your touch. Your fingers circle the areolas, eliciting a gasp as the nipples stiffen. Gently kneading the mounds, you savor the resultant pleasure
<</switch>>
<<else>>
<<switch random(1,5)>>
<<case 1>>
Cupping your <<descTits $player>> mounds, you knead them with a feverish intensity. Pins and needles of pleasure dance across your skin as you pluck and roll your nipples between your fingers, the buds stiffening into aching points of sensation.
<<case 2>>
You <<if $player.body.nails > 2>>rake your nails<<else>>drag your fingers<</if>> over the sensitive flesh of your breasts. Gripping the soft mounds, you squeeze them firmly, panting at the exquisite pressure. Your fingers find your nipples, pinching and rolling the pebbled peaks as you grind your hips, seeking friction.
<<case 3>>
The smooth skin feels like velvet beneath your touch as you cup your <<descTits $player>>globes, marveling at how they <<if $player.body.tits > 3>>overflow your palms<<else>>fit perfectly into your palms<</if>>. Gliding your hands over the supple contours, you watch with fascination as the flesh yields and molds to your caress
<<case 4>>
Your nipples stiffen under your thumbs' feather-light touches, the rosy peaks puckering invitingly. Gently rolling the sensitive buds between your fingers, you relish the tiny sparks of pleasure that dance along your nerve endings.
<<case 5>>
Gently squeezing the pliant globes, you sigh in delight at the pleasing pressure, your body humming with a low, steady thrum of arousal. Lost in the pleasure of your own touch, you continue to caress and fondle your breasts, savoring the exquisite sensations radiating from the tips of your fingers to the very center of your being.
<</switch>>
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Go Back" "MirrorView">><<addSecs 1>><</button>>
</td>
</tr>
</table><<run $dailyLimit.push('MirrorAss')>>
<<set _tmpImg = 'Media/Random/Squeeze/Ass/'>>
<<if $player.outfit.fit > 0 or $player.outfit.panties > 0>>
<<set _tmpImg += 'NonNude/' + random(1,11) + '.webm'>>
<<else>>
<<set _tmpImg += 'Nude/' + random(1,4) + '.webm'>>
<</if>>
<center>
<video @src="_tmpImg" width="640" height="480" autoplay loop></video>
<br><br>
<<if $player.mentalFem < 40>>
<<switch random(1,5)>>
<<case 1>>
<<case 2>>
<<case 3>>
<<case 4>>
<<case 5>>
<</switch>>
<<elseif $player.mentalFem < 50>>
<<switch random(1,5)>>
<<case 1>>
<<case 2>>
<<case 3>>
<<case 4>>
<<case 5>>
<</switch>>
<<elseif $player.mentalFem < 75>>
<<switch random(1,5)>>
<<case 1>>
<<case 2>>
<<case 3>>
<<case 4>>
<<case 5>>
<</switch>>
<<else>>
<<switch random(1,5)>>
<<case 1>>
<<case 2>>
<<case 3>>
<<case 4>>
<<case 5>>
<</switch>>
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Go Back" "MirrorView">><<addSecs 1>><</button>>
</td>
</tr>
</table><center>
<img src="Media/Makeup/makeupPile1.webp" height="450rem" >
<br><br>
You have enough makeup for <<print $player.inventory.checkInv('Cosmetics')>> application(s).
<<if $player.knownStyles.length == 0>>
<div class="badText">You don't know any styles or how to apply makeup.</div>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<makeupActions>>
</div>
<div class="buttonContainer">
<<button "Step back" "MirrorView">>
<<addSecs 5>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Makeup/Apply/' + random(1,6) + '.webp'>>
<center>
<img @src="_tmpImg" height="450rem" >
<br><br>
You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.
<br><br>
<<if $player.skills.makeup < 5>>
<div class="badText">And you do a piss poor job of it</div>
<<else>>
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Finish" "MirrorView">>
<<addSecs 5>>
<</button>>
</td>
</tr>
</table><<set _tmpImg = 'Media/Makeup/Compact/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<center>
<b><font size="10em">Makeup Compact</font></b>
<center><img @src="_tmpImg" height="200">
<br><br>
<<calcHair $player>>
<br>
<<calcFace $player>>
<br><br>
<span id="repCont">
You have <<if $player.inventory.checkInv('Cosmetics') > 0>><b><<print $player.inventory.checkInv('Cosmetics')>></b><<else>>no<</if>> cosmetic applications and <<if $player.inventory.checkInv('Wet Wipes') > 0>><b><<print $player.inventory.checkInv('Wet Wipes')>></b><<else>>no<</if>> tissues left in your purse.
</span>
</center>
<hr>
<div id="actionsContainer">
<<compactActions>>
</div><<widget "mirrorStats">>
<<if $player.mentalFem < 50>>
In the mirror, you see a strange person's face looking back at you that exactly copies all your actions. You can hardly accept the idea that this is now you.
<<elseif $player.mentalFem < 60>>
In the mirror you see a woman's face to which you have become accustomed to. But sometimes, you still get the surreal feeling that this face is not <b>your</b> face and it takes a moment for the dizziness to settle.
<<elseif $player.mentalFem >= 70>>
In the mirror you see a reflection that is instantly recognizable as yourself as it exactly matches your mental self-image.
<</if>>
<br><br>
<<calcHair $player>>
<br><br>
<<calcFace $player>>
<br>
<<if $player.traits.includes(30)>>
<<if $player.body.hair.length > 360>>
<<set $player.mood += 20>>
<<refreshCaption>>
<font color="green"><b>Even just the sight of your <<$mcdesc_hairlengthrandom>> hair gives you a small mood boost!</b></font>
<<elseif $player.body.hair.length > 260>>
<font color="blue"><b>You admire your long hair a bit, happy with how it frames your face and tickles against your back.</b></font>
<<else>>
<<set $player.mood -= 10>>
<<refreshCaption>>
<font color="red"><b>You pout a little at the short length of your hair. You''d look so much better with longer locks, wouldn''t you?</b></font>
<</if>>
<<elseif $hairCounter > 0>>
<<if $hairCounter < 3>>
<<if $player.body.hair.length > 360>>
<font color="blue"><b>You look at your hair and somewhere in the back of your mind you wonder what it would be like if it were longer...</b></font>
<</if>>
<<else>>
<<if $player.body.hair.length > 360>>
<font color="blue"><b>You can''t resist trying to picture yourself with longer hair -- and your imagination says it''d be amazing!</b></font>
<</if>>
<</if>>
<</if>>
<</widget>>
<<widget "makeupActions">>
<div class="buttonContainer">
<<if $player.inventory.checkInv('Cosmetics') >= 1 and $player.knownStyles.includes('Natural')>>
<<button 'Natural'>>
<<applyMakeup 'Natural'>>
<<if passage() === 'CompactMirror'>>
<<replace "#repCont">>
You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.
<</replace>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<compactActions>>
<</replace>>
<</timed>>
<<else>>
<<goto "MirrorApply">>
<</if>>
<</button>>
<</if>>
<<if $player.inventory.checkInv('Cosmetics') >= 3 and $player.knownStyles.includes('Professional')>>
<<button 'Professional'>>
<<applyMakeup 'Professional'>>
<<if passage() === 'CompactMirror'>>
<<replace "#repCont">>
You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.
<</replace>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<compactActions>>
<</replace>>
<</timed>>
<<else>>
<<goto "MirrorApply">>
<</if>>
<</button>>
<</if>>
<<if $player.inventory.checkInv('Cosmetics') >= 5 and $player.knownStyles.includes('Beauty')>>
<<button 'Beauty'>>
<<applyMakeup 'Beauty'>>
<<if passage() === 'CompactMirror'>>
<<replace "#repCont">>
You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.
<</replace>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<compactActions>>
<</replace>>
<</timed>>
<<else>>
<<goto "MirrorApply">>
<</if>>
<</button>>
<</if>>
<<if $player.inventory.checkInv('Cosmetics') >= 7 and $player.knownStyles.includes('Evening')>>
<<button 'Evening'>>
<<applyMakeup 'Evening'>>
<<if passage() === 'CompactMirror'>>
<<replace "#repCont">>
You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.
<</replace>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<compactActions>>
<</replace>>
<</timed>>
<<else>>
<<goto "MirrorApply">>
<</if>>
<</button>>
<</if>>
<<if $player.inventory.checkInv('Cosmetics') >= 10 and $player.knownStyles.includes('Bimbo')>>
<<button 'Bimbo'>>
<<applyMakeup 'Bimbo'>>
<<if passage() === 'CompactMirror'>>
<<replace "#repCont">>
You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.
<</replace>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<compactActions>>
<</replace>>
<</timed>>
<<else>>
<<goto "MirrorApply">>
<</if>>
<</button>>
<</if>>
<<if $player.inventory.checkInv('Cosmetics') >= 10 and $player.knownStyles.includes('Goth')>>
<<button 'Goth'>>
<<applyMakeup 'Goth'>>
<<if passage() === 'CompactMirror'>>
<<replace "#repCont">>
You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.
<</replace>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<compactActions>>
<</replace>>
<</timed>>
<<else>>
<<goto "MirrorApply">>
<</if>>
<</button>>
<</if>>
</div>
<</widget>>
<<widget "applyMakeup">>
<<switch _args[0]>>
<<case 'Natural'>>
<<if $player.inventory.checkInv('Cosmetics') >= 1>>
<<set $player.statBuffs.makeup += 1>>
<<run $player.inventory.removeItem('Cosmetics',1)>>
<<addMins 5>>
<<set $player.body.makeup = 1>>
<<if _routineResult>>
<<set _routineResult.push('<div class="goodText">You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.</div>')>>
<</if>>
<<elseif _routineResult>>
<<set _routineResult.push('<div class="badText">You don\'t have enough makeup for your selected style.</div>')>>
<</if>>
<<case 'Professional'>>
<<if $player.inventory.checkInv('Cosmetics') >= 3>>
<<set $player.statBuffs.makeup += 2>>
<<run $player.inventory.removeItem('Cosmetics',3)>>
<<addMins 10>>
<<set $player.body.makeup = 2>>
<<if _routineResult>>
<<set _routineResult.push('<div class="goodText">You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.</div>')>>
<</if>>
<<elseif _routineResult>>
<<set _routineResult.push('<div class="badText">You don\'t have enough makeup for your selected style.</div>')>>
<</if>>
<<case 'Beauty'>>
<<if $player.inventory.checkInv('Cosmetics') >= 5>>
<<set $player.statBuffs.makeup += 2>>
<<run $player.inventory.removeItem('Cosmetics',5)>>
<<addMins 15>>
<<set $player.body.makeup =3>>
<<if _routineResult>>
<<set _routineResult.push('<div class="goodText">You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.</div>')>>
<</if>>
<<elseif _routineResult>>
<<set _routineResult.push('<div class="badText">You don\'t have enough makeup for your selected style.</div>')>>
<</if>>
<<case 'Evening'>>
<<if $player.inventory.checkInv('Cosmetics') >= 7>>
<<set $player.statBuffs.makeup += 3>>
<<run $player.inventory.removeItem('Cosmetics',7)>>
<<addMins 15>>
<<set $player.body.makeup = 4>>
<<if _routineResult>>
<<set _routineResult.push('<div class="goodText">You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.</div>')>>
<</if>>
<<elseif _routineResult>>
<<set _routineResult.push('<div class="badText">You don\'t have enough makeup for your selected style.</div>')>>
<</if>>
<<case 'Bimbo'>>
<<if $player.inventory.checkInv('Cosmetics') >= 10>>
<<set $player.statBuffs.makeup += 4>>
<<run $player.inventory.removeItem('Cosmetics',10)>>
<<addMins 20>>
<<set $player.body.makeup = 5>>
<<if _routineResult>>
<<set _routineResult.push('<div class="goodText">You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.</div>')>>
<</if>>
<<elseif _routineResult>>
<<set _routineResult.push('<div class="badText">You don\'t have enough makeup for your selected style.</div>')>>
<</if>>
<<case 'Goth'>>
<<if $player.inventory.checkInv('Cosmetics') >= 10>>
<<set $player.statBuffs.makeup += 4>>
<<run $player.inventory.removeItem('Cosmetics',10)>>
<<addMins 20>>
<<set $player.body.makeup = 6>>
<<if _routineResult>>
<<set _routineResult.push('<div class="goodText">You apply makeup in <<print $makeupStyles[$player.body.makeup].type>> style.</div>')>>
<</if>>
<<elseif _routineResult>>
<<set _routineResult.push('<div class="badText">You don\'t have enough makeup for your selected style.</div>')>>
<</if>>
<</switch>>
<</widget>>
<<widget "compactActions">>
<<if $player.body.makeup !== 0>>
<<if $player.inventory.checkInv('Wet Wipes') > 0>>
<div class="buttonContainer">
<<button "Wipe off your makeup">>
<<set $player.body.makeup = 0>>
<<run $player.inventory.removeItem('Wet Wipes',1)>>
<<addSecs 15>>
<<replace "#repCont">>
You wipe your face clean
<</replace>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<compactActions>>
<</replace>>
<</timed>>
<</button>>
</div>
<</if>>
<<else>>
<<makeupActions>>
<</if>>
<div class="buttonContainer">
<<button "Put down your compact" "PurseMenu">>
<<addSecs 5>>
<</button>>
</div>
<</widget>><<set $locType = 'Indoors'>>
<<set $atHome = true>>
<center>
<b><font size="10em">Studio Apartment</font></b>
<br>
<img src="Media/Locations/Downtown/KellysPub/Studio/livingRoom1.webp" height="600rem">
<br><br>
A tiny but well lit studio apartment. It furnishes your basic needs, but that's about it and it would be incredibly cramped with more than two people here at the same time.
<<homeActions>>
</center>
<hr>
<div id="actionsContainer">
<<bedroomActions>>
<div class="buttonContainer">
<<button "Go to the kitchen" "Kitchen">>
<<set $kitchenName = 'Studio Kitchen'>>
<<set $kitchenType = 'Private'>>
<<set $kitchenLoc = 'KellyStudio'>>
<<set $kitchenImg = 'Media/Locations/Downtown/KellysPub/Studio/kitchen.webp'>>
<<set $kitchenDesc = 'A tiny but efficient cooking space.'>>
<<addSecs 20>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go to the bathroom" "Bathroom">>
<<set $homeBath = true>>
<<set $bathType = 'Private'>>
<<set $bathLoc = 'KellyStudio'>>
<<set $bathImg = 'Media/Locations/Downtown/KellysPub/Studio/bathroom1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/KellysPub/Studio/sharedSink1.webp'>>
<<set $bathDesc = 'Cramped but functional; it at least provides everything to take care of your bathroom needs.'>>
<<addSecs 20>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go downstairs">>
<<if ($gameDate.getHours() gte 2) and ($gameDate.getHours() lte 10) >>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem">Kelly\'s Pub is open from 10:00am to 2:00am</font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<<else>>
<<set _tmpVal = passage()>>
<<preFlightCheck _tmpVal 'KellysPub' 1>>
<</if>>
<</button>>
<<button "Go outside">>
<<set _tmpVal = passage()>>
<<preFlightCheck _tmpVal $home.district 2>>
<</button>>
</div>
</div><center>
<span id='repCont'>
<b><font size="10em">Studio Apartment</font></b>
<br>
<img src="Media/Locations/Downtown/KellysPub/Studio/livingRoom1.webp" height="600rem">
<br><br>
The bartender takes you up an interior flight of stairs to the upstairs studio. "As you can see it's not much more than a studio, but it's clean with plenty of sunlight and it's spacious enough for one person. Like the place? If you agree and pay the first month's rent we can get you moved in right away." He says as you take in the small but pleasant studio.
<br><br>
He's not wrong; the studio isn't fancy but it's definitely not a bad place -- and for $1,000 a month it sounds like a pretty good deal.'
</span>
</center>
<hr>
<div id="actionsContainer">
<span id="subActionsContainer">
<div class="buttonContainer">
<<button "Check out the Kitchen">>
<<replace "#repCont">>
<b><font size="10em">Studio Kitchen</font></b>
<br>
<img src="Media/Locations/Downtown/KellysPub/Studio/kitchen.webp" height="600rem">
<</replace>>
<<replace "#subActionsContainer">>
<<button "Check out the Bathroom">>
<<replace "#repCont">>
<b><font size="10em">Studio Bathroom</font></b>
<br>
<img src="Media/Locations/Downtown/KellysPub/Studio/bathroom1.webp" height="600rem">
<</replace>>
<<replace "#subActionsContainer">><</replace>>
<</button>>
<</replace>>
<</button>>
<<button "Check out the Bathroom">>
<<replace "#repCont">>
<b><font size="10em">Studio Bathroom</font></b>
<br>
<img src="Media/Locations/Downtown/KellysPub/Studio/bathroom1.webp" height="600rem">
<</replace>>
<<replace "#subActionsContainer">>
<div class="buttonContainer">
<<button "Check out the Kitchen">>
<<replace "#repCont">>
<b><font size="10em">Studio Kitchen</font></b>
<br>
<img src="Media/Locations/Downtown/KellysPub/Studio/kitchen.webp" height="600rem">
<</replace>>
<<replace "#subActionsContainer">><</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</span>
<div class="buttonContainer">
<<button "Tell him you want to rent it" "StudioRentChat">>
<<addMins 2>>
<</button>>
<<button "Tell him you're not interested" "KellysPub">>
<<addMins 1>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/KellysPub/bTenderTalk' + ($player.presenting === 'Female'? random(1,2):'3') + '.webp'>>
<div class="profileContainer">
<div>
<img @src="_tmpImg" height="450rem">
</div>
<div class="flex-item">
You go back downstairs to the bar to discuss business.
<br><br>
"Rent is $1000 per month, but it includes utilities, and is due on the 1st each month. We sometimes give rebates for tenents who waitress for us, but we'll have to check with the owner first."
<br><br>
<<set _calcDays = (new Date($gameDate.getYear(),$gameDate.getMonth(),-1, 15,0)).getDate()>>
<<set $prorate = Math.floor((1000/_calcDays)*(_calcDays-$gameDate.getDate()))>>
"Since the month has already started, I'll just ask for $<<print $prorate>>.00 for the first month," he says.
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Accept the terms">>
<<if canPurchase($prorate)>>
<<spendMoney $prorate>>
<<unset $prorate>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Collect your keys and move in" "KellyStudio">>
<<moveOut $home.name>>
<<set _tmpHome = ['Downtown','Studio','KellyStudio',1000,$gameDate.getTime()]>>
<<moveIn _tmpHome>>
<</button>>
</div>
<</replace>>
<<else>>
<<script>>
Dialog.setup('No Funds');
Dialog.wiki('<center><div class="badText">You don\'t have that much money.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
</div>
<div class="buttonContianer">
<<button "Decline" "KellyStool">>
<<addSecs 15>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/KellysPub/bTenderTalk' + ($player.presenting === 'Female'? random(1,2):'3') + '.webp'>>
<div class="profileContainer">
<div>
<img @src="_tmpImg" height="450rem">
</div>
<div class="flex-item">
"Sure - I can accept cash or charge. <<if !$home.autoDeduct>>But you could also just set up automatic payments..<</if>>"
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Just pay your rent">>
<<if canPurchase($rentDue)>>
<<spendMoney $rentDue>>
<<unset $rentDue>>
<<addMins 5>>
<<goto "KellyStool">>
<<else>>
<<script>>
Dialog.setup('No Funds');
Dialog.wiki('<center><div class="badText">You don\'t have that much money.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Pay and set up automatic payments">>
<<if canPurchase($rentDue)>>
<<spendMoney $rentDue>>
<<unset $rentDue>>
<<set $home.autoDeduct = true>>
<<addMins 5>>
<<goto "KellyStool">>
<<else>>
<<script>>
Dialog.setup('No Funds');
Dialog.wiki('<center><div class="badText">You don\'t have that much money.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">University Heights Lobby</font></b>
<br>
<img src="Media/Locations/UDistrict/Apartment/lobby.webp" height="550rem">
<br><br>
If depression could take form it would probably look like this rundown apartment lobby. The parts of the linoleum that aren't peeling and cracked are covered with what has to be a decade's worth of dirt and grime.
<br><br>
But then places like this cater to the college-age crowd who have little money and even less regard for the state of their surroundings.
<br><br>
<div class="badText">Some "CAUTION" tape and a sign with "Under Renovation" blazened across it blocks access to the rest of the lobby.</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave the building" "UDistrict">>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<span id="repCont">
<img @src="$bathImg" height="450rem">
<br>
$bathDesc
<<if $bathDesc.includes('You moved to the bathroom to change in private')>>
<<set $bathDesc = $bathDesc.replace('<div class="badText">You moved to the bathroom to change in private.</div><br><br>','')>>
<</if>>
<span id="subRepCont"><br></span>
<<if $homeBath and $player.questTracker.some(obj => obj.idx === 'ParkPhotoQuest') and $player.questTracker.find(obj => obj.idx === 'ParkPhotoQuest').level === 1>>
<div class='badText'>There's a [[bag|JulesGoodieBag]] from $npc_1.firstName sitting on one of the benches.</div>
<</if>>
</span>
</center>
<hr>
<div id ='actionsContainer'>
<<if $bathLoc === 'FairhavenHall' and $isMaid>>
<<set $maidLoc = passage()>>
<<getMaidActs $maidLoc>>
<</if>>
<div class="buttonContainer">
<<button "Use the mirror">>
<<if $isMaid>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You should finish cleaning first.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<set $mirrorLoc = 'Bathroom'>>
<<addSecs 5>>
<<goto "MirrorView">>
<</if>>
<</button>>
<<button "Use the sink">>
<<if $isMaid>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You should finish cleaning first.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<set $sinkLoc = 'Bathroom'>>
<<addSecs 5>>
<<goto "Basin">>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<if $bathType === 'Private'>>
<<button "Take a shower">>
<<if $isMaid>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You should finish cleaning first.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<set $showerLoc = 'Bathroom'>>
<<addSecs 5>>
<<goto "InitShower">>
<</if>>
<</button>>
<</if>>
<<if $player.body.gender === 'Female'>>
<<if $player.body.womb.sanitation and $player.body.womb.sanitationLimit + 2*60*60 < $gameDate.getTime()/1000>>
<<timed 0s>>
<<append '#repCont'>>
<br>
<div class="badText">You take a moment to remove your $player.body.womb.sanitation, you don't want to use the same one for too long.</div>
<</append>>
<<run delete $player.body.womb.sanitation>>
<</timed>>
<</if>>
<<if $player.body.womb.cycle === 4>>
<<if !$player.body.womb.sanitation or $player.body.womb.sanitationLimit < $gameDate.getTime()/1000>>
<<if $player.inventory.checkInv('Tampons') > 0>>
/*check for at home bathroom vs in purse items */
<<button "Use a tampon">>
<<addMins 5>>
<<run $player.inventory.removeItem('Tampons',1)>>
<<set $player.body.womb.sanitation = 'tampon'>>
<<set $player.body.womb.sanitationLimit = $gameDate.getTime()/1000 + 2*60*60>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Shared/Bathroom/Tampon/' + random(1,3) + '.webp'>>
<<replace '#repCont'>>
<img @src="_tmpImg" height="450rem">
<br>
You slip in your new tampon, and take a moment to adjust to it's presence inside you.
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue" "Bathroom">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<if $player.inventory.checkInv('Sanitary Pads') > 0>>
<<button "Use a pad">>
<<if $player.outfit.panties === 0>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You can\'t use pads if you aren\'t wearing panties.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<addMins 5>>
<<run $player.inventory.removeItem('Sanitary Pads',1)>>
<<set $player.body.womb.sanitation = 'pad'>>
<<set $player.body.womb.sanitationLimit = $gameDate.getTime()/1000 + 3*60*60>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Shared/Bathroom/Pads/' + random(1,3) + '.webp'>>
<<replace '#repCont'>>
<img @src="_tmpImg" height="450rem">
<br>
You slip a new pad into your panties and take a moment to adjust it.
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue" "Bathroom">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
<</if>>
<</if>>
<<timed 0s>>
<<if $player.body.womb.sanitation>>
<<button 'Remove your $player.body.womb.sanitation' 'Bathroom'>>
<<run delete $player.body.womb.sanitation>>
<<run delete $player.body.womb.sanitationLimit>>
<<addMins 5>>
<</button>>
<</if>>
<</timed>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Sit on the toilet" "ToiletScene">>
<<addMins 2>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Leave">>
<<set _tmpLoc = $bathLoc>>
<<unset $bathLoc>>
<<unset $bathType>>
<<unset $bathImg>>
<<unset $bathDesc>>
<<unset $homeBath>>
<<addSecs 5>>
<<goto _tmpLoc>>
<</button>>
</div>
</div>
<<timed 0s>>
<<if $bathType === 'Private' or ['Fairhaven','Hovel','MageMansion'].includes($bathLoc)>>
<<replace "#subRepCont">>
<br><br>
A [[medicine cabinet|MedCabinet]] hangs on one wall.
<<if $player.wardrobe.items.some(obj => ['Necklace','Earrings','Ring','Bracelet'].includes(obj.type))>>
<br>
Your [[jewelry box|JewelryBox][$jewelryMenu = 'Earrings']] is here.
<</if>>
<</replace>>
<</if>>
<</timed>><<set _tmpImg = 'Media/Shared/Bathroom/Toilet/Sit/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height="500rem">
<br><br>
You sit on the toilet and play on your phone for a few minutes.
<<if $bathLoc == 'DirtyDicks'>>
<br><br>
<<if !$player.questTracker.some(obj => obj.idx === 'GloryHole')>>
You notice a [[hole|GloryHole]] in the stall wall.
<</if>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if $player.questTracker.some(obj => obj.idx == 'GloryHole')>>
<div class="buttonContainer">
<<if $player.questTracker.find(obj => obj.idx === 'GloryHole').level >= 3>>
<<set _tmpLbl = 'Look at the Glory Hole'>>
<<else>>
<<set _tmpLbl = 'Look through the hole'>>
<</if>>
<<button _tmpLbl>>
<<if $bathImg == 'Media/Locations/RedLight/DiveBar/wRoom.webp'>>
<<calcOralRx 'Giving'>>
<<else>>
<<calcOralRx 'Getting'>>
<</if>>
<<if $player.questTracker.find(obj => obj.idx == 'GloryHole').level >= 3 or $oralRx != 'Resist'>>
<<addMins 2>>
<<goto "GloryHole">>
<<else>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You shudder at the thought.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Get up" "Bathroom">>
<<addMins 2>>
<</button>>
</div>
</div><<if !$player.questTracker.some(obj => obj.idx === 'GloryHole')>>
<<set $player.questTracker.push({idx: 'GloryHole', level: 1})>>
<</if>>
<<set _tmpQst = $player.questTracker.find(obj => obj.idx === 'GloryHole')>>
<<if $bathImg == 'Media/Locations/RedLight/DiveBar/wRoom.webp'>>
<<set _tmpImg = 'Media/Sex/GloryHole/fGlory.webp'>>
<<else>>
<<set _tmpImg = 'Media/Sex/GloryHole/mGlory.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height="500rem">
<br><br>
<<if _tmpQuest.level === 1>>
<<set _tmpQuest.level = 2>>
You lean in closer to examine the hole - it goes all the way through the wall to the space on the other side!
<<elseif _tmpQuest.level === 2>>
You idly wonder why no one has fixed this whole yet.
<<else>>
A hole in the wall to the men's bathroom.
<</if>>
<br>
<span id="repCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<<if _tmpQst.level >= 3 and $player.slutLevel >= 3>>
<div class="buttonContainer">
<<button "Knock on the wall">>
<<addSecs 15>>
<<if random(0,100) >= 50>>
<<if $bathImg == 'Media/Locations/RedLight/DiveBar/wRoom.webp'>>
<<set _tmpNPC = new Person(random(21,45),'Male')>>
<<set $NPCArray.push(_tmpNPC)>>
<<set
$currDNA = _tmpNPC.dna;
$sceneLoc = 'Bathroom';
$sceneAct = 'GloryHoleBJ';
$sceneDir = 'Giving';
>>
<<addMins 1>>
<<goto "sexSceneEngine">>
<<else>>
<<set _tmpNPC = new Person(random(21,45),'Female')>>
<<set $NPCArray.push(_tmpNPC)>>
<<set
$currDNA = _tmpNPC.dna;
$sceneLoc = 'Bathroom';
$sceneAct = 'GloryHoleBJ';
$sceneDir = 'Getting';
>>
<<addMins 1>>
<<goto "sexSceneEngine">>
<</if>>
<<else>>
<<replace "#repCont">>
<<addMins 2>>
<<refreshCaption>>
<div class="badText">You wait a little while but you don't see any movement on the other side of the wall.</div>
<</replace>>
<</if>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Go back">>
<<if random(0,100) >= 60 and $bathImg == 'Media/Locations/RedLight/DiveBar/wRoom.webp'>>
<<set _tmpNPC = new Person(random(21,45),'Male')>>
<<set $NPCArray.push(_tmpNPC)>>
<<set
$currDNA = _tmpNPC.dna;
$sceneLoc = 'Bathroom';
$sceneAct = 'GloryHoleBJ';
$sceneDir = 'Giving';
>>
<<addMins 1>>
<<goto "sexSceneEngine">>
<<elseif random(0,100) >= 60 and $bathImg == 'Media/Locations/RedLight/DiveBar/mRoom.webp'>>
<<set _tmpNPC = new Person(random(21,45),'Female')>>
<<set $NPCArray.push(_tmpNPC)>>
<<set
$currDNA = _tmpNPC.dna;
$sceneLoc = 'Bathroom';
$sceneAct = 'GloryHoleBJ';
$sceneDir = 'Getting';
>>
<<goto "sexSceneEngine">>
<<else>>
<<replace "#repCont">>
<<addSecs 5>>
<<goto "ToiletScene">>
<</replace>>
<</if>>
<</button>>
</div>
</div><<if !$sinkImg>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<</if>>
<center>
<img @src="$sinkImg" height="450rem">
<br>
<span id='repCont'><br></span>
</center>
<hr>
<div id ='actionsContainer'>
<<getBasinActions>>
</div><<showerInit>>
<center>
<img src="Media/Shared/Bathroom/Shower/Intro/1.webp" height="450rem" >
<br><br>
some initiating shower text
</center>
/*initiate the showerVid for use */
<<set $showerVid = 'Media/Shared/Bathroom/Shower/Soak/'>>
<<if $player.body.gender === 'Trans'>>
<<set $showerVid += 'T/' + random(1,5) + '.mp4'>>
<<elseif $player.body.gender === 'Female'>>
<<set $showerVid += 'F/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set $showerVid += 'Preg/' + random(1,9) + '.mp4'>>
<<elseif $player.body.tits > 4>>
<<set $showerVid += 'Big/' + random(1,6) + '.mp4'>>
<<elseif $player.body.tits > 2>>
<<set $showerVid += 'Mid/' + random(1,2) + '.mp4'>>
<<else>>
<<set $showerVid += 'Small/' + random(1,3) + '.mp4'>>
<</if>>
<<else>>
<<set $showerVid += 'M/' + random(1,1) + '.mp4'>>
<</if>>
<<getShowerActions>><center>
<<if $isShowerImage is undefined>>
<video @src="$showerVid" height="500rem" autoplay loop></video>
<<else>>
<img @src="$showerVid" height="450rem" >
<<unset $isShowerImage>>
<</if>>
<br><br>
$showerText
<<unset $showerText>>
</center>
<<getShowerActions>><<set _medOptions = []>>
<<if $bathLoc === 'Hovel'>>
<<set _tmpImg = 'Media/Shared/Bathroom/Cabinet/1.webp'>>
<<else>>
<<set _tmpImg ='Media/Shared/Bathroom/Cabinet/' + ($player.presenting === 'Female'?'F/' + random(1,1):'M/' + random(1,1)) + '.webp'>>
<</if>>
<center>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
</span>
<span id="subRepCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<<medCabinetActions>>
</div><<set $dailyLimit.push('Honeydew Cream')>>
<<set $player.statBuffs.tits += 1>>
<<set $player.questTracker = $player.questTracker.filter(obj => obj.idx != 'ItchyNips')>>
<<run $player.questLog.removeQuest('ItchyNips')>>
<<set _tmpQuest = $player.questTracker.find(obj => obj.idx === 'BreastCream')>>
<<if !_tmpQuest>>
<<set $player.questTracker.push({idx: 'BreastCream',level:4})>>
<<elseif _tmpQuest.level < 4>>
<<set _tmpQuest.level = 4>>
<</if>>
<<set $player.arousal += 1>>
<<run $player.inventory.removeItem('Honeydew Cream',1)>>
<<set _tmpVid = 'Media/Self/Body/Tits/Lotion/'>>
<<if !$honeydewCount>>
<<set $honeydewCount = 1>>
<<else>>
<<set $honeydewCount += 1>>
<</if>>
<<if $player.body.tits === 0>>
<<set _tmpVid += 'Flat/' + random(1,2) + '.webp'>>
<<elseif $player.body.tits < 4>>
<<set _tmpVid += 'Small/' + random(1,9) + '.mp4'>>
<<elseif $player.body.tits < 6>>
<<set _tmpVid += 'Mid/' + random(1,7) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Large/' + random(1,11) + '.mp4'>>
<</if>>
<center>
<<if $player.body.tits === 0>>
<img @src="_tmpVid" height="600rem">
<<else>>
<video @src="_tmpVid" height="600rem" autoplay loop></video>
<</if>>
<br><br>
You scoop some of the cool silky cream into your hand and rub it into your <<sizeTits $player>> chest until it's completely absorbed into your skin like the instructions state.
<br><br>
After a brief, but not-unpleasant, tingling sensation you can't even tell that you applied anything. Cheap stuff, probably doesn't do anything at all.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "MedCabinet">>
<<addSecs 10>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Close the medicine cabinet" "Bathroom">>
<<addSecs 10>>
<</button>>
</div>
</div><<run $player.inventory.removeItem('Skin Cream',1)>>
<<set $dailyLimit.push('Skin Cream')>>
<<set $player.statBuffs.skin += 2>>
<<set _tmpVid = 'Media/Self/Body/Tits/Lotion/'>>
<<if $player.body.tits === 0>>
<<set _tmpVid += 'Flat/' + random(1,2) + '.webp'>>
<<elseif $player.body.tits < 4>>
<<set _tmpVid += 'Small/' + random(1,9) + '.mp4'>>
<<elseif $player.body.tits < 6>>
<<set _tmpVid += 'Mid/' + random(1,7) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Large/' + random(1,11) + '.mp4'>>
<</if>>
<center>
<<if $player.body.tits === 0>>
<img @src="_tmpVid" height="600rem">
<<else>>
<video @src="_tmpVid" height="600rem" autoplay loop></video>
<</if>>
<br><br>
You take a few minutes and apply the cream to your whole body. You have to admit, your skin seems improved almost instantly and the dry spots aren't quite as noticeable
<<if $player.inventory.checkInv('Skin Cream') === 0>>
<br>
<div class='badText'>
You use up the last of the cream and toss the empty container into the bin.
</div>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "MedCabinet">>
<<addSecs 15>>
<</button>>
</div>
</div><<run $player.inventory.removeItem('Pregnancy Test',1)>>
<center>
<<set _tmpImg = 'Media/Shared/Bathroom/PregTest/Test/' + random(1,2) + '.webp'>>
<span id="repCont">
<img @src='_tmpImg' height="600rem">
<br><br>
You sit on the toilet and stick the dipstick into your pee stream, now it's just a matter of waiting.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Wait for the results">>
<<set _testResult = false>>
<<if $player.body.womb and $player.body.womb.isPreg>>
<<if $currJulianDate - $player.body.womb.fertEgg.implant > 13>>
<<set _testResult = true>>
<<elseif $currJulianDate - $player.body.womb.fertEgg.implant > 12>>
<<if random(0,100) > 25>>
<<set _testResult = true>>
<</if>>
<<elseif $currJulianDate - $player.body.womb.fertEgg.implant > 10>>
<<if random(0,100) > 50>>
<<set _testResult = true>>
<</if>>
<<elseif $currJulianDate - $player.body.womb.fertEgg.implant > 5>>
<<if random(0,100)> 75>>
<<set _testResult = true>>
<</if>>
<</if>>
<</if>>
<<set _tmpImg = 'Media/Shared/Bathroom/PregTest/Result/'>>
<<if !_testResult>>
<<set _tmpImg += '1.webp'>>
<<else>>
<<set _tmpImg += '2.webp'>>
<</if>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
<<if _testResult>>
<<set _tmpQuest = $player.questTracker.find(obj => obj.idx === "PregTracker")>>
<<if _tmpQuest>>
<<set _tmpQuest.level = 3>>
<</if>>
<<run $player.questLog.addQuest('PregQuest','You\'ve had a positive pregnancy test. You should consult a doctor.')>>
You stare for a moment at the second pink line on the test - just to be sure you're actually seeing it and not just imagining it. But the line doesn't go away.
<br><br>
<div class="badText">You're pregnant!</div>
<<else>>
<<run $player.questLog.removeQuest('PregQuest')>>
After waiting a few more minutes just to be safe you're certian the second bar isn't going to show up.
<br><br>
<div class="goodText">You're not pregnant.</div>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "Bathroom">>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Shared/Bathroom/BreastPump/' + random(1,10) + '.webp'>>
<center>
<img @src='_tmpImg' height="600rem">
<br><br>
You pump out each breast and, not knowing what else to do with it, pour the milk down the drain.
<br><br>
After cleaning up you put away the pump.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "Bathroom">>
<<addSecs 30>>
<</button>>
</div>
</div><<widget "getShowerActions">>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Soak under the water" "Shower">>
<<addMins 5>>
<<if $lastSoakDay < $currJulianDate or $player.mood < 80>>
<<set $lastSoakDay = clone($currJulianDate)>>
<<set $player.mood += 5>>
<</if>>
<<set $showerVid = 'Media/Shared/Bathroom/Shower/Soak/'>>
<<if $player.body.gender === 'Trans'>>
<<set $showerVid += 'T/' + random(1,5) + '.mp4'>>
<<elseif $player.body.gender === 'Female'>>
<<set $showerVid += 'F/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set $showerVid += 'Preg/' + random(1,9) + '.mp4'>>
<<elseif $player.body.tits > 4>>
<<set $showerVid += 'Big/' + random(1,6) + '.mp4'>>
<<elseif $player.body.tits > 2>>
<<set $showerVid += 'Mid/' + random(1,2) + '.mp4'>>
<<else>>
<<set $showerVid += 'Small/' + random(1,3) + '.mp4'>>
<</if>>
<<else>>
<<set $showerVid += 'M/' + random(1,1) + '.mp4'>>
<</if>>
<<set $showerText = 'You soak under the spray of water, losing yourself in the relaxing spray for a little while.'>>
<</button>>
<<button "Sing" "Shower">>
<<set $lastSingDay = clone($currJulianDate)>>
<<addMins 5>>
<<set $player.mood += 5>>
<<if $player.skills.singing > 10>>
<<set $player.statBuffs.singing += $player.skills.singing/5>>
<<else>>
<<set $player.statBuffs.singing += 1>>
<</if>>
<<set $showerVid = 'Media/Shared/Bathroom/Shower/Sing/'>>
<<set $isShowerImage = 1>>
<<if $player.presenting === 'Female'>>
<<set $showerVid += 'F/' + random(1,6) + '.webp'>>
<<else>>
<<set $showerVid += 'M/' + random(1,3) + '.webp'>>
<</if>>
<<set $showerText = 'You spend some time belting out your favorite songs into the shower head.<br><br>'>>
<<if $player.skills.singing >= 10>>
<<set $showerText += '<font color=green><b>Your voice is perfect and melodical, anyone listening might think you\'re a professional singer.</b></font>'>>
<<elseif $player.skills.singing >= 8>>
<<set $showerText += '<font color=blue><b>As shower-singers go, you\'ve got to be at the top of your game.</b></font>'>>
<<elseif $player.skills.singing >= 5>>
<<set $showerText += '<font color=blue><b>Keep up the practice and you might actually have a half-way decent singing voice one day.</b></font>'>>
<<elseif $player.skills.singing >= 3>>
<<set $showerText += '<font color=#eb6e34><b>No one will be knocking down your door with singing contracts, but not bad for a shower performance.</b></font>'>>
<<elseif $player.skills.singing >= 2>>
<<set $showerText += '<font color=#eb6e34><b>You don\'t think you sound half bad -- but you\'re not certain what other people would think.</b></font>'>>
<<elseif $player.skills.singing >= 1>>
<<set $showerText += '<font color=red><b>Most people say singing in the shower makes you sound better -- it doesn\'t seem to help you very much.</b></font>'>>
<<else>>
<<set $showerText += '<font color=red><b>It\'s a good thing you\'re alone -- no one should have to hear your horrible singing voice.</b></font>'>>
<</if>>
<</button>>
<<if $player.inventory.checkInv("Hair Oil") > 0>>
<<button "Use Hair growth oil" "Shower">>
<<addMins 5>>
<<run $dailyLimit.push('Hair Oil')>>
<<if !$hairBoost>><<set $hairBoost = 0>><</if>>
<<set $hairBoost += 1>>
<<run $player.inventory.removeItem('Hair Oil',1)>>
<<set $showerVid = 'Media/Shared/Bathroom/Shower/HairWash/'>>
<<if $player.body.hair.length < 80>>
<<addMins 2>>
<<if $player.presenting == 'Female'>>
<<set $showerVid += 'F/Short/'>>
<<if $player.body.tits > 0>>
<<set $showerVid += random(2,4) + '.webm'>>
<<else>>
<<set $showerVid += random(1,1) + '.webm'>>
<</if>>
<<else>>
<<set $showerVid += 'M/Short/' + random(1,1) + '.mp4'>>
<</if>>
<<elseif $player.body.hair.length < 260>>
<<addMins 4>>
<<if $player.presenting == 'Female'>>
<<set $showerVid += 'F/Mid/'>>
<<if $player.body.tits > 0>>
<<set $showerVid += random(1,3) + '.webm'>>
<<else>>
<<set $showerVid += random(1,1) + '.webm'>>
<</if>>
<<else>>
<<set $showerVid += 'M/Mid/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<addMins 8>>
<<if $player.presenting == 'Female'>>
<<set $showerVid += 'F/Long/'>>
<<if $player.body.tits > 0>>
<<set $showerVid += random(1,4) + '.webm'>>
<<else>>
<<set $showerVid += random(1,1) + '.webm'>>
<</if>>
<<else>>
<<set $showerVid += 'M/Long/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<<set $showerText = 'You run a generous amount of the oil into your $player.body.hair.color <<descHair $player>> hair and let it sit for while before rinsing it out.'>>
<</button>>
<</if>>
<<if $player.body.hair.clean < 9 and $player.inventory.checkInv('Shampoo') > 0>>
<<button "Wash your hair" "Shower">>
<<set $player.body.hair.clean = 10>>
<<run $player.inventory.removeItem('Shampoo',1)>>
<<set $showerVid = 'Media/Shared/Bathroom/Shower/HairWash/'>>
<<if $player.body.hair.length < 80>>
<<addMins 2>>
<<if $player.presenting == 'Female'>>
<<set $showerVid += 'F/Short/'>>
<<if $player.body.tits > 0>>
<<set $showerVid += random(2,4) + '.webm'>>
<<else>>
<<set $showerVid += random(1,1) + '.webm'>>
<</if>>
<<else>>
<<set $showerVid += 'M/Short/' + random(1,1) + '.mp4'>>
<</if>>
<<elseif $player.body.hair.length < 260>>
<<addMins 4>>
<<if $player.presenting == 'Female'>>
<<set $showerVid += 'F/Mid/'>>
<<if $player.body.tits > 0>>
<<set $showerVid += random(1,3) + '.webm'>>
<<else>>
<<set $showerVid += random(1,1) + '.webm'>>
<</if>>
<<else>>
<<set $showerVid += 'M/Mid/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<addMins 8>>
<<if $player.presenting == 'Female'>>
<<set $showerVid += 'F/Long/'>>
<<if $player.body.tits > 0>>
<<set $showerVid += random(1,4) + '.webm'>>
<<else>>
<<set $showerVid += random(1,1) + '.webm'>>
<</if>>
<<else>>
<<set $showerVid += 'M/Long/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<<set $showerText = 'You lather up your $player.body.hair.color <<descHair $player>> hair and then dunk your head under the shower stream.'>>
<<if $player.mentalFem <=30 and $player.body.hair.length >= 80>>
<<set $showerText += '<br><br>As you run the water through your hair you notice how long it\'s getting. It\'s definetly time for a haircut unless you want even more people mistaking you for a girl.'>>
<<elseif $player.mentalFem > 40 and $player.body.hair.length < 260>>
<<set $showerText += '<br><br>You idly wonder what you\'d look like with longer hair. Perhaps it\'s time to grow it out a bit?'>>
<<elseif $player.mentalFem > 80 and $player.body.hair.length > 400>>
<<set $showerText += '<br><br>You gather your hair up in your hands and let the warm water wash through it, enjoying the slight tugging at your scalp from the weight of it all. Long hair can be a pain, but you know you definitely look better with it.'>>
<</if>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<if $player.body.tits > 0 and ($player.mentalFem > 35 or $player.arousal > 50)>>
<<button "Wash your chest" "Shower">>
<<addMins 5>>
<<calcArousal 'tits' $player.mentalFem/10 2>>
<<sexPowerDown>>
<<set $showerVid = 'Media/Shared/Bathroom/Shower/SoapyTits/'>>
<<if $player.body.tits > 6>>
<<set $showerVid += 'Large/' + random(1,11) + '.webm'>>
<<elseif $player.body.tits > 2>>
<<set $showerVid += 'Medium/' + random(1,10) + '.webm'>>
<<else>>
<<set $showerVid += 'Small/' + random(1,5) + '.webm'>>
<</if>>
<<if $player.mentalFem < 35>>
<<switch random(1,3)>>
<<case 1>>
<<set $showerText = 'With a bit of caution, you soap up your breasts and massage them gently. It\'s an unfamiliar sensation…but not an entirely bad one.'>>
<<case 2>>
<<set $showerText = 'You try to ignore how your chest moves as you rub soap over your <<descTits $player>> chest. The fact that it feels vaugely pleasurable just adds to the uncomfortable quality of the sensation.'>>
<<case 3>>
<<set $showerText = 'Just focusing on the getting the job done you run your soapy hands over your <<descTits $player>> <<sizeTits $player>> breasts, pretending that everything is as normal as it\'s always been.'>>
<</switch>>
<<elseif $player.mentalFem < 40>>
<<switch random(1,3)>>
<<case 1>>
<<set $showerText = 'You still can\'t get over how different your chest — now breasts — feels in your hands. Running a finger across a nipple is a completely different experience now.'>>
<<case 2>>
<<set $showerText = 'You marvel at having a pair of naked breasts to play with on command -- 12-year-old-you would probably be over the moon if only he knew!'>>
<<case 3>>
<<set $showerText = 'You notice how your <<descTits $player>> <<sizeTits $player>> breasts move and jiggle now with the slightest touch, so unlike your old body\'s reaction. It also feels rather enjoyable, if you were fully honest with yourself.'>>
<</switch>>
<<elseif $player.mentalFem < 50>>
<<switch random(1,3)>>
<<case 1>>
<<set $showerText = 'Having breasts may no longer be quite the novelty they were at the onset, but you feel that you\'ve adapted to them enough to find some amusement with feeling how they bounce and shake as you soap them up in the shower.'>>
<<case 2>>
<<set $showerText = 'You\'ve grown more comfortable with your larger breasts, and at times almost enjoy the sensations you can get from rubbing them, or when your clothes gently caress them like your hands are now.'>>
<<case 3>>
<<set $showerText = 'If all men knew how nice if feels to simply wash breasts like your <<descTits $player>> <<sizeTits $player>>s they\'d probably all sign on for a pair of their very own!'>>
<</switch>>
<<elseif $player.mentalFem < 60>>
<<switch random(1,3)>>
<<case 1>>
<<set $showerText = 'While you breasts can get really sore at times, there are occasions—like now—where touching them feels nice. You\'re sure they\'re perfectly clean, but you linger on them a bit longer, just marveling at the unusual sensation.'>>
<<case 2>>
<<set $showerText = 'You close your eyes as you let your hands roam freely over your <<descTits $player>> <<sizeTits $player>> breasts, enjoying both the feeling of them in your hands as well the sensation of having them caressed and rubbed.'>>
<<case 3>>
<<set $showerText = 'The hot water and slick-soap gives rubbing your <<descTits $player>> <<sizeTits $player>> a delightfully slick and somehow sinful pleasure - making you want to do it all the more!'>>
<</switch>>
<<else>>
<<set $showerText = 'Absentmindedly kneading your breasts while washing them, you find your mind begin to zone out while you enjoy the pleaseant warm moment. You completely forget where you are for a moment, and then realize you should get on with the rest of your shower.'>>
<</if>>
<</button>>
<</if>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<button "Wash your belly" "Shower">>
<<addSecs 5>>
<</button>>
<</if>>
<<if $player.cumArr.length > 0>>
<<getCumWashOptions 'Shower'>>
<</if>>
</div>
<div class="buttonContainer">
<<if $player.inventory.checkInv("Razor") > 0 and $player.body.pitHair > 1 and $player.expo > 0>>
<<button "Shave your pits" "Shower">>
<<set $player.body.pitHair = 0>>
<<run $player.inventory.removeItem('Razor',1)>>
<<addMins 5>>
<<set $showerVid = 'Media/Shared/Bathroom/'>>
<<if $inBath === 1>>
<<else>>
<<set $showerVid += 'Shower/Shave/Pits/'>>
<<if $player.presenting === 'Female'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set $showerVid += 'F/Preg/' + random(1,2) + '.mp4'>>
<<else>>
<<if $player.body.gender === 'Trans'>>
<<set $showerVid += 'F/' + random(1,3) + '.webm'>>
<<else>>
<<set $showerVid += 'F/' + random(1,5) + '.webm'>>
<</if>>
<</if>>
<<else>>
<<set $showerVid += 'M/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<<if $player.mentalFem < 40>>
<<set $showerText = 'Goosebumps rise up as you lather your armpits with shaving cream and drag the razor across the smooth sensitive skin under you arms. Not that long ago you would have never thought you\'d be doing something like this!<br><br>'>>
<<set $showerText += 'You feel really awkward, never having done this before as a guy. Luckily, you had more than enough experience with shaving your face and technically this isn\'t really all that different. So in the end you get a pretty decent job done.'>>
<<else>>
<<set $player.mood += $player.mentalFem/10>>
<<set $showerText = 'Shaving your armpits is just second nature now and you actually enjoy your freshly shaven skin afterwards.'>>
<</if>>
<</button>>
<</if>>
<<if $player.inventory.checkInv("Razor") > 0 and $player.body.legHair > 1 and ($player.mentalFem >= 30 or ($player.questTracker.some(obj => obj.idx == 'ParkPhotoQuest') and $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level === 2))>>
<<button "Shave your legs" "Shower">>
<<set _tmpVal = Math.min(10,3*$player.body.legHair)>>
<<addMins _tmpVal>>
<<set $player.body.legHair = 0>>
<<set $player.statBuffs.femBuff += 1>>
<<set $showerVid = 'Media/Shared/Bathroom/'>>
<<if $inBath === 1>>
<<else>>
<<set $showerVid += 'Shower/Shave/Legs/'>>
<<if $player.presenting === 'Female'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set $showerVid += 'F/Preg/' + random(1,1) + '.mp4'>>
<<else>>
<<set $showerVid += 'F/' + random(1,1) + '.webm'>>
<</if>>
<<else>>
<<set $isShowerImage = 1>>
<<set $showerVid += 'M/' + random(1,2) + '.webp'>>
<</if>>
<</if>>
<</button>>
<</if>>
<<if $player.inventory.checkInv("Razor") > 0 and $player.body.pubes > 1 and (($player.body.gender === 'Female' and $player.mentalFem >= 30) or ($player.body.gender === 'Male' and $player.mentalFem < 30)) and $player.exhib >= 30>>
<<button "Shave your pubes" "Shower">>
<<set _tmpVal = Math.min(10,3*$player.body.legHair)>>
<<addMins _tmpVal>>
<<set $player.body.pubes = 0>>
<<if $player.body.gender != 'Male' and $player.mentalFem < 40>><<set $player.statBuffs.femBuff += 1>><</if>>
<<set $showerVid = 'Media/Shared/Bathroom/'>>
<<if $inBath === 1>>
<<else>>
<<set $showerVid += 'Shower/Shave/'>>
<<if $player.body.gender === 'Female'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set $showerVid += 'Pussy/Preg/' + random(1,1) + '.mp4'>>
<<else>>
<<set $showerVid += 'Pussy/' + random(1,1) + '.webm'>>
<</if>>
<<else>>
<<set $showerVid += 'Cock/' + random(1,1) + '.webm'>>
<</if>>
<</if>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<if $player.arousal > 25 and (!$player.questTracker.some(obj => obj.idx == 'ParkPhotoQuest') or $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level !== 2)>>
<<button "Play with yourself" "sexSceneEngine">>
<<if $bathLoc === 'FairhavenHall' and $npc_1.relationship > 0 and !($player.questTracker.some(obj => obj.idx == 'JuliaSexToy')) and !$player.questTracker.some(obj => obj.idx == 'JuliaBlock')>>
<<set $masturbationEvents = ['JuliaInterrupt']>>
<</if>>
<<set $showerText = 'You soak under the spray of water, enjoying the afterglow of your orgasm.'>>
<<set $skipEnding = true>>
<<set $sceneLoc = 'Shower'>>
<<set $sceneAct = 'Masturbation'>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Get out of the shower">>
<<set _tmpLoc = clone($showerLoc)>>
<<unset $showerLoc>>
<<unset $showerVid>>
<<unset $showerInProg>>
<<addSecs 5>>
<<goto _tmpLoc>>
<</button>>
</div>
</div>
<</widget>>
<<widget "getBasinActions">>
<div class="buttonContainer">
<<button "Use the mirror" "MirrorView">>
<<set $mirrorLoc = clone($sinkLoc)>>
<<unset $sinkLoc>>
<<addSecs 5>>
<</button>>
</div>
<<if $player.body.makeup != 0>>
<div class="buttonContainer">
<<button "Wash off makeup" "Basin">>
<<set $player.body.makeup = 0>>
<<addMins 5>>
<</button>>
</div>
<</if>>
<<if $player.body.breath < 10 and $homeBath>>
<div class="buttonContainer">
<<button "Brush your teeth">>
<<if $player.inventory.checkInv('Toothbrush') > 0>>
<<if $player.inventory.checkInv('Toothpaste') > 1>>
<<addMins 3>>
<<run $player.inventory.removeItem('Toothpaste',1)>>
<<set $player.body.breath = 15>>
<<goto "Basin">>
<<else>>
<<replace "#repCont">>
<div class="badText">You're out of toothpaste</div>
<</replace>>
<</if>>
<<else>>
<<replace '#repCont'>>
<div class="badText">You don't have a toothbruth</div>
<</replace>>
<</if>>
<</button>>
</div>
<</if>>
<<if $player.cumArr.length > 0>>
<div class="buttonContainer">
<<getCumWashOptions 'Basin'>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step back">>
<<set _tmpLoc = $sinkLoc>>
<<unset $sinkLoc>>
<<addSecs 5>>
<<unset $sinkImg>>
<<goto _tmpLoc>>
<</button>>
</div>
<</widget>>
<<widget "showerInit">>
<<set
$showerInProg = true;
$player.body.hair.styled = false;
$player.body.hair.pony = 0;
$player.body.makeup = 0;
$player.body.sweat = 0
>>
<<set _tmpVal = ['Facial','Hair','Hands','Tits','Stomach','AssCheeks','Thighs','Feet']>>
<<removeCum _tmpVal >>
<</widget>>
<<widget "medCabinetActions">>
<<set _medOptions = []>>
<<if $player.inventory.checkInv("Honeydew Cream") > 0>>
<<if !$dailyLimit.includes('Honeydew Cream')>>
<<set _medOptions.push('Honeydew Cream')>>
<</if>>
<<timed 0s>>
<<append "#subRepCont">>
<br>
You have <<print $player.inventory.checkInv("Honeydew Cream")>> remaining applications of Honeydew Cream.
<</append>>
<</timed>>
<</if>>
<<if $player.inventory.checkInv("Skin Cream") > 0>>
<<if !$dailyLimit.includes('Skin Cream')>>
<<set _medOptions.push('Skin Cream')>>
<</if>>
<<timed 0s>>
<<append "#subRepCont">>
<br>
You have <<print $player.inventory.checkInv("Skin Cream")>> remaining applications of skin cream.
<</append>>
<</timed>>
<</if>>
<<if $player.inventory.checkInv("Nail Trimmer") > 0 and !$dailyLimit.includes('Nail Trimmer')>>
<<if $player.body.nails > 1>>
<<set _medOptions.push('Nail Trimmer')>>
<</if>>
<</if>>
<<if $player.inventory.checkInv("Pregnancy Test") > 0 and $player.body.womb>>
<<set _medOptions.push('Pregnancy Test')>>
<</if>>
<<if $player.inventory.checkInv("Prenatal Vitamins") > 0>>
<<if !$dailyLimit.includes('Prenatal Vitamins') and $player.body.womb and $player.body.womb.isPreg>>
<<set _medOptions.push('Prenatal Vitamins')>>
<</if>>
<</if>>
<<if $player.inventory.checkInv("Breast Pump") > 0>>
<<set _medOptions.push('Breast Pump')>>
<</if>>
<div class="buttonContainer">
<<if _medOptions.includes('Pregnancy Test')>>
<<button "Use Pregnancy Test">>
<<if ($player.body.womb and ($currJulianDate - $player.sexStats.lastSex) < 14) or ($player.questTracker.some(obj => obj.idx === "PregTracker") and $player.questTracker.find(obj => obj.idx === "PregTracker").level == 2)>>
<<addMins 5>>
<<goto "PregTest">>
<<else>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You have no reason to use a pregnancy test</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
<</if>>
<<if _medOptions.includes('Nail Trimmer')>>
<<button "Trim your nails">>
<<run $dailyLimit.push('Nail Trimmer')>>
<<if $player.body.nails >= 4>>
<<set $player.body.nails = 2>>
<<else>>
<<set $player.body.nails = 0>>
<</if>>
<<replace "#subRepCont">>
You trim and smooth out your nails.
<</replace>>
<<replace "#actionsContainer">>
<<medCabinetActions>>
<</replace>>
<</button>>
<</if>>
<<if _medOptions.includes('Honeydew Cream')>>
<<button "Use Honeydew Cream" "HoneydewCream">>
<<addMins 5>>
<</button>>
<</if>>
<<if _medOptions.includes('Skin Cream')>>
<<button "Use Skin Cream" "ApplySkinCream">>
<<addMins 5>>
<</button>>
<</if>>
<<if _medOptions.includes('Prenatal Vitamins')>>
<<button "Use Prenatal Vitamins">>
<<if $player.body.womb and $player.body.womb.isPreg and $player.questTracker.find(obj => obj.idx === "PregTracker").level >= 3>>
<<run $player.inventory.removeItem('Prenatal Vitamins',1)>>
<<set
$player.mood += 5;
$player.health += 5;
$dailyLimit.push('Prenatal Vitamins');
>>
<<addMins 1>>
<<refreshCaption>>
<<replace "#subRepCont">>
You take a prenatal vitamin, feeling better knowing you're doing something good for your baby.
<</replace>>
<<replace "#actionsContainer">>
<<medCabinetActions>>
<</replace>>
<<else>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You have no reason to take prenatal vitamins.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
<</if>>
<<if _medOptions.includes('Breast Pump')>>
<<button "Use your Breast Pump">>
<<if !$player.questTracker.some(qst => qst.idx === 'Lactation')>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You have no reason to use a breast pump.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<elseif $player.questTracker.find(qst => qst.idx === 'Lactation').vol < $player.questTracker.find(qst => qst.idx === 'Lactation')/4>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You don\'t have enough milk for that.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<addMins 2*$player.questTracker.find(qst => qst.idx === 'Lactation').vol>>
<<set
$player.questTracker.find(qst => qst.idx === 'Lactation').vol = 0;
$player.questTracker.find(qst => qst.idx === 'Lactation').lastMilkDate = clone($currJulianDate);
>>
<<goto "PumpBreastMilk">>
<</if>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Close the medicine cabinet" "Bathroom">>
<<addSecs 10>>
<</button>>
</div>
<</widget>><center>
<<getBedImage>>
<br><br>
<span id="repCont">
You stretch out on your bed, enjoying being off your feet for a moment.
<<if $player.mood < 75>>
<br>
Your mood hasn't been the highest lately. Should probably address that before you fall into full-blown depression.
<</if>>
<<if $player.hunger < 75>>
<br>
Your stomach rumbles not-so-silently. Getting something to eat soon would not be a bad idea.
<</if>>
<<if $player.thirst < 75>>
<br>
Your mouth is dry and foul-tasting; your body is telling you to drink more water.
<</if>>
<<if $player.health < 50>>
<br>
You should see a doctor about your health!
<</if>>
<<if $player.energy < 40>>
<br>
Your eyelids are heavy and your body feels slow and tired - going to sleep would be wise.
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<<checkRelicPowers>>
<<getBedActions>>
</div><div class="profileContainer">
<div>
<img src="Media/Shared/Bed/alarmSet.webp" height="600rem">
</div>
<table width="95%">
<tr><th>Day</th><th>Time</th><th>Enabled</th></tr>
<<for _i = 0;_i < GameDays.length; _i++>>
<tr>
<<set _tmpAlarm = $player.phone.alarmClock.alarms.find(alarm => alarm.weekDay === _i)>>
<<capture _tmpAlarm>>
<td><<print GameDays[_i]>></td>
<<set _tmpHour = (Math.floor(_tmpAlarm.alarmTime / 60) > 12? Math.floor(_tmpAlarm.alarmTime / 60)-12:Math.floor(_tmpAlarm.alarmTime / 60))>>
<<set _tmpMins = (Math.floor(_tmpAlarm.alarmTime % 60) > 10? Math.floor(_tmpAlarm.alarmTime % 60):'0' + Math.floor(_tmpAlarm.alarmTime % 60))>>
<<set _tmpLbl = _tmpHour + ':' + _tmpMins + (Math.floor(_tmpAlarm.alarmTime / 60) >= 12?' PM':' AM')>>
<<set _tmpId = 'repAlarmTime_' + _tmpAlarm.weekDay>>
<span @id="_tmpId">
<td><<link _tmpLbl>><<set $thisAlarm = _tmpAlarm>><<openAlarmDialog>><</link>></td>
</span>
<<if _tmpAlarm.active>>
<<set _tmpLbl = '<div class="goodText">ON</div>'>>
<<else>>
<<set _tmpLbl = '<div class="badText">OFF</div>'>>
<</if>>
<td><<link _tmpLbl>><<set _tmpAlarm.active = !(_tmpAlarm.active)>><<goto "SetAlarmClock">><</link>></td>
<</capture>>
<span id="repCont"></span>
</tr>
<</for>>
</table>
</div>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Put your phone down" "Bed">>
<<addSecs 15>>
<</button>>
</div>
</div><<set $NPCArray.find(npc => npc.dna == $currDNA).awake = true>>
You wake up $NPCArray.find(npc => npc.dna == $currDNA).firstName.
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Talk" 'ChitChat'>>
<<set $returnLoc = $retLoc>>
<<addSecs 45>>
<</button>>
<<button "Have sex" "sexSceneEngine">>
<<set $currDNA = $npc_6.dna>>
<<set $skipEnding = true>>
<<set $fpLoc = $retLoc>>
<<set $sceneAct = 'Foreplay'>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Nevermind" $retLoc>>
<<addSecs 45>>
<</button>>
</div>
</div><<widget 'getBedImage'>>
<<if $bedLoc === 'Hovel'>>
<<set _tmpImg = 'Media/Shared/Bed/Rest/' + $player.presenting[0] + '/1.webp'>>
<<else>>
<<if $NPCList.some(item => item.location == _args[0]) and _args[0] != 'FHBedroom' and ($lastSexPartner.dna === $NPCList.find(item => item.location == _args[0]).NPC.dna or $NPCList.find(item => item.location == _args[0]).NPC.relationship > 15)>>
/* MC is in bed with an NPC in the room. */
<<else>>
<<set _tmpImg = 'Media/Self/POV/Bed/'>>
<<if !$player.isNude>>
<<if $player.presenting === 'Female'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<if $player.outfit.fit === 0 and $player.outfit.bra === 0>>
<<set _tmpImg += 'F/Topless' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Clothed/' + random(1,5) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'F/Clothed/Preg/' + random(1,8) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/Nude/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<switch $player.body.gender>>
<<case 'Female'>>
<<if !$player.body.womb.showPreg>>
<<set _tmpImg += 'F/Nude/' + random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Nude/Preg/' + random(1,2) + '.webp'>>
<</if>>
<<case 'Trans'>>
<<set _tmpImg += 'T/Nude/' + random(1,1) + '.webp'>>
<<case 'Male'>>
<<set _tmpImg += 'M/Nude/' + random(1,2) + '.webp'>>
<</switch>>
<</if>>
<</if>>
<</if>>
<img @src="_tmpImg" height="600rem">
<</widget>>
<<widget "getBedActions">>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Set your alarm clock" "SetAlarmClock">>
<<addSecs 15>>
<</button>>
<<if $player.energy < 75>>
<<button "Go to sleep">>
<<genFit $player.outfit.fit>>
<<if $player.isNude or $clothingObj.style === 'Sleepwear' or $bedLoc !== 'FHBedroom'>>
<<if $player.phone.habitList.evening.length > 0 and $player.wardrobe.items.some(obj => obj.type === 'Fit' and obj.stats.fitStyle === 'Sleepwear')>>
<<checkRoutine 'Evening'>>
<<else>>
<<goto 'SleepPrep'>>
<</if>>
<<else>>
<<if $player.phone.habitList.evening.length > 0 and $player.wardrobe.items.some(obj => obj.type === 'Fit' and obj.stats.fitStyle === 'Sleepwear')>>
<<checkRoutine 'Evening'>>
<<else>>
<<replace "#repCont">>
<div class="badText">You pause as you remember the rule about not wearing your street clothes in bed. It sounds like a weird rule...but still it's probably best to follow it.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if !$player.wardrobe.items.some(obj => obj.type === 'Fit' and obj.stats.fitStyle === 'Sleepwear')>>
<<set _tmpLbl = 'Find something to wear'>>
<<else>>
<<set _tmpLbl = 'Get up'>>
<</if>>
<<button _tmpLbl $bedLoc>>
<<addSecs 10>>
<<if _tmpLbl === 'Find something to wear'>>
<<run $player.questLog.addQuest('BinQuest','You need to find something to sleep in. Maybe you can look in the donation bin the Common room.')>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Sleep in what you're wearing">>
<<if $player.phone.habitList.evening.length > 0>>
<<checkRoutine 'Evening'>>
<<else>>
<<goto 'SleepPrep'>>
<</if>>
<</button>>
</div>
<</replace>>
<</if>>
<</if>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<if $player.arousal > 45 or $player.slutLevel > 2>>
<<button "Masturbate" "sexSceneEngine">>
<<set $skipEnding = true>>
<<set $sceneLoc = 'Bed'>>
<<set $sceneAct = 'Masturbation'>>
<</button>>
<</if>>
<<getMagList>>
</div>
<div class="buttonContainer">
<<button "Get up" $bedLoc>>
<<addSecs 5>>
<</button>>
</div>
</div>
<</widget>><center>
<img src="Media/Misc/eviction.webp" height="600rem"
<br><br>
You have been evcited for not paying rent!
<hr>
<div id ="actionsContainer">
<div class="buttonContainer">
<<button "Step back">>
<<run $bannedHomes.push($home.name)>>
<<addSecs 15>>
<<moveOut $home.name>>
<<isHomeless>>
<<set _tmpLoc = $evictionLoc>>
<<unset $evictionLoc>>
<<goto _tmpLoc>>
<</button>>
</div>
</div><<widget "homeBathroom">>
<<switch $home.name>>
<<case "Homeless">>
<<set $homeBath = true>>
<<set $bathLoc = 'Hovel'>>
<<set $bathImg = 'Media/Locations/Downtown/Alley/outhouse.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Alley/campSink.webp'>>
<<set $bathDesc = 'It\'s not much, but at least it\'s private. Sort of.'>>
<<case "Fairhaven">>
<<set $homeBath = true>>
<<set $bathType = 'Private'>>
<<set $bathLoc = 'FairhavenHall'>>
<<set $bathImg = 'Media/Locations/Downtown/Fairhaven/sharedBath1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = 'A simple room providing the basic necessities for a group of young women. There are shower stalls along the far side of the room, a handful of toilets opposite them, and a row of sinks along the wall as soon as you enter.'>>
<<addSecs 20>>
<<case "Studio">>
<<set $homeBath = true>>
<<set $bathType = 'Private'>>
<<set $bathLoc = 'KellyStudio'>>
<<set $bathImg = 'Media/Locations/Downtown/KellysPub/Studio/bathroom1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/KellysPub/Studio/sharedSink1.webp'>>
<<set $bathDesc = 'Cramped but functional; it at least provides everything to take care of your bathroom needs.'>>
<<addSecs 20>>
<</switch>>
<<goto "Bathroom">>
<</widget>>
<<widget "homeFinder">>
<<if ($home.district === _args[0] and $home.name != 'Homeless') or (_args[0] === 'KellysPub' and $home.name === 'Studio')>>
<div class="buttonContainer">
<<if _args[0] === 'KellysPub' and $home.name === 'Studio'>>
<<set _tmpLbl = 'Go upstairs'>>
<<else>>
<<set _tmpLbl = 'Go home'>>
<</if>>
<<button _tmpLbl>>
<<if $home.name === 'Fairhaven' and (($home.lastRentDay < $currJulianDate - 1 or ($home.lastRentDay === $currJulianDate -1 and $gameDate.getHours() >= 12)) or $FHReport)>>
<<addSecs 5>>
<<goto 'FairhavenLobby'>>
<<elseif $rentDue and $rentDue > 0 and $gameDate.getDate() >= 3>>
<<set $evictionLoc = passage()>>
<<goto "EvictionNotice">>
<<else>>
<<addSecs 5>>
<<goto $home.startLoc>>
<</if>>
<</button>>
</div>
<</if>>
<</widget>>
<<widget "moveIn">>
<<set $home = new Home(_args[0][0],_args[0][1],_args[0][2],_args[0][3],_args[0][4])>>
<<if !$usedHomes>>
<<set $usedHomes = [_args[0][1]]>>
<<elseif !$usedHomes.includes(_args[0][1])>>
<<run $usedHomes.push(_args[0][1])>>
<</if>>
<</widget>>
<<widget "moveOut">>
<<unset $rentDue>>
<<switch _args[0]>>
<<case 'Fairhaven'>>
<<set $player.questTracker = $player.questTracker.filter(qst => qst.idx !== 'ManSus')>>
<<run $player.questLog.removeQuest('ManSus')>>
<</switch>>
<<isHomeless>>
<</widget>>
<<widget "isHomeless">>
<<set $home = new Home('Downtown','Homeless','Homeless',0,$gameDate.getTime())>>
<</widget>>
<<widget "homeActions">>
<div id="homeActs">
<<if $player.wardrobe.items.some(obj => obj.type === 'Purse')>>
Your purse is sitting nearby. You can manage its contents [[here|"ManagePurse"][$menuPassage = passage()]]
<</if>>
</div>
<<timed 0s>>
<<if $player.relics.length > 0>>
<<prepend '#actionsContainer'>>
<div class="buttonContainer">
<<button "Examine your relics" "ListRelics">>
<<set $relicLoc = passage()>>
<<addSecs 15>>
<</button>>
</div>
<</prepend>>
<</if>>
<</timed>>
<</widget>>
<<widget "bedroomActions">>
<div class="buttonContainer">
<<button "Open your wardrobe">>
<<if $isMaid>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You should finish cleaning first.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<set $homeWardrobe = true>>
<<switch $home.name>>
<<case 'Fairhaven'>>
<<set $wardImg = 'Media/Locations/Downtown/Fairhaven/locker1.webp'>>
<<case 'KellyStudio'>>
<<set $wardImg = 'Media/Locations/Downtown/KellysPub/Studio/wardrobe.webp'>>
<</switch>>
<<set $wardLoc = passage()>>
<<addSecs 30>>
<<goto "Wardrobe">>
<</if>>
<</button>>
<<button "Lay down in bed">>
<<if $isMaid>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You should finish cleaning first.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<set $bedLoc = passage()>>
<<addSecs 5>>
<<goto "Bed">>
<</if>>
<</button>>
</div>
<</widget>><<set $locType = 'Outdoors'>>
<<if $home.name === 'Hovel'>>
<<if ($gameDate.getTime() - $home.moveInDay)/1000 > random(259200,518400)>>
<<isHomeless>>
<<goto 'HovelRansacked'>>
<<else>>
<<goto "Hovel">>
<</if>>
<</if>>
<<set _tmpImg = 'Media/Locations/Downtown/Alley/homeless'>>
<<if $dayStage < 4>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<if $gameDate.getMonth() >= 2 and $gameDate.getMonth() <= 8>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<set _tmpImg += '.webp'>>
<center>
<img @src="_tmpImg" height="450rem">
<br><br>
You find a homeless camp. It's clearly deserted now but there's no telling when that could change.
<br>
<span id="repCont">
<br>
<<if $shamTxt>>
$shamTxt
<<unset $shamTxt>>
<</if>>
</span>
</center>
<span id="NPCCont">
<<getCurrNPCs "Alleyway">>
</span>
<hr>
<div id='actionsContainer'>
<<if ($npc_8.knowsPlayer or ($player.questTracker.some(quest => quest.idx === 'UnknownRelics') and $player.questTracker.find(quest => quest.idx === 'UnknownRelics').level === 2)) and !$NPCList.some(npc => npc.location.includes('Alleyway'))>>
<div class="buttonContainer">
<<if $npc_8.knowsPlayer>>
<<set _tmpLbl = 'the ' + $npc_8.firstName>>
<<else>>
<<set _tmpLbl = 'the person who texted you'>>
<</if>>
<<button "Look for _tmpLbl" "Alleyway">>
<<if random(0,100) > 60 or $player.questTracker.find(quest => quest.idx === 'UnknownRelics').level === 2>>
<<set $shamTxt = "<b>There's a russle behind some bushes and then there he is</b>">>
<<if $npc_8.knowsPlayer>>
<<set _tmpLoc = 'ShamanChatHUB'>>
<<else>>
<<set _tmpLoc = 'ShamanIntro'>>
<</if>>
<<set _tmpLocArr = 'Alleyway'>>
<<addNPC $npc_8 _tmpLocArr 'ShamanIntro' 25>>
<<else>>
<<replace "#repCont">>
<div class="badText">There's no sign of him. You'll just have to try again later.</div>
<</replace>>
<</if>>
<</button>>
</div>
<</if>>
<<if $homesOwned is undefined>>
<div class="buttonContainer">
<<button 'Cobble together a bed' 'Hovel'>>
<<set $home = new Home('Downtown','Hovel','Hovel',0,$gameDate.getTime())>>
<<addMins 30>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Go back" "Downtown">>
<<addMins 2>>
<</button>>
</div>
</div><<set $locType = 'Outdoors'>>
<center>
<img src="Media/Locations/Downtown/Alley/home1.webp" height="450rem">'
<br><br>
It's not much, but at least you can call it home - if you have to.
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Go to your wardrobe" "Wardrobe">>
<<set $homeWardrobe = true>>
<<set $wardImg = 'Media/Locations/Downtown/Alley/closet.webp'>>
<<set $wardLoc = passage()>>
<<addSecs 30>>
<</button>>
<<button "Go to the kitchen" "Kitchen">><<addSecs 20>>
<<set $kitchenType = 'Private'>>
<<set $kitchenLoc = 'Hovel'>>
<<set $kitchenImg = 'Media/Locations/Downtown/Alley/kitchen.webp'>>
<<set $kitchenDesc = 'A place to cook food technically counts as kitchen, in some circles.'>>
<<addSecs 20>>
<</button>>
<<button "Go to the outhouse" "Bathroom">>
<<set $homeBath = true>>
<<set $bathLoc = 'Hovel'>>
<<set $bathImg = 'Media/Locations/Downtown/Alley/outhouse.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Alley/campSink.webp'>>
<<set $bathDesc = 'It\'s not much, but at least it\'s private. Sort of.'>>
<<addSecs 20>>
<</button>>
<<button "Lay down in bed" "Bed">>
<<set $bedLoc = passage()>>
<<addSecs 5>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Back to Downtown" "Downtown">>
<<addMins 2>>
<</button>>
</div>
</div><center>
<<set _tmpImg = 'Media/Locations/Downtown/Alley/homeless'>>
<<if $dayStage < 4>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<if $gameDate.getMonth() >= 2 and $gameDate.getMonth() <= 8>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<set _tmpImg += '.webp'>>
<center>
<img @src="_tmpImg" height="450rem">
<br><br>
While you were out the cops must have come through and broken up the camp - the small space you made has been smashed and spread around the lot.
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button 'Collect your stuff and rebuild' 'Hovel'>>
<<set $home = new Home('Downtown','Hovel','Hovel',0,$gameDate.getTime())>>
<<addMins 30>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Back to Downtown" "Downtown">>
<<addMins 2>>
<</button>>
</div>
</div><center>
<b><font size="10em">$kitchenName</font></b>
<br>
<img @src="$kitchenImg" height="600rem">
<br>
<<print $kitchenDesc>>
</center>
<hr>
<div id="actionsContainer">
<<if $kitchenLoc === 'FairhavenCommons' and $isMaid>>
<<set $maidLoc = passage()>>
<<getMaidActs $maidLoc>>
<</if>>
<<getKitchenActs>>
<div class="buttonContainer">
<<button "Leave" $kitchenLoc>>
<<unset $kitchenName>>
<<addSecs 5>>
<</button>>
</div>
</div><<if $kitchenLoc === 'FairhavenCommons'>>
<<addMins 15>>
show meal prep
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "FoodTable">><<addSecs 5>><</button>>
</div>
</div>
<</if>><<set
$player.health = 1000;
$player.hunger = 100;
$player.calories += 600;
>>
<<set _tmpImg = 'Media/Shared/Kitchen/Eating/'>>
<<if $player.presenting === 1 and $player.body.tits > 0>>
<<set _tmpImg += 'F/'>>
<<if $player.outfit.fit > 0 or $player.outfit.bra > 0>>
<<set _tmpImg += 'Clothed/' + random(1,5) + '.webp'>>
<<elseif $player.outfit.fit === 0 and $player.outfit.bra === 0>>
<<set _tmpImg += 'Nude/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/1.webp'>>
<</if>>
<center>
<img @src="_tmpImg">
<br>
mention food quality
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Finish up" "Kitchen">><<addSecs 5>><</button>>
</div>
</div><<set
$player.thirst = $player.thirstMax;
_tmpImg = 'Media/Drinking/Water/';
>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height = "450rem">
<br><br>
You instantly feel a little better after drinking.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Finish up" "Kitchen">><<addSecs 5>><</button>>
</div>
</div><center>
<img src="Media/Shared/Kitchen/boozeFridge.webp" height="450rem">
<br><br>
<<switch $home.name>>
<<case 'Fairhaven'>>
The fridge is stocked with the food and items for basic nutritional requirements; in other words it's cheap and bland.
<<default>>
show food count(s)
<</switch>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close the fridge" "Kitchen">>
<<addSecs 10>>
<</button>>
</div>
</div><<widget "getKitchenActs">>
<<if $player.thirst <= 90>>
<div class="buttonContainer">
<<button "Get a drink of water" "KitchenDrink">><<addMins 2>><</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Make something to eat" "FoodTable">>
<<addMins 5>>
<</button>>
</div>
<<if $kitchenType === 'Private'>>
<<if $kitchenLoc === 'Hovel'>>
<<set _tmpLbl = 'Open your cooler'>>
<<else>>
<<set _tmpLbl = 'Open the fridge'>>
<</if>>
<div class="buttonContainer">
<<button "_tmpLbl" "BrowseFood">><<addSecs 5>><</button>>
</div>
<</if>>
<</widget>><<set $version = '1.0.4'>>
/* DATE AND TIME */
<<set
window.GameDays to [
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
];
window.GameMonths to [
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
];
window.baseMonthRain to [
60,30,30,30,30,20,15,15,30,50,60,60
];
window.baseMonthTemp = [
30,30,50,55,70,75,80,90,80,70,50,40,32
];
>>
<<set
$gameDate to new Date(2025,6,1, 15,0);
$lastStatCheck = clone($gameDate);
$currJulianDate = calcJulianDay($gameDate)
$moon = new Moon();
$NPCList = [];
$NPCArray = [];
$newQuests = [];
$newSMS = [];
$tfPool = 0;
$player = new Person(18,"Male");
$player.mentalFem = 25;
$player.dom = 50;
$player.sub = 50;
$player.inhib = 100;
$player.exhib = 0;
$player.firstName = 'Alex';
$player.lastName = 'Murphy';
$player.race = "White";
$player.calories = 0;
$player.body = {
gender: 'Male',
bodyType: 'Chunky',
hair: {
color: 'red',
length: 20,
clean: 2,
pony: 0,
styled: false
},
breath: 11,
height: 168,
weight: 0,
sweat: 0,
bodyFat: 155,
calories: 0,
nails: 0,
pubes: 40,
pitHair: 12,
legHair: 12,
makeup: 0,
eyes: 0,
eyeColor: 'green',
lashes: 1,
skin: 0,
skinTone: setRaceSkinTone("White"),
lips: 0,
tits: 0,
ass: 8,
hips: 60,
cock: 2,
vag: 0,
weight: calcWeight($player),
earPierced: 0
};
$lastNailGrowth = $currJulianDate
$player.money = 100;
$player.prefs = {
gender: 'Female',
beauty: 0,
tits: 0,
bodyType: '',
style: ''
}
$player.virgin = true;
$player.strength = 10;
$player.phone = new Phone();
$player.inventory = new Inventory();
$player.wardrobe = new Wardrobe();
$player.outfit = {
bra: 0,
fit: 1,
panties: 1,
shoes: 1,
earrings: 0,
bracelet: 0,
necklace: 0,
ring: 0,
purse: 0,
coat: 0,
relic: {
idx: 0,
dose: 0
}
};
$player.sexStats = {
anal_get: 0,
anal_give: 0,
bj_give: 0,
bj_get: 0,
cuni_give: 0,
cuni_get: 0,
flash: 0,
groped: 0,
hj_give: 0,
hj_get: 0,
vag_fing_give: 0,
vag_fing_get: 0,
fem_coitus: 0,
masc_coitus: 0,
tittyFuck_give: 0,
tittyFuck_get: 0,
prostituion: 0,
masturbation: 0,
vag_get: 0,
vag_give: 0,
lastSexDate: 0
};
$player.cumArr = [];
$player.statBuffs = {
eyes: 0,
skin: 0,
lips: 0,
tits: 0,
hips: 0,
heels: 0,
ass: 0,
height: 0,
femBuff: 0,
mascBuff: 0,
dick: 0,
dancing: 0,
fighting: 0,
maid: 0,
office: 0,
cooking: 0,
charm: 0,
makeup: 0,
slut: 0,
inhib: 0,
exhib: 0,
mascPref: 0,
femPref: 0,
fitness: 0,
strength: 0,
yoga: 0,
sub: 0,
dom: 0,
billiards: 0,
MPref: 0,
FPref: 0
};
$player.relics = [];
$unknownRelics = []
$player.questLog = new QuestLog();
$player.questTracker = [{idx: 'MainQuest',level: 1}];
$player.phone.appsList.push(new App('Camera', 'Media/System/Phone/camera.png','cameraApp'));
$player.phone.appsList.push(new App('Calendar', 'Media/System/Phone/calendar.png','calendarApp'));
$player.phone.appsList.push(new App('Text', 'Media/System/Phone/sms.png','textApp'));
$player.phone.appsList.push(new App('Habit App', 'Media/System/Phone/habitApp.png','habitsApp'));
$player.phone.appsList.push(new App('Notepad', 'Media/System/Phone/notepad.png','notepadApp'));
$player.phone.appsList.push(new App('Phone', 'Media/System/Phone/call.png','ContactList'));
>>
<<for _i = 0;_i < GameDays.length; _i++>>
<<set $player.phone.alarmClock.alarms.push(new AlarmTime(_i,420,false))>>
<</for>>
<<run delete $player.knowsPlayer>>
<<run $player.inventory.addItem = function(name, quantity) {
const existingItem = this.items.find(item => item.name === name);
if (existingItem) {
existingItem.quantity += quantity;
} else {
this.items.push({ name, quantity });
}
}
>>
<<run $player.inventory.removeItem = function(name,quantity) {
const item = this.items.find(item => item.name === name);
if (item) {
if (item.quantity >= quantity) {
item.quantity -= quantity;
if (item.quantity === 0) {
this.items = this.items.filter(item => item.name !== name);
}
}
}
}
>>
<<run $player.inventory.checkInv = function(name) {
const item = this.items.find(item => item.name === name);
if (item) {
return item.quantity;
}
return 0;
}
>>
<<run $player.wardrobe.addItem = function(clothing) {
const item = this.items.find(item => item.sku === clothing.sku && item.type === clothing.type);
if (!item) {
let stats = {};
if (clothing.type === 'Bra'){
stats = {
cupSize: State.variables.player.body.tits
};
}else if (clothing.type == 'Fit'){
stats = {
fitCup: State.variables.player.body.tits,
fitSize: State.variables.player.body.hips + State.variables.player.body.ass + State.variables.player.body.weight,
fitStyle: clothing.style,
fitSoil: 0,
fitInhib: calcFitInhib(clothing)
};
}else if (clothing.type == 'Panties'){
stats = {
fitStyle: clothing.style
}
}else if (clothing.type == 'Shoes'){
stats = {
fitStyle: clothing.style,
fitHeels: clothing.heels
}
};
this.items.push({type: clothing.type,sku: clothing.sku,stats});
}
}
>>
<<run $player.wardrobe.RemoveItem = function(type, sku) {
const item = this.items.find(item => item.sku === sku && item.type === type);
if (item) {
this.items = this.items.filter(item => item.type != type || item.sku !== sku);
}
}
>>
<<run $player.wardrobe.checkWardrobe = function(type, sku) {
const item = this.items.find(item => item.sku === sku && item.type === type);
if (item) {
return 1;
}
return 0;
}
>>
<<run $player.questLog.addQuest = function(idx, log) {
const existingItem = this.items.find(item => item.idx === idx);
State.variables.newQuests.push(idx);
if (existingItem) {
existingItem.log = log;
} else {
this.items.push({idx, log});
}
}
>>
<<run $player.questLog.removeQuest = function(idx) {
if (this.items.find(item => item.idx === idx)) {
let newQuestList = State.variables.newQuests;
const index = newQuestList.indexOf(idx);
if (index !== -1) {
newQuestList.splice(index, 1);
}
this.items = this.items.filter(item => item.idx !== idx);
}
}
>>
<<run $player.phone.calendar.addDate = function(calendarObj){
const dateArr = State.variables.player.phone.calendar;
let dateExists = dateArr.items.find(obj => obj.with == calendarObj.with & obj.julianDate == calendarObj.julianDate);
if(!dateExists){
dateArr.items.push(calendarObj)
}
}
>>
<<run $player.phone.calendar.removeDate = function(calendarObj){
const dateArr = State.variables.player.phone.calendar;
let dateExists = dateArr.items.find(obj => obj.with == calendarObj.with & obj.julianDate == calendarObj.julianDate);
if(dateExists){
dateArr = dateArr.items.filter(obj => obj != dateExists)
}
}
>>
<<set
$energyDrain = 0;
$hairCleanDrain = 0;
$staminaDrain = 0;
$arousalGain = 0;
$thirstDrain = 0;
$hungerDrain = 0;
$moodDrain = 0;
$breathDrain = 0;
$makeupStyles = [{type: 'None',desc:'no makeup'},{type: 'Natural',desc:'neutral tones designed to bring out your natural beauty'},{type: 'Professional',desc:'mildly vibrant tones, covering your minor imperfections and enhancing your best features'},{type: 'Beauty',desc:'contouring for your face and is designed to highlight the natural hues of your eyes, face, and hair'},{type: 'Evening',desc:'thick and bold, drawing attention to your eyes and lips to give your face an overtly sexualized appearance'},{type: 'Bimbo',desc:'bright, eye-catching, and very thickly applied -- definitely giving off that "come fuck me" vibe'},{type: 'Goth',desc:'dark, eye-catching, and very thickly applied -- definitely giving off that "otherwordly" vibe'}]
$sizeLimits = {
height: 163,
tits: 4,
hips: 80,
ass: 10
}
$dreamsArr = [];
$prefDir = -1;
$braNewb = 1;
$jobArr = [];
$worldRelics = [1];
$relicPaths = [{
path: 'Jerry',
questLog: "That old Fortune Teller wants you to steal something from a guy named Jerry who hangs out at the beach.",
relicIdx: 0,
level: 0,
complete: 5
}
];
$knownLocs= [['Downtown','Downtown'],['Business District','BDistrict']];
$unknownLocs = [['Beach','Beach'],['University District','UDistrict'],['Red Light District','RLDistrict'],['Wharf District','WDistrict'],['Outskirts','Outskirts']];
$prefPay = "Cash";
$lastWxDay = 0;
$dailyLimit = [];
$kioskMags = ['magazine_7','magazine_8','magazine_9','magazine_10','magazine_11','magazine_12','magazine_13','magazine_14','magazine_15','magazine_16','magazine_17','magazine_18','magazine_19','magazine_20'];
$DispNotes = [];
>>
<<set $bannedHomes = []>>
<<isHomeless>>
<<genFit 1>>
<<run $player.wardrobe.addItem($clothingObj)>>
<<genPanties 1>>
<<run $player.wardrobe.addItem($clothingObj)>>
<<genShoes 1>>
<<run $player.wardrobe.addItem($clothingObj)>>
<<run $player.questLog.addQuest('MainQuest','Food and shelter -- you need a place to live and a way to earn money! What did the Fortune Teller say about Fairhaven House?')>>
<<GenStaticNPCs>>
<<cycleGameDay>>
<<calcWeather 0>><<set _tmpImg = 'Media/OddJobs/Spinner/' + $player.presenting[0] + '/' + random(1,5) + '.webp'>>
<center>
<img @src="_tmpImg" height="450rem">
<br><br>
You stand out on a street corner spinning a giant sign, trying to attract customers to the store. You can't tell if it worked or not,
<<if $player.beautyScore > 3>>
$tmpText += 'but you certainly heard a lot of people honking at you. '
<<if $player.mentalFem > 45>>
<<set $player.mood += 5>>
<<set $player.arousal += 5>>
Thrusting your ass and chest out more as you exaggrate your sign swinging, you do your best to encourage the cat calls and whistles.
<<elseif $player.mentalFem > 35>>
<<set $player.mood += 5>>
You smile to yourself and sway your hips a little more without even realising it. Suddenly your mood feels a lot better.
<<elseif $player.mentalFem > 25>>
You try to see it as a compliment -- they at least found you attractive. But still, something about it leaves a bad taste in your mouth.
<<else>>
<<set $player.mood -=2 >>
You still feel self-conscious about all those people staring at you. This job might be too public for your liking.
<</if>>
<<else>>
in fact, you're not even certain anyone noticed you.
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<if $jobState === 0>>
<<button "Continue" "Sign Spinner">>
<<addHours $currJob.hours/2>>
<<set $jobState = 1>>
<</button>>
<<else>>
<<button "Finish up and head back" "BDistrict">>
<<set $player.money += $currJob.pay>>
<<unset $jobState>>
<<unset $currJob>>
<</button>>
<</if>>
</td>
</tr>
</table><<set _tmpImg = 'Media/OddJobs/CarWash/'>>
<<if $player.presenting === 'Male'>>
<<set _tmpImg += 'M/' + random(1,4)+ '.webp'>>
<<set _tmpText = 'You wash cars for a couple of hours.'>>
<<else>>
<<set _tmpImg += 'F/'>>
<<if $player.mentelFem < 50>>
<<set _tmpImg += random(5,10)+ '.webp'>>
<<set _tmpText = 'You spend a few hours washing cars, feeling a bit exposed and uncomfortable as you lean over windshields or bend down to the water bucket.'>>
<<else>>
<<if $player.slutLevel < 3>>
<<set _tmpImg += random(11,13) + '.webp'>>
<<set _tmpText = 'You focus on the task at hand and try to block out any comments or stares the customers might be giving you.'>>
<<else>>
<<set _tmpImg += random(14,21) + '.webp'>>
<<set _tmpText = 'You enjoy goofing off and teasing the customers -- who knows, maybe even a car or two actually got washed.'>>
<</if>>
<</if>>
<</if>>
<center>
<img @src="_tmpImg" height="450rem">
<br><br>
<<print _tmpText>>
</center>
<hr>
<table>
<tr>
<td>
<<if $jobState === 0>>
<<button "Continue" "Car Wash">>
<<addHours $currJob.hours/2>>
<<set $jobState = 1>>
<</button>>
<<else>>
<<button "Finish up and head back" "BDistrict">>
<<set $player.money += $currJob.pay>>
<<unset $jobState>>
<<unset $currJob>>
/8<</button>>
<</if>>
</td>
</tr>
</table><<set _tmpImg = 'Media/OddJobs/Flyers/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/'>>
<<set _maxPic = 10>>
<<else>>
<<set _tmpImg += 'M/'>>
<<set _maxPic = 4>>
<</if>>
<<set _tmpImg += random(1,_maxPic) + '.webp'>>
<center><img @src="_tmpImg" height="450rem">
<br><br>
You spend an hour walking around handing out flyers to strangers. You're not even sure what the flyers are for.
<<if $player.beautyScore > 3>>
You handed out a lot of flyers today, and you're pretty sure you got hit on a few times.
<<if $player.mentalFem > 45>>
<<set $player.mood += 5>>
<<set $player.arousal += 4>>
You giggle and arch your chest out more, trying to encourage more compliments and maybe a little extra fun on the side.
<<elseif $player.mentalFem > 35>>
<<set $player.mood += 5>>
You smile to yourself and sway your hips a little more without even realising it. Suddenly your mood feels a lot better.
<<elseif $player.mentalFem > 25>>
You try to see it as a compliment -- they at least found you attractive. But still, something about it leaves a bad taste in your mouth.
<<else>>
<<set $player.mood -= 2>>
You still feel self-conscious about all those people staring at you. This job might be too public for your liking.
<</if>>
<<else>>
You didn't get many people to take your flyers. And a couple even seemed to cross the street to avoid you.
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<if $jobState === 0>>
<<button "Continue" "Handing Out Flyers">>
<<addHours $currJob.hours/2>>
<<set $jobState = 1>>
<</button>>
<<else>>
<<button "Finish up and head back" "BDistrict">>
<<set $player.money += $currJob.pay>>
<<unset $jobState>>
<<unset $currJob>>
<</button>>
<</if>>
</td>
</tr>
</table><<set _tmpImg = 'Media/OddJobs/Walker/'>>
<<if $player.presenting === 'Male'>>
<<set _tmpImg += 'M/' + random(1,3) + '.webp'>>
<<set _tmpText = 'You spend a few hours walking some dogs around the city, enjoying the fresh crisp air.'>>
<<else>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,4) + '.webp'>>
<<set _tmpText = 'You spend a few hours walking some dogs around the city, enjoying the fresh crisp air.'>>
<<else>>
<<if $player.slutLevel < 2 and $player.expoLevel < 2>>
<<set _tmpImg += 'F/Reg/' + random(1,4) + '.webp'>>
<<set _tmpText = 'You spend a few hours walking some dogs around the city, enjoying the fresh crisp air.'>>
<<else>>
<<set _tmpImg += 'F/Sexy/' + random(1,10) + '.webp'>>
<<set $player.mood += 5>>
<<set $player.arousal += 5>>
<<set _tmpText = 'You strut up and down the street, enjoying drawing attention from those around you as they check you out.'>>
<</if>>
<</if>>
<</if>>
<center>
<img @src="_tmpImg" height="450rem">'
<br><br>
<<print _tmpText>>
</center>
<hr>
<table>
<tr>
<td>
<<if $jobState === 0>>
<<button "Continue" "Handing Out Flyers">>
<<addHours $currJob.hours/2>>
<<set $jobState = 1>>
<</button>>
<<else>>
<<button "Finish up and head back" "BDistrict">>
<<set $player.money += $currJob.pay>>
<<unset $jobState>>
<<unset $currJob>>
<</button>>
<</if>>
</td>
</tr>
</table><<set _tmpImg = 'Images/Shared/OddJobs/SnowShovel/'>>
<<if $player.presenting == "Female">>
<<set _tmpImg += 'M/' + random(1,3) + '.webp'>>
<<set _tmpText = 'You shovel a seemingly endless amount of snow. After a while you\'re not even sure how many driveways you\'ve cleared.'>>
<<else>>
<<if $player.slutLevel < 2 and $player.expoLevel < 2>>
<<set _tmpImg += 'F/Reg/' + random(1,3) + '.webp'>>
<<set _tmpText = 'You shovel a seemingly endless amount of snow. After a while you\'re not even sure how many driveways you\'ve cleared.'>>
<<else>>
<<set _tmpImg += 'F/Sexy/' + random(1,8) + '.webp'>>
<<set $player.mood += 5>>
<<set $player.arousal += 5>>
<<set _tmpText = 'You grin at the catcalls and horn honks as you shovel snow, no one seems to mind that you spend more time posing than actually shoveling.'>>
<</if>>
<</if>>
<center>
<img @src="_tmpImg" height="450rem">
<<print _tmpText>>
</center>
<hr>
<table>
<tr>
<td>
<<if $jobState === 0>>
<<button "Continue" "Handing Out Flyers">>
<<addHours $currJob.hours/2>>
<<set $jobState = 1>>
<</button>>
<<else>>
<<button "Finish up and head back" "BDistrict">>
<<set $player.money += $currJob.pay>>
<<unset $jobState>>
<<unset $currJob>>
<</button>>
<</if>>
</td>
</tr>
</table><center>
<b><font size="10em">Santa's Workshoppe</font></b>
<br>
<img src="Images/Shared/OddJobs/Village/village.webp" height="450rem">
<br><br>
<<set _rando = random(1,4)>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _rando = random(2,6)>>
<</if>>
<<switch _rando>>
<<case 1>>
<<if $player.presenting === "Female">>
<<set $santaJob = 'Mrs. Claus'>>
<<set $villArg = 'MrsClaus'>>
<<else>>
<<set $santaJob = 'Santa himself'>>
<<set $villArg = 'MrClaus'>>
<</if>>
<<case 2>>
<<set $villArg = 'CandyCane'>>
<<if $player.presenting === 'Female'>>
<<set $santaJob = 'a Candycane girl'>>
<<else>>
<<set $santaJob = 'a Candycane boy'>>
<</if>>
<<case 3>>
<<set $santaJob = 'a reindeer'>>
<<set $villArg = 'Reindeer'>>
<<case 4>>
<<set $santaJob = 'a workshoppe elf'>>
<<set $villArg = 'Elf'>>
<<case 5>>
<<set $santaJob = 'a snowman'>>
<<set $villArg = 'Snowman'>>
<<case 6>>
<<set $santaJob = 'an ornament'>>
<<set $villArg = 'Ornament'>>
<</switch>>
The place is already a madhouse of activities and it takes a minute for you to track down the hiring manager.
</center>
<hr>
<table>
<tr>
<td>
<<button "Continue" "SantaIntro">>
<<addMins 2>>
<</button>>
</td>
<tr>
</table><center>
<img src="Images/Shared/OddJobs/Village/bernard.webp" height="450rem">
<br><br>
"Oh perfect! You're just in time, we desperately need <<$santaJob>>! Go right through there to get changed." says the Elf who greets you.
</center>
<hr>
<table>
<tr>
<td>
<<button "Continue" "SantaVillage">>
<<unset $currJob>>
<</button>>
</td>
<tr>
</table><<set $shiftTips = 0>>
<<set $currTip = 0>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/DressingRoom/' + random(1,4) + '.webp'>>
<<set $BBStartHour = $gameDate.getHours()>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<img @src="_tmpImg" height="550rem">
<br><br>
<<if $player.questTracker.some(obj => obj.idx === "BBCocktailDress") and $player.questTracker.find(obj => obj.idx === "BBCocktailDress").level === 1>>
<<set $player.questTracker.find(obj => obj.idx === "BBCocktailDress").level = 2>>
You're intercepted by one of the other staffmembers and brought back to the dressing room. There's a dress code that $npc_7.firstName never mentioned and you have to wear a cocktrail dress while on shift!
<br><br>
You're already here working in a strip club so is it really a surprise? You decide to at least give it a shot and if it's too bad you can always just stop and never come back.
<<else>>
You stop by the dressing room to drop off your stuff and get dressed in your Cocktail dress.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if $player.questTracker.some(obj => obj.idx === "BBCocktailDress") and $player.questTracker.find(obj => obj.idx === "BBCocktailDress").level === 2>>
<div class="buttonContainer">
<<button "Look at the dress">>
<<goto "BBDressReview">>
<</button>>
</div>
<<elseif $player.questTracker.some(obj => obj.idx === "BBCocktailDress") and $player.questTracker.find(obj => obj.idx === "BBCocktailDress").level === 3 and !$preStripperFit>>
<div class="buttonContainer">
<<button "Put on your cockail dress">>
<<set $preStripperFit = clone($player.outfit)>>
<<if $player.body.tits < 13>>
<<genFit 96>>
<<else>>
<<genFit 530>>
<</if>>
<<set $pickedFit = clone($player.outfit)>>
<<set $pickedFit.fit = $clothingObj.sku>>
<<set $forceFit = true>>
<<set $wardLoc = 'BBWaitressHUB'>>
<<wearFit $pickedFit>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Leave the dressing room" "BBungalow">>
<<addMins 2>>
<</button>>
</div>
</div><<if $player.body.tits < 13>>
<<genFit 96>>
<<else>>
<<genFit 530>>
<</if>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<span id="repCont">
<img @src="$clothingObj.image" height="600rem">
<br><br>
$clothingObj.desc
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Get Dressed">>
<<set $preStripperFit = clone($player.outfit)>>
<<if $player.body.tits < 13>>
<<genFit 96>>
<<else>>
<<genFit 530>>
<</if>>
<<set $pickedFit = clone($player.outfit)>>
<<set $pickedFit.fit = $clothingObj.sku>>
<<set $forceFit = true>>
<<set $wardLoc = 'BBWaitressHUB'>>
<<wearFit $pickedFit>>
<</button>>
</div>
</div><<set $shiftTips = 0>>
<<set $currTip = 0>>
<<set $lastBBStage = $gameDate.getHours() - 1>>
<<set $shiftDanceCount = 0>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/DressingRoom/' + random(1,4) + '.webp'>>
<<set $BBStartHour = $gameDate.getHours()>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<span id="repCont">
<img @src="_tmpImg" height="550rem">
<br><br>
You stop by the dressing room to drop off your stuff and get ready for work.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Pick an outfit">>
/* randomly select from 3 slutty outfits */
<<set _tmpFits = []>>
<<if $player.body.tits < 13>>
<<genFit 32>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 35>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 37>>
<<run _tmpFits.push($clothingObj)>>
<<else>>
<<genFit 555>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 540>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 531>>
<<run _tmpFits.push($clothingObj)>>
<</if>>
<<replace "#repCont">>
<b><font size="10em">Pick one to try on</font></b>
<div style="50%">
<div class="profileContainer">
[img[clothing|_tmpFits[0].image][BBStripperTryOn][$tmpSku to _tmpFits[0].sku]]
[img[clothing|_tmpFits[1].image][BBStripperTryOn][$tmpSku to _tmpFits[1].sku]]
[img[clothing|_tmpFits[2].image][BBStripperTryOn][$tmpSku to _tmpFits[2].sku]]
</div>
</div>
<br><br>
<</replace>>
<<replace "#actionsContainer">><</replace>>
<</button>>
</div>
</div><<set $preStripperFit = clone($player.outfit)>>
<<genFit $tmpSku>>
<<genClothing _args[1],_args[2]>>
<<unset $tmpSku>>
<<set $pickedFit = clone($player.outfit)>>
<<set $pickedFit.fit = $clothingObj.sku>>
<<set $forceFit = true>>
<<wearFit $pickedFit 'Auto'>>
<center>
<<getDressingClips>>
<br><br>
You quickly change and clock in for work.
</center>
<hr>
<div id='actionsContainer'>
<<getBBStripperActions>>
</div><<set $currTip = 0>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Waitress/' + random(1,14) + '.webp'>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<img @src="_tmpImg" height ="500rem" >
<br><br>
<span id='repCont'>
<<waitressText>>
</span>
</center>
<hr>
<div id="actionsContainer">
<<timed 0s>>
<<getBBWaitressActions>>
<</timed>>
</div><<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Stripper/Mingle/' + random(1,7) + '.webp'>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<span id='repCont'>
<img @src="_tmpImg" height ="500rem" >
<br><br>
<<switch random(1,10)>>
<<case 1>>
You saunter through the crowded strip club, your hips swaying seductively with each step. Your skimpy outfit leaves little to the imagination, drawing appreciative glances from the patrons. With a coy smile, you approach a table of businessmen, leaning in close to whisper sultry promises in their ears. They respond eagerly, reaching for their wallets as you trail a finger along their shoulders.
<<case 2>>
You sashay through the sea of patrons, your confidence palpable. With each step, your body undulates sensuously, a walking advertisement for sin. Eyes follow your every move, drawn to the tantalizing glimpse of skin revealed by your minuscule costume. You pause here and there, engaging in playful banter. The goal is to entice, not satisfy. Leave them wanting more, that's the key to success.
<<case 3>>
Leaning in close, you whisper sweet nothings, promising pleasures untold. But as quickly as you appear, you vanish again, leaving them yearning for more. Your dance is one of seduction and withdrawal, a constant tease.
<<case 4>>
You strut through the packed strip club, your body on full display in your skimpy outfit. Men ogle you hungrily, their eyes locked onto your bouncing tits and jiggling ass. You lean in close, giving them an eyeful of your cleavage as you whisper filthy promises in their ears.
<<case 5>>
Guys practically drool as you pass by, their eyes glued to your exposed flesh. You lean in close, letting them cop a feel of your tits or ass, but always keeping control. They beg for more, but you deny them, moving on to the next sucker.
<<case 6>>
You weave between tables, your movements fluid and sensual. Every man in the room tracks your progress, their dicks hardening with each passing second. Leaning in close, you whisper dirty talk, promising to fulfill their wildest fantasies.
<<case 7>>
Men's eyes are glued to your swaying hips and bouncing tits, their tongues practically hanging out. Leaning over a table, you give a group of guys an up-close view of your cleavage, whispering naughty suggestions in their ears. They groan, adjusting their crotches as you saunter away, leaving them hard and wanting.
<<case 8>>
Your body undulates seductively as you weave between tables, drawing lustful stares from every patron. Pausing here and there, you press your body against theirs, letting them feel your soft curves and heated skin. They inhale sharply, their hands twitching with the urge to grab you.
<<case 9>>
You strut confidently through the sea of horny men, your ass cheeks jiggling with each step. Stopping at a table, you bend over, giving them a perfect view of your <<descAss $player>> cheeks. They lean in, breathing heavily, eyes glazed with desire. Straightening up, you run a hand over your tits, tweaking your nipples through the thin fabric. Moans escape their lips as you move on, leaving them aching for more.
<<case 10>>
You glide past the bar, catching the eye of several patrons. Perching on a stool, you cross your legs, letting your skirt ride up to reveal an expanse of your smooth thighs. You uncross and recross your legs, giving them a tantalizing glimpse.
<</switch>>
</span>
</center>
<<genNPCs 'BBStripperMingle'>>
<<getCurrNPCs 'BBStripperMingle'>>
<hr>
<div id="actionsContainer">
<<getBBStripperActions>>
</div><<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Stripper/Start/' + random(1,4) + '.webp'>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<span id='repCont'>
<img @src="_tmpImg" height ="500rem" >
<br><br>
You take a moment to get dressed before heading back out to the floor.
</span>
</center>
<hr>
<div id="actionsContainer">
<<getBBStripperActions>>
</div><<if calcAttraction($NPCArray.find(npc => npc.dna == $currDNA),$player)>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += 2>>
<</if>>
<center>
<span id="repCont">
<div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div class="flex-item">
<<if !$NPCArray.find(npc => npc.dna == $currDNA).knowsPlayer>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).knowsPlayer = true>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> looks to be around <<print $NPCArray.find(npc => npc.dna == $currDNA).age>> years old.
<br><br>
<<descLooks $NPCArray.find(npc => npc.dna == $currDNA).dna>>
<br><br>
<</if>>
<<switch random(1,6)>>
<<case 1>>
The man's eyes flicker over your body, taking in every inch of exposed skin. You can practically feel the heat of his gaze as it lingers on your ample cleavage, barely contained by your skimpy top. Leaning in closer, you allow your perfume to waft over him, a heady mix of vanilla and musk that's designed to ignite desire.
<<case 2>>
You lean in close, your breast grazing his arm ever so slightly. The brief contact sends a shiver through him, and you can see the goosebumps rise on his skin. His eyes flicker downwards, drinking in the sight of your cleavage, the swell of your breasts mere inches from his face.
<<case 3>>
You shift as you sit down next to him and his gaze follows the movement, lingering on the smooth bare skin of your inner thigh. You can practically feel the heat of his stare, the hunger building behind his eyes. Crossing and uncrossing your legs, you offer him fleeting glimpses of what lies beneath, teasing him mercilessly.
<<case 4>>
You perch beside him, angling your body toward his, letting your knee brush against his thigh. Your fragrance, a rich, exotic blend, envelops him, filling his nostrils and stirring his senses. He inhales deeply, savoring the intoxicating aroma, his eyes half-lidded with pleasure.
<<case 5>>
You slide into the booth opposite him, leaning forward to give him an eyeful of your ample cleavage. His gaze drops instantly, fixating on the swell of your breasts. You smile knowingly, enjoying the effect you're having on him.
<<case 6>>
Reaching out, you place a hand on his arm, your fingers tracing delicate patterns on his skin. He tenses at your touch, his breath catching in his throat. Desire flickers in his eyes as he meets your sultry gaze.
<</switch>>
</div>
</div>
</span>
</center>
<hr>
<div id="actionsContainer">
<<getBBMingleActions>>
</div><<widget "getBBWaitressActions">>
<<if $gameDate.getHours() < $jobArr.find(job => job.employer === 'BBungalow').shiftEnd>>
<<if $gameDate.getHours() < ($jobArr.find(job => job.employer === 'BBungalow').shiftEnd - 1) or ($gameDate.getHours() === ($jobArr.find(job => job.employer === 'BBungalow').shiftEnd - 1) and $gameDate.getMinutes() === 0 )>>
<<set _tmpLbl = 'Work for two hours'>>
<<else>>
<<set $endShift = true>>
<<set _tmpLbl = 'Finish your shift'>>
<</if>>
<div class="buttonContainer">
<<button _tmpLbl >>
<<set $shiftTips += $currTip>>
<<unset $currTip>>
<<if $gameDate.getHours() < ($jobArr.find(job => job.employer === 'BBungalow').shiftEnd - 2)>>
<<addHours 2>>
<<else>>
<<set _tmpMins = (60-$gameDate.getMinutes()) + (($jobArr.find(job => job.employer === 'BBungalow').shiftEnd - 1) - $gameDate.getHours())*60>>
<<if _tmpMins > 0>>
<<addMins _tmpMins>>
<</if>>
<</if>>
<<if $jobArr.find(job => job.employer === 'BBungalow').title === 'Waitress' and 1 > 2>>
<<getBBWaitressEvents>>
<<else>>
<<goto "BBWaitressHUB">>
<</if>>
<</button>>
</div>
<<if !$endShift and $gameDate.getHours() > $BBStartHour>>
<div class="buttonContainer">
<<BBungalowEndShift>>
</div>
<</if>>
<<else>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<BBungalowEndShift>>
<</replace>>
<</timed>>
<</if>>
<</widget>>
<<widget "getBBStripperActions">>
<<if $gameDate.getHours() < $jobArr.find(job => job.employer === 'BBungalow').shiftEnd>>
<<if $gameDate.getHours() < ($jobArr.find(job => job.employer === 'BBungalow').shiftEnd - 1) or ($gameDate.getHours() === ($jobArr.find(job => job.employer === 'BBungalow').shiftEnd - 1) and $gameDate.getMinutes() === 0 )>>
<<else>>
<<set $endShift = true>>
<</if>>
<div class="buttonContainer">
<<if $gameDate.getHours() - $lastBBStage < 2>>
<<button 'Mingle on the floor' 'BBStripperMingle'>>
<<addMins 15>>
<</button>>
<</if>>
<<if $lastBBStage < $gameDate.getHours()>>
<<button 'Take a turn on stage' "StartStripShow">>
<<set $lastBBStage = $gameDate.getHours()>>
<<if $gameDate.getMinutes() > 53>>
<<set $lastBBStage += 1>>
<</if>>
<<addMins 1>>
<</button>>
<</if>>
</div>
<<if !$endShift and $gameDate.getHours() > $BBStartHour>>
<div class="buttonContainer">
<<BBungalowEndShift>>
</div>
<</if>>
<<else>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<BBungalowEndShift>>
<</replace>>
<</timed>>
<</if>>
<</widget>>
<<widget "getBBMingleActions">>
<<if $NPCArray.find(npc => npc.dna == $currDNA).arousal < 45>>
<<append "#repCont">>
<div class="badText">"Hey, listen," <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> says, glancing as his watch. "You've been great, but I gotta get going. See ya!"</div>
<</append>>
<<else>>
<div class="buttonContainer">
<<button "Flirt with him">>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Be subtle">>
<<addMins 2>>
<<set $player.statBuffs.charm += 1>>
<<replace "#repCont">>
<<set _tmpImg = 'Media/Social/DateNight/Bar/MF/Romantic/' + random(1,12) + '.webp'>>
<img @src="_tmpImg" height="600rem">
<br><br>
<<switch random(1,6)>>
<<case 1>>
You run a hand through your hair, <<if $player.body.hair.length> 200>>tossing it over your shoulder in a seductive flourish<<else>>if nothing else it gives him reason to look down at your chest while you're disracted<</if>>. Your perfume, a heady mix of vanilla and musk, wafts over him, filling his nostrils and clouding his mind with desire. You can see the effect it's having on him, the way his pupils dilate and his breathing quickens.
<<case 2>>
You perch on the edge of the booth, your legs crossed demurely, but with just enough space between your knees to offer a tantalizing glimpse of what lies beneath your short skirt. Leaning forward, you let your cleavage spill forth, your breasts threatening to escape the confines of your tight top. You catch his eye and hold it, your gaze smoldering with promise.
<<case 3>>
Leaning back slightly, you stretch your arms above your head, arching your back in a subtle yet undeniably sensual pose. Your body is on full display, every curve and contour highlighted by the dim lighting of the club. You can see the desire burning in his eyes, the hunger building with each passing second.
<<case 4>>
You take a sip of your drink, your tongue darting out to catch a stray drop of liquid from your lips. His eyes follow the movement hungrily, tracking every inch of your mouth. Setting your glass down, you turn your body towards him, crossing your legs in a way that shows your thighs and hips.
<<case 5>>
You reach out, brushing a piece of imaginary lint from his shoulder. The brief contact sends a shiver through him, and you can see the goosebumps rise on his skin. Your fingers linger for just a moment longer than necessary before withdrawing.
<<case 6>>
Leaning forward, you prop your chin on your hand, gazing at him with an innocent yet inviting expression. Your eyes sparkle with mischief as you bat your lashes, drawing him in.
<</switch>>
<br><br>
<<calcBBFlirtRx 'Subtle'>>
<</replace>>
<<replace "#actionsContainer">>
<<getBBMingleActions>>
<</replace>>
<</button>>
<<button "Be bold">>
<<addMins 2>>
<<set $player.statBuffs.charm += 1>>
<<replace "#repCont">>
<<set _tmpImg = 'Media/Social/DateNight/Bar/MF/Romantic/' + random(1,12) + '.webp'>>
<img @src="_tmpImg" height="600rem">
<br><br>
<<switch random(1,6)>>
<<case 1>>
You lean in close, your breasts brushing against his arm as you whisper sultry words into his ear. Trailing a finger along his thigh, you inch higher and higher, teasing him mercilessly. Your perfume envelops him, intoxicating his senses.
<<case 2>>
Uncrossing and recrossing your legs, you give him a brief but tantalizing view of your most intimate areas. You run a hand through your hair, arching your back slightly to emphasize your curves. His breath hitches, his pupils dilating with desire. Resting a hand on his knee, you squeeze gently, your touch lingering just a moment too long. He shifts in his seat, clearly affected by your proximity.
<<case 3>>
You lean in closer, your lips grazing his ear as you murmur seductive promises. His body tenses, every nerve on high alert. Your fingers dance along his collarbone, tracing patterns on his skin. He shivers involuntarily, his resistance crumbling with each passing second.
<<case 4>>
Pressing your body against his, you feel the heat radiating off his skin. Your hand finds its way to his inner thigh, dangerously close to his crotch. He inhales sharply, his eyes widening with anticipation. You trail your fingers lightly over the growing bulge in his pants, applying just enough pressure to drive him wild. You whisper into his ear, your breath hot against his neck.
<<case 5>>
Crossing your legs, you allow your skirt to hike up, revealing a tantalizing glimpse of your lacy panties. He swallows hard, his eyes drawn to the exposed skin. You lean in close, your perfume filling his nostrils as you whisper sultrily into his ear. Your breasts brush against his arm, sending shivers down his spine.
<<case 6>>
You move closer and invade his personal space. Your body heat radiates against him as you lean in, your lips grazing his neck, promising something unspoken if only he'll just give in.
<</switch>>
<br><br>
<<calcBBFlirtRx 'Bold'>>
<</replace>>
<<replace "#actionsContainer">>
<<getBBMingleActions>>
<</replace>>
<</button>>
<<button "Be slutty">>
<<addMins 2>>
<<replace "#repCont">>
<<set _tmpImg = 'Media/Social/DateNight/Bar/MF/Romantic/' + random(1,12) + '.webp'>>
<img @src="_tmpImg" height="600rem">
<br><br>
<<switch random(1,6)>>
<<case 1>>
You lean in close, your breasts pressing against his chest as you nuzzle his neck. One hand finds its way to his crotch, giving it a firm squeeze. You grind against him, feeling his growing hardness beneath you.
<<case 2>>
You throw one leg over his lap and tuck in close so he can feel the heat radiating from your core, a smile playing at the corner of your lips as you tease him.
<<case 3>>
Your hands roam over his chest, exploring every muscle. Leaning in, you nibble on his earlobe, your hot breath sending shivers down his spine.
<<case 4>>
You slide you hand up his inner thigh until you're cupping the bulge in his pants, your lips inches from his neck so your hot breath tickles his skin. The promise if your actions as clear as the music around you.
<<case 5>>
You slide your hands up your body and cup your <<descTits $player>> tits while holding eye contact with him, a sultry expression on your face serves as an invitation
<<case 6>>
You press your tits against his chest so your hard nipples poke against him and your hands run through his hair, raising goosebumps along his arms.
<</switch>>
<br><br>
<<calcBBFlirtRx 'Slutty'>>
<</replace>>
<<replace "#actionsContainer">>
<<getBBMingleActions>>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Ask if he wants a lapdance">>
<<set $player.statBuffs.femBuff += 1>>
<<set $player.statBuffs.exhib += 1>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div class="flex-item">
<<if $player.beautyScore >= 10>>
<<set _lapDance = true>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).arousal > 60 and $player.beautyScore > $NPCArray.find(npc => npc.dna == $currDNA).arousal/10>>
<<set _lapDance = true>>
<<else>>
<<if calcAttraction($NPCArray.find(npc => npc.dna == $currDNA),$player)>>
<<set _lapDance = true>>
<</if>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).drunk > 50 and $player.beautyScore > 2>>
<<set _lapDance = true>>
<</if>>
<</if>>
<</if>>
<<if _lapDance>>
"Oh fuck, yeah" he says, his eyes glued to your body. "Lead the way, baby."
<<else>>
"No, thanks. I'm just here to have a drink and watch the stage show." he says with a smile.
<</if>>
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<<if _lapDance>>
<div class="buttonContainer">
<<button "Go to a booth" "StartBBLapDance">>
<<addMins 1>>
<</button>>
</div>
<<else>>
<<getBBMingleActions>>
<</if>>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step away" "BBStripperMingle">>
<<purgeNPC $currDNA.dna>>
<<unset $currDNA>>
<<addMins 2>>
<</button>>
</div>
<</widget>>
<<widget 'BBungalowEndShift'>>
<div class="buttonContainer">
<<button "Clean up and cash out">>
<<set _tmpJob = $jobArr.find(item => item.employer === 'BBungalow')>>
<<set _moniesEarned = ($gameDate.getHours() - $BBStartHour)*_tmpJob.pay + $shiftTips + ($shiftDanceCount?$shiftDanceCount*10:0)>>
<<set $player.money += _moniesEarned>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Stripper/Cashout/' + random(1,3) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
<div class="goodText">You earned $<<print _moniesEarned>> - including $<<print $shiftTips>> in tips
<<if $shiftDanceCount > 0>>
and $<<print ($shiftDanceCount*10)>> from lapdances.
<</if>>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<if $preStripperFit>>
<<set $pickedFit = $preStripperFit>>
<<wearFit $pickedFit 'Auto'>>
<</if>>
<<unset $BBStartHour>>
<<unset $endShift>>
<<addMins 5>>
<<goto "BBungalow">>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</widget>>
<<widget "getBBWaitressEvents">>
<<if !$endShift>>
<<if random(0,100) > 70 and ($gameDate.getTime() - $lastBBJobEvent)/1000 > 3600>>
<<switch random(1)>>
<<case 1>>
<<case 2>>
<<case 3>>
/* Melissa */
<<if !$melVisit>>
<<set $melVisit = true>>
<<if !$npc_2.knowsPlayer>>
<<goto "MelIntro">>
<<else>>
<<goto "MelWorkChats">>
<</if>>
<<else>>
<<goto 'HootersJobHUB'>>
<</if>>
<</switch>>
<<else>>
<<goto "BBWaitressHUB">>
<</if>>
<<else>>
<<goto "BBWaitressHUB">>
<</if>>
<</widget>>
<<widget "calcBBFlirtRx">>
<<switch _args[0]>>
<<case 'Subtle'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).personality === 1>>
<<set $player.statBuffs.charm += 1>>
<<set _rx = 'Positive'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).personality === 2>>
<<set _rx = 'Neutral'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).personality == 3>>
<<set _rx = 'Negative'>>
<</if>>
<<case 'Bold'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).personality === 1>>
<<set _rx = 'Neutral'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).personality === 2>>
<<set _rx = 'Positive'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).personality == 3>>
<<set _rx = 'Neutral'>>
<</if>>
<<case 'Slutty'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).personality === 1>>
<<set _rx = 'Negative'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).personality === 2>>
<<set _rx = 'Neutral'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).personality === 3>>
<<set _rx = 'Positive'>>
<</if>>
<</switch>>
<<if _rx == 'Negative' and (random(1,$player.beautyScore) > 8 or ($player.beautyScore + $player.skills.charm/10) > 12)>>
<<set _rx = 'Neutral'>>
<</if>>
<<switch _rx>>
<<case 'Positive'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += 5>>
<<run $player.statBuffs.charm += 1>>
<div class="goodText">
<<switch random(1,4)>>
<<case 1>>
He leans in closer, his body instinctively responding to yours. His breath quickens, and you can see the pulse jumping in his throat. His hands twitch slightly, as if fighting the urge to reach out and touch you.
<<case 2>>
He licks his lips unconsciously, his gaze roaming hungrily over your body. You can practically feel the lust emanating from him, his desire palpable in the charged air between you.
<<case 3>>
He licks his lips, his tongue darting out quickly, betraying his growing desire. His gaze roams over you hungrily, lingering on your cleavage, your hips, your legs. You can practically feel the intensity of his stare, the raw lust emanating from him in waves.
<<case 4>>
His eyes light up with appreciation, drinking in every curve and contour of your body. A broad smile spreads across his face, his teeth gleaming in the dim light of the club. He leans forward, his posture open and inviting, clearly eager for more of what you have to offer.
<</switch>>
</div>
<<case 'Neutral'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += 1>>
<b>
<<switch random(1,4)>>
<<case 1>>
He maintains a neutral expression, neither encouraging nor rejecting your advances. But his eyes follow your movements, assessing where you're going to go with this.
<<case 2>>
His body language remains open, but noncommittal, as if he's simply curious about your intentions.
<<case 3>>
He meets your gaze steadily, his face an unreadable mask, his smile bland and noncommittal. You haven't lost this fish yet, but he's not biting.
<<case 4>>
He smiles at you and doesn't pull away, but you can tell you haven't struck the right chord with this one.
<</switch>>
</b>
<<case 'Negative'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal -= 5>>
<div class="badText">
<<switch random(1,4)>>
<<case 1>>
He makes a frown and wrinkles his nose, clearly not appreciating your approach.
<<case 2>>
He seems annoyed by your presence, clearly this isn't working.
<<case 3>>
Rolling his eyes he scoots a little further away, placing some distance between you two.
<<case 4>>
He casts you a dissmissive glance and then turns away, making it abundantly clear that he's not buying what you're selling.
<</switch>>
</div>
<</switch>>
<</widget>><<unset $endShift>>
<<set $canBreak = true>>
<center>
<b><font size="10em">Hooters Kitchen</font></b>
<br>
<img src="Media/Locations/Downtown/Hooters/dishwasher1.webp" height="450rem" >
<br><br>
<<if $player.body.hair.length < 10>>
You tie a bandana around your clean shaven head to catch sweat and prepare for another shift of washing other people's dirty dishes.
<<else>>
You put on a hairnet to cover your <<descHair $player>> $player.body.hair.color hair and tie your apron around your back, preparing for another shift of washing other people's dirty dishes.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<getHootersJobActions>>
</div><<unset $endShift>>
<<set $canBreak = true>>
<<set $shiftTips = 0>>
<<set _tmpImg = 'Media/Locations/Downtown/Hooters/Uniform/'>>
<<if $player.body.tits === 0 or ($player.body.womb and $player.body.womb.showPreg) or random(0,1) == 1>>
<<set _tmpImg += 'shorts.mp4'>>
<<else>>
<<set _tmpImg += 'shirt.mp4'>>
<</if>>
<center>
<b><font size="10em">Hooters</font></b>
<br>
<video @src="_tmpImg" height="600rem" autoplay loop></video>
<br><br>
You squeeze yourself into your tight-fitting Hooters outfit. No matter what you weigh these clothes are always skin-tight.
</center>
<hr>
<div id="actionsContainer">
<<getHootersJobActions>>
</div><center>
<b><font size="10em">Hooters</font></b>
<br>
<<if $jobArr.find(job => job.employer === 'Hooters').title === 'Dishwasher'>>
<img src="Media/Locations/Downtown/Hooters/washing1.webp" height="550rem" >
<<else>>
<<set _tmpImg = 'Media/Locations/Downtown/Hooters/Waitress/Wait/' + random(1,4) + '.webp'>>
<img @src="_tmpImg" height="550rem" >
<</if>>
<br><br>
<<if $jobArr.find(job => job.employer === 'Hooters').title === 'Dishwasher'>>
You scrub at the dishes as fast as you can, but you don't seem to make even a dent in the pile of dishes on the counter.
<<if $player.body.tits === 13>>
<br><br>
<div class="badText">Your <<descTits $player>> tits keep getting in the way, making it hard for you to even reach the dishes let alone wash them.</div>
<</if>>
<<if $player.arousal > 50>>
<br><br>
<div class="badText">You find it hard to focus on your task and your mind keeps drifting to thoughts of sex, you should probably do something about your arousal before it gets you in trouble.</div>
<</if>>
<<else>>
<<if !$endShift>>
You take a moment to relax and chat with the other waitresses, enjoying being off your feet for a few minutes in between serving tables.
<<else>>
Done with your shift you gather your things and get ready to leave.
<</if>>
<</if>>
<span id="repCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<<getHootersJobActions>>
</div><<set _tmpImg = 'Media/Locations/Downtown/Hooters/kitchen_rand' + random(1,3) + '.webp'>>
<<set $player.mood += random(2,4)>>
<center>
<b><font size="10em">Hooters</font></b>
<br>
<img @src="_tmpImg" height="450rem" >
<br><br>
You goof off with some of your coworkers for a little while to make the day a little more bearable. Hopefully your boss doesn't walk in!'
</center>
<hr>
<div id="actionsContainer">
<<getHootersJobActions>>
</div><center><b><font size="10em">Hooters</font></b>
<br>
<div class="profileContainer">
<div>
<img @src="$npc_5.image" height="450rem">
</div>
<div>
<span id="repCont">
<<if $player.beautyScore === 2 and $player.presenting === 'Female'>>
You pass your manager in the hallway and after his eyes roam up and down your body he nods at you and says "Keep up the good work, hon! I bet you could even move up to waitressing with a little effort!" You have a feeling that the "effort" he's talking about isn't related to job performance...
<<elseif ($player.beautyScore > 4 or ($player.body.tits > $player.beautyScore and $player.beautyScore > 0)) and $player.presenting === 'Female'>>
<<set $promoOffer = true>>
Your manager stops you one day and whistles as he looks you over with a hungry look in his eye. "Damn, baby, why are you hiding back here in the kitchen? The money is way better and you'd get to spend more time with me. What do you say?"
<br><br>
You know him well enough by now to know that some of that is just his way of being funny, but you're not certain which part of it is the joke. Still, he's not wrong about making better money as a waitress...
<<else>>
Your boss barely acknowledges you as you pass each other in the hallway. That might not be a bad thing, considering your current situation.
<</if>>
</span>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $promoOffer>>
<<if $player.mentalFem > 30>>
<<button "Accept the promotion">>
<<unset $promoOffer>>
<<replace "#repCont">>
"Great! Your new shift will be Tuesday through Saturday, from 3:00pm to 11:00pm. Normal stuff - serve drinks, food, and entertain the customers. It pays $16 but a good Hooters Girl can earn a lot more in tips."
<br><br>
"For now, take the rest of the day off. You've earned it!" His eyes never move above your chest as he says this last line.
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Clean up and leave" "Hooters">>
<<addJobHours 'Hooters' 8>>
<<unset $canBreak>>
<<unset $breakLoc>>
<<unset $lastHootersJobEvent>>
<<unset $melVisit>>
<<quitJob>>
<<set _tmpJob = new Job('Hooters','FullTime','Waitress','Your shift as a waitress at Hooters is Tuesday through Saturday, 3:00pm - 11:00pm',16,[2,3,4,5,6],15,23,'HootersWaitressPrep')>>
<<set _tmpJob.lastWorkDay = $currJulianDate + 1>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()-1>>
<<set $jobArr.push(_tmpJob)>>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<button "Thanks but no thanks" "HootersJobHUB">>
<<unset $promoOffer>>
<<addSecs 5>>
<</button>>
<<else>>
<<button "Continue" "HootersJobHUB">>
<<addSecs 5>>
<</button>>
<</if>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/Hooters/Waitress/Serving/'>>
<<if !$player.body.womb or !$player.body.womb.showPreg>>
<<set _tmpImg += random(1,19) + '.webp'>>
<<else>>
<<set _tmpImg += 'Preg/' + random(1,3) + '.webp'>>
<</if>>
<<set $currTip = 0>>
<center>
<b><font size="10em">Hooters</font></b>
<br>
<img @src="_tmpImg" height="550rem">
<br><br>
<<waitressText>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<set $shiftTips += $currTip>>
<<unset $currTip>>
<<calcRandWaitress>>
<</button>>
</div>
</div><<set $player.arousal += 2>>
<<set $player.statBuffs.exhib += 1>>
<<set _tmpImg = 'Media/Locations/Downtown/Hooters/Waitress/Flirt/' + random(1,9) + '.webp'>>
<center>
<b><font size="10em">Hooters</font></b>
<br>
<img @src='_tmpImg' height="600rem">
<br><br>
<<switch $flirtLevel>>
<<case 'Flirty'>>
<<switch random(1,3)>>
<<case 1>>
Feeling his eyes burning into your skin, you lift your chin and meet his gaze head-on, a challenge flickering in your eyes. You purr as you lean in closer until your breasts nearly graze the tabletop and wag a finger at him, making sure to accentuate the swell of your cleavage.
<br><br>
The way he gulps and squirms in his seat only makes you enjoy teasing him that much more.
<<case 2>>
You accidentally-on-purpose knock his napkin to the ground and his gaze drops to your breasts as you bend to retrieve it. You can practically feel the heat from his gaze as you smirking to yourself and take your time readjusting your halter strap, making sure to give him an eyeful of flesh. When you finally straighten, you catch him ogling your pert rear as you saunter back to the kitchen, hips swaying seductively.
<<case 3>>
Placing your hands on the table, you stretch languidly, arching your back and thrusting out your chest in a deliberate display of sensuality. The diner's eyes widen, fixated on the gentle bounce of your breasts as you extend your arms above your head and then strut back toward the kitchen.
<</switch>>
<<case 'Tease'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += 5>>
<<switch random(1,3)>>
<<case 1>>
You reach out, tracing a fingertip along the sharp plane of his jaw before dipping lower to toy with the first button of his shirt. You whisper conspiratorially, asking if he likes what you're offering as you press your breasts together subtly to emphasize their size and shape. His Adam's apple bobs as he swallows hard, and you can sense the battle raging within him - restraint versus primal urge.
<<case 2>>
Sitting beside him, you let your leg brush against his, feeling the instant heat. As you serve his cheesecake, you drizzle caramel sauce in a provocative pattern across the creamy surface, humming low in your throat as you press your <<sizeTits $player>> chest against his arm.
<<case 3>>
Straightening from pouring his drink, you 'accidentally' knock over the saltshaker, allowing it to roll across the table directly inot his crotch. You reach between his thighs while keeping your eyes locked on his. As you pull back your hand rubs against the impressive erection pressing insistently against the fabric of his slacks. Catching his gaze, you flash a mischievous grin.
<</switch>>
<<case 'Slutty'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += 10>>
<<switch random(1,3)>>
<<case 1>>
Giggling at his brazen ogling, you flip your hair over one shoulder to emphasize the curves of your breasts. Slipping into the booth beside him, you press your thigh against his and let your hand drop to his lap; feeling the immediate hardness. Leaning in, you whisper hotly in his ear about the night's specials. You punctuate the offer by cupping your <<descTits $player>> bust.
<<case 2>>
As you walk by, his hungry gaze rakes over your curvy figure, lingering on the swell of your ass. You bite back a smirk, knowing exactly what he's thinking. Turning to place his order, you lean forward, presenting him with a perfect view down your low-cut blouse to the lacy edge of your push-up bra as you 'accidentally' press your soft tits against his palm. His Adam's apple bobs as he swallows hard, but his hands stayed glued to your tits as you take his order.
<<case 3>>
Pushing back your his, you straddle his lap, hands braced on his broad shoulders as you drape yourself across him like a provocative mantle. His erection prods insistently against your core, and you grind down, relishing the groan that rumbles deep in his chest before you pull back and hand him a desert menu.
<</switch>>
<</switch>>
<<if ['Tease','Slutty'].includes($flirtLevel) and ($NPCArray.find(npc => npc.dna == $currDNA).personality > 1 and random(0,$NPCArray.find(npc => npc.dna == $currDNA).arousal) > 80) or ($NPCArray.find(npc => npc.dna == $currDNA).personality === 3 and random(0,$NPCArray.find(npc => npc.dna == $currDNA).arousal) > 50)>>
<<set _sexOffer = true>>
<br>
<div class="badText">He leans in and runs a finger across the swell of your right breast "Any place around here we could go for some....private?"</div>
<</if>>
<<if $melFlirtingCoach>>
<br>
<<set _tmpTip = random(5,10)>>
<<set $shiftTips += _tmpTip>>
<div class="goodText">As you leave the table you see him drop a $<<print _tmpTip>> tip on the table!</div>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if _sexOffer and ($player.slutLevel > 4 or ($player.slutLevel > 2 and $player.exhib > 2 and ['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender)))>>
<<button "Take him to the stockroom">>
<<set $returnLoc = 'HootersStockroom'>>
<<goto 'SneakScene'>>
<</button>>
<</if>>
<div>
<div class="buttonContainer">
<<if _sexOffer>>
<<set _tmpLbl = 'Decline'>>
<<else>>
<<set _tmpLbl = 'Continue'>>
<</if>>
<<button _tmpLbl>>
<<if $melFlirtingCoach>>
<<unset $melFlirtingCoach>>
<<goto "PostMelTipAdvice">>
<<else>>
<<addSecs 15>>
<<goto "HootersJobHUB">>
<</if>>
<</button>>
</div>
</div><<set _tmpNPC = new Person(random(21,45),'Male')>>
<<set $NPCArray.push(_tmpNPC)>>
<<set $currDNA = _tmpNPC.dna>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal = random(30,90)>>
/* client flirts with you */
<<set _tmpImg = 'Media/Locations/Downtown/Hooters/Waitress/TableEncounter/' + random(1,9) + '.webp'>>
<center>
<img @src='_tmpImg' height="600rem">
<br><br>
<<if !$player.traits.includes(8) and ($player.mentalFem < 40 or $player.slutLevel < 2) and !$betterTips>>
<<set _blockFlirt = true>>
/* disgusted */
<<switch random(1,3)>>
<<case 1>>
As you approach table six, the unmistakable leer in the customer's eyes makes your stomach churn. You plaster on a bright, toothy smile, praying it conceals the discomfort searing through your nerves.
<<case 2>>
As you arrive at one of your tables table, you're immediately hit with a wave of discomfort as the patron's eyes rake over your body like a predator sizing up its prey. "Well hello there, gorgeous," he slurs, his words dripping with condescension and lust. You force a bright smile, hoping to get out of this encounter with your tip intact.
<<case 3>>
You can practically feel the weight of his ogling gaze as you stand beside his table, the lecherous hunger radiating off him in palpable waves. "Damn, you're fine," he mutters under his breath, his eyes glued to your chest as if mesmerized by the swell of your breasts straining against the tight uniform top.
<</switch>>
<<elseif !$player.traits.includes(8) and ($player.inhib >= 60 or ($player.prefs.gender === 'Female' and $player.sub > 55)) and !$betterTips>>
<<set _blockFlirt = true>>
/* shy */
<<switch random(1,3)>>
<<case 1>>
The moment this customer catches sight of you, his eyes sparkle with lecherous intent, roaming over your curves with an audacity that makes your skin crawl. "Well hey there, sugar," he purrs, flashing a crooked grin that sends a shiver down your spine. You force a polite smile, hoping the dim lighting hides the burning blush on your cheeks, desperately wanting to flee this uncomfortableness to end.
<<case 2>>
"Oh, honey, you look even prettier up close," the man at one table slurs, his gaze devouring every inch of exposed skin like a starving man at a buffet. You swallow hard, plastering on a bright mask of cheerfulness while your insides twist into knots. Every second feels like an eternity as you fumble to take his order, the thumping of your heart almost drowning out his voice.
<<case 3>>
As soon as you step up to the table the customer zeroes in on you like a heat-seeking missile, his gaze pinning you in place with its intensity. You blush furiously, averting your eyes as you just focus on taking his order. His obvious desire makes you feel small and vulnerable, causing the hairs on the back of your neck prickle with unease.
<</switch>>
<<elseif !$player.traits.includes(8) and (($player.prefs.gender === 'Female' and $player.slutLevel < 4) or ($player.slutLevel < 3)) and !$betterTips>>
<<set _blockFlirt = true>>
/* disintersted */
<<switch random(1,3)>>
<<case 1>>
The instant you're within earshot of your new table he launches into a stream-of-consciousness monologue about your appearance, each word dripping with sleazy intentions, his eyes fixed on your thighs as if memorizing the contours. You maintain a stoic expression, politely thanking him for the observation even as your mind starts to wander, fantasizing about ways to make him leave sooner rather than later.
<<case 2>>
Approaching a new table, you're met with a leering grin from the diner. His gaze raking over your curves like a brands examiner deciding where to leave his mark. You plaster one what you hope doesn't look like too fake of a smile, already tuning him out as he continues his drooling commentary on your appearance.
<<case 3>>
The instant you're within arm's reach he leans in with a pointed glance at your cleavage. Your sigh at his boorish behavior, but you paste on a professional smile - maybe he's a good tipper...
<</switch>>
<<elseif $player.slutLevel < 4>>
/* playfull */
<<set $player.arousal += 5>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += 5>>
<<switch random(1,3)>>
<<case 1>>
At the next table you flash the diner a knowing smile, leaning in slightly as you take his order, letting him get a tantalizing view down your crop top. You smile inwardly as the laps up your encouraging body language and turns on the charm. Men are so easy!
<<case 2>>
From the moment you set eyes on the next diner, you can tell he's smitten, his gaze lingering on your curves as if etching them into his memory. Some customers you just like right away.
<<case 3>>
You approach your new table with a smirk, pulling out your order pad and perching on the edge of the tabletop. As you take man's order, you brush your hand accidentally-on-purpose against his, sending a jolt of electricity through both of you. The hungry gleam in his eye tells you he's thoroughly entranced, and you plan to keep him that way all evening long.
<</switch>>
<<else>>
<<set $player.arousal += 10>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += 10>>
/* slutty */
<<switch random(1,3)>>
<<case 1>>
You strut up to the diner's table with a confident sway in your hips, relishing the way his eyes follow every movement. You greet him with a salacious smile, giving him a once-over that leaves no doubt that what you're offering isn't strictly on the menu.
<<case 2>>
Sauntering over to a new table, you can practically hear his pulse racing as you slide onto the seat beside him. Just when you can feel the warmth of his body you batt your eyelashes innocently and subtly shift your position to give him an unobstructed view down your low-cut top.
<<case 3>>
Planting yourself with a small hop in front of the horny patron, you hook your thumbs into your belt loops of your shorts and cock a hip to the side, thrusting your chest forward. You offter to take his order in a way that suggest you can do much more than that and his Adam's apple bob as he swallows hard.
<</switch>>
<</if>>
<br><br>
<<if $NPCArray.find(npc => npc.dna == $currDNA).arousal <= 50>>
"<<genPickUpLine>>" he says with a dirty smile.
<<else>>
He leans closer and says, "<<genVulgarComment>>"
<</if>>
</center>
<<if $player.traits.includes(8)>>
<<unset _blockFirt>>
<</if>>
<hr>
<div id="actionsContainer">
<<if _blockFlirt and !$betterTips>>
<<set $melWaitressTip = true>>
<<else>>
<div class="buttonContainer">
<<button "Flirt back" "HootersFlirt">>
<<set $flirtLevel = 'Flirty'>>
<<addMins 2>>
<</button>>
<<if ($player.prefs.gender !== 'Female' and (($player.exhib > 40 or $player.slutLevel > 2) or $player.exhib > 60 or $player.slutLevel > 3)) or $player.slutLevel >= 4>>
<<button "Push the envelope" "HootersFlirt">>
<<set $flirtLevel = 'Tease'>>
<<addMins 2>>
<</button>>
<</if>>
<<if ($player.prefs.gender !== 'Female' and (($player.exhib > 55 or $player.slutLevel > 3) or $player.exhib > 70)) or $player.slutLevel >= 4>>
<<button "Have some fun" "HootersFlirt">>
<<set $flirtLevel = 'Slutty'>>
<<addMins 2>>
<</button>>
<</if>>
</div>
<</if>>
<<if !$player.traits.includes(8)>>
<div class="buttonContainer">
<<button "Ignore his comments">>
<<purgeNPC $currDNA>>
<<if $melWaitressTip === true>>
<<unset $melWaitressTip>>
<<goto "MelTipAdvice">>
<<else>>
<<addMins 2>>
<<goto "HootersJobHUB">>
<</if>>
<</button>>
</div>
<</if>>
</div><<widget "getHootersJobActions">>
<div class="buttonContainer">
<<if $gameDate.getHours() < $jobArr.find(job => job.employer === 'Hooters').shiftEnd>>
<<if $gameDate.getHours() < ($jobArr.find(job => job.employer === 'Hooters').shiftEnd - 2) or ( $gameDate.getHours() === ($jobArr.find(job => job.employer === 'Hooters').shiftEnd - 2) and $gameDate.getMinutes() === 0 )>>
<<set _tmpLbl = 'Work for 2 hours'>>
<<else>>
<<set $endShift = true>>
<<set _tmpLbl = 'Finish your shift'>>
<</if>>
<<button "_tmpLbl">>
<<set $player.mood -= 1>>
<<set $player.body.sweat += random(1,5)>>
<<if $gameDate.getHours() < ($jobArr.find(job => job.employer === 'Hooters').shiftEnd - 2)>>
<<addHours 2>>
<<else>>
<<set _tmpMins = (60-$gameDate.getMinutes()) + (($jobArr.find(job => job.employer === 'Hooters').shiftEnd - 1) - $gameDate.getHours())*60>>
<<if _tmpMins > 0>>
<<addMins _tmpMins>>
<</if>>
<</if>>
<<if $jobArr.find(job => job.employer === 'Hooters').title === 'Dishwasher'>>
<<calcRandDishwasher>>
<<else>>
<<goto "HootersWaitress">>
<</if>>
<</button>>
<<if $gameDate.getHours() > $jobArr.find(job => job.employer === 'Hooters').shiftStart and $canBreak>>
<<button "Take your 30 minute break" "HootersAlley">>
<<unset $canBreak>>
<<set $breakStart = $gameDate.getTime()>>
<<set $breakLoc = 'HootersJobHUB'>>
<<addMins 2>>
<</button>>
<</if>>
<<else>>
<<timed 0s>>
<<replace "#actionsContainer">>
<<hootersEndShift>>
<</replace>>
<</timed>>
<</if>>
</div>
<</widget>>
<<widget "calcRandDishwasher">>
<<if !$endShift>>
<<if !$lastHootersJobEvent>>
<<set $lastHootersJobEvent = 0>>
<</if>>
<<if random(0,100) > 70 and ($gameDate.getTime() - $lastHootersJobEvent)/1000 > 3600>>
<<switch random(1,3)>>
<<case 1>>
<<goto "HKitchenGoofOff">>
<<case 2>>
<<goto "HBossAssess">>
<<case 3>>
/* Melissa */
<<if !$melVisit>>
<<set $melVisit = true>>
<<if !$npc_2.knowsPlayer>>
<<goto "MelIntro">>
<<else>>
<<goto "MelWorkChats">>
<</if>>
<<else>>
<<goto 'HootersJobHUB'>>
<</if>>
<</switch>>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<</widget>>
<<widget "calcRandWaitress">>
<<if !$endShift>>
<<if $lastHootersJobEvent is undefined>>
<<set $lastHootersJobEvent = 0>>
<</if>>
<<if random(0,100) <= $player.beautyScore*10 and ($gameDate.getTime() - $lastHootersJobEvent)/1000 > random(3600,7230)>>
<<set $lastHootersJobEvent = $gameDate.getTime()>>
<<switch random(1,2)>>
<<case 1>>
/* table flirt */
<<goto "HootersEncounter">>
<<case 2>>
/* Melissa */
<<if !$melVisit>>
<<set $melVisit = true>>
<<set _tmpTime = random(5,10)>>
<<addNPC $npc_2 'HootersJob' 'MelWorkChats' _tmpTime>>
<<if !$npc_2.knowsPlayer>>
<<goto "MelIntro">>
<<else>>
<<goto "MelWorkChats">>
<</if>>
<<else>>
<<goto 'HootersJobHUB'>>
<</if>>
<</switch>>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<</widget>>
<<widget 'hootersEndShift'>>
<<replace "#repCont">>
<<if $jobArr.find(job => job.employer === 'Hooters').title === 'Waitress'>>
<<if $shiftTips > 0>>
<<set $player.money += $shiftTips>>
<div class="goodText">You earned $<<print $shiftTips>>.00 in tips this shift.</div>
<<else>>
<div class="badText">You earned $<<print $shiftTips>>.00 in tips this shift.</div>
<</if>>
<</if>>
<</replace>>
<<if $player.questTracker.some(quest => quest.idx === 'MelissaHustle') and $player.questTracker.find(quest => quest.idx === 'MelissaHustle').level === 2>>
<<set _tmpGNBlocker = true>>
<</if>>
<<if $gameDate.getDay() === 3 and $player.questTracker.some(item => item.idx === 'GirlsNight') and $player.questTracker.find(item => item.idx === 'GirlsNight').level === 4 and !_tmpGNBlocker>>
<div class="buttonContainer">
<<button "Meet Melissa after work" "MelParkingLotMeet">>
<<addJobHours 'Hooters' 8>>
<<unset $endShift>>
<<unset $canBreak>>
<<unset $breakLoc>>
<<unset $lastHootersJobEvent>>
<<unset $melVisit>>
<<unset $shiftTips>>
<<unset $currTip>>
<<for _dateIndx to 0; _dateIndx < $player.phone.calendar.items.length; _dateIndx++>>
<<if $player.phone.calendar.items[_dateIndx] === 'GirlsNight'>>
<<cleanDate _dateIndx>>
<<set _dateIndex = $player.phone.calendar.items.length>>
<</if>>
<</for>>
<<addMins 5>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Clean up and leave">>
<<addJobHours 'Hooters' 8>>
<<unset $endShift>>
<<unset $canBreak>>
<<unset $breakLoc>>
<<unset $lastHootersJobEvent>>
<<unset $melVisit>>
<<unset $shiftTips>>
<<unset $currTip>>
<<addMins 5>>
<<if $player.questTracker.some(quest => quest.idx === 'MelissaHustle') and $player.questTracker.find(quest => quest.idx === 'MelissaHustle').level === 2>>
<<set $player.questTracker.find(quest => quest.idx === 'MelissaHustle').level = 3>>
<<for _dateIndx to 0; _dateIndx < $player.phone.calendar.items.length; _dateIndx++>>
<<if $player.phone.calendar.items[_dateIndx] === 'MelissaHustle'>>
<<cleanDate _dateIndx>>
<<set _dateIndex = $player.phone.calendar.items.length>>
<</if>>
<</for>>
<<goto "MelHustlePath">>
<<else>>
<<goto "Hooters">>
<</if>>
<</button>>
</div>
<</widget>>
<<widget "waitressText">>
<<if ($player.mentalFem < 40 or $player.slutLevel < 2) and !$betterTips>>
/* disgust */
<<switch random(1,4)>>
<<case 1>>
You try to ignore the hungry stares as you weave through the crowded restaurant, tray balanced precariously in your hands. Every step feels awkward, the tight uniform clinging to your breasts and hips in a way that makes you acutely aware of your womanly body. You force a bright smile for the table of leering men, trying to project confidence as you take their drink orders, the raucous laughter and whistles echoing in your burning ears.
<<case 2>>
Each time you approach a table, you can feel the eyes roving over your curves, undressing you with lecherous intent. Trying to maintain your composure, you present the menu with a practiced flourish, struggling to keep your voice steady as you ask about appetizers and entrees, all the while praying no one will notice the tremble in your hands or the nervous flutter in your chest.
<<case 3>>
Try as you might to ignore them, the rude remarks and salacious whispers follow you everywhere, the lingering scent of masculine musk hanging heavy in the air. Each time you bend over to refill a glass or swap out a plate, you feel their eyes burning into your ass, the snug fabric of your shorts seeming to amplify every sway and shift.
<<case 4>>
Striding through the diner in high heels, you can feel every hungry gaze tracing your curves, the clingy uniform exaggerating your femininity to unnerving effect. As you take orders, the touch of eager hands lingers on your waist, the whiff of booze and sweat clings to your skin. Each step echoes with the mocking laughter of patrons, their lecherous smiles a constant reminder that you're now just another sexualized object in their world.
<</switch>>
<<elseif ($player.inhib >= 83 or ($player.prefs.gender === 'Female' and $player.sub > 55)) and !$betterTips>>
/* shy */
<<switch random(1,4)>>
<<case 1>>
You force a tremulous smile, clutching your stack of menus like a lifeline as you approach the each table like it's the first with your heart thundering in your chest. The 'appreciative' stares and smiles from the dirty men in the room send shivers down your spine; their whispered remarks and crude jokes making you want to retreat into a corner and hide.
<<case 2>>
You're barely able to hold your head high as you wind your way between tables, the sway of your hips and bounce of your breasts drawing catcalls and whistles. The cloying perfume of floral shampoo and musk mingles with the tang of sweat and beer, filling your nostrils with the ripe scent of male arousal. You struggle to keep your voice steady as you recite the daily specials, every word dripping with embarrassment as you play the part of the flirty, available girl-next-door despite your skyrocketing anxiety.
<br><br>
Each time a hand brushes against your arm or a lewd comment punctuates the din, you bite back a whimper, desperate to flee the overwhelming sensation of being objectified.
<<case 3>>
Your cheeks burn with every passing second under the scrutinizing eyes of the clientele, their smirks and nudges implying they can see right through the thinnest layer of your persona. You steel yourself for the inevitable groping and harassment, plastering a plastic smile on your face as you approach each table.
<<case 4>>
Every fiber of your being screams to melt into the background, to disappear behind the forced joviality and flirtatious banter expected of you. But the oppressive atmosphere of the diner refuses to let you hide, the cavernous space filled with the unrelenting hum of male desire. You can practically taste the pheromones thickening the air, each gust of laughter and raised voices sending a shiver of dread down your spine.
<</switch>>
<<elseif (($player.prefs.gender === 'Female' and $player.slutLevel < 4) or ($player.slutLevel < 3)) and !$betterTips>>
/* disinterested */
<<switch random(1,4)>>
<<case 1>>
You go through the motions, exchanging pleasantries and delivering drinks with a mechanical efficiency born of sheer boredom. The faces blend together - craggy, weathered, unremarkable - their personalities indistinguishable beyond the fact that they're all variations on the same tired, worn-out theme.
<<case 2>>
Your expression remains fixed in a polite smile as you traverse the crowded dining area, the familiar scenery blending together in a monotonous blur. The crude remarks and sloppy flirting feel like a tired routine, something you've learned to tune out in favor of faster mental calculations - how many minutes until closing, how much tip money you need to scrape by, what TV show you'll binge-watch tonight to forget this soul-sucking job. Each interaction becomes a rote transaction, devoid of any genuine human connection or satisfaction.
<<case 3>>
The energy drains from your limbs as you go through the motions of taking orders and delivering plates, the vibrant colors and loud chatter of the diner fading into a drab grayscale. You find yourself zoning out, replaying mind-numbing loops of mundane tasks in your head to pass the time. Even the occasional brush of a patron's hand or cheeky comment fails to stir any reaction beyond a half-hearted flicker of annoyance. In this numb state, you're not quite present, not fully absent either - just adrift in a sea of tedium, waiting for the blessed release of the final bell.
<<case 4>>
Lost in a trance-like state, you glide through the diner's bustle, the repetitive rhythm of terrible pick-up lines and outright crude comments bleind together to become a sort of mind-numbing dance. The relentless din of the restaurant fades into a distant murmur, replaced by the echoey vacuum of your own thoughts. Each customer's order slips seamlessly into the next, the names, numbers, and requests morphing into an abstract sequence of inputs and outputs.
<</switch>>
<<elseif $player.slutLevel < 4>>
/* playfull */
<<set $currTip += Math.floor(random($player.beautyScore/2,6))>>
<<switch random(1,4)>>
<<case 1>>
You saunter between tables with a practiced sway, your hips undulating subtly beneath the tight shorts. The hungry gazes following your every movement bring a smile to your <<descLips $player>> lips.
<<case 2>>
You play the role of the flirtatious temptress, your words dripping with honeyed innuendo as you bat your eyelashes and toss your hair. The customers eat up your act and then you're off to the next table.
<<case 3>>
With each scripted line delivered in a sultry drawl, you immerse yourself in the fantasy, the pretend flirtation a delicious escape from reality. Your performance amplifying the rush of excitement coursing through you - at last work is fun!
<<case 4>>
You weave a tapestry of teasing banter and coy smiles, building an elaborate illusion as you sling cheap beer and greasy wings. You have fun playing your role, your almost scripted narrative designed to titillate and entertain and open wallets.
<</switch>>
<<else>>
/* slutty */
<<set $currTip += Math.floor(random($player.beautyScore,11))>>
<<switch random(1,4)>>
<<case 1>>
You revel in the attention, every whistle and wolf call a delicious affirmation of your provocative persona. As you zip around the restaurant, hips swaying, you deliberately position yourself for optimal viewing, angling your body to maximize the visual impact of your curves.
<<case 2>>
The hungry stares and lustful comments fuel your confidence, emboldening you to push the boundaries of innuendo and suggestiveness in your interactions. Whether serving burgers or collecting empties, you embody the perfect blend of sassy seductress and playful tease, every action a deliberate dance designed to leave the men weak in the knees and craving more of your tantalizing charms.
<<case 3>>
Your voice, a honeyed purr, drips with invitation as you recite the specials, your words laced with double entendres and subtle innuendos. The way you pivot on your heels, the snap of your hips, the flirtatious tilt of your head - every gesture is a calculated seduction, a brazen display of feminine wiles designed to leave the men panting and pleading for more. And oh, the pleasure you derive from their helpless admiration, the intoxicating rush of power that comes with wielding such primal allure.
<<case 4>>
As you work the room with feline grace, every aspect of your being seems attuned to the art of sexual suggestion. The languid stretch of your arms as you balance a tray, the playful nudge of your knee against a chair, the slow blink of your eyes as you lock gazes with a particular admirer - each subtle movement is a carefully orchestrated piece of the larger performance. And the reactions you elicit! Gasps, smirks, even the occasional whispered proposal - they're the sweetest rewards for your efforts, proof positive that your brand of shameless, overt sexuality has the desired effect.
<</switch>>
<</if>>
<br><br>
<<if $currTip > 0>>
<<set $currTip = $currTip*random(3,4)>>
<div class="goodText">You earned $<<print $currTip>> in tips.</div>
<<else>>
<div class="badText">You earned $0 in tips</div>
<</if>>
<</widget>><center>
<span id="repCont">
<<getMaidPic "Clean">>
<br><br>
<<getMaidText>>
<<if $FHMaid and !$dailyLimit.includes('MaidTheft') and random(0,100) > 50>>
<<set _temptMaid = true>>
<br><br>
<div class="badText">While cleaning you spot some cash sitting out on a table.</div>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<<set _tmpLbl = 'Continue'>>
<<if _temptMaid>>
<<set _tmpLbl = 'Leave it'>>
<div class="buttonContainer">
<<button "Take the cash">>
<<if !$badMaid>>
<<set $badMaid == 0>>
<</if>>
<<set $dailyLimit.push('MaidTheft')>>
<<set $badMaid += 1>>
<<set $maidMoney = random(10,50)>>
<<set $player.money += $maidMoney>>
<<set _tmpImg = 'Media/OddJobs/Maid/Thief/Cash/' + ($player.presenting === 'Female'?'F/' + random(1,2):'M/' + random(1,1)) + '.webp'>>
<<replace '#repCont'>>
<img @src="_tmpImg" height="600rem">
<br><br>
You quickly tuck away the cash out of sight before someone sees you.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $maidLoc>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "_tmpLbl" $maidLoc>>
<<addMins 2>>
<</button>>
</div>
</div><<widget "getMaidActs">>
<<if $maidRooms and $maidRooms.length > 0>>
<<if $maidRooms.includes(_args[0])>>
<<switch _args[0]>>
<<case 'FairhavenLobby'>>
<<timed 0s>>
<<prepend "#actionsContainer">>
<div class="buttonContainer">
<<button "Clean the lobby" "MaidClean">>
<<set $player.statBuffs.maid += 1>>
<<set _tmpMins = 60 - $player.skills.maid>>
<<addMins _tmpMins>>
<<set
$player.body.sweat += 10;
$player.body.hair.clean -= 5;
$player.body.stamina -= 10;
$player.body.energy -= 10;
>>
<<run $maidRooms.delete(_args[0])>>
<</button>>
</div>
<</prepend>>
<</timed>>
<<case 'FairhavenHall'>>
<<timed 0s>>
<<prepend "#actionsContainer">>
<div class="buttonContainer">
<<button "Clean the hallway" "MaidClean">>
<<set $player.statBuffs.maid += 1>>
<<set _tmpMins = 60 - $player.skills.maid>>
<<addMins _tmpMins>>
<<set
$player.body.sweat += 10;
$player.body.hair.clean -= 5;
$player.body.stamina -= 10;
$player.body.energy -= 10;
>>
<<run $maidRooms.delete(_args[0])>>
<</button>>
</div>
<</prepend>>
<</timed>>
<<default>>
<<timed 0s>>
<<prepend "#actionsContainer">>
<div class="buttonContainer">
<<button "Clean the room" "MaidClean">>
<<set $player.statBuffs.maid += 1>>
<<set _tmpMins = 60 - $player.skills.maid>>
<<addMins _tmpMins>>
<<set
$player.body.sweat += 10;
$player.body.hair.clean -= 5;
$player.body.stamina -= 10;
$player.body.energy -= 10;
>>
<<run $maidRooms.delete(_args[0])>>
<</button>>
</div>
<</prepend>>
<</timed>>
<</switch>>
<</if>>
<<elseif _args[0] === 'FairhavenLobby'>>
<div class="buttonContainer">
<<button "Put away Cleaning products" $maidReturnLoc>>
<<addMins 1>>
<</button>>
</div>
<</if>>
<</widget>>
<<widget "getMaidPic">>
<<set _tmpImg = 'Media/OddJobs/Maid/'>>
<<switch _args[0]>>
<<case 'Clean'>>
<<switch random(1,3)>>
<<case 1>>
<<set _tmpImg += 'Dusting/'>>
<<if $maidJob.level === 1>>
<<set _tmpImg += 'Plain/' + ($player.presenting === 'Female'?'F/' + random(1,6):'M/' + random(1,4)) + '.webp'>>
<<elseif $maidJob.level === 2>>
<<set _tmpImg += 'Reg/' + ($player.presenting === 'Female'?'F/' + random(1,7):'M/' + random(1,1)) + '.webp'>>
<<elseif $maidJob.level >= 4>>
<<set _tmpImg += 'Sexy/' + ($player.presenting === 'Female'?'F/' + random(1,5):'M/' + random(0,0)) + '.webp'>>
<</if>>
<<case 2>>
<<set _tmpImg += 'Mopping/'>>
<<if $maidJob.level === 1>>
<<set _tmpImg += 'Plain/' + ($player.presenting === 'Female'?'F/' + random(1,6):'M/' + random(1,7)) + '.webp'>>
<<elseif $maidJob.level === 2>>
<<set _tmpImg += 'Reg/' + ($player.presenting === 'Female'?'F/' + random(1,4):'M/' + random(1,3)) + '.webp'>>
<<elseif $maidJob.level >= 4>>
<<set _tmpImg += 'Sexy/' + ($player.presenting === 'Female'?'F/' + random(1,9):'M/' + random(0,0)) + '.webp'>>
<</if>>
<<case 3>>
<<set _tmpImg += 'Vacuuming/'>>
<<if $maidJob.level === 1>>
<<set _tmpImg += 'Plain/' + ($player.presenting === 'Female'?'F/' + random(1,3):'M/' + random(1,1)) + '.webp'>>
<<elseif $maidJob.level === 2>>
<<set _tmpImg += 'Reg/' + ($player.presenting === 'Female'?'F/' + random(1,3):'M/' + random(1,1)) + '.webp'>>
<<elseif $maidJob.level >= 4>>
<<set _tmpImg += 'Sexy/' + ($player.presenting === 'Female'?'F/' + random(1,10):'M/' + random(0,0)) + '.webp'>>
<</if>>
<</switch>>
<</switch>>
<img @src='_tmpImg' height="600rem">
<</widget>>
<<widget "getMaidText">>
<<switch random(1,5)>>
<<case 1>>
You move methodically around the room; dusting, sweeping, and wiping until everything feels orderly again.
<<case 2>>
You dust the furniture, scrub the floors, and chase away every speck of dust that dares to linger.
<<case 3>>
You spend the time tidying surfaces, straightening cushions, and restoring the room to its proper shine.
<<case 4>>
Tackling corners, counters, and cupboards you hunt for dirst and dust until the space breathes clean.
<<case 5>>
You wipe down tables, sweep the hallways, and dust the picture frames.\
<</switch>>
<</widget>><span id='repCont'>
<center>
<img src="Media/Locations/Shops/Safeway/Job/cCounter1.webp" height="450rem">'
<br><br>
You approach the Customer Service counter and ask about a job.
<br><br>
It takes a few minutes but eventually the floor manager comes over to talk to you.
</center>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addMins 2>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Locations/Shops/Safeway/Job/manager1.webp" height="450rem">
</div>
<div>
"So, you're looking to join our Safeway Family, hm? Let me get a look at you." the manager says. "You don't have a C.V.? Or even a character reference? Hm, you're not making it easy for me, kid."
<br><br>
"But I got a good feeling about you. So tell you what - I can offer you a clerk position. It's three days a week; Tues, Wed, Thur. From 9:00am to 5:00pm and the pay is $12 per hour." He smiles at you with what seems like genuine affection. Almost fatherly, in a way.
<br><br>
"Or if this isn't something you'd be interested in just let me know that too."
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Take the job">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Locations/Shops/Safeway/Job/manager1.webp" height="450rem">
</div>
<div>
"Great! Can't wait to see you do great things here, $player.firstName. Don't let me down!"
<br><br>
You sign some papers and make your new job official and you say goodbye to your new boss.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class='buttonContainer'>
<<button "Continue" "itemStore">>
<<if $payStubs is undefined>>
<<set $payStubs = []>>
<</if>>
<<quitJob>>
<<set _tmpJob = new Job('Safeway','FullTime','Stocker','Your shift at Safeway is from 9am to 5pm every Tuesday through Thursday.',12,[2,3,4],9,17,'StartSafewayJob')>>
<<set _tmpJob.lastWorkDay = $currJulianDate + 1>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()>>
<<set $jobArr.push(_tmpJob)>>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Tell him you'll think about it" "itemStore">>
<<addSecs 15>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Not interested">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Locations/Shops/Safeway/Job/manager1.webp" height="450rem">
</div>
<div>
"Say no more! We won't bother you with this job offer again. Appreciate your time." he says standing up, guiding you back toward the entrance.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<<button "Continue" "itemStore">>
<<set $safewayJobBlock = true>>
<<addSecs 15>>
<</button>>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $breakStart = 0>>
<<set $canBreak = true>>
<<set $stockImg = 'Media/Locations/Shops/Safeway/Job/Start/' + random(1,1) + '.webp'>>
<<set $stockTxt = 'You drop off your stuff and put on your work apron before heading out to the main floor.'>>
<<goto 'SafewayJobLoop'>><center>
<b><font size="10em">Safeway</font></b>
<br>
<img @src="$stockImg" height="450rem" >'
<br><br>
<<print $stockTxt>>
</center>
<<unset $stockImg>>
<<unset $stockTxt>>
<hr>
<div id="actionsContainer">
<<if $gameDate.getHours() >= 17>>
<div class="buttonContainer">
<<button "Finish your shift" "EndSafewayJob">>
<<addMins 2>>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "Stock shelves">>
<<if random(0,100) > 100>>
/*random events */
<<else>>
<<addHours 2>>
<<set $player.mood -= 2>>
<<set $staminaDrain += 1>>
<<set $stockImg = 'Media/Locations/Shops/Safeway/Job/Stock/'>>
<<if $player.presenting === 'Female'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set $stockImg += 'F/Preg/' + random(1,5) + '.webp'>>
<<else>>
<<set $stockImg += 'F/' + random(1,5) + '.webp'>>
<</if>>
<<else>>
<<set $stockImg += 'M/' + random(1,4) + '.webp'>>
<</if>>
<<set $stockTxt = 'You spend an unknowable amount of time mindlessly stocking cans on shelves - making sure to face them the right way so your boss doesn\'t yell at you.'>>
<<goto "SafewayJobLoop">>
<</if>>
<</button>>
<<if random(0,100) > 45>>
<<button 'Clean up on aisle <<print random(1,10)>>'>>
<<if random(0,100) > 100>>
/*random events */
<<else>>
<<set _tmpVal = random(30,45)>>
<<set $staminaDrain += 2>>
<<addMins _tmpVal>>
<<set $player.mood -= 2>>
<<set $stockImg = 'Media/Locations/Shops/Safeway/Job/Cleanup/'>>
<<if $player.presenting === 'Female'>>
<<set $stockImg += 'F/' + random(1,3) + '.webp'>>
<<else>>
<<set $stockImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<<set $stockTxt = 'ou make quick work of cleaning up the mess someone else made.'>>
<<goto "SafewayJobLoop">>
<</if>>
<</button>>
<</if>>
<<button "Bag groceries">>
<<if random(0,100) > 100>>
/*random events */
<<else>>
<<set _tmpVal = random(90,100)>>
<<addMins _tmpVal>>
<<set $player.mood -= 2>>
<<set $stockImg = 'Media/Locations/Shops/Safeway/Job/Bagger/'>>
<<if $player.presenting === 'Female'>>
<<set $stockImg += 'F/' + random(1,8) + '.webp'>>
<<else>>
<<set $stockImg += 'M/' + random(1,3) + '.webp'>>
<</if>>
<<set $stockTxt = 'You smile politely at customers as they watch you bag up their groceries. It\'s boring but easy work.'>>
<<goto "SafewayJobLoop">>
<</if>>
<</button>>
</div>
<<if $canBreak>>
<div class="buttonContainer">
<<button "Take a break" "SafewayBreakroom">>
<<set $breakStart += $gameDate.getTime() - $breakStart>>
<<addMins 2>>
<</button>>
</div>
<</if>>
<</if>>
</div><center>
<b><font size="10em">Safeway</font></b>
<br>
<img src="Media/Locations/Shops/Safeway/Job/Breakroom/room1.webp" height="450rem" >
<br><br>
<span id="repCont">
The breakroom is the only place you can take a seat and put your feet up. But you can't spend too much time here or your boss starts to complain.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Play on your phone" "BenchPhone">>
<<set $returnLoc = 'SafewayBreakroom'>>
<<set $phoneMins = 5>>
<<addMins 5>>
<</button>>
<<button "Use the bathroom" "Bathroom">>
<<set $homeBath = false>>
<<set $bathType = 'Public'>>
<<set $bathLoc = 'SafewayBreakroom'>>
<<set $bathImg = 'Media/Locations/Shops/Safeway/Job/Breakroom/bathroom1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = 'The small unisex bathroom only fits one person at a time and offers just enough amenities to legally be classified as a bathroom.'>>
<<addSecs 20>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Back to work" "SafewayJobLoop">>
<<set $stockImg = 'Media/Locations/Shops/Safeway/Job/Start/' + random(1,1) + '.webp'>>
<<set $stockTxt = 'You strap on your armor and head back out to the floor.'>>
<<addMins 2>>
<</button>>
</div>
</div>
<<timed 0s>>
<<if ($gameDate.getTime() - $breakStart)/1000 > 1200>>
<<replace "#repCont">>
<div class="badText">Your manager enters the breakroom with a displeased expression on his face.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Back to work" "SafewayJobLoop">>
<<set $canBreak = false>>
<<set $stockImg = 'Media/Locations/Shops/Safeway/Job/Start/' + random(1,1) + '.webp'>>
<<set $stockTxt = 'You strap on your armor and head back out to the floor.'>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</if>>
<</timed>><<addJobHours 'Safeway' 8>>
<<unset $breakStart>>
<<unset $canBreak>>
<<unset $lastSafewayEvent>>
<<addMins 5>>
<<goto 'itemStore'>><<switch $currJob.employer>>
<<case "Hooters">>
<<set _tmpImg = $npc_5.image>>
<<case 'Safeway'>>
<<set _tmpImg = 'Media/Locations/Shops/Safeway/Job/manager1.webp'>>
<<case 'BBungalow'>>
<<set _tmpImg = $npc_7.image>>
<</switch>>
<div class="profileContainer">
<div>
<img @src="_tmpImg" height="450rem">
</div>
<div id="repCont">
"What is it, $player.firstName?"
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Quit your job">>
<<replace "#repCont">>
"Well, ok. If that's what you want. It was nice working with you."
<<if $currJob.type === "FullTime">>
<br><br>
"Your last check will be waiting for you up front."
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<unset $currJob>>
<<quitJob>>
<<addSecs 15>>
<<set _tmpLoc = $bossLoc>>
<<unset $bossLoc>>
<<goto _tmpLoc>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Nevermind">>
<<addSecs 15>>
<<set _tmpLoc = $bossLoc>>
<<unset $bossLoc>>
<<goto _tmpLoc>>
<</button>>
</div>
</div><<widget "getJobActions">>
<div id ='jobActions'>
<<if !($payStubs is undefined)>>
<<set _tmpStub = $payStubs.filter(item => item.employer === _args[0])>>
<<if _tmpStub.length > 0>>
<div class="buttonContainer">
<<button "Collect your check">>
<<set $player.money += _tmpStub.reduce((sum, item) => sum + item.pay, 0)>>
<<set $payStubs = $payStubs.filter(obj => obj.employer !== _tmpJob.employer)>>
<<refreshCaption>>
<<replace "#jobActions">>
<<getJobActions _args[0]>>
<</replace>>
<</button>>
</div>
<</if>>
<</if>>
<<set _tmpJob = $jobArr.find(item => item.employer === _args[0])>>
<<if _tmpJob>>
<<if _tmpJob.workDays.includes($gameDate.getDay())>>
<div class="buttonContainer">
<<if $gameDate.getHours() == _tmpJob.shiftStart - 1>>
<<set _tmpLoc = passage()>>
<<button "Wait around till your shift" _tmpLoc>>
<<set _tmpMins = 60 - $gameDate.getMinutes()>>
<<addMins _tmpMins>>
<</button>>
<<elseif (_tmpJob.type === 'FullTime' and $gameDate.getHours() > _tmpJob.shiftStart - 1 and $gameDate.getHours() <= _tmpJob.shiftStart + 1) or (_tmpJob.type === 'PartTime' and $gameDate.getHours() >= _tmpJob.shiftStart and $gameDate.getHours() < _tmpJob.shiftEnd)>>
<<button "Start your shift">>
<<set _tmpJob.lastWorkDay = clone($currJulianDate)>>
<<addMins 5>>
<<goto _tmpJob.startPassage>>
<</button>>
<</if>>
<<button "Look for your boss" "BossChat">>
<<set $currJob = _tmpJob>>
<<set $bossLoc = passage()>>
<<addMins 2>>
<</button>>
</div>
<</if>>
<</if>>
</div>
<</widget>>
<<widget "addJobHours">>
<<set _tmpJob = $jobArr.find(item => item.employer === _args[0])>>
<<set _tmpJob.hoursWorked += _args[1]>>
<</widget>>
<<widget "calcJobPay">>
<<set _tmpJob = $jobArr.find(item => item.type === 'FullTime' and item.lastPaidMonth < $gameDate.getMonth())>>
<<if _tmpJob>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()>>
<<set $payStubs.push({employer:_tmpJob.employer, pay: _tmpJob.pay*_tmpJob.hoursWorked})>>
<<set _tmpJob.hoursWorked === 0>>
<</if>>
<</widget>>
<<widget "quitJob">>
<<set _tmpJob = $jobArr.find(job => job.type === 'FullTime')>>
<<if _tmpJob>>
<<calcJobPay>>
<<set $jobArr = $jobArr.filter(job => job.type !== 'FullTime')>>
<</if>>
<</widget>><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">Advanced Medical Industries</font></b>
<br>
<img src="Media/Locations/Downtown/AMI/lobby.webp" height="450rem">
<br><br>
There's a palpable energy in the air, the kind you only find in a place where the people love what they're doing and are convinced of its importance. People in lab coats mix with people in three piece business suits in the lobby around you, but all of them moving with purpose. You can hear the combined effect of so many muted conversations, almost like the quiet murmur of ocean waves. There's a receptionist desk off on one side and behind it is an impossibly beautiful woman -- one you normally wouldn't see outside of an airbrushed bikini ad.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go the receptionist desk" "AMIFrontDesk">>
<<addSecs 15>>
<</button>>
<<if $pendingTrials>>
<<button "Go to the testing labs">>
<<goto "StartAMITrials">>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Leave the building" "Downtown">>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<b><font size="10em">AMI Reception</font></b>
<br>
<span id='repCont'>
<img src="Media/Locations/Downtown/AMI/sec1.webp" height="450rem">
<br><br>
<<if !($pampReturn)>>
The receptionist smiles at you as you walk up to her. "Hi there! Welcome to Advanced Medical Technologies. What can I do for you today?" After a brief pause she adds, "If you're here for the paid trials you can go right through that door over there."
<<else>>
<<unset $pampReturn>>
The receptionist is still smiling at you pleasantly as you put down the pamphlet. She's still waiting to hear why you're at her desk. Better reply with something or beat feet out of there.
<</if>>
<br><br>
A small stack of [[pamphlets|AMIPamphlet]] is on the edge of the desk
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Ask to see a doctor">>
<<replace "#repCont">>
<img src="Media/Locations/Downtown/AMI/sec2.webp" height="450rem">
<br><br>
The receptionist smiles at you, "Of course, I have you all logged in right here. Go have a seat and someone will call you in shortly."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button 'Continue'>>
<<set _tmpMins = random(10,30)>>
<<addMins _tmpMins>>
<<refreshCaption>>
<<replace '#repCont'>>
<<set _tmpImg = 'Media/Emotions/Bored/' + ($player.presenting === 'Female'?'F/' + random(1,4):'M/' + random(1,3)) + '.webp'>>
<img @src="_tmpImg" height="450rem">
<br><br>
Just when you were starting to think that you and the receptionist have a different definiton of 'shortly' a nurse comes out of a side hall and calls your name.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "DocVisit">>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go back" "AMI">>
<<addSecs 15>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/AMI/DocVisit/' + ($player.presenting === 'Male'?'M/1':'F/' + random(1,2)) + '.webp'>>
<center>
<b><font size="10em">AMI Exam Room</font></b>
<br>
<img @src="_tmpImg" height="450rem">'
<br><br>
<span id="repCont">
<<if $reVisit>>
<<unset $reVisit>>
"So, is there anything else you'd like to discuss today?" the doctor asks.
<<else>>
After another 10 minute wait in the next room the doctor finally comes in. He gives you the usual office visit review and then smiles at you.
<br><br>
"So, <<print $player.firstName>>, what brings you in today?" he asks.
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<<if $player.body.womb and $player.body.womb.isPreg === 1 and $player.questTracker.some(obj => obj.idx === "PregTracker") and $player.questTracker.find(obj => obj.idx === "PregTracker").level > 1>>
<<if $player.questTracker.find(obj => obj.idx === "PregTracker").level === 2>>
<<set _tmpLbl = "Ask for a pregnancy test">>
<<elseif $player.questTracker.find(obj => obj.idx === "PregTracker").level >= 3>>
<<set _tmpLbl = "Talk about your pregnancy">>
<</if>>
<div class="buttonContainer">
<<button _tmpLbl>>
<<if $player.questTracker.find(obj => obj.idx === "PregTracker").level === 2>>
<<addMins 5>>
<<goto "AMIPregTest">>
<<else>>
<<addMins 2>>
<<goto "AMIPregChat">>
<</if>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'EyeDrops')>>
<<if _tmpCheck and _tmpCheck.level === 3>>
<<button "Ask about your eyes" "EyeDropRx">>
<<set $player.questTracker.find(item => item.idx === 'EyeDrops').level = 4>>
<<addMins 2>>
<</button>>
<</if>>
<<set _tmpCheck = $player.questTracker.find(item => item.idx === "SkinTrial")>>
<<if _tmpCheck and _tmpCheck.level >= 4>>
<<button "Ask about your skin" "SkinCreamRx">>
<<addMins 2>>
<</button>>
<</if>>
</div>
<<if $player.questLog.items.some(item => item.idx === "NanoRx")>>
<div class="buttonContainer">
<<button "Ask about your Nanobot injections" "NanoRx">>
<<addMins 2>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "No more questions" "AMI">>
<<addMins 2>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/AMI/EyeDrops/' + ($player.presenting === 'Female'?'f3':'m2') + '.webp'>>
<center>
<b><font size="10em">AMI</font></b>
<br>
<img @src="_tmpImg" height="450rem">
<br><br>
They run you through a series of tests to confirm that your vision is fine and that you're not experiencing any pain.
<br><br>
Finally they give you a clean bill of health "There's no indication anything is wrong with your eyes from the eye drop trial. You're good to go."
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave the exam room" "AMI">>
<<addMins 2>>
<</button>>
</div>
</div><<set $currPreg = $player.questTracker.find(obj => obj.idx === "PregTracker")>>
<center>
<b><font size="10em">AMI Exam Room</font></b>
<br>
<<set _tmpImg = 'Media/Locations/Downtown/AMI/DocVisit/' + ($player.presenting === 'Male'?'M/1':'F/' + random(1,2)) + '.webp'>>
<span id="repCont">
<img @src="_tmpImg" height="500rem">
<br><br>
The doctor listens to your concerns and the nods. "Well, let's get a blood sample and we can confirm your pregnancy either way, ok? This should only take a moment."
</span>
</center>
<hr>
<div id="actionsContainer">
<div class='buttonContainer'>
<<button "Continue">>
<<replace "#repCont">>
<<addMins 5>>
<<refreshCaption>>
<img src="Media/Locations/Downtown/AMI/bloodDraw.webp" height="600rem">
<br><br>
A lab tech comes in and draws a sample of your blood for testing. A short while later your doctor comes back in with the results.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<set _tmpImg = 'Media/Locations/Downtown/AMI/DocVisit/' + ($player.presenting === 'Male'?'M/1':'F/' + random(1,2)) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="500rem">
<br><br>
The doctor consults the test results and gives you the news:
<br><br>
<<if $player.body.womb and $player.body.womb.isPreg>>
<<set $currPreg.level = 3>>
<div class="badText">You are pregnant!</div>
<<else>>
<<run $player.questLog.removeQuest('PregQuest')>>
<<set $player.questTracker = $player.questTracker.filter(obj => obj != $currPreg)>>
<div class="goodText">You are not pregnant</div>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<if $player.body.womb and $player.body.womb.isPreg>>
<<addMins 5>>
<<goto "AMIPregChat">>
<<else>>
<<run $player.questLog.removeQuest('PregQuest')>>
<<run $player.questTracker = $player.questTracker.filter(obj => obj.idx != 'PregTracker')>>
<<goto "DocVisit">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $currPreg = $player.questTracker.find(obj => obj.idx === "PregTracker")>>
<<set _tmpImg = 'Media/Locations/Downtown/AMI/DocVisit/' + ($player.presenting === 'Male'?'M/1':'F/' + random(1,2)) + '.webp'>>
<center>
<b><font size="10em">AMI Exam Room</font></b>
<br>
<img @src="_tmpImg" height="600rem">
<br><br>
<span id="repCont">
<<if !$player.questTracker.some(obj => obj.idx === 'OBGYN')>>
"I can recommend a good OB clinic here in town, would you like me to set up an appointment?" He says.
<</if>>
<br><br>
"We do offer an experimental Accelerator treatment; it can reduce your gestation time to 1/3 the normal period. If that's something you're interested in just let me know."
</span>
</center>
<hr>
<div id="actionsContainer">
<div class='buttonContainer'>
<<if !$player.questTracker.some(obj => obj.idx === 'OBGYN')>>
<<button "Ask for an OB Appointment">>
<<replace "#repCont">>
"Of course. I'll make the referral for you - just go to the OB Clinic in the University District and they'll take care of you."
<<if $unknownLocs and $unknownLocs.some(item => item[1] === 'UDistrict')>>
<<set _tmpLoc = $unknownLocs.find(item => item[1] === 'UDistrict')>>
<<set $unknownLocs = $unknownLocs.filter(item => item != _tmpLoc) >>
<<run $knownLocs.push(_tmpLoc)>>
<br><br>
<div class="goodText">You've learned how to get to the UDistrict</div>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "DocVisit">>
<<run $player.questTracker.push({idx:'OBGYN',level: 1})>>
<<run $player.questLog.addQuest('PregQuest','You need to check-in at the OB Clinic in the University District.')>>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<button "Ask about the Accelerator treatment">>
<<replace "#repCont">>
"The Accelerator treatment is still experimental, but we've had good results so far. It involves an injection of a specialized growth hormone that speed up fetal development significantly. We've seen up to as much as a threefold decrease in remaining gestation time in some subjects. If you're interested I can register you with the trial and administer the injection today."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Get the treatment" "AMIPregAccelerator">>
<<addMins 5>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline the treatment" "DocVisit">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class='buttonContainer'>
<<button "Talk about something else" "DocVisit">>
<<addSecs 30>>
<</button>>
</div>
</div><center>
<b><font size="10em">AMI Exam Room</font></b>
<br>
<img @src="_tmpImg" height="600rem">
<br><br>
You fill out some paperwork and before you know it someone's sticking a needle in your arm. There's a spreading warm from the injection site but no other immediate reaction.
<br><br>
The lab tech smiles at you and says, "All done! You can verify the pace of development with the OB clinic at your next appointment."
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave the exam room" "AMI">>
<<set $player.body.womb.dueDate = $currJulianDate + Math.floor(($player.body.womb.dueDate - $currJulianDate)/3)>>
<<addMins 2>>
<</button>>
</div><<set _tmpImg = 'Media/Locations/Downtown/AMI/nanExam' + random(1,4) + '.webp'>>
<center>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
<<if $player.questTracker.find(obj => obj.idx === "Nanobotics").level === 1>>
After explaining your unusual level of arousal the doctors subject you to a series of tests and exams until finally leaving you alone in an empty room for what feels like a day and a half. Finally they come back in and look at you over the tops of their clipboards
<br><br>
"So, not quite the result we had anticipated," The lead doctor says. "It seems that instead of raising your general energy levels the nanobots have raised your libido. So you'll probably find yourself thinking of sex a lot more than you used to, but at least it's not fatal. We're clearing you from this first injection and you can come in anytime for the remaining shots."
<br><br>
And with that they all file out of the room, leaving you to get dressed in a stunned silence. He was right, it could be worse -- but you have to now wonder about the remaining injections. Is $10,000 worth more side effects like this one?
<<else>>
You don't need to do much explaining about the side-effects this time, it's pretty clear what's happened to you. The doctors examine your body and poke at your new breast tissue, but they all more or less ignore your questions and objections. Eventually you give up and let them run their tests, hopefully this time they'll find something they can fix.
<br><br>
After what feels like forever a serious looking doctor comes in and sits down next you. He flips through some papers on his clipboard before looking up and clearing his throat.
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<run $player.questLog.removeQuest('NanoRx')>>
<<if $player.questTracker.find(obj => obj.idx === "Nanobotics").level === 1>>
<<addMins 2>>
<<goto "AMI">>
<<else>>
<<addMins 2>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/Downtown/AMI/DocVisit/' + ($player.presenting === 'Male'?'M/1':'F/' + random(1,2)) + '.webp'>>
<<replace '#repCont'>>
<img @src="_tmpImg" height="600rem">
"As I'm sure you recall, that last batch was supposed to be designed to strengthen and protect the heart and it's supporting structures. Well, it looks like the nanobots have found a novel way of doing that -- for lack of a more sensitive analogy it appears they've designed a sort of cushioned air-bag support system. Your new breasts are perfectly centered over your heart and lungs and are made of a surprisingly resilient and firm skin tissue. All-in-all, though it's an unconventional approach, I'd say the little bots did their job remarkably well."
<br><br>
The doctor signs off on your clean health and shakes your hand for participating in the study before he turns and walks out of the room, leaving you alone to stare down at you new <<sizeTits $player>> tits.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Leave" "AMI">>
<<addMins 2>>
<<set $player.questTracker = $player.questTracker.filter(obj => obj.idx != 'Nanobotics')>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/AMI/DocVisit/' + ($player.presenting === 'Male'?'M/1':'F/' + random(1,2)) + '.webp'>>
<center>
<span id="repCont">
<img @src="_tmpImg" height="450rem">'
<br><br>
After a quick physical examination the doctor nods and says, "Yes, I can see that your skin has become quite sensitive. This is a known side effect of the cream we applied during your last visit. It's actually quite common -- about 30% of subjects report this reaction."
<br><br>
"You'll have to wear a certain type of clothing now to get any sort of comfort. Here, we have a couple you can pick from."
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addMins 2>>
<<set _tmpFits = []>>
<<if $player.body.tits < 13>>
<<genFit 55>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 56>>
<<run _tmpFits.push($clothingObj)>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
/*need slutty pregnant outfits */
<<else>>
<<genFit 550>>
<<run _tmpFits.push($clothingObj)>>
<<genFit 570>>
<<run _tmpFits.push($clothingObj)>>
<</if>>
<<replace "#repCont">>
<b><font size="10em">Pick one to try on</font></b>
<div style="50%">
<div class="profileContainer">
[img[clothing|_tmpFits[0].image][AMISluttyFit][$tmpSku to _tmpFits[0].sku]]
[img[clothing|_tmpFits[1].image][AMISluttyFit][$tmpSku to _tmpFits[1].sku]]
</div>
</div>
<</replace>>
<</button>>
</div>
</div><<genFit $tmpSku>>
<<genClothing _args[1],_args[2]>>
<<run $player.wardrobe.addItem($clothingObj)>>
<<unset $tmpSku>>
<<set $pickedFit = clone($player.outfit)>>
<<set $pickedFit.fit = $clothingObj.sku>>
<<wearFit $pickedFit 'Auto'>>
<center>
<<getDressingClips>>
<br><br>
<<if $player.mentalFem < 50>>
You take a deep breath as you slip into the outfit - but despite your hesitation you have to admit your skin feels much better in this new style of clothing. Maybe you just have to adapt...
<<else>>
<<if $player.inhib > 50>>
You dry swallow nervously as you put on the new revealing outfit - can you really go out in public like this?
<<else>>
You smile as you slip into your new sexy outfit, how fun!
<</if>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave AMI" "Downtown">>
<<if $player.questTracker.find(item => item.idx !== 'SkinTrial').level < 5>>
<<if $player.body.skin < 80>>
<<set $player.body.skin = 80>>
<<else>>
<<set $player.body.skin += 15>>
<</if>>
<<addTrait 2>>
<</if>>
<<set $player.questTracker = $player.questTracker.filter(item => item.idx !== 'SkinTrial')>>
<<addMins 2>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Downtown/AMI/trialInfo.webp" height="450rem">
<<genAMITrials>>
<table class="stripedTable">
<<for _i to 0; _i < $AMITrials.length;_i++>>
<<capture _i>>
<tr>
<td>
[[$AMITrials[_i].title|DispAMITrial][$currTrial = $AMITrials[_i]]]
</td>
<td>
$<<print $AMITrials[_i].pay>>.00
</td>
</tr>
<</capture>>
<</for>>
</table>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Put down the pamphlet" "AMIFrontDesk">>
<<set $pampReturn = true>>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Downtown/AMI/trialInfo.webp" height="450rem">
<br><br>
<<print $currTrial.title>> - $<<print $currTrial.pay>>
<br><br>
<<print $currTrial.desc>>
<br><br>
<span id="repCont"></span>
<<if $pendingTrials>>
<<if $pendingTrials.some(trial => trial.title === $currTrial.title)>>
<<set _tmpBlock = true>>
<div class="badText">You are already signed up for this trial</div>
<</if>>
<</if>>
<<if $compTrials>>
<<if $compTrials.some(trial => trial.title === $currTrial.title)>>
<<set _tmpBlock = true>>
<div class="badText">You are already completed this trial</div>
<</if>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if !(_tmpBlock)>>
<<button "Sign up for this trial">>
<<if !($bankAccount)>>
<<replace "#repCont">>
<div class='badText'>Trial compensation is made through transfers into a bank account. You need a bank account in order to sign up.</div>
<</replace>>
<<else>>
<<if $pendingTrials>>
<<run $pendingTrials.push($currTrial)>>
<<else>>
<<set $pendingTrials = [$currTrial]>>
<</if>>
<<unset $currTrial>>
<<addMins 2>>
<<goto "AMIPamphlet">>
<</if>>
<</button>>
<</if>>
<<button "Look at a different trial" "AMIPamphlet">>
<<addSecs 4>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Put the pamphlet down" "AMIFrontDesk">>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<b><font size="10em">AMI - Testing Lab</font></b>
<br>
<img src="Media/Locations/Downtown/AMI/trialPic1.webp" height="450rem">
<br><br>
You're greeted by a lab tech in a white coat who looks up your name and then nods.
<br>
<<if $pendingTrials.length > 1>>
'"Yes, subject #36456. I see you've signed up for several trials. Which are you here for today?"
<br><br>
<div class="flex-table">
<<for _i to 0; _i < $pendingTrials.length;_i++>>
<<capture _i>>
<<button "$pendingTrials[_i].title">>
<<if $dailyLimit.includes('AMILabTrials')>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You have already done a trial today</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<run $dailyLimit.push('AMILabTrials')>>
<<set $currTrial = _i>>
<<addMins 2>>
<<goto $pendingTrials[_i].title>>
<</if>>
<</button>>
<</capture>>
<</for>>
</div>
<<else>>
"Yes, subject #36456. I see you've signed up for the $pendingTrials[0].title trial. Please follow me."
<</if>>
</center>
<hr>
<div class='actionsContainer'>
<<if $pendingTrials.length === 1>>
<div class="buttonContainer" >
<<button "Continue">>
<<if $dailyLimit.includes('AMILabTrials')>>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">You have already done a trial today</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<else>>
<<run $dailyLimit.push('AMILabTrials')>>
<<set $currTrial = 0>>
<<addMins 2>>
<<goto $pendingTrials[_i].title>>
<</if>>
<</button>>
</div>
<</if>>
<div class="buttonContainer" >
<<button "Go back to lobby" "AMI">>
<<addSecs 15>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/AMI/sCream' + random(1,1) + '.webp'>>
<center>
<b><font size="10em">AMI - Testing Lab</font></b>
<br>
<span id='repCont'>
<img @src="_tmpImg" height="250">
<br><br>
You are told to undress and lay back on a table in the adjoining room. The air is colder than you feel is necessary and it makes your skin pimple with goosebumps as you shed your clothes.'
<br><br>
Just moments after you get to the bed a door opens and another lab tech enters the room. He doesn't say much to you, mostly just "Turn your head this way", "Raise your arm." and the like. He takes a couple of what you guess are "Before" pictures and then applies a liberal mount of the test skin cream over your entire body. He's so matter-of-fact about it that you didn't even realize it when he'd also applied it to your groin.'
<br><br>
After every inch of skin is covered in the cream he puts his tools back into the case he carried in and says "Now lay there for 15 minutes. When you hear the buzzer you can go back to the dressing room to shower and get changed. Someone will meet you there when you're ready." before turning and exiting the room as quickly and quietly as he entered.'
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addMins 25>>
<<set
$player.body.makeup = 0;
$player.body.sweat = 0;
>>
<<refreshCaption>>
<<replace "#repCont">>
<img src="Media/Locations/Downtown/AMI/postTrial1.webp" height="450rem">
<br><br>
The 15 minutes passes by surprisingly quickly and that's a good thing. The cream has started to dry and you can feel it pulling and stretching your skin, much longer and it might have started to become painful. You make a note to tell the staff about this in case they need to correct for it.
<br><br>
You quickly rinse off in the shower and get your street clothes back on. Even dressed you can still smell a slightly flowery scent coming off your skin from that cream. They must have cameras in the room because as soon as your last shoe was on your foot someone arrived and ushered you out to another small room.
<</replace>>
<<replace "#actionsContainer">>
<<addMins 5>>
<<refreshCaption>>
<div class="actionsContainer">
<<button "Continue">>
<<set _tmpImg = 'Media/Locations/Downtown/AMI/tech' + random(1,4) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="450rem">'
<br><br>
The lab tech explains to you that it might take a few days to see any effects from the treatment, but that you should immediately report any side effects.'
<br><br>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "AMI">>
<<set _tmpQst = $player.questTracker.find(item => item.idx === 'SkinTrial')>>
<<if !(_tmpQst)>><<set $player.questTracker.push({idx: 'SkinTrial',level:1})>><</if>>
<<run bankDeposit($pendingTrials[$currTrial].pay)>>
<<removeTrial $pendingTrials[$currTrial]>>
<<unset $currTrial>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Downtown/AMI/nano' + ($player.presenting === 'Female'?random(1,3):'4') + '.webp'>>
<center>
<b><font size="10em">AMI - Testing Lab</font></b>
<br>
<img @src="_tmpImg" height="450rem">
<br><br>
The labtech explains that they're just injecting you with a kind of pheromone amplifier that will allow them to track the change in your pheromone levels during the next phase of the experiment.
<br><br>
After the injection they wheel in an ancient TV on a stand and ask you to give your response to some visual stimuli.
<br><br>
"Please say the first thing that comes to your mind when you look at each of these images." the tech says, turning on the screen.
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Continue" 'InkBlotTest'>>
<<set
$inkBlot = 1;
$pherBuff = 0;
>>
<<addMins 2>>
<</button>>
</div>
</div><center>
<b><font size="10em">AMI - Testing Lab</font></b>
<<set _tmpImg = 'Media/Locations/Downtown/AMI/inkBlot' + $inkBlot + '.webp'>>
<br>
<img @src="_tmpImg" height="450">
<br><br>
<span id='repCont'><br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<switch $inkBlot>>
<<case 1>>
<<button "Outline of a woman\'s torso" "InkBlotTest">>
<<set
$pherBuff += 5;
$inkBlot += 1;
>>
<</button>>
<<button "Two people facing each other while holding hands" "InkBlotTest">>
<<set
$inkBlot += 1;
>>
<</button>>
<<case 2>>
<<button "A rocket ship blasting off into space" "InkBlotTest">>
<<set
$inkBlot += 1;
>>
<</button>>
<<button "That's clearly a cock with hairy balls" "InkBlotTest">>
<<set
$pherBuff += 5;
$inkBlot += 1;
>>
<</button>>
<<case 3>>
<<button "A pussy" "InkBlotTest">>
<<set
$pherBuff += 5;
$inkBlot += 1;
>>
<</button>>
<<button "The Eye of Sauron" "InkBlotTest">>
<<set
$pherBuff += 5;
$inkBlot += 1;
>>
<</button>>
<<case 4>>
<<button "A pair of big tits" "InkBlotTest">>
<<set
$pherBuff += 5;
$inkBlot += 1;
>>
<</button>>
<<button "A set of eyes surrounded by black makeup" "InkBlotTest">>
<<set
$pherBuff += 5;
$inkBlot += 1;
>>
<</button>>
<<case 5>>
<<button "Oh come on -- that's literally just the word 'Sex'">>
<<addTrait 28>>
<<replace "#repCont">>
Instead of moving to the next image the screen stays on the last inkblot so you glance up at the lab tech. He's looking at you with a strange expression -- if you had to guess you'd say that was lust in his eyes! You can't help but feel a little responsible -- your answers <b>were</b> pretty sex-oriented. Hopefully that didn't have an impact on you too!
<br><br>
You can almost feel the tech starting to undress you with his eyes -- it might be best to just move along and collect your payment...
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button 'Get paid and leave' 'Downtown'>>
<<addMins 5>>
<<run bankDeposit($pendingTrials[$currTrial].pay)>>
<<removeTrial $pendingTrials[$currTrial]>>
<<set $player.$pherTrigger = 50 - $pherBuff>>
<<unset $pherBuff>>
<<unset $currTrial>>
<</button>>
</div>
<</replace>>
<</button>>
<</switch>>
</div>
</div><center><b><font size="10em">AMI - Testing Lab</font></b></center>
<div class="profileContainer">
<div>
<img src="Media/Locations/Downtown/AMI/milkDoc1.webp" height="450rem">
</div>
<div>
<<if $player.body.womb>>
<div class="badText">The doctor comes in and tells you there must have been a mistake - this test run is only for male patients</div>
<br><br>
"So, there'll be no payment and I'm afraid I need you to leave, now." he says with a deadpan matter-of-fact tone.
<<else>>
<br><br>
Just as you finish changing into a gown -- in fact so *immediately* after you finish they had to be watching you somehow -- a man in a labcoat enters the room.
<br><br>
"Hello, Subject. I'm Dr. Richards. Before we begin I have a question for you. You can proceed with the implantable Birth Control device as the trial description states. Or, if you're up for it, we can try this new topical patch version the boys down in the lab just cooked up. It's cutting-edge stuff, let me tell you."
<br><br>
"The implantable version is designed to be permanent, this topical variant has a temporary virility blocker that only last 4-5 hours. You'll get paid the same either way"
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<<if $player.body.womb>>
<div class="buttonContainer">
<<button "Leave the testing lab" "AMI">>
<<removeTrial $pendingTrials[$currTrial]>>
<<addMins 4>>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "Get the injectible implant" "BCInject">>
<<addMins 4>>
<</button>>
<<button "Try the topical patch" "BCPasties">>
<<addMins 4>>
<</button>>
</div>
<</if>>
</div><center>
<span id="repCont">
<b><font size="10em">AMI - Testing Lab</font></b>
<br>
<img src="Media/Locations/Downtown/AMI/BCInj1.webp" height="450rem">
<br><br>
Without much buildup a doctor explains that you will be injected with a drug that should neutralize the viability of your sperm so that you are, effectively, sterile while it is in your system. It's not permanent though and should wear off in about a month.
<br><br>
Almost as soon as she's done speaking she sticks a needle in your arm and injects you with the unknown solution. You are told to wait around for a little while to make sure there aren't any immediate negative side effects.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addHours 3>>
<<set _tmpNPC = new Person(random($player.age,$player.age),'Female')>>
<<set _tmpNPC.body.tits = random(2,3)>>
<<set _skipKeys = ['virgin','outfit','race','length','color','skin','skinTone','eyeColor','weight','bodyFat','bodyType','strength']>>
<<run bodyMorph(_tmpNPC,$player,_skipKeys)>>
<<set $player.body.vag = 1>>
<<refreshCaption>>
<<replace "#repCont">>
<<timed .25s>>
<img src="Media/Locations/Downtown/AMI/restraint1.webp" height="450rem">
<br><br>
A pounding in your head is the first thing that you notice, followed by the idea that an unknown, and lengthy, amount of time has passed. You must have fallen asleep while waiting for the doctors to come back. You raise your hand to rub your forehead but your arm gets stopped halfway there, and you realize that your arms are restrained!
<br><br>
You twist and pull on the restraints but they're locked on tight, there's no way you're getting out of these on your own. What the hell is happening???
<</timed>>
<</replace>>
<<replace "#actionsContainer">>
<<timed .25s>>
<div class="buttonContainer">
<<button "Call out for help">>
<<addMins 5>>
<<replace "#repCont">>
<img src="Media/Locations/Downtown/AMI/postBC.webp" height="450rem">
<br><br>
Before long a doctor and several nurses come in and examine you, initially ignoring your questions and cries for information. Once they're satisfied with whatever they were checking the doctor finally turns to address you.
<br><br>
"Welcome back, Mr. $player.lastName, we were beginning to wonder how much longer it would be before you returned to us. I'm happy to say that aside from one small hiccup you appear to have no long-term negative side effects from the trial."
<br><br>
"No, no, you have no need to worry -- you are in perfect health! The drug does seem to have had its intended effect, you will not be getting anyone pregnant for the time being, Mr. $player.lastName, but the reason for that is not one we had foreseen. I think it's best just to show you."
<br><br>
He waves at the two nurses who wheel a large flat-screen like object over your bed and pulls the sheets off of your body.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Look up">>
<<replace "#repCont">>
<img src="Media/Locations/Downtown/AMI/restraint2.webp" height="450rem">
<br><br>
What you see is a naked women tied down to a bed, your mind races as you try to understand why they'd be showing this to you -- it is to test your arousal or to make sure the drug is working? But no, the doctor already said they knew you were temporarily sterile, so....
<br><br>
Suddenly you realize that the woman in the image is mirroring your movements and the look on her face matches what you feel on yours and then it hits you: this is a mirror! The woman in the reflection is *YOU*!
<br><br>
The doctor is still talking, something about never having seen this type of reaction in a patient and neeeding to do more tests but his voice is drowned out by the rush of blood through your ears and the pounding of your heart. You start to thrash in the bed, desperate to get back to your old body before any of this can become real. A nurse appears beside you and you feel a small prick in your arm and once again everything fades to a warm black.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addDays 3>>
<<set $lastStatCheck = clone($gameDate)>>
<<replace "#repCont">>
<img src="Media/Locations/Downtown/AMI/nanExam4.webp" height="450rem">
<br><br>
The next few days pass in a blur as the doctors do what they can to help you adjust to your new reality - though you mostly think they want to make sure you won't get depressed or crazy and kill yourself cuz that would cause a PR nightmare.
<br><br>
They do make it clear that there's no way to reverse the effect; you're stuck in this new body so you better just figure out how to handle it. You do what you think you need; smiling, nodding, jumping through all the hoops, and eventually they release you with a small stipend for your troubles.
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Leave" "Downtown">>
<<retroFit $player.outfit.fit>>
<<removeTrial $pendingTrials[$currTrial]>>
<<run bankDeposit(2500)>>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</timed>>
<</replace>>
<</button>>
</div>
</div><center>
<span id="repCont">
<b><font size="10em">AMI - Testing Lab</font></b>
<br>
<img src="Media/Locations/Downtown/AMI/Events/BimboPasties/pastiePads.webp" height="450rem">
<br><br>
Without much buildup a doctor places two cotton-like pads in you palm and tells you to place them over your nipples -- he even says "like pasties".
<br><br>
The expression on your face must have told him you needed more than that so he adds "The latent milk ducts in your chest tissue will help absorb the chemical into your bloodstream. It's simply the most efficient delivery mechanism. Chop chop". He emphasis the last with an impatient brushing motion with his hand.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Undress and put on the medical pasties">>
<<set $preFit = $player.outfit.fit>>
<<set $player.outfit.fit = 0>>
<<set _tmpNPC = new Person(random($player.age,$player.age),'Female')>>
<<set _tmpNPC.body.tits = random(6,8)>>
<<set _tmpNPC.body.bodyFat = 120>>
<<set _tmpNPC.body.bodyType = 'Athletic'>>
<<set $cloneCopy = clone($player)>>
<<set _skipKeys = ['orientation','virgin','outfit','race','hairColor','eyeColor','weight','legHair','pitHair','dom','sub','inhib','exhib','prefs']>>
<<run bodyMorph(_tmpNPC,$player,_skipKeys)>>
<<set $player.body.hair.color = 'blonde'>>
<<set $player.body.hair.length = 200>>
<<set $player.body.vag = 1>>
<<set $player.body.ass = random(11,13)>>
<<set $player.body.skin = 80>>
<<set $player.body.eyes = 2>>
<<set $player.body.lips = random(3,5)>>
<<refreshCaption>>
<<replace '#repCont'>>
<video src="Media/Transformation/Bodies/M2F/Pasties/1.mp4" height="600rem" autoplay loop></video>
<br>
You feel a strange tingling and you look up at a mirror across from you just in time to watch what happens.
<br><br>
Suddenly, your frame shifts and expands. Contracting here and bulging there as your muscles melt away to make room for generous curves. Your chest swells outward, expanding into pendulous breasts that settle against your shrinking torso. You can feel your ass and hips swelling and widdening as well, but your vision blurs as your face tingles in an indescribable way and when your vision clears your face is unrecognizable!
<br><br>
Lush waves of golden hair cascade over your shoulders, framing your undeniably feminine face. You take a step back as as your body settles into its transformed dimensions and every movement causes your newly enlarged assets to bounce and jiggle.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<set $player.arousal += Math.max(20,$player.arousal/10)>>
<<refreshCaption>>
<<replace "#repCont">>
<img src="Media/Locations/Downtown/AMI/Events/BimboPasties/postPasties1.webp" height="600rem">
<br><br>
Your hands move up to cup your new <<descTits $player>> tits as a rush of pleasure courses through you, stoking a primal arousal from your transformed body. The sensation of owning such ample, luxurious curves is both foreign and exhilarating. But you just manage to pull your focus away from your <<sizeTits $player>> breasts to confirm that the rest of your body has undergone a similar transformation - you're a busty blonde bimbo from head to toe!
<br><br>
You hear someone clear their throat and you remember that the lab tech is still in the room with you. You look up at him with your new big expressive eyes.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addHours 4>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Locations/Downtown/AMI/milkDoc1.webp" height="450rem">
</div>
<div>
He stares at you with wide open eyes, clearly he's nearly as astonished by your transformation as you are. Without taking his eyes off of you he pulls out his phone and whipers something that sounds urgent and close-to-panic.
<br><br>
"So - uhm. Slight hiccup. As I'm sure you've noticed. But no worries, AMI is nothing if not thurough and we'll study you until we figure out what happened."
<br><br>
You notice he said 'figure out what happened' and not 'reverse what's happened' - and you wonder what their true goal might be. Just then you feel the prick of a syringe in your arm and within moments you slump to your knees as your vision starts to fade.
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "postPasties">>
<<addHours 3>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><center>
<span id="repCont">
<img src="Media/Locations/Downtown/AMI/restraint1.webp" height="450rem">
<br><br>
When you come to you find you're still a knockout blonde bimbo - but that you're also restrained to a bed and in that moment you're not certain which one to be more upset about.
<br><br>
You hear the whir of an electric lock and the door opens letting in a team of doctors. They explain that the restraints were just a precaution, since they didn't know what mental state you would be in when you awoke.
<br><br>
But the good news is they were able to isolate the transformation and even engineer an antidote; once taken you should revert back to your normal self within a few hours.
<br><br>
"What do you say?" the lead scientist says. "Ready to put this all behind you? You're welcome to remain here until this wears off, if you'd like."
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Take the shot and wait here">>
<<addHours 4>>
<<set $sourceForm = {
form: $cloneCopy,
source: 'bimboPasties',
ticker: $gameDate.getTime()/1000 + 4*60*60
}>>
<<removeTrial $pendingTrials[$currTrial]>>
<<unset $cloneCopy>>
<<set $morphLoc = 'Downtown'>>
<<goto "RevertMorph">>
<</button>>
<<button "Take the shot and leave" "AMI">>
<<set $morphStack = [
{
form: $cloneCopy,
source: 'bimboPasties',
ticker: $gameDate.getTime()/1000 + random(3,7)*60*60
}
]>>
<<unset $cloneCopy>>
<<run bankDeposit(500)>>
<<removeTrial $pendingTrials[$currTrial]>>
<<set $player.outfit.fit = $preFit>>
<<unset $preFit>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Turn down the injection">>
<<addHours 4>>
<<replace "#repCont">>
<img src="Media/Locations/Downtown/AMI/nanExam4.webp" height="450rem">
<br><br>
It takes several hours, and more than one psyche evaluation, to convince them you're serious about wanting to stay in your new buxom form.
<br><br>
They make you sign some non-disclosure agreements and other paperwork promising not to sue and then eventually they let you go free.
<br><br>
<<retroFit $preFit>>
"Here," one of the scientist says handing you a bag. "We adjusted the outfit you wore when you came in so it will fit your...new form."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Get dressed and leave" "Downtown">>
<<run bankDeposit(500)>>
<<removeTrial $pendingTrials[$currTrial]>>
<<set $player.outfit.fit = $preFit>>
<<unset $preFit>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><center>
<span id="repCont">
<<set _tmpImg = 'Media/Locations/Downtown/AMI/EyeDrops/' + ($player.presenting === 'Female'?'f' + random(1,2):'m1') + '.webp'>>
<img @src="_tmpImg" height="450rem">
<br><br>
You are lead into a room with an eye-exam chair. You sit back in the chair and the med tech pushes it back and leans over, quickly dropping a dozen or so drops of liquid into each eye. Before you've really had time to register the first drop hitting your eye the process was over and the tech was done. She definitely has done this before.
<br><br>
The tech asks you to keep your eyes closed for a few minutes to ensure that as much of the liquid gets absorbed into your eye as possible. She then tells you to open your eyes and blink a few times, then get ready for an eye exam.
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<div class="buttonContainer">
<<set _tmpImg = 'Media/Locations/Downtown/AMI/EyeDrops/' + ($player.presenting === 'Female'?'f3':'m2') + '.webp'>>
<img @src="_tmpImg" height="450rem">
<br><br>
You run through a series of eye tests, the technicians and doctors murmuring to themselves and taking notes. No one really talks much to you until they tell you the trial is over and that you can leave, but be sure to report back with any side effects that might occur.
<br><br>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "AMI">>
<<set _tmpQst = $player.questTracker.find(item => item.idx === 'EyeDrops')>>
<<if !(_tmpQst)>><<set $player.questTracker.push({idx: 'EyeDrops',level:1})>><</if>>
<<run bankDeposit($pendingTrials[$currTrial].pay)>>
<<removeTrial $pendingTrials[$currTrial]>>
<<unset $currTrial>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<run $dailyLimit.push('Nanobotics')>>
<<set _tmpImg = 'Media/Locations/Downtown/AMI/nano' + ($player.presenting === 'Female',random(1,3),'4') + '.webp'>>
<center>
<img @src='_tmpImg' height="600">
<br><br>
The lab tech swaps your arm with iodine before he sticks a regular looking needle into your arm.
<br><br>
<<if !$player.questTracker.some(obj => obj.idx === 'Nanobotics')>>
<<run $player.questTracker.push({idx: 'Nanobotics',level: 1})>>
<<else>>
<<run $player.questTracker.find(obj => obj.idx === 'Nanobotics').level += 1>>
<</if>>
<<switch $player.questTracker.find(obj => obj.idx === 'Nanobotics').level>>
<<case 1>>
"This first shot is meant to target energy levels, it should allow you to extract more energy form food and use it more efficiently. Feeling rundown and tired will be a thing of the past if this works as intended." The tech also reminds you that any effects from this treatment will be permanent, the nanobots will replicate and spread through your system so it will be almost impossible to remove or reprogram them all.
<br><br>
You wince as you feel a sting and a spreading pain working out from the injection site. Your brain brings up images of tiny robots multiplying and spreading throughout your bloodstream and you have to suppress a shiver. If they're already on human trials this can't be all too dangerous.
<<case 2>>
Probably against your better judgement you again find yourself getting injected with a dose of AMI's Nanobotics. This time the docotors assure you they've ironed out the kinks and this batch is designed to improve leg muscle and tone. "No more trips to the gym for toned quads!", one of the lab techs enthuses as she sticks the needle into you.
<<case 3>>
The tech unceremoniously sticks the needle into your arm and pushes down on the plunger, shooting millions more of their tiny robots into your blood stream. You hold the cotton ball to the injection site as the tech gets a bandaid and tells you what this last batch is the most impressive yet.
<br><br>
"This set of 'bots are designed to strengthen and protect the heart and surrounding organs. In theory we can prevent everything from heart attacks and disease up to even major physical trauma. But regardless of what happens; the information we learn from you will be invaluable." The cold delivery of his voice leaves your already frazzled nerves a little more jumbled. Is he saying they don't know what these ones will do?
<</switch>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<switch $player.questTracker.find(obj => obj.idx === 'Nanobotics').level>>
<<case 1>>
<<addMins 2>>
<<goto "AMI">>
<<case 2>>
<<addMins 1>>
<<goto "NanoFootRx">>
<<case 3>>
<<addMins 5>>
<<goto "NanoPayDay">>
<</switch>>
<</button>>
</div>
</div><center>
<span id='repCont'>
<img src="Media/Locations/Downtown/AMI/feetArch1.webp" height="600rem">
<br><br>
Almost immediately you can feel a pins-and-needles feeling spread through your legs. You grab onto the edge of your chair with a white-knuckled grip as an intense bright pain flares in your calves, making your feet arch and your toes curl.'
<br><br>
A thin cry escapes your lips and you drop back limp into your chair, the pain too much to handle. Only a few seconds pass but the pain is gone as soon as it arrived and you blink tears out of your eyes as you look down at your feet. You can't see anything wrong with them other than maybe your arches look a little more pronounced, and they seem to wiggle and move just fine now -- what the hell was that?!?
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<<addMins 10>>
<<set $player.energy -= 10>>
<<refreshCaption>>
<<set _tmpImg = "Media/Locations/Downtown/AMI/footExam" + random(1,3) + ".webp">>
<img @src='_tmpImg' height="600rem">'
<br><br>
You are again examined by a team of doctors who poke and prod at your newly-arched feet. Finally one of them steps forward as if he'd lost a bet.
<br><br>
"Well, you see," he says in a slightly nasally voice he says. "The nanobots decided the best course of action for your legs was to dramatically shorten the tendons in your calves. In addition, it seems that some of the little devils moved up to your lower back and permanently curved your lower vertebrae. The result of these is that you can't balance on the soles of your feet, and your calf tendons are so short that doing so would be quite uncomfortable."
<br><br>
Maybe it's your blank stare that finally prods him into explaining what he thought seemed obvious, "You have to wear shoes with heels from now on, you won't be able to walk in flat shoes. Normally that could cause some leg and lower back pain -- but the alterations the bots did have almost tailor-designed you to wear high heels - you won't have any discomfort at all from always wearing them!"
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue">>
<<addTrait 6>>
<<addMins 10>>
<<set $player.mood -= 10>>
<<refreshCaption>>
<<genShoes 32>>
<<run $player.wardrobe.addItem($clothingObj)>>
<<set $player.outfit.shoes = 32>>
<<replace "#repCont">>
<img @src="$clothingObj.image" height="600rem">
<br><br>
After leaving you alone for a few minutes a woman comes in and quietly puts a pair of heels at your feet. Obviously they're expecting you to just walk home in those and then come back again for your last injection. Your stomach does a little flip at the thought of it -- what could go wrong next time? But if you don't do it you won't get any money.'
<br><br>
You sigh as you slip the heels onto your feet and walk around the room <<if $player.skills.heels < 1>>but the unfamiliar shoes make you stumble - this might take some getting used to.<<else>>your experience with heels makes walking in these shoes a breeze.<</if>> The new curve in your spine causes your ass to poke out more than you're used to, making your hips rock back and forth with each step in a definitely feminine manner.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Gather your things and leave" "AMI">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><center>
<span id="repCont">
<img src="Media/Locations/Downtown/AMI/nanPay1.webp" height="600rem">
<br><br>
Instead of being ushered back to the lobby you are taken to a different office-type room and told to wait. You spend the time alone doing an internal review of your body, trying to see if you can detect what the new nanbots might be doing but all you can feel is a slight tingling around your ribcage which could be your imagination. Maybe these ones are a dud and nothing at all will happen.
<br><br>
Eventually a man comes in and introduces himself to you but you missed his name because you spot what looks like a check in his hand and it completely killed your concentration. You shake your head and blink your eyes as you focus back on what the man is saying.'
<br><br>
"..appreciate your discretion. If you agree to those last terms you can just sign here and collect your pay for participating in the trial." he says as he slides a thick packet of paper over to you. You glance down at it and quickly get lost in the legal mumbo-jumbo but the intent is clear -- Keep your mouth shut about what happened and you can collect the pay. At this point, you've come too far to walk away empty-handed.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Sign the documents">>
<<replace "#repCont">>
<img src="Media/Locations/Downtown/AMI/nanPay1.webp" height="600rem">
<br><br>
You quickly sign your name to the bottom of the last page and shove the packet back at the man. He simply smiles as he signs and dates next to your signature and then shows you a wire transfer receipt for $10,000 bucks.'
<br><br>
The must-be-lawyer nods "Ok, we'll wire the money to your account momentarily."
<br><br>
"One last thing, the boys down in the lab asked me to remind you to keep an eye out for any side-effects from this last injection. Anything you experience should be minor but be sure to report back, OK?"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Time to go" "AMI">>
<<addMins 2>>
<<run bankDeposit($pendingTrials[$currTrial].pay)>>
<<removeTrial $pendingTrials[$currTrial]>>
<<unset $currTrial>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<widget "genAMITrials">>
<<set $AMITrials = []>>
<<run $AMITrials.push(
{
title: 'Refresh Eye Drops',
desc: 'Most eye drops on the market don\'t actually do anything for dry and red eyes. Well say hello to our new line of Refresh (tm) eye drops. Not only will these drops clear up any and all signs of eye irritation, they\'ll also help your eyes look brighter and more sparkling than ever before.<br>We\'ve had some problems with our human trial tests and the results are still inconclusive. So there isn\'t a definitive list of side effects that we are required to list.',
pay: 500
});
>>
<<run $AMITrials.push(
{
title: 'Male Birth Control',
desc: 'Have you ever wished you had super-fast healing like you\'ve seen in the movies? Well now you can! With our Nanobotics(tm) injections you can mend broken bones in minutes and survive otherwise fatal common every day accidents! Feel safe and secure in knowing you have that extra level of protection.<br>This exclusive trial will have you get a series of targeted injections each meant to treat a specific area of the human body, potential for serious side effects cannot be understated. Must complete entire series of injections to receive payment.',
pay: 600
});
>>
<<run $AMITrials.push(
{
title: 'Rejuvenating Skin Cream',
desc: 'We have developed a revolutionary new skin cream that is gauranteed to help revitalize skin and help it look younger. We\'re just now in the human trials so we\'re still cataloging the effects, but here are some of what you might experience:<br><center>irritability<br>bloating<br>small rash</center>',
pay: 300
});
>>
<<run $AMITrials.push(
{
title: 'Pheromone Study',
desc: 'Pheromones play an oversized role in human behavior. Help us better understand these chemical reactions and one day we can control our base reptilian responses.',
pay: 400
});
>>
<<run $AMITrials.push(
{
title: 'Nanobotics',
desc: 'Have you ever wished you had super-fast healing like you\'ve seen in the movies? Well now you can! With our Nanobotics(tm) injections you can mend broken bones in minutes and survive otherwise fatal common every day accidents! Feel safe and secure in knowing you have that extra level of protection.<br>This exclusive trial will have you get a series of targeted injections each meant to treat a specific area of the human body, potential for serious side effects cannot be understated. Must complete entire series of injections to receive payment.',
pay: 10000
});
>>
/*
<<set $AMITrials.push(
{
title: 'HC Protein',
desc: 'Our ever-changing world needs ever-changing solutions. Join us for an exciting new test of the HC Protein which could help end world hunger!',
pay: 1000
});
>>
<<set $AMITrials.push(
{
title: 'Vaginal Rejuvination',
desc: 'Our new patent-pending technique can return even a monther of three to near-virginal tightness with one out-patient procedure!',
pay: 250
});
>>
<<set $AMITrials.push(
{
title: 'X-Gene Trials',
desc: 'We all have unrealized potential locked away in our genes. This trial therapy is designed to activate those abilities - that\'s right; super powers!',
pay: 600
});
>>
*/
<</widget>>
<<widget "removeTrial">>
<<if _args[0].title !== 'Refreshing Eye Drops' or (_args[0].title === 'Refreshing Eye Drops' and $player.body.eyes == 3)>>
<<if $compTrials>>
<<run $compTrials.push(_args[0])>>
<<else>>
<<set $compTrials = [_args[0]]>>
<</if>>
<</if>>
<<set $pendingTrials = $pendingTrials.filter(item => item.title != _args[0].title)>>
<<if $pendingTrials.length === 0>><<unset $pendingTrials>><</if>>
<</widget>><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">Anderson Building</font></b>
<br>
<img src="Media/Locations/BDistrict/Anderson/Lobby.webp" height="600rem">
<br><br>
Mixed use building housing many different white-collar companies. A board nearby lists the floors and who occupies them.
<br><br>
1st floor - clothing store
<br><br>
2nd floor - law firm
<br><br>
3rd floor - Big Red Paper
<br>
4th floor - [[Dr. Thayer's Therapy practice|ThayerOffice]]
<br>
5th floor - Pent house
/*
'The <a href="exec:gt ''LawFirm'',''Start''">CNA Law Firm</a> takes up a few floors, while the <a href="exec: gt ''BigRed'',''Start''">' + iif(npc_quest['npc_10'] = 10,'Big Red Escort Company','Big Red Paper Company') + '</a> occupies a majority of the building.'
*nl
'The top floor contains ' + iif(home_owned = 3,'your','a') + ' penthouse apartment.' + iif(home_owned ! 3,' <b>A sign indicates it is available for rent.</b>','')
*nl
'In one corner of the lobby is a clothing store named, simply, <a href="exec: gt ''AndersonBldg'',''OfficeStore''">Office</a>.'
*/
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave the building" "BDistrict">>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<b><font size="10em">Dr. Thayer's Office</font></b>
<br>
<img src="Media/Locations/BDistrict/Anderson/Therapist/waitingRoom.webp" height="600rem">
<br><br>
As far as waiting rooms goes, this one is unmemorable. The standard uncomfortable chairs line the walls and the coffee table is covered with a spread of outdated magazines on bland generic topics.
<br>
The air has a stale odor, almost like desperation, and it leaves a bad taste in your mouth. This is definitely not some place you want to spend a lot of time.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<set $tmpDate = $player.phone.calendar.items.find(date => date.julianDate === $currJulianDate and (date.startTime.getTime() - $gameDate.getTime())/1000 <= 900 and date.location === passage())>>
<<if $tmpDate>>
<<if $player.questTracker.some(obj => obj.idx === 'TherapyPath') and $player.questTracker.find(obj => obj.idx === 'TherapyPath').level === 1>>
<<button "Wait for Dr. Thayer" "FirstThayer">>
<<cleanDate $player.phone.calendar.items.indexOf($tmpDate)>>
<<unset $tmpDate>>
<<addMins 2>>
<</button>>
<<else>>
<<button "Go into Dr. Thayer's inner office" "ThayerTherapy">>
<<unset $tmpDate>>
<<addMins 2>>
<</button>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Back to the lobby" "AndersonLobby">>
<<addSecs 5>>
<</button>>
</div>
</div><<set $locType = 'Outdoors'>>
<<set _tmpImg = 'Media/Locations/BDistrict/'>>
<<if $dayStage < 4>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<if $gameDate.getMonth() >= 2 and $gameDate.getMonth() <= 8>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<set _tmpImg += '.webp'>>
<center>
<img @src="_tmpImg" height="450rem">
<br><br>
<span id="repCont">
<<genRandomEvents>>
</span>
In one direction you can go to the
<<link "Market Square" "MarketSquare">><<addMins 2>><</link>> to shop the open market stalls, or even just sit in the open space and enjoy the scenery.
<br>
There's also the popular <<storeHours 'DwightsGym'>>,with the usual collection of overly-fit people flexing and sweating visible through the windows, or - in the opposite direction - the <<storeHours 'Mall'>> takes up nearly an entire city block.
<br>
<<storeHours 'Ellis Bank'>> occupies an old building of marble and gilded stone, as if advertising the wealth inside. Across the street is the <<storeHours "AnsersonBuilding">>, home to more than a half-dozen powerful international companies, towering imposingly over the city and casting a shadow over everything in its wake.
<br><br>
And the local <<link "Bus Station" "BusStop">><<set $busLoc = 'BDistrict'>><<addSecs 15>><</link>> is right in the center of everything.
</center>
<<genNPCs 'BDistrict'>>
<<getCurrNPCs 'BDistrict'>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<for _i to 0; _i < $knownLocs.length;_i++>>
<<capture _i>>
<<if ['Downtown','RLDistrict','UDistrict','WDistrict'].includes($knownLocs[_i][1])>>
<<button $knownLocs[_i][0]>>
<<Walking $knownLocs[_i][1]>>
<</button>>
<</if>>
<</capture>>
<</for>>
</div>
<<cityBench "BDistrict">>
</div><<set _tmpImg = 'Media/Locations/Beach/intro1'>>
<<if $dayStage < 4>>
<<if $temper >= 70>>
<<set _tmpImg += 'a.webp'>>
<<set _tmpTxt = 'The sun beats down on the packed sandy shore, but a cool breeze blows through the small cove to keep things pleasant. The air is heavy with salt and humidity and the sounds of the groups of people scattered along the sandy beach mix with crashing of the waves. You can see why this is a popular destination when the weather is nice.'>>
<<else>>
<<set _tmpImg += 'c.webp'>>
<<set _tmpTxt = 'The air is a bit crisp out near the water like this, and the wind has an extra bite to it. The beach is sprasely populated and sound of the crashing waves washes out whatever other sound there might be.'>>
<</if>>
<<else>>
<<set _tmpImg += 'b.webp'>>
<<set _tmpTxt = 'The beach at night is always different than in the day. The sand stretches off in to blackness in both directions and the white crest of the waves suddenly appear out of nowhere and rush toward the beach with almost sinister intent.'>>
<</if>>
<center>
<b><font size="10em">Ellis Beach</font></b>
<br>
<img @src="_tmpImg" height="550rem">
<br><br>
<span id="repCont">
<<genRandomEvents>>
</span>
<<if $gameDate.getMonth() >= 4 and $gameDate.getMonth() < 9>>
<b>You notice a flyer stuck to a telephone pole advertising a weekly Wet T-shirt contest every Saturday afternoon at 2:00pm.</b>
<<if $gameDate.getDay() == 6 and $gameDate.getHours() >= 13 and $gameDate.getHours() < 15>>
<<if $rainyDay or $currtemp < 70>>
<div class="badText">Wet T-shirt Contest cancelled due to poor weather.</div>
<br><br>
<<elseif $gameDate.getHours() < 15 and $gameDate.getDay() == 6 and !$rainyDay and $currTemp >= 70>>
<<purgeNPC $npc_6.dna>>
<<getBeachContestIntro>>
<</if>>
<</if>>
<</if>>
Near the parking area is a line of [[private changing booths|BeachBooths]] available for anyone who needs to change their clothes.
<br><br>
<<print _tmpTxt>> A good portion of the open beach space is taken up by a gym called <<storeHours "BeachGym">>.
And of course, as always, the local <<link "Bus Station" "BusStop">><<set $busLoc = 'Beach'>><<addSecs 15>><</link>> is right nearby.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go down to the water" "BeachSurf">>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Walk back to town" "Downtown">>
<<addMins 90>>
<</button>>
</div>
<<cityBench "Beach">>
</div><center>
<img src='Media/Locations/Beach/changeRoom.webp' height="600px">
<br><br>
private changing area
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button 'Open your gym bag'>>
<<if !$gymBag or $gymBag.length === 0>>
<<script>>
Dialog.setup('Gym Bag is empty');
Dialog.wiki('<center><div class="badText">You have nothing to wear</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<<else>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style != 'Athletic'>>
<<set $blockLastWorn = true>>
<</if>>
<<set $homeWardrobe = false>>
<<set $wardLoc = passage()>>
<<addSecs 5>>
<<goto "ViewGymBag">>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button 'Exit the booth'>>
<<set _tmpVal = passage()>>
<<preFlightCheck _tmpVal 'Beach' 1>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Beach/Surfline/'>>
<<if $dayStage < 4>>
<<set _tmpImg += 'Day/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'Night/' + random(1,2) + '.webp'>>
<</if>>
<center>
<span id='repCont'>
<b><font size="10em">Ellis Beach</font></b>
<br>
<img @src="_tmpImg" height="600rem">
<br><br>
Each surge of the water folds onto the shore with a deep, breathy sigh, followed by the fizz of retreating foam that tickles your toes. The air is thick with the scent of salt and sea — sharp, clean, and ancient — mingled with the earthy tang of wet sand
<br>
<span id="subRepCont"><br></span>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Walk along the surf" "BeachWalk">>
<<addMins 10>>
<<set $player.stamina += 3>>
<<set $player.mood += 2>>
<</button>>
<<button "Sit in the sand" "BeachSit">>
<<addMins 10>>
<<set $player.stamina += 10>>
<<set $player.mood += 5>>
<</button>>
</div>
<div class="buttonContainer">
<<if $dayStage < 4 and $currTemp > 70>>
<<canSwim>>
<<canSunbathe>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Go back to the entrance" "Beach">>
<<addMins 2>>
<</button>>
</div>
</div><center>
<span id="repCont">
<b><font size="10em">Ellis Beach</font></b>
<br>
<<getBeachPic 'Walk'>>
<br><br>
<<getBeachText 'Walk'>>
<br>
<span id="subRepCont"><br></span>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if !$player.isNude>>
<<button "Keep walking" "BeachWalk">>
<<addMins 10>>
<<set $player.stamina += 3>>
<<set $player.mood += 2>>
<</button>>
<<button "Sit in the sand" "BeachSit">>
<<addMins 10>>
<<set $player.stamina += 10>>
<<set $player.mood += 5>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Leave the beach" "Beach">>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<span id="repCont">
<b><font size="10em">Ellis Beach</font></b>
<br>
<<getBeachPic 'BeachSit'>>
<br>
<span id="subRepCont"><br></span>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Keep sitting" "BeachSit">>
<<addMins 10>>
<<set $player.stamina += 10>>
<<set $player.mood += 5>>
<</button>>
</div>
<div class="buttonContainer">
<<if $dayStage < 4 and $currTemp > 70>>
<<canSwim>>
<<canSunbathe>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Get up" "BeachSurf">>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<b><font size="10em">Ellis Beach</font></b>
<br>
<<getBeachPic 'BeachSit'>>
<br><br>
<<switch random(1,3)>>
<<case 1>>
The sun warms your skin like a soft, golden blanket, and the salty breeze tickles your nose with every breath. Around you, laughter and distant conversations drift lazily over the rhythmic hush of waves.
<<case 2>>
You stretch out on the sand, heat radiating through your body as sunlight dances across your closed eyelids. The scent of sunscreen mingles with the ocean air, while the chatter of beachgoers rises and falls like a tide of its own
<<case 3>>
The sun presses gently against your body, its warmth sinking deep into your muscles as you lie still. Children squeal nearby, gulls cry overhead, and the briny air clings to your lips with a taste of the sea.
<</switch>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Get up" "BeachSurf">>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<<getBeachPic 'Swimming'>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.stamina > 20>>
<<button "Keep swimming">>
<<if random(0,100 >= 65) and !$dailyLimit.includes('Rogue Wave')>>
<<run $dailyLimit.push('Rogue Wave')>>
<<exerciseImpact "Cardio" 5>>
<<goto "RogueWave">>
<<else>>
<<exerciseImpact "Cardio" 15>>
<<goto "BeachSwim">>
<</if>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Stop swimming" "BeachSurf">>
<<addMins 2>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Beach/Wave/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/Crash/' + random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/Crash/' + random(1,1) + '.webp'>>
<</if>>
<center>
<span id="repCont">
<img @src='_tmpImg' height="600rem">
<br><br>
<div class="badText">Out of no where a rogue wave knocks into you and completely subermeges you under water!</div>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button 'Swim for the surface'>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style === 'Swimwear' and $clothingObj.stats.top === 'Shirt' and $player.presenting === 'Female'>>
<<replace "#repCont">>
<<getBeachPic 'ToplessWave'>>
<br><br>
The wave's suction yanks your swimsuit top off your body!
<br><br>
On instinct you reach up to try and grab it and as soon as your do your panties get yanked off as well - no you're completely nude in the middle of the water!
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Head back for shore">>
<<set $player.wardrobe.RemoveItem('Fit',$player.outfit.fit)>>
<<stripPlayer>>
<<exerciseImpact "Cardio" 5>>
<<goto "BeachWalk">>
<</button>>
</div>
<</replace>>
<<else>>
<<exerciseImpact "Cardio" 5>>
<<goto "BeachSurf">>
<</if>>
<</button>>
</div>
</div><<unset $sceneSpecialLoc>>
<<set _tmpImg = 'Media/Locations/Beach/WTC/Intro/' + random(1,3) + '.webp'>>
<<set _tmpQst = $player.questTracker.find(item => item.idx === 'WetTShirtContest')>>
<<if !(_tmpQst)>><<set $player.questTracker.push({idx: 'WetTShirtContest',level:1})>><</if>>
<center>
<span id='repCont'>
<img @src="_tmpImg" height="600rem">'
<br><br>
There's a huge crowd of mostly shirtless males surrounding a tiny stage where a handful of women stand wearing not much more than thin white tops. The breeze from the ocean does little to cool the sweat on all these gyrating bodies packed into such a tiny space. You can practically feel the sexually charged energy coursing through the place, it could be very easy to get swept away in the mood here.
<br><br>
<<if $npc_6.knowsPlayer or $relicQuest.path === 'Jerry'>>
<<if !$npc_6.knowsPlayer>>
As you look around the area you spot a man who looks familiar to you and then you realize
<br><br>
<<if $relicQuest.path === 'Jerry'>>
it's $npc_6.firstName! <div class="badText">The man the fortune teller wants you to find.</div>
<<else>>
it's $npc_6.firstName! The trainer over at the Beach Gym!
<</if>>
<<else>>
You see $npc_6.firstName flexing as he flirts with a couple bikini-clad women.
<<if $relicQuest.path === 'Jerry'>>
<div class="badText">$npc_6.firstName is the man the fortune teller wants you to find.</div>
<</if>>
<</if>>
<br>
<</if>>
<<if $gameDate.getHours() < 15>>
You can see a small [[sign up station|WTCSignup]] off to one side of the crowd.
<</if>>
</span>
</center>
<<set _tmpLocArr = ['WetTShirtContest']>>
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 1>>
<<set _tmpLoc = "JerryWTCRelicIntro">>
<<else>>
<<set _tmpLoc = "JerryBeachChat">>
<</if>>
<<addNPC $npc_6 _tmpLocArr _tmpLoc>>
<<genNPCs 'WetTShirtContest'>>
<<getCurrNPCs 'WetTShirtContest'>>
<hr>
<div id="actionsContainer">
<<if $gameDate.getHours() < 15>>
<div class="buttonContainer">
<<button "Stay and watch">>
<<addMins 2>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/Beach/WTC/Watch/' + random(1,3) + '.webp'>>
<<replace "#repCont">>
<img @src='_tmpImg' height='600rem'>
<br><br>
You watch for a bit
<</replace>>
<<replace "#actionsContainer">>
<<if $gameDate.getHours() <= 15>>
<div class="buttonContainer">
<<button "Keep Watching">>
<<addMins 2>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Locations/Beach/WTC/Watch/' + random(1,4) + '.webp'>>
<<replace "#repCont">>
<img @src='_tmpImg' height='600rem'>
<br><br>
You watch for a bit
<</replace>>
<<if $gameDate.getHours() >= 15>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Stop Watching" "WetTShirtContest">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Stop Watching" "WetTShirtContest">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Leave the contest area" "Beach">>
<<addMins 2>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Beach/WTC/booth1.webp" height="450">
<br><br>
There's a small sign explaining the rules of the contest and that the grand prize is $1000.
<br><br>
<<if $gameDate.getHours() <= 14 or $gameDate.getMinutes() < 30>>
<<if ($player.exhib < $player.inhib or $player.slutLevel == 0) and $player.presenting === 'Female'>>
<<if $player.mentalFem < 40>>
<div class="badText">You subconciously warp your warms around your stomach as you imagine being on the stage in front of a crowd like this. You have to close your eyes for a moment to push away the vertigo that threatens to overwhelm you.</div>
<<else>>
<div class="badText">You feel a knot form in your stomach from even thinking about getting on stage to let these drunk fools oggle your body!</div>
<</if>>
<<if $relicQuest and $relicQuest.path === 'Jerry'>>
<br>
<div class="goodText">But you need to get close to $npc_6.firstName and this might be your best chance</div>
<</if>>
<<else>>
<div class="badText">The staff manning the singup table just look at you with a confused expression - clearly men aren't welcome in this contest.</div>
<</if>>
<<else>>
<<set _blockBooth = true>>
<div class="badText">Sign ups are over - come back before 2:30pm during the next contest if you want to sign up.</div>
<</if>>
<span id='repCont'></span>
</center>
<hr>
<div id="actionsContainer">
<<if !_blockBooth and (($player.exhib >= $player.inhib and $player.slutLevel != 0) or ($relicQuest and $relicQuest.path === 'Jerry'))>>
<div class="buttonContainer">
<<button "Sign up">>
<<replace "#repCont">>
<<if $player.presenting === 'Male'>>
<div class="badText">The person at the sign up table doesn't pull any punches, "Yeah...no one wants to see a man up on stage during a wet t-shirt contest. Let the hot babes have their spotlight OK?"</div>
<<elseif $player.tits < 3>>
<<set _tmpTitBlock = true>>
<div class="badText">The person at the sign up table doesn't pull any punches, "Baby girl, those little itty bee-stings aren't going to win you first place. Let the fully developed women sign up, OK?"</div>
<<else>>
<<set $player.questTracker.find(item => item.idx === 'WetTShirtContest').level = 2>>
<div class="goodText">You sign some paperwork and receive a thin white t-shirt. "Just go back stage and put that on. They'll call you up when it's you're turn" says the lady behind the table.</div>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<<if _tmpTitBlock and $player.questTracker.find(item => item.idx === 'JuliaContest')>>
<div class="buttonContainer">
<<button "Insist on siging up anyway">>
<<replace "#repCont">>
<<set $player.questTracker.find(item => item.idx === 'WetTShirtContest').level = 2>>
<div class="goodText">The woman clearly thinks you're wasting everyone's time but gives you some paperwork to sign along with a thin white t-shirt. "Just go back stage and put that on. They'll call you up when it's you're turn to lose." she says curtly.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Go backstage" "WTCBackstage">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<if $player.questTracker.find(item => item.idx === 'WetTShirtContest').level === 2>>
<<button "Go backstage" "WTCBackstage">>
<<addMins 2>>
<</button>>
<<else>>
<<button "Leave the booth" "WetTShirtContest">>
<<addSecs 45>>
<</button>>
<</if>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class='buttonContainer'>
<<button "Step back from the booth" "WetTShirtContest">>
<<addSecs 45>>
<</button>>
</div>
</div><center>
<span id="repCont">
<img src='Media/Locations/Beach/WTC/whiteShirt.webp' height="600rem">
<br><br>
Back stage someone hands you a thin white t-shirt to put on and tells you to head out to the stage when you hear your name called.
<br><br>
<<if $player.outfit.bra != 0>>
<<if $player.exhib >= 50 or $player.slutLevel > 2>>
You look around at the other contests and realize you're the only one with a bra. Maybe you should take it off if you want to win? <<if $player.slutLevel < 2>>You'd still be wearing a t-shirt so you wouldn't really be topless...right?<</if>>
<<else>>
You look around at the other contests - all of them are braless and you can already mostly see their nipples through even the dry shirts. You're thankful that you'll at least have a bra on during this - doing it without one would feel really exposing!
<</if>>
<<else>>
<<if $player.exhib < 50>>
You look around at the other contests - all of them are braless and you draw some comfort from not being the only one going out there with just a t-shirt.
<</if>>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class='buttonContainer'>
<<if $player.outfit.bra != 0 and ($player.exhib >= 50 or $player.slutLevel > 2)>>
<<button "Take your bra off">>
<<addMins 4>>
<<set $player.outfit.bra = 0>>
<<set _tmpVid = 'Media/Wardrobe/Changing/Shirt/F/Tits/' + random(1,8) + '.mp4'>>
<<replace "#repCont">>
<video @src="_tmpVid" height="500rem" autoplay loop></video>
<br><br>
You get changed into the t-shirt just in time to hear them call your name - this is it!
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Head out to the stage" "WTCLoop">>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<button "Put on the shirt">>
<<addMins 3>>
<<if $player.outfit.bra != 0>>
<<set _tmpVid = 'Media/Wardrobe/Changing/Shirt/F/Bra/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid = 'Media/Wardrobe/Changing/Shirt/F/Tits/' + random(1,8) + '.mp4'>>
<</if>>
<<replace "#repCont">>
<video @src="_tmpVid" height="600rem" autoplay loop></video>
<br><br>
You get changed into the t-shirt just in time to hear them call your name - this is it!
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Head out to the stage" "WTCLoop">>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Beach/WTC/Self/Stage/' + random(1,2) + '.webp'>>
<center>
<span id="repCont">
<img @src='_tmpImg' height="600rem">
<br><br>
You step out onto the stage and instantly become the center of attention for a hundred pairs of hungry eyes.
<br><br>
The MC gives you a brief generic introduction and then the men with the water buckets and hoses step forward with ear-to-ear grins.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class='buttonContainer'>
<<button "Get wet">>
<<addMins 3>>
<<set _tmpImg = 'Media/Locations/Beach/WTC/Self/Splash/' + random(1,23) + '.webp'>>
<<replace "#repCont">>
<img @src='_tmpImg' height="600rem">
<br><br>
You gasp in shock as the cold water crashes over you, making your nipples instantly pebble <<if $player.outfit.bra === 0>> and poke little tents in<<else>>inside your bra beneath <</if>>your too-small, and now nearly transparent, t-shirt.
<br><br>
<<if $player.outfit.bra === 0>>
The wet material of your shirt clings tightly to your <<sizeTits $player>> breasts; technically leaving you covered but still effectively rendering you topless.
<<else>>
The wet material clings to your bra, at last givint the crowd a good idea of your figure if not your actual tits.
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addMins 2>>
<<set _tmpImg = 'Media/Locations/Beach/WTC/Self/Post/'>>
<<if $player.outfit.bra != 0>>
<<set _tmpImg += 'Bra/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'Nips/' + random(1,3) + '.webp'>>
<</if>>
<<replace "#repCont">>
<img @src='_tmpImg' height="600rem">
<br><br>
<<if $player.outfit.bra != 0>>
The crowd boos loudly when your wet t-shirt reveals your bra intead of your tits.
<br><br>
After seeing the other girls and their performances a wet bra just isn't going to win over this crowd...
<<else>>
<<set $WTCWinChance = (random($player.body.tits*5,$player.body.tits*10) + $player.beautyScore)>>
You can feel the eyes of the crowd crawl over your might-as-well-be exposed nipples. The thin white t-shirt is almost completely see through now!
<br><br>
But you saw the performances of the other girls - is a peek at a wet, but still clothed, nipple going to be enough for you to win?
<</if>>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContianer">
/*
<<if $player.outfit.bra != 0 and ($player.exhib > $player.inhib or $player.slutLevel > 1)>>
<<button "Give the crowd a little extra" >>
<<set $WTCWinChance += random($player.body.tits*2,$player.body.tits*3)>>
<</button>>
<</if>>
*/
<<button "Continue">>
<<addMins 5>>
<<goto "WTCPostContest">>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Beach/WTC/Post/Lineup/' + random(1,5) + '.webp'>>
<center>
<span id="repCont">
<img @src='_tmpImg' height="600rem">
<br><br>
You line back up on stage with the other <<if $player.mentalFem > 40 or $player.body.gender === 'Female'>>women<<else>>contestants<</if>> in front of the cheering and leering crowd as the judges anounce the winner.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace '#repCont'>>
<<if $WTCWinChance > 60>>
<<set $WTCWinner = true>>
<<set $player.mood += 10>>
<<set _tmpImg = 'Media/Locations/Beach/WTC/Post/Winner/' + random(1,3) + '.webp'>>
<img @src='_tmpImg' height="600rem">
<br><br>
When you hear your name called as the winner you can't help but to throw your arms up in celebration. It feels good to win!
<br><br>
You collect your prize money and head backstage to dry off and change back into your normal clothes.
<<else>>
<<set $WTCWinner = false>>
<<set _tmpImg = 'Media/Locations/Beach/WTC/Post/Loser/'>>
<<if $player.outfit.bra !== 0>>
<<set _tmpImg += 'Bra/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</if>>
<img @src='_tmpImg' height="600rem">
<br><br>
<<if $npc_6.relationship === 0>><<set $npc_6.relationship === 1>><</if>>
You can't help but feel a little bad when you don't win - regardless of your situation it never feels good to lose at something.
<br><br>
As the winner collects her prize money you head back stage to dry off and get changed
<</if>>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue">>
<<addMins 5>>
<<if $WTCWinner>>
<<set $player.money += 100>>
<</if>>
<<goto "WTCJerry">>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<widget "canSunbathe">>
<<button "Sunbathe">>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style != 'Swimwear'>>
<<replace "#subRepCont">>
<div class="badText">You need to wear a swimsuit to sunbathe</div>
<</replace>>
<<else>>
<<if $player.outfit.purse != 0 and $purseInventory.some(obj => obj.name === 'Suntan Lotion')>>
<<replace "#subRepCont">>
<div class="badText">You should probably put on some suntatn lotion first; you wouldn't want to get a sunburn afterall.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Rub on some lotion">>
<<addMins 3>>
<<set $player.inventory.removeItem('Suntan Lotion',1)>>
<<set $purseInventory.find(obj => obj.name == 'Suntan Lotion').amount -=1>>
<<refreshCaption>>
<<replace "#repCont">>
<b><font size="10em">Ellis Beach</font></b>
<br>
<<getBeachPic 'SelfLotion'>>
<br><br>
You spare a few moments to apply a good layer of sunscreen to your exposed skin before you lay down and sock up some sun.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "BeachSunbathe">>
<<run $player.body.sweat += (random(1,(Math.abs($currTemp - 70))))>>
<<addMins 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Change your mind" "BeachSurf">>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<<else>>
<<replace "#subRepCont">>
<div class="badText">You should probably get some suntan lotion first; you wouldn't want to get a sunburn afterall.</div>
<</replace>>
<</if>>
<</if>>
<</button>>
<</widget>>
<<widget "canSwim">>
<<button "Go for a swim">>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style != 'Swimwear'>>
<<replace "#subRepCont">>
<div class="badText">You need to wear a swimsuit to go swiming</div>
<</replace>>
<<else>>
<<exerciseImpact "Cardio" 15>>
<<goto 'BeachSwim'>>
<</if>>
<</button>>
<</widget>>
<<widget "getBeachContestIntro">>
<<if $gameDate.getMonth() >= 4 and $gameDate.getMonth() < 9>>
<<set _targPassage = 'WetTShirtContest'>>
<<else>>
<<set _targPassage = 'MudWrestling'>>
<</if>>
<<if $player.questTracker.some(item => ['WetTShirtContest','MudWrestling'].includes(item.idx))>>
<br><br>
/* you know what it is */
You see [[a crowd|WetTShirtContest]] forming around the Wet T-Shirt contest stage.
<br><br>
<<else>>
<br><br>
/* something you haven't seen */
You see [[a crowd|WetTShirtContest]] of people near some kind of stage a ways down the beach.
<br><br>
<</if>>
<</widget>>
<<widget "getBeachPic">>
<<set _tmpImg = 'Media/Locations/Beach/'>>
<<switch _args[0]>>
<<case 'Walk'>>
<<set _tmpImg += 'Walk/'>>
<<if $player.presenting === 'Female'>>
<<if $dayStage < 4>>
<<set _tmpImg += 'Day/'>>
<<if $player.isNude>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Nude/Preg/' + random(1,4) + '.webp'>>
<<elseif $player.body.gender === 'Trans'>>
<<set _tmpImg += 'T/Nude/' + random(1,8) + '.webp'>>
<<else>>
<<if $player.exhib > 30>>
<<set _tmpImg += 'F/Nude/Bold/' + random(1,19) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Nude/Shy/' + random(1,4) + '.webp'>>
<</if>>
<</if>>
<<else>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style === 'Swimwear' or $player.outfit.fit === 0>>
<<set _tmpImg += 'F/Swimwear/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(1,5) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,8) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'F/StreetClothes/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,8) + '.webp'>>
<</if>>
<</if>>
<</if>>
<<else>>
<<set _tmpImg += 'Night/'>>
<<if $player.isNude>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Nude/Preg/' + random(1,4) + '.webp'>>
<<elseif $player.body.gender === 'Trans'>>
<<set _tmpImg += 'T/Nude/' + random(1,8) + '.webp'>>
<<else>>
<<if $player.exhib > 30>>
<<set _tmpImg += 'F/Nude/Bold/' + random(1,19) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Nude/Shy/' + random(1,4) + '.webp'>>
<</if>>
<</if>>
<<else>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style === 'Swimwear' or $player.outfit.fit === 0>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Swimwear/Preg/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'Swimwear/' + random(1,3) + '.webp'>>
<</if>>
<<else>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'StreetClothes/Preg/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'StreetClothes/' + random(1,2) + '.webp'>>
<</if>>
<</if>>
<</if>>
<</if>>
<<else>>
<<if $dayStage < 4>>
<<set _tmpImg += 'Day/M/' + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += 'Night/M/' + random(1,1) + '.webp'>>
<</if>>
<</if>>
<<case 'BeachSit'>>
<<set _tmpImg += 'Sit/'>>
<<if $player.presenting === 'Female'>>
<<if $dayStage < 4>>
<<set _tmpImg += 'Day/'>>
<<if $player.isNude>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg = 'Media/Self/POV/Beach/Sit/Day/F/Nude/Preg/' + random(1,4) + '.webp'>>
<<elseif $player.body.gender === 'Trans'>>
<<set _tmpImg = 'Media/Self/POV/Beach/Sit/Day/T/Nude/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg = 'Media/Self/POV/Beach/Sit/Day/F/Nude/' + random(1,20) + '.webp'>>
<</if>>
<<else>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style === 'Swimwear' or $player.outfit.fit === 0>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg = 'Media/Self/POV/Beach/Sit/Day/F/Preg/' + random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg = 'Media/Self/POV/Beach/Sit/Day/F/' + random(1,32) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'F/Streetclothes/' + random(1,3) + '.webp'>>
<</if>>
<</if>>
<<else>>
<<set _tmpImg += 'Night/F/' + random(1,3) + '.webp'>>
<</if>>
<<else>>
<<if $dayStage < 4>>
<<set _tmpImg += 'Day/M/'>>
<<if $player.isNude>>
<<set _tmpImg = 'Media/Self/POV/Beach/Sit/Day/M/Nude/' + random(1,6) + '.webp'>>
<<else>>
<<genFit $player.outfit.fit>>
<<set _tmpImg = 'Media/Self/POV/Beach/Sit/Day/M/' + random(1,4) + '.webp'>>
<</if>>
<<else>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style === 'Swimwear' or $player.outfit.fit === 0>>
<<set _tmpImg += 'Night/M/Swimsuit/' + random(0,0) + '.webp'>>
<<else>>
<<set _tmpImg += 'Night/M/Streetclothes/' + random(1,2) + '.webp'>>
<</if>>
<</if>>
<</if>>
<<case 'SelfLotion'>>
<<set _tmpImg += 'Lotion/'>>
<<if $player.presenting === 'Female'>>
<<if $player.isNude>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Nude/Preg/' + random(1,1) + '.webp'>>
<<elseif $player.body.gender === 'Trans'>>
<<set _tmpImg += 'T/Nude/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Nude/' + random(1,1) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'F/Swimwear/' + random(1,3) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,3) + '.webp'>>
<</if>>
<<case 'Swimming'>>
<<set _tmpImg += 'Swim/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/'>>
<<if $player.isNude>>
<<set _tmpImg += 'Nude/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,20) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += random(1,9) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/'>>
<<if $player.isNude>>
<<set _tmpImg += random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,4) + '.webp'>>
<</if>>
<</if>>
<<case 'ToplessWave'>>
<<set _tmpImg += 'Wave/'>>
<<if $player.exhib > 40>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Happy/Preg/' + random(1,5) + '.webp'>>
<<elseif $player.body.gender === 'Trans'>>
<<set _tmpImg += 'T/Happy/' + random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Happy/' + random(1,9) + '.webp'>>
<</if>>
<<else>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Shy/Preg/' + random(1,2) + '.webp'>>
<<elseif $player.body.gender === 'Trans'>>
<<set _tmpImg += 'F/Shy/' + random(1,10) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Shy/' + random(1,13) + '.webp'>>
<</if>>
<</if>>
<</switch>>
<img @src='_tmpImg' height="600rem">
<</widget>>
<<widget "getBeachText">>
<<switch _args[0]>>
<<case 'Walk' >>
<<if $player.isNude>>
<<if $player.exhib > 30>>
<<switch random(1,5)>>
<<case 1>>
As you stride confidently along the shore, your heart pounds with exhilaration, each step fueling the addictive high of exhibitionism. The sensation of the warm sun caressing your bare skin is only a little warmer than the gaze of all the strangers starring at your lewd display.
<<case 2>>
Your eyes meet those of passersby, and instead of embarrassment or shame, you relish the knowing glint of appreciation in their gazes. Each appreciative stare is a confirmation of your daring, a silent nod of approval for baring yourself so willingly in such a public setting. The sheer audacity of it all sends shivers of delight down your spine.
<<case 3>>
You can't help but subtly pose and move, using the swaying of your hips and the thrust of your chest to draw more attention to your nude form. The crowd begins to part as you approach, people stepping aside to give you a wider berth, perhaps intimidated or perhaps simply wanting a better view. Either way, you drink in their reactions, savoring the power and control that comes with commanding such a primal, animalistic attraction.
<<case 4>>
Heads turn, mouths agape, as you sashay past families, couples, and groups of friends, your unadorned beauty commanding center stage. Some avert their eyes in shock or decency, while others openly oggle, transfixed by the spectacle of a fully naked woman embracing her sexuality so boldly. You drink in their reactions, a wicked grin playing on your lips as you revel in the forbidden thrill.
<<case 5>>
Your breasts bounce and ripple with each movement, the stiff peaks drawing the eye like compass needles to a magnet. You take perverse pleasure in pointing out your hardened nipples to nearby males, holding their gazes with a challenging, almost taunting expression. Some blush, look away, or hastily avert their gaze, while others remain transfixed, their pupils dilated with lust.
<</switch>>
<<else>>
<<switch random(1,5)>>
<<case 1>>
Your face burns crimson, the cool ocean breeze offering no respite from the heat of your mortification. Your eyes dart frantically around the crowded beach, searching for anywhere to hide, anywhere to escape the piercing gazes that seem to bore into your exposed flesh.
<<case 2>>
Each step feels like an eternity as you trudge naked up the beach. You quicken your pace, desperate to put distance between yourself and the gawking onlookers, yet every rush of wind whispers intimately against your exposed bits - constantly reminding you of your precarious situation.
<<case 3>>
You want to curl up and disappear, to vanish from existence and spare yourself this degrading ordeal. But there's no escaping the reality – you must persevere, enduring the scorn and pity of strangers as you trudge toward salvation, praying that none of your friends witness your shame.
<<case 4>>
The salty spray of the surf still clings to your naked skin as you force yourself to walk, each footfall a small act of defiance against the tidal wave of humiliation crashing over you. Your chest heaves with rapid breaths as the eyes of countless strangers drink in your nude body.
<<case 5>>
Stares pierce your from all sides, some blatant, others more subtle, but all equally devastating. You can feel the weight of countless eyes upon you, drinking in the sight of your flushed, exposed form as if it were the most exquisite feast. The sensation is both excruciating and unnerving, making you acutely aware of every curve and contour of your body as you make your way back toward the changing booths.
<</switch>>
<</if>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
You stroll where the waves kiss the sand, each step sinking slightly into the cool, damp shore. The sun glows on your shoulders, and the salty breeze carries snippets of laughter and music from nearby beachgoers.
<<case 2>>
As you walk the tide line, the water laps at your ankles with a teasing chill beneath the sun's steady warmth. The air smells of salt and sunscreen, and voices echo in bursts from colorful umbrellas scattered along the beach.
<<case 3>>
Your feet trace the edge of the sea, where foam fizzles and the sand glistens under the midday sun. The breeze is light, filled with the scent of brine and the distant hum of conversations and seagull cries.
<</switch>>
<</if>>
<</switch>>
<</widget>><<set _tmpPic = 'Media/Locations/Bus/Stop/'>>
<<if $dayStage < 4>>
<<set _tmpPic += 'Day/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpPic += 'F/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpPic += 'Preg/' + random(1,3) + '.webp'>>
<<else>>
<<set _tmpPic += random(1,6) + '.webp'>>
<</if>>
<<else>>
<<set _tmpPic += 'M/' + random(1,3) + '.webp'>>
<</if>>
<<else>>
<<set _tmpPic += 'Night/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpPic += 'F/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpPic += 'Preg/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpPic += random(1,1) + '.webp'>>
<</if>>
<<else>>
<<set _tmpPic += 'M/' + random(1,2) + '.webp'>>
<</if>>
<</if>>
<center>
<img @src="_tmpPic" height="450rem">'
<br>
<span id="repCont"></span>
The area is cleaner than some bus stops you've been to. There are still some fast-food drink cups and napkins littering various corners, and there's the usual film of dust and grime over everything...but it doesn't stink of piss and there's no one sleeping on the bench. If you want to ride the bus you don't have much choice to but to wait here or in the <<link "bus terminal" "BusStation">><<addSecs 45 >><</link>> itself
<br><br>
But you can always browse the <<link "ad posters" "BusPosters">><<if $kleinAd>><<set $kleinAd += 1>><<else>><<set $kleinAd = 1>><</if>><</link>> all over the bus terminal to pass the time.
<br><br>
<<if $busLoc === 'Downtown'>>
Some bushes line the property behind the bus station and you can see what looks like a <<link "small opening" "Alleyway">><<addSecs 15>><</link>> in them.
<</if>>
</center>
<<genNPCs 'BusStop' 3 2>>
<<getCurrNPCs 'BusStop'>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $gameDate.getMinutes() % 15 <= 3>>
<<timed 0s>>
<<replace "#repCont">>
<div class="goodText">The
<<link "bus">>
<<if $player.hasPass or $player.hasTickets >>
<<if !($player.hasPass)>>
<<set $player.hasTickets-->>
<<if $player.hasTickets === 0>>
<<run delete $player.hasTickets>>
<</if>>
<</if>>
<<goto "BusRide">>
<<else>>
<<script>>
Dialog.setup('You need a ticket');
Dialog.wiki('<div class="badText">Visit the Bus Station kiosk to purchase a ticket</div>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</link>> is idling in front of the bus stop.</div>
<br>
<</replace>>
<</timed>>
<<else>>
<<button "Wait for the bus" "BusStop">>
<<if $gameDate.getMinutes() % 15 < 8>>
<<set _tmpMins = (15 - $gameDate.getMinutes() % 15)/2>>
<<else>>
<<set _tmpMins = (15 - $gameDate.getMinutes() % 15)>>
<</if>>
<<addMins _tmpMins>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Leave" $busLoc>>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<<set _tmpImg = 'Media/Locations/Bus/AdPosters/' + random(1,5) + '.webp'>>
<img @src="_tmpImg" height="450rem">
<br><br>
This advertisor is known for his sexy ad campaings filled with provactive and barely dressed models.
<br><br>
<<if !($player.traits.includes(47))>>
<b>You have to admit, something about the lithe yet feminine bodies of the models definitley makes for a striking ad campaign...</b>
<<if random(0,$kleinAd) > random(3,6)>>
<<unset $kleinAd>>
<<addTrait 47>>
<</if>>
<<else>>
<<if $player.body.tits === 0 or $player.body.tits > 3>>
<<set $player.mood -= 2>>
<b>You frown as your focus shifts from the lithe models to your own reflection in the glass - your shape looks nothing like theirs</b>
<<else>>
<<set $player.mood += 2>>
<b>You smile as your focus shifts from the lithe models to your own reflection in the glass - they got nothing on you!</b>
<</if>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Step back" "BusStop">>
<<addSecs 15>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">Bus Terminal</font></b>
<br>
<<set _tmpImg = 'Media/Locations/Bus/Terminal/terminal' + random(1,2) + '.webp'>>
<img @src="_tmpImg" height="450rem">'
<br><br>
While not absolutely filthy, the bus station is in need of a general cleaning. It always seems be populated with near-desperate people either in a mad hurry to get somewhere or listly lounging in seats with a blank look on their face. You see the blue-and-white light of an [[ATM|BankATM][$ATMReturnLoc = 'BusStation']] in one corner and on the other side is a [[24-hour Laundromat|Laundromat]].
<br><br>
A [[bus schedule|BusSchedule]] is posted near the entrance right above a [[ticket kiosk|BusKiosk]].
</center>
<<genNPCs 'BusStation'>>
<<getCurrNPCs 'BusStation'>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave" "BusStop">>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/Bus/Terminal/sched.webp" height="450rem">
<br><br>
Looks like the city had some genious city planner and the bus comes every 15 minutes and can take you to every stop in the city. That's pretty amazing.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Step back" "BusStation">>
<<addSecs 15>>
<</button>>
</div>
</div><<addMins 2>>
<<set _tmpImg = 'Media/Locations/Bus/Terminal/Kiosk/' + ($player.presenting === 'Female'?'F/' + random(1,4):'M/' + random(1,2)) + '.webp'>>
<center>
<img @src="_tmpImg" height="450rem">
<br><br>
There's a line of ATM-like ticket machines along one wall, having replaced human tellers years ago. You wait in line for a few minutes until one of the machines becomes available, casually watching the other people in the station. There's a little menu explaining your options, but since there's only the one bus route for the entire city the ticket options are pretty minimal.
<br>
<span id="repCont"><br></span>
<<if $bankAccount>>
<<set _tmpBankMoney = $bankAccount.amount>>
<<else>>
<<set _tmpBankMoney = 0>>
<</if>>
<<button "Buy One-way ticket - $3">>
<<if $player.money >= 3 or _tmpBankMoney >= 3>>
<<set $player.money -= 3>>
<<addSecs 15>>
<<if $player.hasTickets>>
<<set $player.hasTickets += 1>>
<<else>>
<<set $player.hasTickets = 1>>
<</if>>
<<replace '#repCont'>>
<div class="goodText">You bought a one-way ticket.</div>
<</replace>>
<<else>>
<<replace '#repCont'>>
<div class="badText">You don't have the money for that.</div>
<</replace>>
<</if>>
<</button>>
<<button "Buy Two-way ticket - $5">>
<<if $player.money >= 5 or _tmpBankMoney >= 5>>
<<set $player.money -= 5>>
<<addSecs 15>>
<<if $player.hasTickets>>
<<set $player.hasTickets += 2>>
<<else>>
<<set $player.hasTickets = 2>>
<</if>>
<<replace '#repCont'>>
<div class="goodText">You bought a two-way ticket.</div>
<</replace>>
<<else>>
<<replace '#repCont'>>
<div class="badText">You don't have the money for that.</div>
<</replace>>
<</if>>
<</button>>
<<button "Buy a monthly pass - $20">>
<<if ($player.money >= 20 or _tmpBankMoney >= 20) and !($player.hasPass)>>
<<set $player.money -= 20>>
<<addSecs 15>>
<<set $player.hasPass = true>>
<<refreshCaption>>
<<replace '#repCont'>>
<div class="goodText">You bought a monthly pass</div>
<</replace>>
<<elseif $player.hasPass>>
<<replace '#repCont'>>
<div class="badText">You already have a pass</div>
<</replace>>
<<else>>
<<replace '#repCont'>>
<div class="badText">You don't have the money for that.</div>
<</replace>>
<</if>>
<</button>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Step back" "BusStation">>
<<addSecs 15>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<<set _tmpImg = 'Media/Locations/Bus/Ride/'>>
<<if $dayStage < 4>>
<<set _tmpImg += 'Day/'>>
<<if $player.presenting === 'Female'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,3) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'Night/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</if>>
<</if>>
<center>
<b><font size="10em">Public Transit</font></b>
<br>
<img @src="_tmpImg" height="450rem">
<br><br>
You <<if $player.hasPass>>flash your pass at the driver <<else>>give your ticket to the driver <</if>>and find an open seat on the bus just as it pulls away from the stop.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<for _i to 0; _i < $knownLocs.length;_i++>>
<<capture _i>>
<<if $knownLocs[_i][1] !== $busLoc>>
<<button $knownLocs[_i][0]>>
<<addMins 7>>
<<busEvents $knownLocs[_i][1]>>
<</button>>
<</if>>
<</capture>>
<</for>>
</div>
<<if $unknownLocs>>
<div class="buttonContainer">
<<button "Get off at a random spot">>
<<set _tmpMins = random(15,60)>>
<<addMins _tmpMins>>
<<set _tmpLoc = $unknownLocs[random(0,$unknownLocs.length-1)]>>
<<set $unknownLocs = $unknownLocs.filter(item => item != _tmpLoc) >>
<<run $knownLocs.push(_tmpLoc)>>
<<if $unknownLocs.length === 0>>
<<unset $unknownLocs>>
<</if>>
<<goto _tmpLoc[1]>>
<</button>>
</div>
<</if>>
</div><center>
<<getBusNPCFlashPics $flashPart>>
<br><br>
<span id="repCont">
<<getBusNPCFlashText $flashPart >>
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Stare">>
<<set $player.arousal += 2>>
<<set $player.statBuffs.exhib += 1>>
<<addMins 3>>
<<refreshCaption>>
<<replace "#repCont">>
You openly stare for a few minutes, unable to look away.
<</replace>>
<<replace "#actionsContainer">>
<div class='buttonContainer'>
<<button "Finish your bus ride">>
<<addMins 5>>
<<unset $flashPart>>
<<set _tmpStop = $targStop>>
<<unset $targStop>>
<<goto _tmpStop>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class='buttonContainer'>
<<button "Look away and finish your bus ride">>
<<addMins 8>>
<<unset $flashPart>>
<<set $busLoc = $targStop>>
<<unset $targStop>>
<<goto $busLoc>>
<</button>>
</div>
</div><<widget 'busEvents'>>
<<if (!$lastBusEvent or $lastBusEvent != $currJulianDate) and random(0,100) > 60>>
<<set $lastBusEvent = $currJulianDate>>
<<set $targStop = _args[0]>>
<<switch random(1,4)>>
<<case 1>>
/* witness titties */
<<set $flashPart = 'Tits'>>
<<goto 'BusNPCFlash'>>
<<case 2>>
/* witness Panties */
<<set $flashPart = 'Panties'>>
<<goto 'BusNPCFlash'>>
<<case 3>>
/* witness Pussy */
<<set $flashPart = 'Pussy'>>
<<goto 'BusNPCFlash'>>
<<case 4>>
/* witness Cock */
<<set $flashPart = 'Cock'>>
<<goto 'BusNPCFlash'>>
<</switch>>
<<else>>
<<addMins 8>>
<<set $busLoc = _args[0]>>
<<unset $targStop>>
<<goto $busLoc>>
<</if>>
<</widget>>
<<widget 'getBusNPCFlashPics'>>
<<set _tmpImg = 'Media/Locations/Bus/Events/Flash/'>>
<<switch _args[0]>>
<<case 'Tits'>>
<<set _tmpImg += 'F/Tits/' + random(1,16) + '.webp'>>
<<case 'Panties'>>
<<if random(0,1) === 1>>
<<set _tmpGender = 'F'>>
<<set _tmpImg += 'F/Panties/' + random(1,14) + '.webp'>>
<<else>>
<<set _tmpGender = 'F'>>
<<set _tmpImg += 'M/Panties/' + random(1,4) + '.webp'>>
<</if>>
<<case 'Pussy'>>
<<set _tmpImg += 'F/Pussy/' + random(1,22) + '.webp'>>
<<case 'Cock'>>
<<set _tmpImg += 'M/Cock/' + random(1,10) + '.webp'>>
<</switch>>
<img @src='_tmpImg' height='600rem'>
<</widget>>
<<widget 'getBusNPCFlashText'>>
<<switch _args[0]>>
<<case 'Tits'>>
<<switch random(1,4)>>
<<case 1>>
You glance over at another seat and see a woman flashing her tits for the whole bus!
<br><br>
Each rise and fall of her chest from the movement of the buss makes her tits dance hypnotically before your eyes, as if performing just for you.
<br><br>
After a few minutes she pulls her top back on and drops back into her seat as if nothing had happened.
<<case 2>>
You find yourself transfixed by the bold display unfolding before you as the woman across the aisle lifts her blouse without a shred of modesty.
<br><br>
Her breasts, now completely uncovered, fill your field of vision - round and inviting, topped with pert nipples that stand at attention. The soft, creamy flesh of her mounds appears almost translucent in the harsh lighting, the dark circles of her areolas contrasting beautifully with the rosy buds at their centers.
<<case 3>>
The woman across the aisle suddenly exposes her breasts, clearing loving the sudden attention of all eyes on her exposed curves.
<br><br>
As the bus rumbles along, her gorgeous tits bounce and jiggle in a hypnotic rhythm, drawing your gaze again and again until she finally runs off at the next stop leaving behind a perfumed cloud of giggles.
<<case 4>>
Without warning, a woman nearby shoves her top aside, her tits springing loose and bouncing into view. The cool air hits her warm flesh, making her nipples pebble into stiff little points that twitch and throb with every heartbeat. She stands there, arms akimbo, as if daring anyone to comment on her blatant exhibitionism.
<</switch>>
<<case 'Panties'>>
<<if _tmpGender === 'F'>>
<<switch random(1,4)>>
<<case 1>>
You nearly choke on your own tongue as the stranger beside you nonchalantly hikes up her skirt, exposing the damp floral print of her lacy panties stretched tight across her mound.
<<case 2>>
You stare, transfixed, as a random woman on the bus boldly pulls down the crotch of her skimpy shorts, revealing the vibrant turquoise polka dots of her cheeky boyshorts barely containing her swollen pussy lips. The moist patch of fabric directly above her slit is visibly darker, a telltale sign of her arousal as she flaunts her glistening, unprotected genitalia to the entire bus
<<case 3>>
Time seems to warp as the buxom beauty next to you rocks her hips, flipping up her skirt and granting every passenger a sultry peek at the wispy triangle of fabric concealing her sweet spot.
<<case 4>>
Your pulse races as a brazen woman in the next row of seats flutters her skirt upward, baring the dainty lace of her panties to the prying eyes of everyone onboard. The scrap of fabric looks impossibly tiny against her lush curves, straining to contain the wet spot blooming at her core.
<</switch>>
<<else>>
<<switch random(1,2)>>
<<case 1>>
You struggle to focus on the bus route as your attention is hijacked by the spectacle of the man two seats over wearing just his underware, the outline of his muscular thighs and hefty balls apparent even from this distance.
<<case 2>>
Glancing around the bus, your gaze inevitably locks onto the shocking sight of the man in the front row, his shirttail flapping loosely as he sits with his legs spread wide, showcasing the way his tightie-whities stretch around his hard cock.
<</switch>>
<</if>>
<<case 'Pussy'>>
<<switch random(1,4)>>
<<case 1>>
Your eyes widen in disbelief as the woman across from you slides her legs apart revealing the pink, puffy lips of her bare pussy peeking out from beneath her short skirt. The angle is unobstructed, allowing you to take in every delectable detail of her glistening, freshly waxed pussy, from the hint of her engorged clit to the delicate inner labia flushed a deep rose.
<<case 2>>
A woman deliberately adjusts her stance, hiking her skirt to fully expose her bare, succulent pussy to the rapt audience on the bus. Her glistening pink folds and quivering clit are now on shameless display, an invitation for anyone to ogle the dewy treasure nestled in her velvety thighs.
<<case 3>>
With a sly smile playing on her lips, a woman two seats over purposefully leans back in her seat, lifting her legs high and spreading them wide open. The skimpy material of her skirt rides up to reveal her freshly waxed, bald-as-a-baby pussy, its delicate lips parted in silent welcome to any wandering eyes.
<<case 4>>
With a coy smile playing on her lips, a woman across the aisle deliberately leans forward, letting her miniskirt ride up to reveal the succulent, bare curves of her ass and the soaked pink folds of her exposed pussy. She holds the pose, her eyes locked on yours, silently challenging you to ogle the naked display of her aroused sex.
<</switch>>
<<case 'Cock'>>
<<switch random(1,4)>>
<<case 1>>
You freeze, mouth agape, as the man across from you suddenly flicks open the fly of his jeans and extracts his thick, rock-hard cock from the confines of his boxers. He holds the heavy shaft aloft, the mushroom head flushed a deep red and drooling precum onto his palm as he proudly displays his erect member to the stunned audience.
<<case 2>>
A man nearby reaches down and grabs the root of his throbbing erection, pulling it free from the confines of his pants. His cock springs forth, fully engorged and glistening with a bead of clear fluid at the tip, the veiny flesh quivering with each pulse of his racing heartbeat.
<<case 3>>
Scandalous whispers break out among the passengers as a random man yanks out his fat dick with both hands, pumping it lazily as he exposes himself with brazen abandon. His testicles hang heavy beneath, the wrinkled sac twitching with each stroke, the clear precum leaking steadily from the tiny opening of his cockhead.
<<case 4>>
Every eye on the bus is fixed on the man's massive erection as he steps into the aisle, proudly displaying his hard-on to the entire vehicle. His cock juts out obscenely, veins pulsing beneath the taut skin, the bulbous head flushed a deep crimson and drooling ropes of sticky precum onto the floor. He looks directly at you, a defiant glint in his eye, daring you to react to the blatant display of his sexuality.
<</switch>>
<</switch>>
<</widget>><center>
<b><font size="10em">Cemetery Gates</font></b>
<br>
<<set _tmpImg = 'Media/Locations/Outskirts/Cemetery/' + ( $dayStage < 4 ? '1':'2') + '.webp'>>
<img @src="_tmpImg" height="550rem">
<br><br>
The gothic-inspired entrance to the cemetery defintely sets a certain mood, and you can just see a few headstones in between the trees of the grounds.
<br><br>
<div class="badText">Unfortunately the large iron gates are rusted shut - the cemetery is currently closed to visitors.</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave the area" "Outskirts">>
<<addSecs 15>>
<</button>>
</div>
</div><<set $locType = 'Outdoors'>>
<center>
<b><font size="10em">St. Timothy Church</font></b>
<br>
<<set _tmpImg = 'Media/Locations/UDistrict/Church/' + ($dayStage > 4?'extNight':'extDay') + '.webp'>>
<img @src="_tmpImg" height="550rem">
<br><br>
The massive building towers over the street corner -- even though it's not as tall as some of the other buildings around it. It just has a more massive <b>feel</b> to it than the modern structures of steel and glass. The gargoyls that line the rooftop seem to watch you as you approach, just adding to the unnerving feel of the place.
<br><br>
You can enter through the huge double doors in the front, or there looks like a smaller entrance on the side; possibly used for deliveries and such.
<br><br>
<div class="badText">There's a thick iron bar over booth doors and the windows are all shuttered - the church is not taking visitors at the moment</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave the courtyard" "UDistrict">>
<<addSecs 15>>
<</button>>
</div>
</div><<set $locType = 'Outdoors'>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/Park/'>>
<<if $dayStage < 4>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<if $gameDate.getMonth() >= 2 and $gameDate.getMonth() <= 8>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<set _tmpImg += '.webp'>>
/*
if lockedUp = 1 and currDay - succDay > 12: $tmpPic = 'Images/Locations/City/BusinessDistrict/MarketSquare/Park/parkOrgy.webp'
*/
<center>
<b><font size="10em">City Park</font></b>
<br>
<img @src="_tmpImg" height="550rem" >
<br><br>
/*
if (npc_quest['FemFlash'] ! 3 and npc_quest['ShowerBoy'] ! 3): gs 'RandomEvents','CityPark'
if lockedUp = 1 and currDay - succDay > 12:
'Miles of walking paths through piles of naked rutting bodies and the open expansive grassy plains make this one of the largest public orgy parks in this part of the country.'
else
'Miles of walking paths through groves of trees, near lakes or around flower gardens, and the open expansive grassy plains make this one of the largest parks in this part of the country. People come from miles around to relax and hang out in the beauty of nature so there's almost always some sort of event going on.'
end
if $flashMsg ! '': *nl & '<<$flashMsg>>' & killvar '$flashMsg'
*/
Miles of walking paths through groves of trees, near lakes or around flower gardens, and the open expansive grassy plains make this one of the largest parks in this part of the country. People come from miles around to relax and hang out in the beauty of nature so there's almost always some sort of event going on.
<br>
<span id="repCont">
<<if $rainyDay>>
<div class='badText'>It's raining today so there's not much to do in the park.</div>
<</if>>
</span>
</center>
<span id="NPCContainer">
<<dateCheck 'CityPark'>>
<<genNPCs 'CityPark'>>
<<getCurrNPCs 'CityPark'>>
</span>
<hr>
<div id='actionsContainer'>
<<if !$rainyDay>>
<div class="buttonContainer">
<<button "Go for a walk" "ParkWalk">>
<<exerciseImpact 'LightCardio' 10>>
<</button>>
<<button "Find a spot to relax" "ParkChill">>
<<addMins 10>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Leave the park" "MarketSquare">>
<<addMins 1>>
<</button>>
</div>
</div>
<<timed 0s>>
<<if $player.questTracker.some(obj => obj.idx === 'ParkPhotoQuest') and $player.questTracker.find(obj => obj.idx === 'ParkPhotoQuest').level === 3>>
<<replace "#NPCContainer">>
<<purgeNPCLocation 'CityPark'>>
<<set _tmpLocAr = ['CityPark']>>
<<addNPC $npc_1 _tmpLocAr 'JulesParkSlap'>>
<<getCurrNPCs 'CityPark'>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Follow $npc_1.firstName" 'JulesPhotoInit'>>
<<set $npc_1.relationship += 1>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</if>>
<</timed>><<set _tmpImg = 'Media/Locations/BDistrict/MSquare/Park/Walk/'>>
<<if $player.presenting === 'Female'>>
<<if $dayStage < 4>>
<<set _tmpImg += 'F/Summer/Day/' + random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Summer/Night/' + random(1,5) + '.webp'>>
<</if>>
<<else>>
<<if $dayStage < 4>>
<<set _tmpImg += 'M/Summer/Day/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/Summer/Night/' + random(1,2) + '.webp'>>
<</if>>
<</if>>
<center>
<b><font size="10em">City Park</font></b>
<br>
<img @src="_tmpImg" height="550rem">
<br><br>
<span id='repCont'>
<<if $dayStage < 4>>
You take a stroll along the paths of the park, enjoying the quiet peace of nature. You feel more relaxed and centered when you're done. As you have probably done countless times before, you tell yourself you should come here more often.
<<else>>
As you walk along the darkned paths of the park you can't help but notice how different it is here at night. The peaceful quiet can take on a sinister edge if you let it.
<</if>>
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Keep walking" "ParkWalk">>
<<exerciseImpact 'LightCardio' 10>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Go back to the Park entrance" "CityPark">>
<<addMins 1>>
<</button>>
</div>
</div><<set
$player.mood += 5;
$player.stamina += 2;
>>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/Park/Chill/'>>
<<if $player.presenting === 'Female'>>
<<if $dayStage < 4>>
<<set _tmpImg += 'F/Summer/Day/' + random(1,5) + '.webp'>>
<<else>>
<<if $gameDate.getMonth() > 3 and $gameDate.getMonth() < 10>>
<<set _tmpImg += 'F/Summer/Night/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Fall/Night/' + random(1,1) + '.webp'>>
<</if>>
<</if>>
<<else>>
<<if $dayStage < 4>>
<<set _tmpImg += 'M/Summer/Day/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/Summer/Night/' + random(0,0) + '.webp'>>
<</if>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">'
<br><br>
You sit back and just absorb the view for a while, not even paying attention to other people around you. After a while you feel your mood has improved and that you're ready to face what the days ahead will bring.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Keep relaxing" "ParkChill">>
<<addMins 10>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Get up" "CityPark">>
<<addMins 2>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Outskirts/DairyFarm/' + ($dayStage < 4 ? 'dayFarm' : 'nightFarm') + '.webp'>>
<center>
<b><font size="10em">Dairy Farm </font></b>
<br>
<img @src="_tmpImg" height="550rem">
<br><br>
You step out into the farmyard, the sun shining down on the rolling fields and modern dairy buildings. The air is filled with the soft sounds of mooing cattle somewhere in the distance, and the unmistakable scent of fresh hay and livestock.
<br><br>
To the north, you can see a large barn with open doors, likely where the cows are milked and cared for. To the east, there's a fenced pasture where some cows are grazing lazily. A gravel path leads south back to the main road, while to the west, you notice a small farmhouse that looks well-maintained.
<br><br>
The farm seems quiet at the moment, but you get the feeling that there's a lot of activity happening behind the scenes.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Walk back to the main road" "Outskirts">>
<<addSecs 45>>
<</button>>
</div>
</div><<set $locType = 'Outdoors'>>
<center>
<<set _tmpImg = 'Media/Locations/Downtown/'>>
<<if $dayStage < 4>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<if $gameDate.getMonth() >= 2 and $gameDate.getMonth() <= 8>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<set _tmpImg += '.webp'>>
<img @src="_tmpImg" height="450rem" >
<br>
<span id="repCont">
<<genRandomEvents>>
</span>
The restaurant <<storeHours 'Hooters'>> is a good place to go for comfort food and a fun atmosphere, its neon signs keep the whole block lit up even on the darkest winter night. Right next to that is the local drinking hole, <<storeHours 'KellysPub'>>, which looks to have a living space on its second floor.
<br>
Drooping sadly on one corner is the neglected building of the <<link "Fairhaven" "FairhavenLobby">><<addSecs 15>><</link>> -- a halfway house for disadvantaged people. Across the street is a rather rundown looking <<storeHours 'Safeway'>> where you can buy all the low-quality groceries you need. And the <<storeHours 'AMI'>> has a location nearby for medical research and health treatments.
<br><br>
And of course, for those without a car, the local <<link "Bus Station" "BusStop">><<set $busLoc = 'Downtown'>><<addSecs 15>><</link>> is right in the center of everything.
</center>
<<genNPCs 'Downtown'>>
<<getCurrNPCs 'Downtown'>>
<hr>
<div id="actionsContainer">
<<homeFinder 'Downtown'>>
<div class="buttonContainer">
<<for _i to 0; _i < $knownLocs.length;_i++>>
<<capture _i>>
<<if ['BDistrict','RLDistrict','UDistrict'].includes($knownLocs[_i][1])>>
<<button $knownLocs[_i][0]>>
<<Walking $knownLocs[_i][1]>>
<</button>>
<</if>>
<</capture>>
<</for>>
</div>
<<cityBench "Downtown">>
</div><<set $locType = 'Outdoors'>>
<<set _tmpPic = 'Media/Locations/BDistrict/MSquare/market'>>
<<if $dayStage < 4>>
<<set _tmpPic += '1'>>
<<else>>
<<set _tmpPic += '2'>>
<</if>>
<<if $gameDate.getMonth() >= 2 and $gameDate.getMonth() <=8>>
<<set _tmpPic += '1.webp'>>
<<else>>
<<set _tmpPic += '2.webp'>>
<</if>>
<center>
<b><font size="10em">Market Square</font></b>
<br>
<img @src="_tmpPic" height="450rem">
<br>
<<if $gameDate.getHours() < 6 or $gameDate.getHours() > 21>>
<div class="badText">The Market is closed</div>
<</if>>
<br>
<span id="repCont">
<<genRandomEvents>>
</span>
An expansive open-air market sprawls over several city blocks. In here just about anyone can come set up a booth and hawk their wares. In the summer, when the scent of ripe berries and melons fills the air, and sunflowers peek from booths, this place is so crowded it can be hard to get around. In the winter there are hot drinks and warm clothes on offer, and the crowds are much less dense. It usually closes up not long after dark, but that depends on how many customers remain.
<br><br>
In the center of the market is a [[large water fountain|MFountain]] that many people claim has magical powers that you can access by tossing in a coin.
<br><br>
From here you can visit the <<storeHours 'Community Center'>> or look at a [[Bulletin Board|BBoard]] of job postings and advertisements.
<br><br>
You can see a large green space nearby which must be the [[City Park|CityPark]].
</center>
<<genNPCs 'MSquare'>>
<<getCurrNPCs 'MSquare'>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $gameDate.getHours() >= 6 and $gameDate.getHours() <= 21>>
<<button "Wander through the market">>
<<if $player.isNude>>
<<replace '#repCont'>>
<div class="badText">Probably not a good idea to wander around naked...</div>
<</replace>>
<<else>>
<<addMins 15>>
<<genMSquareEvent>>
<</if>>
<</button>>
/*
if milkMaid ! 0: act 'Go to the Milkmaid booth': gt 'MarketSquare','MilkBooth'
if BBStore ! 0: act 'Go to the Bootleg Boutique': gt 'MarketSquare','BBoutique'
*/
<</if>>
</div>
<div class="buttonContainer">
<<button "Leave the square" "BDistrict">>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<b><font size="10em">Market Square Fountain</font></b>
<br>
<img src="Media/Locations/BDistrict/MSquare/fountain1.webp" height="450rem">
<br><br>
People who have had good luck drop coins on the ground for others to pick up and toss in the fountains as a way to pay it forward, so-to-speak.
<br><br>
You see a scattering of different coins on the ground.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "U.S. quarter" "CoinToss">>
<<set $coinChoice = 'White'>>
<</button>>
<<button "Chinese yuan" "CoinToss">>
<<set $coinChoice = 'Asian'>>
<</button>>
<<button "Arabic fal" "CoinToss">>
<<set $coinChoice = 'Arabic'>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step back" "MarketSquare">>
<<addSecs 5>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/BDistrict/MSquare/'>>
<<if $coinChoice === 'White'>>
<<set _tmpImg += 'usCoin.webp'>>
<<elseif $coinChoice === 'Asian'>>
<<set _tmpImg += 'asianCoin.webp'>>
<<elseif $coinChoice === 'Arabic'>>
<<set _tmpImg += 'arabicCoin.webp'>>
<</if>>
<center>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
You pause to look at the coin in your hand - the moment seeming to have more weight than a simple coin-toss should have.
<br><br>
Perhaps some things are not as frivolous as they might appear. Some actions should be carefully considered.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Toss the coin">>
<<if $player.race === $coinChoice or $dailyLimit.includes('coinToss')>>
<<replace "#repCont">>
<img src="Media/Locations/BDistrict/MSquare/fountain1.webp" height="600rem">
<br><br>
There's a wet splash when the coin breaks the surface and the ripples spread across the surface pleasantly, but nothing else happens.
<</replace>>
<<replace "#actionsContainer">>
<div class ="buttonContainer">
<<button "Step back" "MFountain">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<<else>>
<<run $dailyLimit.push('coinToss')>>
<<set $player.race = $coinChoice>>
<<set $player.body.skinTone = setRaceSkinTone($player.race)>>
<<replace "#repCont">>
<img src="Media/Locations/BDistrict/MSquare/fountain1.webp" height="600rem">
<br><br>
<div class="badText">As the ripples from your tossed coin touch your reflection in the water you feel a physical ripple run through body -- what just happend?</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Check your reflection">>
<<replace "#repCont">>
<<reflection>>
<br><br>
You stare at your new reflection for a moment, drinking in the changes you see before you. No one else has so much as even glanced your way so your metamorphosis went unnoticed.
<br><br>
Somehow you changed race and you're now $player.race!
<</replace>>
<<replace "#actionsContainer">>
<div class ="buttonContainer">
<<button "Step back" "MFountain">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Drop it" "MFountain">>
<<addSecs 15>>
<</button>>
</div>
</div><<if !($jobArr.find(item => item.employer ==='Market Square Bulletin Board'))>>
<<set _tmpJob = new Job('Market Square Bulletin Board','AdHoc','Bulletin Board','You can find same-day-pay jobs posted on a Bulletin Board in the Business District.',0,[1,2,3,4,5],8,20,'N/A')>>
<<set $jobArr.push(_tmpJob)>>
<<refreshCaption>>
<</if>>
<center>
<img src="Media/Locations/BDistrict/MSquare/bBoard.webp" height="400rem">
<br>
<b>Jobs filled by first-come-first serve. If there are no jobs posted then come back at a different time</b>
<br><br>
<<listBBoardJobs>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Step back" "MarketSquare">>
<<addSecs 5>>
<</button>>
</div>
</div><<set _rando = random(1,10)>>
<center>
<<set _rando = random(1,10)>>
<<set _tmpImg ='Media/Locations/BDistrict/MSquare/booth' + _rando + '.webp'>>
<img @src='_tmpImg' height="450rem">
<br><br>
As you stroll through the market
<<switch _rando>>
<<case 1>>
you pass a booth lined with brightly colored children's clothes.
<<case 2>>
a vendor tries to flag you down to buy his farm fresh eggs.
<<case 3>>
you see a woman examining a dress.
<<case 4>>
you stop and leaf through a stack of old vintage vinyl albums, but you don't recognize any of the bands.
<<case 5>>
a woman passes by carrying a large sign offering to sell her hand in marriage -- she's even showing her passport as proof of her citizenship and you wonder how much she can get in offers.
<<case 6>>
a topless woman on the back of a bike passes you by. She smiles brightly at you as if nothing was off about showing her tits in public.
<<case 7>>
you see a booth covered with items made from animal bones -- at least you *think* those are all animal bones.
<<case 8>>
you see table after table of usless junk, who would actually buy these things?
<<case 9>>
a woman stands the side selling tickets to ride on some sort of spining contraption. Looks like it'd just make you dizzy and sick.
<<case 10>>
you pass a table piled high with used bras and panties -- gross!
<</switch>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Look around some more">>
<<addMins 15>>
<<genMSquareEvent>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stop wandering" "MarketSquare">>
<<addSecs 15>>
<</button>>
</div>
</div><span id='repCont'>
<center>
<img src="Media/Locations/BDistrict/MSquare/magic1.webp" height="450rem">
<br><br>
You a street performer showing off some magic. His act seems to a be mix of sleight-of-hand and hypnotism.
<br><br>
Judging by the size of the crowd forming around him; he must be pretty good.
</center>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Stay and watch">>
<<addMins 5>>
<<replace '#repCont'>>
<center>
<img src="Media/Locations/BDistrict/MSquare/magic2.webp" height="450rem">
<br><br>
The magician does some run-of-the-mill card tricks, but his delivery is funny and he keeps the modest crowed entertained for a while. Eventually he starts calling on volunteers and starts doing mentalist tricks like suggestion and hypnosis, these are way better than his card tricks and you have to f he's pretty impressive.
<br><br>
Suddenly you find him pointing his finger at you, beckoning you forward as a new volunteer...
</center>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button 'Step Forward' 'HypnoEvent'>>
<<addMins 2>>
<</button>>
</div>
<div class="buttonContainer">
<<button 'Bail out of there' "MarketSquare">>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Keep wandering">>
<<addMins 15>>
<<genMSquareEvent>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stop wandering" "MarketSquare">>
<<addSecs 15>>
<</button>>
</div>
</div><<set _tmpPassage = 'MarketSquare'>>
<center>
<img height="450rem" src="Media/Locations/BDistrict/MSquare/magic3.webp" height="450rem">
<br><br>
The magician has even you laughing as he fumbles about, pretending to hypnotise you into doing outlandish things and then being confused when you refuse to do them. He sprinkles in some pretty good up-close magic as well, just to keep it entertaining.
<br><br>
After a few minutes he thanks you for participating and ushers you back to the edge of the stage area. With a flourish for the crowd he bends down and kisses your hand and says loudly, "Thank you, my dear, you have been the most perfect assistant!"'
<br><br>
<<if $player.presenting === 'Female'>>
<<if !($player.traits.includes(1))>>
<<set _tmpPassage = 'MakeupHypno'>>
But before he lets go you feel a tingle in your hand where his fingers touch your skin and his eyes seem to flash for a second as he says
<br><br>
<font color="#f558d5"><i>"But you really should wear more makeup, honey."</i></font>
<<elseif !($player.traits.includes(8))>>
<<set _tmpPassage = 'FlirtHypno'>>
As he takes you back toward your spot in the crowd he leans in and whispers <font color="#f558d5"><i>"Try to loosen up, hon. You seemed a little stiff - relax and enjoy yourself! It never hurt to flirt a little!"</i></font>
<<elseif $player.mentalFem < 90>>
As he takes you back toward your spot in the crowd he leans close and whispers whispers <font color="#f558d5"><i>"You did well, I normally only pick female assistants, you know. Women are so much more fun than boring men, don't you agree?"</i></font>'
<<set _tmpPassage = 'FemHypno'>>
<</if>>
<<else>>
<<if !($player.traits.includes(8))>>
<<set _tmpPassage = 'FlirtHypno'>>
As he takes you back toward your spot in the crowd he leans in and whispers <font color="#f558d5"><i>"Try to loosen up, hon. You seemed a little stiff - relax and enjoy yourself! It never hurt to flirt a little!"</i></font>
<<elseif $player.mentalFem < 90>>
As he takes you back toward your spot in the crowd he leans close and whispers whispers <font color="#f558d5"><i>"You did well, I normally only pick female assistants, you know. Women are so much more fun than boring men, don't you agree?"</i></font>'
<<set _tmpPassage = 'FemHypno'>>
<</if>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" _tmpPassage>>
<<if _tmpPassage === 'MarketSquare'>>
<<addSecs 5>>
<<else>>
<<addMins 5>>
<</if>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/BDistrict/MSquare/magic4.webp" height="450rem">
<br><br>
The world seems to go blurry for a moment and you feel an indescribable pressure in your mind. His words echo back and forth between your ears for what seems like an eternity and just when you think you can't handle it anymore everything suddenly snaps back into place as if nothing had happened. The magician is just stepping away from you and the crowd is focused on him so no one even noticed anything might have been wrong with you. Whatever that was could only have lasted for a second or two despite how long it felt to you.'
<br><br>
<<if $player.body.makeup === 0>>
You clear your throat and square your shoulders, and suddenly you realise <font color ="f558d5"><b>you're out here in public without any makeup on!</b></font> A shiver runs down your spine as you silently berate yourself for forgetting something so basic, maybe you have time to run home and apply some real quick.
<<elseif $player.body.makeup > 0>>
<<set $player.mood += 10>>
You shake your head to dispel the lingering cobwebs and try to regain your bearings. You think of the people who had been watching you on stage and you silently thank yourself that you wore makeup when you left the house. You can't imagine what you would have done if you'd been out here plain-faced! You vow to always do your face when you leave the house from that moment on.
<<else>>
<<set $player.mood -= 10>>
As you regain your footing you suddenly realize that you were out in there in front of the crowd with horrible smeared and messed up makeup, oh you must have looked like a clown! You silently beat yourself up for not taking better care of your appearance and you vow to yourself that you will do your best to always have your makeup looking fresh when you're out of the house.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "MarketSquare">>
<<if !$player.knownStyles.includes('Natural')>>
<<set $player.knownStyles.push('Natural')>>
<</if>>
<<addTrait 1>>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/BDistrict/MSquare/magic5.webp" height="450rem">
<br><br>
A sudden wave of vertigo washes over you, making you sway slighlty on your feet. You shake your head and the feeling dissipates, leaving no trace of any noticeable after-effects.
<br><br>
You mentally shrug your shoulders, wishing you had been able to come up with a <font color="red"><b>flirty comment for the cute street magician.</b></font>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "MarketSquare">>
<<addTrait 8>>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/BDistrict/MSquare/magic3.webp" height="450rem">
<br><br>
Something clicks inside your brain at his words and you find yourself agreeing with him.
<<if $player.mentalFem < 40>>
This whole thing that's happening to you might have a bright side. You resolve to try and be more open minded about accepting your feminity.
<<elseif $player.mentalFem < 50>>
You've definitely learned that being treated like a woman has it's up-sides, that's for certain! You can't help but let a wide knowing grin spread across your face.
<<else>>
You wouldn't want it any other way! Your newfound womanhood is the best thing that's ever happened to you.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "MarketSquare">>
<<set $player.statBuffs.femBuff += 10>>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<<set _tmpImg = "Media/Locations/BDistrict/MSquare/flyerRead">>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg +='m' + random(1,2) + '.webp'>>
<</if>>
<img @src="_tmpImg" height="450rem">
<br><br>
<<print $currJob.desc>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Take the job" $currJob.title>>
<<set $bBoardJobs = $bBoardJobs.filter(obj => obj.title != $currJob.title)>>
<<addHours $currJob.hours/2>>
<<set $jobState = 0>>
<<addMins 5>>
<</button>>
</td>
<td>
<<button "Look for something else" "BBoard">>
<<unset $currJob >>
<<addSecs 5>>
<</button>>
</td>
</tr>
<tr>
<td>
<<button "Step away from the Bulletin Board" "MarketSquare">>
<<unset $currJob >>
<<addSecs 15>>
<</button>>
</td>
</tr>
</table><<widget "listBBoardJobs">>
<<if !$dailyLimit.includes('Board Jobs')>>
<<if $gameDate.getMonth() < 2 or $gameDate.getMonth() > 10>>
<<set _currSeason = 'Winter'>>
<<elseif $gameDate.getMonth() >=2 and $gameDate.getMonth() < 5>>
<<set _currSeason ='Spring'>>
<<elseif $gameDate.getMonth() >= 4 and $gameDate.getMonth() < 8>>
<<set _currSeason = 'Summer'>>
<<else>>
<<set _currSeason = 'Fall'>>
<</if>>
<<set $bBoardJobs = []>>
<<switch _currSeason>>
<<case 'Summer' 'Spring'>>
<<if $gameDate.getHours() >= 9 and $gameDate.getHours() <= 15>>
<<set $bBoardJobs.push(new OddJob('Sign Spinner',40,4,'Hold a sign and try to draw customers to whatever store is selling that day.'))>>
<</if>>
<<if $gameDate.getHours() >= 9 and $gameDate.getHours() <= 13>>
<<set $bBoardJobs.push(new OddJob('Handing Out Flyers',20,2,'Pick up a stack of flyers and pass them out to people, when the stack is gone your day is done.'))>>
<</if>>
<<if $gameDate.getHours() >= 9 and $gameDate.getHours() <= 13>>
<<set $bBoardJobs.push(new OddJob('Car Wash',45,4,'Join us to wash some cars! Help make the city a little bit prettier one car at a time!'))>>
<</if>>
<<case 'Fall'>>
<<if $gameDate.getHours() >= 9 and $gameDate.getHours() <= 15>>
<<set $bBoardJobs.push(new OddJob('Dog Walker',35,2,'Help these little furry guys get some fresh air! In just two hours you can earn some cash <b>and</b> feel good about yourself!'))>>
<</if>>
<<case 'Winter'>>
<<if $gameDate.getHours() >= 9 and $gameDate.getHours() <= 12>>
<<set $bBoardJobs.push(new OddJob('Snow Shoveler',50,4,'Keep sidewalks and driveways safe by shoveling snow.'))>>
<</if>>
<<if $gameDate.getMonth() === 11>>
<<if $gameDate.getHours() >= 9 and $gameDate.getHours() <= 16>>
<<set $bBoardJobs.push(new OddJob('Santa\'s Helper',50,4,'Help keep Santa\'s Workshoppe running smoothly this holiday season! Multiple positions needed!'))>>
<</if>>
<</if>>
<</switch>>
<<if $bBoardJobs.length > 0>>
<<run $dailyLimit.push('Board Jobs')>>
<</if>>
<</if>>
<<for _i to 0;_i < $bBoardJobs.length;_i++>>
<<capture _i>>
<<if $gameDate.getHours() > 12 and random(0,100) > 50>>
<<set $bBoardJobs = $bBoardJobs.filter(obj => obj.title != $bBoardJobs[_i].title)>>
<<set _i -= 1>>
<<else>>
<<button $bBoardJobs[_i].title "ReviewJob">>
<<set $currJob = $bBoardJobs[_i]>>
<<addMins 1>>
<</button>>
<</if>>
<</capture>>
<</for>>
<</widget>>
<<widget "genMSquareEvent">>
<<timed 0s>>
<<if ($gameDate.getHours() < 6 or $gameDate.getHours() > 21)>>
<<goto 'MarketSquare'>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
<<if !$dailyLimit.includes('MHypnoIntro')>>
<<run $dailyLimit.push('MHypnoIntro')>>
<<goto "MHypnoIntro">>
<<else>>
<<genMSquareEvent>>
<</if>>
<<case 2>>
<<goto "MRandoBooth">>
<<case 3>>
<<genMSquareEvent>>
<<case 4>>
<<genMSquareEvent>>
<</switch>>
<</if>>
<</timed>>
/*
if cowPrint = 1 and milkMaid = 0: randE = 2
if randE = 2 and milkMaid ! 0: jump 'loopEvents'
if randE = lastRandE and lastRandE ! 3: jump 'loopEvents'
if randE = 4 and BBStore = 1: jump 'loopEvents'
*/
<</widget>><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">Ellis Women's Clinic</font></b>
<br>
<img src="Media/Locations/UDistrict/Clinic/Lobby/lobby.webp" height="600rem">
<br><br>
Pretty run-of-the-mill women's health clinic. There's a chemical smell in the waiting room that you assume is antiseptic. Months-old issues of magazines you have no interest in reading are littered across a coffee table in the middle of the room, and the walls are lined with chairs where other people wait for their turn to see the doctor.
<<if $player.presenting === 'Masc'>>
You get more than a few sideways glances from some of the women in the lobby. Unaccompanied men aren't a common sight in here.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go to the front desk" "OBFrontDesk">>
<<addMins 1>>
<</button>>
</div>
<<set _tmpDate = $player.phone.calendar.items.find(date => date.julianDate === $currJulianDate and (date.startTime.getTime() - $gameDate.getTime())/1000 <= 3600 and date.location === passage())>>
<<if _tmpDate>>
<div class="buttonContainer">
<<button "Take a seat" "OBWaitingRoom">>
<<addMins 10>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Leave the clinic" "UDistrict">>
<<addMins 1>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/UDistrict/Clinic/frontDesk' + ($player.presenting === 'Female'?'1':'2') + '.webp'>>
<center>
<b><font size="10em">Ellis Women's Clinic</font></b>
<br>
<span id="repCont">
<img @src="_tmpImg" height="500rem">
<br><br>
<<if $player.presenting === 'Female'>>
The woman behind the front desk smiles at you brightly "Hello, Miss. How may I help you?"'
<<else>>
The woman behind the front desk glances up at you before giving a curt "Can I help you, sir?"'
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Ask to see a doctor">>
<<replace "#repCont">>
<<set _tmpImg = 'Media/Locations/UDistrict/Clinic/frontDesk' + ($player.presenting === 'Female'?'1':'2') + '.webp'>>
<img @src="_tmpImg" height="500rem">
<br><br>
<<if $player.presenting === 'Male'>>
"This is a women's clinic, sir. If your partner or family member needs to discuss something with our doctors then she needs to come in herself, ok?" She says before turning back to her computer, dismissing you.
<<else>>
<<if !$player.questTracker.some(obj => obj.idx === 'OBGYN')>>
She types on her computer for a moment and then turns to you with an apologetic expression.
<br><br>
"I'm sorry, it doesn't look like we have you in our system yet. You'll need to see your GP to get a referral to us. If you don't have a GP you can see one of the doctors at AMI in the Downtown area."
<<else>>
<<if !$player.phone.calendar.items.some(date => date.label === 'OBGYN')>>
"Yes, hello, $player.firstName. I see you right here in our system. I can get you set up with an appointment, if you'd like." She offers helpfully.
<<else>>
"Your appoint is already scheduled, you can just take a seat in the lobby and a nurse will call you in, ok?"
<</if>>
<</if>>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<<if !$player.phone.calendar.items.some(date => date.label === 'OBGYN')>>
<<if $player.questTracker.some(obj => obj.idx === 'OBGYN')>>
<div class="buttonContainer">
<<button "Set up an appointment" "OBScheduler">>
<<addMins 2>>
<</button>>
</div>
<</if>>
<</if>>
<div class="buttonContainer">
<<button "Step away from the desk" "OBClinic">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step away from the desk" "OBClinic">>
<<addSecs 15>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/UDistrict/Clinic/frontDesk' + ($player.presenting === 'Female'?'1':'2') + '.webp'>>
<center>
<b><font size="10em">Ellis Women's Clinic</font></b>
<br>
<img @src="_tmpImg" height="500rem">
<br><br>
<span id="repCont">
She gets her pen ready on her paper desk calendar and says "We take appointments 7 days a week from 10am to 5pm. Just let me know what works best for you."
<br><br>
<<set
_dateDays = clone(GameDays);
_tmpHrs = Math.min(16,$gameDate.getHours());
_tmpMins = $gameDate.getMinutes();
>>
Day:
<<timed 0s>>
<<listbox "$dateDay">>
<<optionsfrom _dateDays>>
<</listbox>>
<</timed>>
Time: <span id="repTime">1:30 PM</span>
<br><br>
<div width="20%;">
<<set _tmpHrs = 13>>
<<limitedHourSlider _tmpHrs>>
<<set _tmpMins = 30>>
<<minuteSlider _tmpMins>>
</div>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Set Appointment">>
<<if GameDays.indexOf($dateDay) >= $gameDate.getDay()>>
<<set _tmpDayDiff = GameDays.indexOf($dateDay) - $gameDate.getDay()>>
<<else>>
<<set _tmpDayDiff = (7-$gameDate.getDay()) + GameDays.indexOf($dateDay)>>
<</if>>
<<set _tmpMins = parseInt($alarmMinute,10) - $gameDate.getMinutes()>>
<<set _tmpHour = $alarmHour - $gameDate.getHours()>>
<<set _tmpTimeDiff = _tmpHour*60 + _tmpMins>>
<<set _tmpStartTime = clone($gameDate)>>
<<run _tmpStartTime.setUTCMinutes(_tmpStartTime.getMinutes() + _tmpTimeDiff + _tmpDayDiff*24*60)>>
<<set _tmpEndTime = clone(_tmpStartTime)>>
<<run _tmpEndTime.setUTCMinutes(_tmpStartTime.getMinutes() + 15)>>
<<set _tmpDateTime = ($alarmHour > 12,$alarmHour - 12,$alarmHour) + ':' + ('0' + $alarmMinute).slice(-2) + ' ' + ($alarmHour < 12,'AM','PM')>>
<<set $dateLoc = 'OBClinic'>>
<<set _tmpEvent = new DateObject(
_dateType = 'Appointment',
_lable = 'OBGYN',
_npc = 'N/A',
_location = $dateLoc.replace("'","").replace(" ",""),
_passage = 'OBVisit',
_julDate = $currJulianDate + _tmpDayDiff,
_startTime =_tmpStartTime,
_endTime = _tmpEndTime,
_details = "You have an OBGYN appointment in the University District Women's Clinic at " + _tmpDateTime,
_repeat = 28
)>>
<<run $player.phone.calendar.addDate(_tmpEvent)>>
<<replace "#repCont">>
"Great!" she beams at you, making a note on her calendar. "We'll see you then, $player.firstName."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Step away from the desk" "OBClinic">>
<<run $player.questLog.removeQuest('PregQuest')>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Cancel" "OBFrontDesk">>
<<addSecs 5>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/UDistrict/Clinic/Lobby/Waiting/'>>
<<if !$player.body.womb or !$player.body.womb.showPreg>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += 'Preg/' + random(1,3) + '.webp'>>
<</if>>
<center>
<b><font size="10em">Ellis Women's Clinic</font></b>
<br>
<img @src="_tmpImg" height="500rem">
<br><br>
You burn through the next several minutes listening to the wall clock tick and the occasional cough from someone else in the building.
<<set _tmpDate = $player.phone.calendar.items.find(date => date.julianDate === $currJulianDate and date.location === 'OBClinic')>>
<<if _tmpDate.startTime.getTime() < $gameDate.getTime() and ($gameDate.getTime() - _tmpDate.startTime.getTime())*1000*60 > 5>>
<<set _tmpTrigger = true>>
<br>
<div class="goodText">The nurse comes in and calls your name</div>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if _tmpTrigger>>
<div class="buttonContainer">
<<button "Go with the nurse" "OBCheckup">>
<<set _tmpDate = $player.phone.calendar.items.find(date => date.julianDate === $currJulianDate and date.location === 'OBClinic')>>
<<if $player.body.womb.term == 'second'>>
<<set _tmpDate.repeat = 14>>
<<elseif $player.body.womb.term == 'third'>>
<<set _tmpDate.repeat = 7>>
<</if>>
<<cleanDate $player.phone.calendar.items.indexOf(_tmpDate)>>
<<addMins 10>>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "Keep Waiting" "OBWaitingRoom">>
<<addMins 5>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stand up" "OBClinic">>
<<addSecs 5>>
<</button>>
</div>
<</if>>
</div><<set _tmpImg = 'Media/Locations/UDistrict/Clinic/Exam/' + (!$player.body.womb or !$player.body.womb.showPreg?random(1,2):'Preg/' + random(1,1)) + '.webp'>>
<center>
<b><font size="10em">Ellis Women's Clinic</font></b>
<br>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
You get dressed in an exam gown and take a seat. Soon the doctor comes in and does an examination to check on the health and progress of you and your growing baby.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<set _tmpImg = 'Media/Locations/Downtown/AMI/DocVisit/' + ($player.presenting === 'Male'?'M/1':'F/' + random(1,2)) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
"Everything looks good for your <<switch $player.body.womb.term>><<case 1>>first<<case 2>>second<<case 3>>third<</switch>> trimester."
<br><br>
<<set _tmpDate = clone($gameDate)>>
<<run _tmpDate.setUTCDate(_tmpDate.getUTCDate() + ($player.body.womb.dueDate - $currJulianDate))>>
"I estimate your due date to be around
<<print String.format("{0} {1}",
GameMonths[_tmpDate.getMonth()],
_tmpDate.getDate()
)>>."
<br>
Be sure to take your prenatal vitimins and we'll see you at your next check up, ok?
<br><br>
<<if $player.body.womb.term != 'first'>>
"Would you like an ultrasound to see how your baby is doing?"
<<else>>
"This is an exciting time for you, and there are plenty of resources available if you have any questions or concerns along the way."
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<<if $player.body.womb.showPreg>>
<div class="buttonContainer">
<<button "Get an ultrasound" "OBUltrasound">>
<<addMins 15>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Finish the exam" "OBClinic">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/UDistrict/Clinic/Ultrasound/' + random(1,6) + '.webp'>>
<center>
<b><font size="10em">Ellis Women's Clinic</font></b>
<br>
<img @src="_tmpImg" height="600rem">
<br><br>
The doctor applies a cool gel to your abdomen and begins moving the ultrasound wand over your stomach. You watch the monitor as fuzzy black-and-white images of your baby appear on the screen. The doctor points out various features and measurements, confirming that everything looks healthy and normal.
<br><br>
<<if $player.mentalFem < 50>>
<<switch random(1,3)>>
<<case 1>>
You hear the doctor say everything looks perfect, but the words skim across the surface of your mind instead of sinking in. You nod, you breathe, you even try to smile, but your body stays braced as if it's waiting for a different sentence to follow.
<<case 2>>
your mind won't stop scanning the screen for shadows or shapes that don't belong. You keep glancing at the technician's expression, searching for any hint of concern. The image is beautiful, miraculous even, but all it does is raise the hairs on the back of your neck.
<<case 3>>
You watch the flicker of the heartbeat, steady and strong, and instead of calming you, it sharpens your anxiety. You lean forward, scanning the grainy shapes for anything that looks off, anything the doctor might have missed - some indication this is all a mistake.
<</switch>>
<<elseif $player.traits.includes(23)>>
<<switch random(1,3)>>
<<case 1>>
You see the baby on the screen and it's like your whole body lights up from the inside. You gasp, then laugh, then cover your mouth because you can't contain any of it. The tiny kicks, the little flutter of movement—it's all perfect, impossibly perfect. The doctor says everything looks great, and you feel the words bloom through you like warmth spreading to every limb.
<<case 2>>
You lean forward the second the image appears, practically bouncing on the exam table. Your heart is racing in the best way, like you're watching the greatest surprise reveal of your life. Every little detail—the curve of the head, the flicker of the heartbeat—makes you want to squeal. You keep pointing at the screen, asking questions you already know the answers to, because you just want to hear the doctor say it again: everything is perfect. You're grinning so hard your cheeks hurt, and you don't care. You've never felt joy this big.
<<case 3>>
You press a hand to your chest as the baby shifts on the screen, and the feeling that rises in you is so powerful it almost knocks the breath out of you. It's love—pure, overwhelming, instant. You can't stop smiling, can't stop whispering hello to the little shape moving inside you. When the doctor confirms everything is healthy, you feel tears spill over, not from fear but from a happiness so deep it feels like your whole life has been leading to this moment. You're radiant, buzzing, completely undone by joy.
<</switch>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
You stare at the screen, at the unmistakable shape of your baby stretching inside you, and your breath catches. Awe floods you so fast it almost hurts, but right behind it comes a sharp spike of fear. It's too much—too beautiful, too fragile, too real. The doctor says everything looks perfect, and you nod, but your mind races.
<<case 2>>
You watch the tiny heartbeat flicker, steady and strong, and a laugh escapes you—soft, disbelieving, almost embarrassed. It feels impossible that this is happening inside your body, that something so small and alive is yours.
<<case 3>>
You rest your hand on your belly as the baby shifts on the screen, and something fierce rises in you—protective, primal, overwhelming. It should comfort you, but instead it scares you with its intensity. The doctor reassures you that everything is progressing beautifully, and you nod, but your pulse is racing. You're struck by how much you already care, how much you stand to lose.
<</switch>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Finish the ultrasound" "OBClinic">>
<<addMins 10>>
<</button>>
</div>
</div><center>
<b><font size="10em">Ellis Women's Clinic</font></b>
<br>
<img src="Media/Locations/UDistrict/Clinic/Lobby/lobby.webp" height="600rem">
<br><br>
Your eyes snap open and you find yourself in the Women's Clinic waiting room. You feel groggy and disoriented, like you just woke up from a deep sleep but everything else feels uncannily normal. Then your eyes widen as you remember the events of the last few hours and you jump up - The Fortune Teller kidnapped your baby!
<br><br>
You can put this behind you and try to move on, or you can rush to the front desk and demand help recovering your child.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContiner">
<<button "Rush to the front desk and beg for help">>
<<goto "OBAlternate">>
<</button>>
</div>
<div class="buttonContiner">
<<button "Just get out of there">>
<<addMins 2>>
<<set $player.body.vag = $preBirthVag>>
<<unset $preBirthVag>>
<<run delete $player.body.womb.recovery>>
<<run delete $player.body.lactation>>
<<goto "UDistrict">>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/UDistrict/Clinic/frontDesk' + ($player.presenting === 'Female'?'1':'2') + '.webp'>>
<center>
<b><font size="10em">Ellis Women's Clinic</font></b>
<br>
<span id="repCont">
<img @src="_tmpImg" height="500rem">
<br><br>
The receptionist there says she has never seen you before and that you don't have an appointment there. She even goes so far as you to show you their calendar for the last 3 months so you can see that your name isn't anywhere on it. There's no record anywhere of you even being pregnant!
<br><br>
You can tell the receptionist is starting to get worried, and more than a few of the other people in the waiting room are starting to pay attention to your increasingly animated behavior. Perhaps It's better to get out of here before you draw more attention to yourself.
<br><br>
<b>Regroup and rethink, and then you can decide what to do about your apparently non-existent child.</b>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<img src="Media/Locations/BDistrict/MSquare/magic5.webp" height="500rem">
<br><br>
You can feel reality warping around you -- someone, or something, is trying to erase even the fact that you just gave birth!
<br><br>
You can fight the alterations - it won't bring back your baby but you won't be denied the fact that you <b>did</b> give birth.
<br><br>
Or you can give in and have no further after-effects of child birth.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Fight it" "UDistrict">>
<<addMins 2>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Give in" "UDistrict">>
<<addMins 2>>
<<set $player.body.vag = $preBirthVag>>
<<unset $preBirthVag>>
<<run delete $player.body.womb.recovery>>
<<run delete $player.body.lactation>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $locType = 'Outdoors'>>
<<set _tmpImg = 'Media/Locations/Outskirts/' + ($dayStage < 4? '1':'2') + '.webp'>>
<center>
<b><font size="10em">City Outskirts</font></b>
<br>
<img @src="_tmpImg" height="450rem">
<br><br>
<span id="repCont">
<<genRandomEvents>>
</span>
You can just make out the tops of the tallest buildings in downtown Ellis over the trees making this place feel like the very edge of civilization.
<br><br>
Aside from an old abandoned truck stop there's the town <<link "cemetery" "CemeteryGates">><<addSecs 45>><</link>> and a nearby large empty lot littered with debris from past events.
<br><br>
Further down the road is a <<link "Dairy Farm" "DiaryFarmYard">><<addSecs 45>><</link>> and the local <<link "Bus Station" "BusStop">><<set $busLoc = 'Outskirts'>><<addSecs 15>><</link>> is conviently placed on the corner intersection.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContianer">
<<button "Walk back to town">>
<<Walking 'Downtown'>>
<</button>>
</div>
<<cityBench "Beach">>
</div><<set $locType = 'Outdoors'>>
<<set _tmpImg = 'Media/Locations/RedLight/'>>
<<if $dayStage < 4>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<if $gameDate.getMonth() >= 2 and $gameDate.getMonth() <= 8>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<set _tmpImg += '.webp'>>
<center>
<b><font size="10em">Red Light District</font></b>
<br>
<img @src="_tmpImg" height="450rem" >
<br><br>
<span id="repCont">
<<genRandomEvents>>
</span>
Ellis' Red Light District is a carnival of vice, with raucous bars, haze-filled 'coffeeshops', strip shows, mind-boggling museums, and skimpily-clad commercial sex workers posing seductively near alleyways and by-the-hour motels. It's not for the faint of heart and not everything here is strictly legal.
<br><br>
To the one side is the Tattoo Parlor and <<storeHours 'DirtyDicks'>>, a local dive bar. On the other is the <<storeHours 'Boobie Bungalow'>> - a strip club that's a favorite among the local tourists.
<br><br>
And of course the local branch of the <<link "Bus Station" "BusStop">><<set $busLoc = 'RedLight'>><<addSecs 15>><</link>> is right in the center of everything.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<for _i to 0; _i < $knownLocs.length;_i++>>
<<capture _i>>
<<if ['BDistrict','Downtown','Outskirts','UDistrict','WDistrict'].includes($knownLocs[_i][1])>>
<<button $knownLocs[_i][0]>>
<<Walking $knownLocs[_i][1]>>
<</button>>
<</if>>
<</capture>>
<</for>>
</div>
<<cityBench "RLDistrict">>
</div><<set $locType = 'Outdoors'>>
<<set _tmpImg = 'Media/Locations/UDistrict/'>>
<<if $dayStage < 4>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<if $gameDate.getMonth() >= 2 and $gameDate.getMonth() <= 8>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<set _tmpImg += '.webp'>>
<center>
<b><font size="10em">University District</font></b>
<br>
<img @src="_tmpImg" height="450rem" >
<br><br>
<span id="repCont">
<<genRandomEvents>>
</span>
The U, as the locals call it, is home to the
<<link "Ellis University">>
<<script>>
Dialog.setup("ERROR");
Dialog.wiki('<center><div class="badText">Due to Federal Budget cuts; Ellis University is temporary closed.</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</link>>
-- a must-stop for those trying to better themselves after high school, or for those who like a good party. The nearby [[University Heights|UApartmentLobby]] apartments mainly houses University students who don't want to live on campus. Across from there, half the city block is taken up with [[St. Timothy Church|ChurchCourtyard]], a giant gothic structure of gargoyles and stained glass.
<br><br>
The <<storeHours 'OBClinic'>> takes up the bottom floor of a nearby building, and on the corner is a <<storeHours "Newsstand Kiosk">> selling various odds and ends.
<br><br>
And of course, for those without a car, the local <<link "Bus Station" "BusStop">><<set $busLoc = 'UDistrict'>><<addSecs 15>><</link>> is right in the center of everything.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<for _i to 0; _i < $knownLocs.length;_i++>>
<<capture _i>>
<<if ['BDistrict','Downtown','RLDistrict'].includes($knownLocs[_i][1])>>
<<button $knownLocs[_i][0]>>
<<Walking $knownLocs[_i][1]>>
<</button>>
<</if>>
<</capture>>
<</for>>
</div>
<<cityBench "UDistrict">>
</div><<set $locType = 'Outdoors'>>
<<set _tmpImg = 'Media/Locations/WDistrict/Casino/gNug'>>
<<if $dayStage < 4>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<set _tmpImg += '.webp'>>
<center>
<b><font size="10em">Wharf District</font></b>
<br>
<img @src="_tmpImg" height="450rem" >
<br><br>
<span id="repCont">
<<genRandomEvents>>
</span>
This area of the city is dominated by the <<storeHours 'Golden Nugget Hotel and Casino'>> which is open 24 hours a day, regardless of the weather. Things definitely get a little more wild at night, but even in the middle of the day you can find people here gambling, drinking, and partying. Tucked in the casino's shadow amost like an afterthought sits the <<storeHours 'Crowing Moon'>> - a kind of specialized pawn shoppe.
<br><br>
Unless you have a car the only real way out of here is via the nearby <<link "Bus Station" "BusStop">><<set $busLoc = 'WDistrict'>><<addSecs 15>><</link>>.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<for _i to 0; _i < $knownLocs.length;_i++>>
<<capture _i>>
<<if ['Downtown','RLDistrict'].includes($knownLocs[_i][1])>>
<<button $knownLocs[_i][0]>>
<<Walking $knownLocs[_i][1]>>
<</button>>
<</if>>
<</capture>>
<</for>>
</div>
<<cityBench "WDistrict">>
</div><center>
<div class='clothesList'>
<<for _rowIndex to 0; _rowIndex < $magList.length; _rowIndex++>>
<<capture _rowIndex>>
<<genMag $magList[_rowIndex]>>
[img[magazine|$magObj.image][ReadMag][$currMag to $magList[_rowIndex]]]
<</capture>>
<</for>>
</div>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Go back" "Bed">>
<<addSecs 5>>
<</button>>
</div>
</div><<addMins 15>>
<<set _tmpImg = 'Media/Shared/Bed/Read/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<<genMag $currMag>>
<<if !$magCount>>
<<set $magCount = []>>
<</if>>
<<if $magCount.some(obj => obj.sku === $currMag)>>
<<set $magCount.find(obj => obj.sku === $currMag).count += 1>>
<<else>>
<<run $magCount.push({sku: $currMag, count: 1})>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
<<if !$magCount.some(obj => obj.sku === $currMag) or $magCount.find(obj => obj.sku === $currMag).count < 4>>
You leaf through the magazine for a while
<<magEffect $magObj.type>>
<<else>>
<div class="badText">You've read everything in this magazine and can't learn anything new</div>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<set _truncated = $currMag.slice(9, 2)>>
<<if $magCount.some(obj => obj.sku === $currMag) and $magCount.find(obj => obj.sku === $currMag).count >= 4 and $currMag.replace('magazine_','') > 5>>
<div class="buttonContainer">
<<button "Throw the magazine away" "Bed">>
<<run $player.inventory.removeItem($currMag,1)>>
<<set $magCount = $magCount.filter(itm => itm.sku != $currMag)>>
<<addMins 1>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Stop reading" "Bed">>
<<addSecs 15>>
<</button>>
</div>
</div><<widget 'genMag'>>
<<switch _args[0]>>
<<case 'magazine_1'>>
<<set
_type = 'Fashion';
_image = 'Media/Magazines/1.webp';
_price = 5;
_desc = ''
>>
<<case 'magazine_2'>>
<<set
_type = 'Style';
_image = 'Media/Magazines/2.webp';
_price = 5;
_desc = ''
>>
<<case 'magazine_3'>>
<<set
_type = 'Fashion';
_image = 'Media/Magazines/3.webp';
_price = 5;
_desc = ''
>>
<<case 'magazine_4'>>
<<set
_type = 'Fem';
_image = 'Media/Magazines/4.webp';
_price = 5;
_desc = ''
>>
<<case 'magazine_5'>>
<<set
_type = 'Health';
_image = 'Media/Magazines/5.webp';
_price = 5;
_desc = ''
>>
<<case 'magazine_6'>>
<<set
_type = 'Fashion';
_image = 'Media/Magazines/6.webp';
_price = 5;
_desc = 'A magazine about fashion trends and dressing tips.'
>>
<<case 'magazine_7'>>
<<set
_type = 'Style';
_image = 'Media/Magazines/7.webp';
_price = 5;
_desc = 'A makeup application tips and style suggestions.'
>>
<<case 'magazine_8'>>
<<set
_type = 'Fem';
_image = 'Media/Magazines/8.webp';
_price = 5;
_desc = 'A magazine devoted to all things feminine.'
>>
<<case 'magazine_9'>>
<<set
_type = 'Health';
_image = 'Media/Magazines/9.webp';
_price = 5;
_desc = 'A magazine about women\'s health.'
>>
<<case 'magazine_10'>>
<<set
_type = 'Sex';
_image = 'Media/Magazines/10.webp';
_price = 5;
_desc = 'A magazine offering sex tips and seduction advice for women.'
>>
<<case 'magazine_11'>>
<<set
_type = 'Bimbo';
_image = 'Media/Magazines/11.webp';
_price = 5;
_desc = 'An actual magazine for bimbos! Part of you wants to buy it out of pure curiosity.'
>>
<<case 'magazine_12'>>
<<set
_type = 'Muscles';
_image = 'Media/Magazines/12.webp';
_price = 5;
_desc = 'A publication devoted to swollen guns and rock-hard abs.'
>>
<<case 'magazine_13'>>
<<set
_type = 'Dom';
_image = 'Media/Magazines/13.webp';
_price = 5;
_desc = 'A magazine about firearms and self-protection measures.'
>>
<<case 'magazine_14'>>
<<set
_type = 'Maxim';
_image = 'Media/Magazines/14.webp';
_price = 5;
_desc = 'Basically soft-core porn, but still not a bad read.'
>>
<<case 'magazine_15'>>
<<set
_type = 'MalePorn';
_image = 'Media/Magazines/15.webp';
_price = 5;
_desc = 'Page after page of hot man-on-man action.'
>>
<<case 'magazine_16'>>
<<set
_type = 'FemPorn';
_image = 'Media/Magazines/16.webp';
_price = 5;
_desc = 'Everyone loves a little girl-on-girl fun, right? It\'s natural.'
>>
<<case 'magazine_17'>>
<<set
_type = 'MalePorn';
_image = 'Media/Magazines/17.webp';
_price = 5;
_desc = 'Hot muscely men in seductive poses, all for your entertainment. There might be some nice articles too.'
>>
<<case 'magazine_18'>>
<<set
_type = 'FemPorn';
_image = 'Media/Magazines/18.webp';
_price = 5;
_desc = 'The classic men\'s nuddie mag, it might be tame by modern standards but still has plenty of good wank material.'
>>
<<case 'magazine_19'>>
<<set
_type = 'Maternity';
_image = 'Media/Magazines/19.webp';
_price = 5;
_desc = 'A maternity magazine for expecting women.'
>>
<<case 'magazine_20'>>
<<set
_type = 'Maternity';
_image = 'Media/Magazines/20.webp';
_price = 5;
_desc = 'Advice, Tips, and gossip - everything a pregnant woman needs.'
>>
<</switch>>
<<set $magObj = new Magazine(_args[0],_type,_image,_price,_desc)>>
<</widget>>
<<widget "getMagList">>
<<set $magList = []>>
<<if $bedLoc === 'FHBedroom'>>
<<run $magList.push('magazine_1','magazine_2','magazine_3','magazine_4','magazine_5')>>
<</if>>
<<if $player.inventory.items.some(obj => obj.name.startsWith('magazine_'))>>
/* add any play purchased magazine */
<<set _tmpList = $player.inventory.items.filter(obj => obj.name.startsWith('magazine_'))>>
<<for _rowIndex to 0; _rowIndex < _tmpList.length; _rowIndex++>>
<<run $magList.push(_tmpList[_rowIndex].name)>>
<</for>>
<</if>>
<<if $magList.length > 0>>
<<button "Read a magazine" "ListMags">>
<<addSecs 5>>
<</button>>
<</if>>
<</widget>>
<<widget "magEffect">>
<<switch _args[0]>>
<<case 'Fashion'>>
<<set $player.statBuffs.exhib += 1>>
<<switch random(1,3)>>
<<case 1>>
<<set $player.statBuffs.femBuff += 1>>
and you learn what poses are best for different types of selfies.
<<case 2>>
<<set $fashBoost += 1>>
and you read about the upcoming "summer colors", which you subconsciously file away for the next time you pick out an outfit.
<<case 3>>
<<set
$player.statBuffs.femBuff += 1;
$fashBoost += 1;
>>
and you gain a better understanding of current fashion trends.
<</switch>>
<<case 'Health'>>
<<set
$player.statBuffs.femBuff += 1;
$player.mood += 1;
>>
<<switch random(1,3)>>
<<case 1>>
and discover breathing techniques designed to calm the nervous system.
<<case 2>>
and pause at a feature on morning rituals that set a peaceful tone for the day.
<<case 3>>
and find step-by-step guidance on cultivating mindfulness during everyday tasks.
<</switch>>
<<case 'Style'>>
<<set
$player.statBuffs.femBuff += 1;
$player.statBuffs.makeup += 1;
>>
<<switch random(1,3)>>
<<case 1>>
and you learn about some modern makeup and hair techniques.
<<case 2>>
and pick up tips on contouring that promise to reshape your face entirely.
<<case 3>>
and catch a feature on bold eye shadow palettes that look more like works of art.
<</switch>>
<<case 'Fem'>>
<<set $player.statBuffs.femBuff += 2>>
<<switch random(1,5)>>
<<case 1>>
and you read inspiriational stories of young girls making their mark on the world.
<<case 2>>
and discover profiles of young women breaking barriers in sports and science.
<<case 3>>
and learn about trailblazing female leaders who reshaped industries once dominated by men.
<<case 4>>
and realize how many pages celebrate courage, resilience, and kindness as true beauty. It starts to make you think.
<<case 5>>
and read a spread about female heroes from history who paved the way for today's generation.
<</switch>>
<<case 'Sex'>>
<<set $player.statBuffs.femBuff += 2>>
<<set $player.statBuffs.exhib += 1>>
<<switch random(1,5)>>
<<case 1>>
and pick up flirty conversation starters that promise to “work every time.”
<<case 2>>
and pause at a spread promising the “top five positions for maximum pleasure.”
<<case 3>>
and find a chart ranking which sex positions burn the most calories.
<<case 4>>
and linger on a feature about adventurous role-play ideas to spice up routine nights.
<<case 5>>
and read and illustrated guide to “positions you didn't know were possible.”
<</switch>>
<<case 'Bimbo'>>
<</switch>>
<</widget>><<set _tmpImg = 'Media/Locations/RedLight/DiveBar/Billiards/Intro/'>>
<<if $player.presenting == 'Female'>>
<<set _tmpImg += 'F/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += '</' + random(1,1) + '.webp'>>
<</if>>
<<unset $poolFilter>>
<<if $currDNA>>
<<set $NPCPoolSkill = random(20,100)>>
<<set $currPlayer = (random(1,0) == 0?$currDNA:$player.dna)>>
<center>
<img @src='_tmpImg' height='600rem'>
<br><br>
You set up the table and then flip a coin to see who gets to break and <<if $currPlayer == $player.dna>> you win the toss.<<else>><<print $NPCArray.find(npc => npc.dna == $currPlayer).firstName>> is up first.<</if>>
<br><br>
<span id="repCont">
<<if $currPlayer != $player.dna>>
<<set
$playerBalls = [1,2,3,4,5,6,7];
$NPCBalls = [9,10,11,12,13,14];
>>
<<print $NPCArray.find(npc => npc.dna == $currPlayer).firstName>> sinks a striped ball on the break - <b>You're Solids!</b>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $currPlayer != $player.dna>>
<<getPoolActions>>
<<else>>
<<button "Take your first shot">>
<<replace "#repCont">>
<<set
$playerBalls = [9,10,12,13,14];
$NPCBalls = [1,2,3,5,6,7];
>>
You manage to sink a striped ball on the break - <b>You're stripes!</b>
<</replace>>
<<replace "#actionsContainer">>
<<getPoolActions>>
<</replace>>
<</button>>
<</if>>
</div>
</div>
<<else>>
<<unset $playerBalls>>
<<goto "PoolGame">>
<</if>><center>
<b><font size="10em">Dirty Dick's</font></b>
<br>
<<getPoolImage>>
<br>
<<if !$currDNA>>
<<switch random(1,4)>>
<<case 1>>
You line up the shot, feeling the weight of the cue settle into your grip as you breathe out slow. The cue ball jumps forward with a clean crack, scattering colors across the felt in a way that makes you want to try again immediately.
<<case 2>>
You lean over the table, eyes tracing the angle, the bank, the tiny margin for error. When you strike, the ball glides exactly where you told it to go—almost like the table is finally starting to listen to you.
<<case 3>>
You chalk the tip, roll your shoulders, and settle into your stance. The room fades as you focus on the shot, and the satisfying clack of contact tells you you're getting better.
<<case 4>>
You circle the table, studying the layout like a puzzle only you can solve. One smooth stroke sends the cue ball spinning, and you watch the play unfold as the ball ricochets around the table.
<</switch>>
<<else>>
Your balls: $playerBalls.length
<br>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s balls: $NPCBalls.length
<<getPoolText>>
<<if $shotResult>>
<br><br>
<<if $shotResult.success>>
<<if $currPlayer == $player.dna>>
You sank the <<print $shotResult.ballSunk>>!
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currPlayer).firstName>> sank the <<print $shotResult.ballSunk>>!
<</if>>
<<elseif $shotResult.outcome == 'scratch'>>
<<if $currPlayer == $player.dna>>
Oh no! You scratched the cue ball!
<<else>>
Nice, <<print $NPCArray.find(npc => npc.dna == $currPlayer).firstName>> scratched the cue ball!
<</if>>
<<elseif $shotResult.outcome == '8ballViolation'>>
<<if $currPlayer == $player.dna>>
<<set $NPCBalls = []>>
Your poorly aimed shot sunk the 8-ball!
<<else>>
<<set $playerBalls = []>>
<<print $NPCArray.find(npc => npc.dna == $currPlayer).firstName>> sank the 8-ball.
<</if>>
<<else>>
<<if $currPlayer == $player.dna>>
You completely miss the shot and the cue ball bounces harmlessly around the tbale.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currPlayer).firstName>> missed the shot.
<</if>>
<</if>>
<</if>>
<<if $playerBalls.length <= 0>>
<div class="goodText">You won!</div>
<<elseif $NPCBalls.length <= 0>>
<div class="badText">You Lost!</div>
<</if>>
<<if !$shotResult or !$shotResult.success>>
<<if $currPlayer == $player.dna>>
<<set $currPlayer = $currDNA>>
<<else>>
<<set $currPlayer = $player.dna>>
<</if>>
<</if>>
<</if>>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 11>>
<div class="badText"><br>The bar is closing, time to head out</div>
<<elseif $currDNA and $playerBalls.length > 0 and $NPCBalls.length > 0>>
<br><br>
<<if $currPlayer != $player.dna>>
<<set _tmpLbl = $NPCArray.find(npc => npc.dna == $currDNA).firstName + "'s">>
<<else>>
<<set _tmpLbl = 'your'>>
<</if>>
<b>It's _tmpLbl turn</b>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<getPoolActions>>
</div>
<<timed 0s>>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 11>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Time to go" "RLDistrict">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</if>>
<</timed>><<widget "getPoolText">>
<<switch $poolFilter>>
<<case 'Normal'>>
<<if !$currDNA or $currPlayer == $player.dna>>
<br><br>
<<switch random(1,4)>>
<<case 1>>
You lower yourself into the stance, letting your breath settle as you line up the angle. Every muscle in your arm tightens with intention as you draw the cue back in one smooth, deliberate motion.
<<case 2>>
You study the layout, tracing invisible lines across the felt until the geometry finally clicks. Your grip firms, your shoulders square, and you commit your weight to the shot like you’re stepping into a promise.
<<case 3>>
You lean in close, eyes narrowing as you fine-tune the aim by millimeters. The cue glides through your fingers with a slow, practiced rhythm, all your focus funneling into that single point of contact.
<<case 4>>
You steady your stance, feeling the table's edge press lightly against your hip as you lock onto your target. With a controlled inhale, you pull the cue back, gathering your focus as if winding a spring.
<</switch>>
<</if>>
<<case 'Sexy'>>
<<if $currDNA and $currPlayer != $player.dna>>
<br><br>
/* distract opponent */
<<if $player.presenting == 'Female'>>
<<switch random(1,4)>>
<<case 1>>
As your opponent lines up <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> shot, you lean over the table, pushing your cleavage together enticingly. Running a finger slowly along the edge of curve of your breast, you flash <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> a sultry smile, ensuring <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> focus is anywhere but on the cue ball.
<<case 2>>
You make sure you're well within <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s field of view and you strike a sexy pose, accentuating the curves of your body and givim <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> a sultry look.
<<case 3>>
Standing beside the table, you stretch your arms above your head, causing your breasts to strain against the fabric of your shirt. Twisting your body slightly, you offer <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> a tantalizing glimpse of sideboob, accompanied by a knowing wink.
<<case 4>>
As <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> sets up <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> shot, you bend over directly opposite <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, pretending to examine the layout of the balls. This angle provides <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> with an unobstructed view straight down your shirt, showcasing the enticing swell of your <<descTits $player>> tits.
<</switch>>
<<else>>
You cough loudly just as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> takes his shot.
<</if>>
<<else>>
<br><br>
<<switch random(1,4)>>
<<case 1>>
Lining up your shot, you arch your back and thrust your ass out invitingly, the tight fabric of your outfit stretching around every curve. Bending at the waist, you give anyone looking a good view down your top.
<<case 2>>
As you lean over the table to take aim, you press your breasts firmly against the green felt, squishing them together to create a deep, tantalizing valley as you take your shot.
<<case 3>>
Spreading your legs wide for stability, you bend over deep, molding your body against the pool table as you line up the cue ball.
<<case 4>>
Taking your time to set up the perfect shot, you crawl halfway onto the table, presenting your round, firm buttocks to the room. As you slide forward, your nipples graze against the cool surface, sending shivers of pleasure coursing through your body.
<</switch>>
<</if>>
<</switch>>
<</widget>>
<<widget "getPoolImage">>
<<set _tmpImg = 'Media/Locations/RedLight/DiveBar/Billiards/'>>
<<if $currDNA and !$playerBalls>>
/* return racking image */
<<else>>
<<if !$currDNA or $currPlayer == $player.dna or $poolFilter == 'Sexy'>>
<<if $player.presenting == 'Female'>>
<<if $currDNA and $currPlayer != $player.dna>>
<<set _tmpImg += 'Distract/F/'>>
<<if $player.body.tits < 13>>
<<set _tmpImg += random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += 'ZCups/' + random(1,3) + '.webp'>>
<</if>>
<<else>>
<<genFit $player.outfit.fit>>
<<if $player.expo < 3 or $poolFilter == 'Normal'>>
<<set _tmpImg += 'Normal/F/' + random(1,9) + '.webp'>>
<<else>>
<<if !['Dress','Skirt'].includes($clothingObj.stats.btm) or ($player.outfit.panties == 0 and $player.body.gender != 'Female')>>
<<set _tmpImg += 'Sexy/Tits/' + random(1,15) + '.webp'>>
<<elseif $player.outfit.panties > 0>>
<<set _tmpImg += 'Sexy/Upskirt/Panties/' + random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += 'Sexy/Upskirt/Nude/' + random(1,12) + '.webp'>>
<</if>>
<</if>>
<</if>>
<<else>>
<<set _tmpImg += 'Normal/M/' + random(1,6) + '.webp'>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender == 'Male'>>
<<set _tmpImg += 'Normal/M/' + random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += 'Normal/F/' + random(1,9) + '.webp'>>
<</if>>
<</if>>
<</if>>
<img @src='_tmpImg' height="500rem">
<</widget>>
<<widget "getPoolActions">>
<<if !$currDNA>>
<div class="buttonContainer">
<<button "Keep practicing" "PoolGame">>
<<set $player.statBuffs.billiards += 1>>
<<addMins 5>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stop practicing" "DirtyDicksPool">>
<<addSecs 45>>
<</button>>
</div>
<<else>>
<<if $playerBalls.length > 0 and $NPCBalls.length > 0>>
<<if $currPlayer == $player.dna>>
<div class="buttonContainer">
<<button "Focus on the shot" "PoolGame">>
<<set $poolFilter = 'Normal'>>
<<set $player.statBuffs.billiards += 1>>
<<calcShot>>
<<addMins 2>>
<</button>>
<<if $player.presenting == 'Female' and ($player.traits.includes(8) or $player.slutLevel > 1 or ($player.slutLevel > 0 and $player.expo > 0))>>
<<button "Tease <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>" "PoolGame">>
<<set $poolFilter = 'Sexy'>>
<<set $NPCPoolSkill -= $NPCPoolSkill*.10>>
<<calcShot>>
<<addMins 2>>
<</button>>
<</if>>
</div>
<<else>>
<div class="buttonContainer">
<<button "Let <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> play" "PoolGame">>
<<set $poolFilter = 'Normal'>>
<<addMins 2>>
<<calcShot>>
<</button>>
<<if $player.traits.includes(8) or $player.slutLevel > 1 or ($player.slutLevel > 0 and $player.expo > 0)>>
<<button "Distract <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>" "PoolGame">>
<<set $poolFilter = 'Sexy'>>
<<calcShot>>
<<addMins 2>>
<</button>>
<</if>>
</div>
<</if>>
<<else>>
<<timed 0s>>
<<replace "#actionsContainer">>
<div class='buttonContainer'>
<<button "Step back from the table" "DirtyDicksPool">>
<<addMins 1>>
<<billiardsPowerDown>>
<</button>>
</div>
<</replace>>
<</timed>>
<</if>>
<</if>>
<</widget>>
<<widget 'calcShot'>>
/*
Calculate the outcome of a pool shot for the current player
Returns shot result object:
{
success: boolean,
outcome: 'sink' | 'scratch' | '8ballViolation' | 'miss',
ballSunk: number (if applicable),
skillFactor: number (applied difficulty factor)
}
*/
/*-- Determine shooter and their skill level --*/
<<if $currPlayer == $player.dna>>
<<set _shooterSkill = $player.skills.billiards>>
<<set _isPlayerShot = true>>
<<set _shooterBalls = $playerBalls>>
<<else>>
<<set _shooterSkill = $NPCPoolSkill>>
<<set _isPlayerShot = false>>
<<set _shooterBalls = $NPCBalls>>
<</if>>
/*-- Apply filter modifier (Sexy filter reduces opponent skill) --*/
<<if $poolFilter == 'Sexy'>>
<<if !_isPlayerShot>>
<<set _shooterSkill *= (1-$player.beautyScore/10)>>
<</if>>
<</if>>
/*-- Normalize skill to percentage (0-100 becomes 0-1 success range) --*/
<<set _baseSuccessChance = Math.min(100, _shooterSkill) / 100>>
/*-- Roll for shot outcome --*/
<<set _shotRoll = Math.random()>>
/*-- Determine outcome --*/
<<set $shotResult = {}>>
<<if _shotRoll < _baseSuccessChance>>
/*-- Successful contact: decide what gets sunk --*/
<<set _contactRoll = Math.random()>>
<<if _contactRoll < 0.2>>
/*-- chance to scratch (cue ball in pocket) --*/
<<set $shotResult.outcome = 'scratch'>>
<<set $shotResult.success = false>>
<<elseif _contactRoll < 0.6 and _shooterBalls.length > 0 and _shooterSkill < 50>>
/*-- chance to sink 8 ball out of line (if it hasn't been shot yet) --*/
<<set $shotResult.outcome = '8ballViolation'>>
<<set $shotResult.success = false>>
<<set $shotResult.ballSunk = 8>>
<<else>>
/*-- Sink one of assigned balls --*/
<<if _shooterBalls.length > 0>>
<<set _ballIndex = random(0, _shooterBalls.length - 1)>>
<<set $shotResult.ballSunk = _shooterBalls[_ballIndex]>>
<<set _shooterBalls.deleteAt(_ballIndex)>>
<<set $shotResult.outcome = 'sink'>>
<<set $shotResult.success = true>>
<<else>>
/*-- All balls cleared, could sink 8 ball (end game) --*/
<<set $shotResult.outcome = 'sink'>>
<<set $shotResult.ballSunk = 8>>
<<set $shotResult.success = true>>
<</if>>
<</if>>
<<else>>
/*-- Missed the shot --*/
<<set $shotResult.outcome = 'miss'>>
<<set $shotResult.success = false>>
<</if>>
<</widget>>
<<widget "billiardsPowerDown">>
<<purgeNPC $currDNA>>
<<unset
$shotResult;
$playerBalls;
$NPCBalls;
$NPCPoolSkill;
$poolFilter;
$currDNA;
$currPlayer;
>>
<</widget>><<set
$npc_0.relationship = 1;
$npc_0.knowsPlayer = true;
>>
<center>
<span id="repCont">
<img src="Media/Characters/Static/FTeller/mask.webp" height="450rem">
<br><br>
Something about her seems familiar but you can't quite place where you've seen her before.
<br><br>
The old woman feigns offense at your lack of recognition but then smiles as words, not your own, form in your mind
<br><br>
<i>Here, Lost One, maybe this will remind you.</i>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 45>>
<<replace "#repCont">>
<video autoplay loop src="Media/Characters/Static/FTeller/morph.mp4" height="450rem"></video>
<br><br>
Her wrinkled face smooths out and her body seamlessly shifts into that of a much more vibrant and younger woman.
<br><br>
<span class="badText">The last time you saw anyone shift like that was when you met the Fortune Teller back at the Carnival!</span>
<br><br>
<i>It is time you uphold your end of the bargain, Lost One</i>
<</replace>>
<<replace "#actionsContainer">>
<div class ="buttonContainer">
<<button "Demand answers" "FTExpo">>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><center>
<span id="repCont">
<img src="Media/Characters/Static/FTeller/profile2.webp" height="450rem">
<br><br>
You stammer for a bit - confused on where to begin. What bargain? What did she do to you...<b>how</b> did she do it? The list goes on.
<br><br>
<i>Hush, such trivial matters are of no concern. The deal has been struck. I gave you what you wanted - at great cost to myself. Now you must give me what <b>I</b> want.</i>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "And what is that?">>
<<replace "#repCont">>
<img src="Media/Characters/Static/FTeller/profile2.webp" height="450rem">
<br><br>
<i>You will perform tasks for me - fetch items, run errands, whatever it is I need of you. You will not refuse me in this, Lost One.</i>
<br><br>
<<genRelicQuest>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Agree">>
<<if !$NPCArray.some(npc => npc.dna == $npc_0.dna)>>
<<run $NPCArray.push($npc_0)>>
<</if>>
<<set $player.phone.contacts.push($npc_0.dna)>>
<<set $player.phone.inbox.push({txtNPC: $npc_0.dna, log: [], new: false, code: ''})>>
<<replace "#repCont">>
<img src="Media/Characters/Static/FTeller/profile2.webp" height="450rem">
<br><br>
<i>$relicObj.FTDialog</i>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue" "FTPathDescription">>
<<addSecs 20>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button 'Refuse'>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<switch $relicQuest.path>>
<<case "Jerry">>
<div class="profileContainer">
<div>
<img @src="$npc_6.image" height="450rem">
</div>
<div>
She waves her hand and an image appears on your phone.
<br><br>
<i>His name is $npc_6.firstName and he hangs out almost exclusively at the beach, so that's where you'll find him.</i>
<br><br>
<i>Get to this man, get what I want, and get it back to me.</i>
<<if $npc_6.knowsPlayer>>
<br><br>
<div class="badText">You try to hide any expression on your face that would alert her to the fact that you already know $npc_6.firstName.</div>
<</if>>
<<if $unknownLocs and $unknownLocs.some(item => item[1] === 'Beach')>>
<<set _tmpLoc = $unknownLocs.find(item => item[1] === 'Beach')>>
<<set $unknownLocs = $unknownLocs.filter(item => item != _tmpLoc) >>
<<run $knownLocs.push(_tmpLoc)>>
<br><br>
<div class="goodText">You've learned how to get to the Beach</div>
<</if>>
</div>
</div>
<</switch>>
<hr>
<div id ="actionsContainer">
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<addSecs 20>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img src="Media/Characters/Static/FTeller/profile2.webp" height="450rem">
</div>
<div>
<i>Hello again, Lost One. I have another job for you.</i>
</div>
</div>
<hr>
<div id="actionsContainer">
<<if $player.questTracker.some(item => item.idx === 'ArousalTF') and 1 > 2>>
<div class="buttonContainer">
<<button "Continue">>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "Hear her out">>
<<goto "FTPathDescription">>
<<genRelicQuest>>
<<addSecs 30>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline">>
<</button>>
</div>
<</if>>
</div><span id="repCont">
<div class="profileContainer">
<div>
<img @src="$npc_0.image" height="450rem">
</div>
<div>
<i>Welcome, Lost one. I sense you are ready to make a decision.</i>
<br><br>
<i>Take my hand and I will lead you to your true self</i>
</div>
</div>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Take her hand">>
<<replace "#repCont">>
<center>
<img src="Media/Dreams/Gender/2.webp" height="600rem">
<br><br>
As soon as your hand comes into contact with hers you are overwhelmed with vertigo and everything spins around you like a merry-go-round and you drop to your feet as the world fades to black.
<br><br>
The last words you hear are: <i>Arise, my child, and be lost no more</i>
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Wake up" "Wakeup">>
<<set _tmpNPC = new Person(random($player.age,$player.age),'Female')>>
<<set _skipKeys = ['virgin','tits','hips','ass','lips','eyes','height','outfit','race','length','color','eyeColor','weight','bodyFat','bodyType','strength','skin','skinTone']>>
<<run bodyMorph(_tmpNPC,$player,_skipKeys)>>
<<refreshCaption>>
<<set $groinRx = true>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Shake your head">>
<<replace "#repCont">>
You feel a bone-chilling frost settle into your bones and the very air around you feels frozen - but her smile doesn't change.
<br><br>
<i>Perhaps you are not as advanced as I had hoped. Another time them, Lost one.</i>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Wake up" "Wakeup">><</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Slap her hand away">>
<</button>>
</div>
</div><<run $player.questLog.removeQuest('ReturnRelic')>>
<center>
<span id="repCont">
<img src="Media/Characters/Static/FTeller/nightVisit.webp" height="600rem">
<br><br>
Suddenly you're wide awake, though you're not certain what exactly it was that woke you up. But you quickly realize you're not alone -- someone is in the room staring at you.'
<br><br>
<i>Lost One, you called and I have arrived. Deliver to me what is mine.</i>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Pick a relic">>
<<if $player.outfit.relic.idx === 0>>
<<replace "#repCont">>
<<for _rowIndex to 0; _rowIndex < $player.relics.length; _rowIndex++>>
<<capture _rowIndex>>
<<genRelic $player.relics[_rowIndex]>>
<span @id="$player.relics[_rowIndex]">
[img[relics|$relicObj.image][FTTradeIn][$pickedRelic = $player.relics[_rowIndex]]]
</span>
<</capture>>
<</for>>
<</replace>>
<<else>>
<<goto "ForcedRelicReturn">>
<</if>>
<</button>>
</div>
</div><center>
<img src="Media/Characters/Static/FTeller/eyeFlash.webp" height="600rem">
<div class="badText">
Suddenly her already eyes flash with a frightening intensity and the air curdles around you. In an instant, she's next to you with her cold bony hand wrapped like a steel vice around your throat.
</div>
<br>
<i>You meddle in affairs you do not comprehend, lost one. Let me relieve you of your burden</i>
<br><br>
<<genRelic $player.outfit.relic.idx>>
You feel a burning sensation where the $relicObj.name touches your skin and then suddenly it appears in her hand. A moment later she's gone, leaving nothing but a fading sting where she gripped your throat.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContianer">
<<button "Continue">>
<<run $player.relics.delete($player.outfit.relic.idx)>>
<<if !$npc_0.relics>>
<<set $npc_0.relics = [$player.outfit.relic.idx]>>
<<else>>
<<run $npc_0.relics.push($player.outfit.relic.idx)>>
<</if>>
<<set $player.outfit.relic.idx = {idx: 0, dose: 0}>>
<<goto $bedLoc>>
<</button>>
</div>
</div><<run $player.relics.delete($pickedRelic)>>
<<if !$npc_0.relics>>
<<set $npc_0.relics = [$pickedRelic]>>
<<else>>
<<run $npc_0.relics.push($pickedRelic)>>
<</if>>
<center>
<img src="Media/Characters/Static/FTeller/nightVisit.webp" height="600rem">
<br><br>
She smiles down at the object as she plays her fingers across its surface, as if it's a long lost treasured item she never expected to see again. Eventually she tucks it away into the folds of her clothes and focuses her attention back on you.
<br><br>
<i>Now, since you were a dutiful servant I will offer you a reward. You can ask me a question, or I can give you a boon. Which will it be, Lost One?</i>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Answers">>
<</button>>
</div>
<div class="buttonContainer">
<<button "A boon">>
/*
ability to change someone's gender
<br><br>
ability to change one thing about yourself
<br><br>
untold riches
*/
<</button>>
</div>
</div><<widget "FortuneWaiting">>
<<if !$blockFTVisit>>
<<set $blockFTVisit = 0>>
<</if>>
<<timed 0s>>
<<if $home.district === passage()>>
<<if $currJulianDate > 2460865 and $blockFTVisit < $currJulianDate and $worldRelics.length > 0 and !($player.questLog.items.some(quest => quest.idx == 'RelicQuest')) and !($player.questLog.items.some(quest => quest.idx == 'ReturnRelic'))>>
<<replace "#repCont">>
<div class="badText">
You see
<<if $npc_0.relationship === 0>>
[[a woman|FirstVisit][$returnLoc = passage()]]
<<else>>
[[the Fortune Teller|FTCheckIn]]
<</if>>
sitting on the bench nearby smiling at you in an odd way. <<if !$npc_0.knowsPlayer>>Something about her draws your eye, she seems so familiar somehow but you're certain you've never seen her before.<</if>>
</div>
<br>
<</replace>>
<</if>>
<</if>>
<</timed>>
<</widget>>
<<widget "genRelicQuest">>
<<set _tmpRelic = $worldRelics[random(0,$worldRelics.length-1)]>>
<<set $relicQuest = $relicPaths[random(0,$relicPaths.length-1)]>>
<<genRelic _tmpRelic>>
<<set
$relicQuest.relicIdx = $relicObj.sku;
$relicQuest.relicName = $relicObj.name;
$relicQuest.level = 1;
>>
<<run $player.questLog.addQuest('RelicQuest',$relicQuest.questLog)>>
<</widget>>
<<widget "FTTextButtons">>
<<if $relicQuest and $relicQuest.level === $relicQuest.complete>>
<<button "You have the relic">>
<<set $relicQuest.level += 1>>
<<run $player.questLog.removeQuest('RelicQuest')>>
<<run $player.questLog.addQuest('ReturnRelic','You\'ve reported that you found the relic for the Fortune Teller. Now you just wait to hear from her.')>>
<<set $FTVisit = $currJulianDate + random(2,3)>>
<<disableButtons>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',"I have the $relicQuest.relicName")>>
<<addText _tmpMsg>>
<<timed 1s>>
<<replace "#repCont">>
<div class="badText">You don't get a response</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addChatLog $chatLog>>
<<unset $relicQuest>>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addChatLog $chatLog>>
<<unset $relicQuest>>
<<addSecs 3>>
<</button>>
</div>
<</replace>>
<</timed>>
<</button>>
<<else>>
<<timed 0s>>
<<replace "#repCont">>
<div class="badText">You have no reason to contact her</div>
<</replace>>
<</timed>>
<</if>>
<</widget>><div class="profileContainer">
<div>
<img @src="$npc_3.image" height="450rem">
</div>
<div>
<span id="repCont">
$npc_3.firstName frowns as he looks at your body. You know you're in trouble when he leans in closer and locks his yellowed watery eyes on yours.
<br><br>
His foul breath washes over you as splittle sprays from his lips. "I know your secret. I'll admit you had me going for a while there, but you're a man!"
</span>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Deny it instantly">>
<<replace "#repCont">>
You protest his accusation, but try to keep your voice level down so no one hears you.
<br><br>
<<if $player.questTracker.some(item => item.idx === 'FHDiscount') and $player.questTracker.find(item => item.idx === 'FHDiscount').level >= 5>>
<<if $player.questTracker.find(item => item.idx === 'FHDiscount').level === 10>>
You harshly remind him that he's even felt up your tits before. Isn't that proof enough?
<<elseif $player.questTracker.find(item => item.idx === 'FHDiscount').level > 5>>
You point out that he's even seen your tits up close. Isn't that proof enough?
<</if>>
<<else>>
You argue that Ms Scoggins would have surely stopped you from moving in if you weren't a woman.
<</if>>
<br><br>
But clearly $npc_3.firstName isn't convinced. "If you don't want me to report you, you'll do as I say. Come back around here and strip nude for me - so I can verify."
<br><br>
<<if $player.sub > 50 and $player.slutLevel < 2>>
<<if $player.body.gender === 'Female'>>
You squirm under his commanding order and your cheeks burn with shame at the thought. But it would be over and this would be behind you. Is it worth it?
<<else>>
If you strip in front of him he'll know the truth, but if you refuse he'll report you for sure - what's the right choice?
<</if>>
<<elseif $player.slutLevel > 2>>
<<if $player.body.gender === 'Female'>>
Might be kind of fun to strip for him...and all he wants to do is look, right?
<<else>>
Might be kind of fun to strip for him...if nothing else just to see the look on his face when you let your cock pop free.
<</if>>
<<else>>
<div class="badText">
There's no way you could do that! You have no choice but to let him report his suspicion and hope you get a better deal from Ms. Scoggins.
</div>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $player.sub > 50 or $player.slutLevel > 2>>
<<button "Agree to strip for him" "JeffStrip">>
<<addMins 2>>
<</button>>
<<else>>
<<button "Refuse">>
<<replace "#repCont">>
$npc_6.firstName smirks as if you confirmed everything he assumed. "Then I'll just go get Ms. Scoggins, shall I then?"
<br><br>
Without waiting for an answer he presses the call button to summon the Director.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "FairhavenLobby">>
<<if !$FHReport>>
<<set $FHReport = ['ManSus']>>
<<else>>
<<run $FHReport.push('ManSus')>>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<<if $player.body.gender !== 'Female'>>
<div class="buttonContainer">
<<button "Offer to move out">>
<<replace "#repCont">>
<<run $player.questLog.removeQuest('ManSus')>>
<<set $player.questTracker = $player.questTracker.filter(item => item.idx !== 'ManSus')>>
$npc_3.firstName raises his eyebrows as if he didn't expect it to be that easy. But he nods his head one single time. "Done. Get the fuck out of here."
<br><br>
<b>You are no longer a resident at Fairahaven.</b>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Step back" "FairhavenLobby">>
<<moveOut 'Fairhaven'>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Hesitate">>
<<replace "#repCont">>
His eyes narrow as he studies your appearance, now convined more than ever that you're not really a woman.
<br><br>
$npc_6.firstName smirks as if you confirmed everything he assumed. "Well, we'll just see what Ms. Scoggins has to say about all of this."
<br><br>
Without waiting for a response he presses the call button to summon the Director.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "FairhavenLobby">>
<<if !$FHReport>>
<<set $FHReport = ['ManSus']>>
<<else>>
<<run $FHReport.push('ManSus')>>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Wardrobe/Strip/'>>
<<if $player.presenting === 'Female'>>
<<if !$player.body.womb or !$player.body.womb.showPreg>>
<<set _tmpImg += 'F/Indoors/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpImg += 'F/Indoors/Preg/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/Indoors/' + random(1,1) + '.mp4'>>
<</if>>
<<calcArousal 'strip' $player.exhib/10 2>>
<center>
<span id="repCont">
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<br><br>
After moving into the supply closet you strip out of your clothes and let $npc_6.firstName look at your body.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<calcArousal 'flash' $player.exhib/10 2>>
<<refreshCaption>>
<<replace "#repCont">>
<<set _tmpImg = 'Media/Misc/Inspection/'>>
<<if $player.body.gender === 'Female'>>
<<if $player.inhib > 50>>
<<set _tmpImg += 'F/Shy/' + random(1,2) + '.webp'>>
<<elseif $player.slutLevel < 2>>
<<set _tmpImg += 'F/Mid/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Slutty/' + random(1,10) + '.webp'>>
<</if>>
<<elseif $player.body.gender === 'Trans'>>
<<if $player.inhib > 50>>
<<set _tmpImg += 'T/Shy/' + random(1,4) + '.webp'>>
<<elseif $player.slutLevel < 2>>
<<set _tmpImg += 'T/Mid/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'T/Slutty/' + random(1,7) + '.webp'>>
<</if>>
<<else>>
<<if $player.inhib > 50>>
<<set _tmpImg += 'M/Shy/' + random(1,1) + '.webp'>>
<<elseif $player.slutLevel < 2>>
<<set _tmpImg += 'M/Mid/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/Slutty/' + random(1,1) + '.webp'>>
<</if>>
<</if>>
<img @src='_tmpImg' height="600rem">
<br><br>
<<if $player.body.gender === 'Female'>>
<<if $player.inhib > 50>>
<<if $player.slutLevel >= 2>>
/* shy but ok */
<<switch random(1,3)>>
<<case 1>>
His eyes rake over your naked form, cold and calculating, missing no detail. Mortification burns through you, heating your skin and quickening your breath. This is so wrong, so utterly demeaning...yet as his gaze lingers on your most private places, a tiny spark ignites deep within your core. What is happening to you? Why does being ogled like a piece of meat send tingles racing up your spine?
<<case 2>>
You shiver under the harsh glare of the overhead lights, goosebumps prickling your skin as $npc_6.firstName surveys your naked form with detached interest. Embarrassment courses through you, mingling unexpectedly with exhilaration. Never before have you felt so seen, so thoroughly examined. It's terrifying...and strangely titillating.
<<case 3>>
As $npc_6.firstName inspects your bare body, a confusing cocktail of emotions swirl inside you - shame, fear, and an inexplicable thrill. His assessing gaze sends waves of heat through your veins, intensifying the ache between your legs. You're horrified yet fascinated by these newfound desires, secretly craving his approval and control.
<</switch>>
<<else>>
/* shy and hates it */
<<switch random(1,3)>>
<<case 1>>
$npc_6.firstName looms over you, drinking in the sight of your nude body like a predator surveying its prey. Goosebumps prickle your skin as the cool air kisses your exposed flesh, heightening your awareness of just how defenseless you truly are.
<<case 2>>
You shiver uncontrollably, the chill in the room seeping into your bones along with the creeping dread of what's to come. $npc_6.firstName's dead eyes bore into you, stripping away what little remains of your modesty and self-respect. Each sweep of his gaze feels like a physical violation, leaving you raw and exposed. Tears threaten to spill down your cheeks as you fight the overwhelming urge to flee, to escape this nightmare scenario.
<<case 3>>
ou stand there, naked and shivering, under the harsh fluorescent lights. $npc_6.firstName's eyes crawl over your body like insects, examining every curve and crevice with ruthless efficiency. Humiliation colors your cheeks as he takes in the full scope of your exposure - the pertness of your breasts, the softness of your stomach, the vulnerable juncture between your thighs.
<</switch>>
<</if>>
<<elseif $player.slutLevel < 2>>
/* ok with it */
<<switch random(1,3)>>
<<case 1>>
As $npc_6.firstName's gaze lingers on your naked form, you feel a familiar sense of detachment wash over you. It's as if you're watching the scene unfold from outside your own body, observing the proceedings with clinical indifference.
<<case 2>>
You stand stoically as Jeffory conducts his thorough examination, his eyes boring into you with unnerving intensity. Despite the intrusive nature of his inspection, you maintain an outward calm. This might by unpleasant, but there are worse things to experience.
<<case 3>>
$npc_6.firstName's scrutinizing gaze sweeps over your naked body, taking in every inch of exposed skin with calculated precision. Though the experience is undeniably unpleasant, you've grown accustomed to these types of inspections, viewing them as a necessary evil in your current situation.
<</switch>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
You stand before Jeffory, completely naked, your body tingling with anticipation as his eyes drink in every inch of your exposed flesh. The way he looks at you, like a starving man presented with a feast, sends shivers of excitement racing up your spine.
<<case 2>>
As $npc_6.firstName circles you slowly, his eyes roaming over your nude form with unabashed hunger, you feel a thrill of exhilaration course through your veins. Being ordered to strip, to present yourself for his inspection, awakens something primal within you. A deep, insatiable need to be wanted, to be desired above all else. You arch your back subtly, thrusting your breasts forward, silently inviting him to take a closer look.
<<case 3>>
You tremble slightly as Jeffory's gaze bores into you, devouring every curve and contour of your naked body. The intensity of his stare sends jolts of electricity straight to your core, stoking the fires of your lust higher and hotter.
<</switch>>
<</if>>
<<else>>
<<if !$FHReport>>
<<set $FHReport = ['ManSus']>>
<<else>>
<<run $FHReport.push('ManSus')>>
<</if>>
$npc_6.firstName recoils as if a snake jumped out and bit him. He scrambles back out of the room and heads strait toward Ms. Scoggins office.
<br><br>
But really, what did you expect to happen?
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Get Dressed and leave" "FairhavenLobby">>
<<calcSexStats>>
<<set $npc_6.knowsGender = true>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<widget "checkJefforySus">>
<<if $player.presenting === 'Female' or $npc_6.knowsGender or $player.questTracker.some(item => item.idx === 'FairhavenCover')>>
<<if $player.questTracker.some(item => item.idx === 'ManSus')>>
<<set $player.questTracker = $player.questTracker.filter(qst => qst.idx !== 'ManSus')>>
<<run $player.questLog.removeQuest('ManSus')>>
<</if>>
<<else>>
<<if $player.presenting === 'Male'>>
<<if !$player.questTracker.some(item => item.idx === 'ManSus')>>
<<run $player.questTracker.push({idx: 'ManSus',level:1,lastSus: clone($gameDate)})>>
<</if>>
<<set _susQuest = $player.questTracker.find(item => item.idx === 'ManSus')>>
<<if Math.abs(_susQuest.lastSus.getHours()-$gameDate.getHours()) > 12>>
<<set _susQuest.lastSus = clone($gameDate)>>
<<set _susQuest.level += 1>>
<</if>>
<<timed 0s>>
<<if _susQuest.level < 10>>
<<prepend "#repCont">>
<b>$npc_3.firstName looks at you suspiciously as you walk by.</b>
<br><br>
<</prepend>>
<<elseif _susQuest.level < 15>>
<<prepend "#repCont">>
<font color="orange"><b>You can feel $npc_3.firstName's eyes burning into you, as if he's trying to study your body through your clothes. He's definitely starting to get suspicious of you...</b></font>
<br><br>
<</prepend>>
<<else>>
<<prepend "#repCont">>
<<if !$player.questLog.items.some(quest => quest.idx == 'ManSus')>>
<<set _tmpLbl = 'You need to find a way to look more feminine or $npc_3.firstName will cause trouble at Fairhaven.'>>
<<if $player.questTracker.some(item => item.idx === 'CostumeShoppe')>>
<<set $player.questTracker = $player.questTracker.filter(item => item.idx !== 'CostumeShoppe')>>
<<set _tmpLbl += ' Didn\'t someone say something about a costume shop in the Red Light District?'>>
<</if>>
<<run $player.questLog.addQuest('ManSus',_tmpLbl)>>
<</if>>
<div class="badText">$npc_3.firstName is openly staring at you now, his eyes raking over your body in a way that makes you extremely uncomfortable.</div>
<b>
You better do something to throw him off your case or you may be getting some <b>very</b> unwanted attention...
</b>
<br><br>
<</prepend>>
<</if>>
<</timed>>
<</if>>
<<if _susQuest and _susQuest.level >= 20>>
<<timed 0s>>
<<replace "#repCont">>
<div class="badText">$npc_3.firstName waves you over to his desk, his expression gloomy even for him. He eyes slide distatefully down your body and you can feel in your stomach what this is about.</div>
<</replace>>
<<replace "#NPCCont">>
<<purgeNPCLocation 'FairhavenLobby'>>
<<set _tmpLocAr =['FairhavenLobby']>>
<<addNPC $npc_3 _tmpLocAr 'JerrySusOMeter'>>
<<getCurrNPCs 'FairhavenLobby'>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContianer">
<<button 'Front Desk' 'JerrySusOMeter'>>
<</button>>
</div>
<</replace>>
<</timed>>
<</if>>
<</if>>
<</widget>><<if !$npc_6.knowsPlayer>>
<<set
$npc_6.relationship = 1;
$npc_6.knowsPlayer = true;
>>
<</if>>
<span id="repCont">
<div class="profileContainer">
<div>
<img @src="$npc_6.image" height="450rem">
</div>
<div>
<<if !$npc_6.knowsPlayer>>
<<set _dateOffer = true>>
<<set
$npc_6.relationship = 1;
$npc_6.knowsPlayer = true;
>>
As you finish getting dressed a man walks up and introduces himself as $npc_6.firstName; one of the judges of the contest.
<br><br>
<<if $WTCWinner>>
"Hey there. I wanted to congratulate you on your win!" he says, his eyes never venturing far above your chest.
<br><br>
"Let me buy you a drink in celebration?"
<<else>>
"Tough break, I think you're totally hot AF. And just so you know: I voted for you."
<br><br>
"Let me buy you a drink? Some company might at least make you feel better!"
<</if>>
<<else>>
As you finish getting dressed $npc_6.firstName drops by backstage
<br><br>
<<if $WTCWinner>>
"Hey there. I wanted to congratulate you on your win!" he says, his eyes never venturing far above your chest.
<<else>>
"Tough break, I think you're totally hot AF. And just so you know: I voted for you."
<</if>>
<br><br>
"I'm off the clock; come over to my house with me, we can have a few drinks and forget all about this stupid contest."
<</if>>
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level >= 1>>
<br><br>
<div class="goodText">This could be your chance to find the $relicQuest.relicName!</div>
<</if>>
</div>
</div>
</span>
<hr>
<div id="actionsContainer">
<<if $dateOffer>>
<div class="buttonContainer">
<<button "Agree to have a drink">>
<</button>>
</div>
<<if ($relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 2) or ($player.slutLevel > 3 or (['Bisexual','Male'].includes($player.prefs.gender) and ($player.slutLevel > 2 or $player.arousal > 40)))>>
<<button "Ask if he wants to skip the drinks">>
<<replace "#repCont">>
some kind of flirty f-on-m seduction scene
<br><br>
he of course agrees
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Go home with $npc_6.firstName" "JerryWalkHome">>
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level < 2>>
<<set $relicQuest.level = 3>>
<</if>>
<<set $jerrySex = true>>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Maybe another time">>
<<replace "#repCont">>
sure thing, sweet thing. Here's my #
<br><br>
you exchange contact info
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "Beach">>
<<set $player.phone.contacts.push($npc_6.dna)>>
<<set $player.phone.inbox.push({txtNPC: $npc_6.dna, log: [], new: false, code: ''})>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<else>>
<div class="buttonContainer">
<<button "Go home with $npc_6.firstName" "JerryWalkHome">><
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level < 3>>>
<<set $relicQuest.level = 3>>
<</if>>
<<set $jerrySex = true>>
<<addMins 5>>
<</button>>
</div>
<</if>>
<<if !$relicQuest or ($relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level > 3)>>
<div class="buttonContainer">
<<button "Decline" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
<</if>>
</div><<set $relicQuest.level = 2>>
<<run $player.questLog.addQuest('RelicQuest','The Fortune Teller\'s target, $npc_6.firstName, is a trainer at Muscle Beach Gym and a judge at the wet T-shirt contest -- one of those will be your way in.')>>
<center>
<img src="Media/Characters/Static/Jerry/gym1.webp" height="600rem">
<br><br>
As you get closer, pretending to be checking out the gym's equipment, you can hear $npc_6.firstName talking to some of the other guys.
<br><br>
"I just got picked to be a judge at the wet T-shirt contest, can you believe? Getting to watch a bunch of slutty chicks dance around for me and then rate them? I'm built for that job! I might even quit being a trainer here I'll be getting such a good work out fucking all them cum bunnies!"
<br><br>
<b>He works as a trainer here at the gym, that might be a way to approach him if you've got the guns for it. He's also a judge at the wet t-shirt contest...that might be an alternate approach if necessary.</b>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Approach $npc_6.firstName" "JerryGymChat">>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step back" "BeachGym">>
<<addSecs 5>>
<</button>>
</div>
</div><<set $relicQuest.level = 2>>
<<run $player.questLog.addQuest('RelicQuest','The Fortune Teller\'s target, $npc_6.firstName, is a trainer at Muscle Beach Gym and a judge at the wet T-shirt contest -- one of those will be your way in.')>>
<center>
<img src="Media/Characters/Static/Jerry/gym1.webp" height="600rem">
<br><br>
As you get closer, pretending to just be trying to get closer to the stage, you can hear $npc_6.firstName talking to a group of attractive young women.
<br><br>
"I'm a judge in the contest, you know," he says. "And when I'm not volunteering at public charity events like this I'm a trainer over at Muscles Gym." He flexes his massive arms as he says this last part, clearly impressed with this own physique.
<br><br>
<div class="badText">He's a judge in the wet t-shirt contest; could you use that information in some way? But he also works as a trainer at the gym, that might be a way to approach him if you've got the guns for it.</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Approach $npc_6.firstName" "JerryBeachChat">>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step back" "WetTShirtContest">>
<<addSecs 5>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_6.image" height="450rem">
</div>
<div>
<span id="repCont">
<<if !$npc_6.knowsPlayer>>
<<set $npc_6.knowsPlayer = true>>
<<if $player.presenting === 'Male'>>
"What do you want, small fish? Only big boys are allowed to play here" he sneers at you as you approach.
<<elseif $player.beautyScore > 3>>
"Hey there, honey." he purrs at you in an obvious attempt to seem smooth. "I'm $npc_6.firstName. Can I do you - I mean do anything for you?"
<<else>>
He toss his head back in a brief nod. "Sup. I'm $npc_6.firstName."
<</if>>
<<else>>
<<if $npc_6.relationship <= 2>>
He looks at you blankly when you walk up and say hi as if he doesn't know you. You remind him that you've meet before and he finally nods and smiles, but you can tell he doesn't know what you're talking about.
<<else>>
"Oh hey, $player.firstName." he says when you approach but his attention quickly returns to his reflection in the mirror.
<</if>>
<</if>>
<br><br>
<<if $relicQuest and $relicQuest.path === 'Jerry'>>
<b>You need to figure out how to get close enough to steal the $relicQuest.relicName from him.</b>
<</if>>
</span>
</div>
</div>
<hr>
<div id="actionsContainer">
<<if !$beachGymBody>>
<div class="buttonContainer">
<<button "Ask about joining the gym">>
<<replace "#repCont">>
<<if $player.presenting === 'Male'>>
$npc_6.firstName laughs and claps you on the back, "I like you, small fish, you got balls. Tell you what -- if you can bench more than me I'll sponsor you here, OK?"
<<else>>
"You can't workout here unless you have a sponsor." he says in a deadpan voice in what must be his 'I'm a big serious man' demeanor.
<<if $npc_6.sexTimes > 0>>
<<set _tmpSexOffer = true>>
<br><br>
He smiles as he steps closer and lets his hand fall to your hip "How about we go back to my place for a quick trial workout? If you can handle it then you'll get your sponsorship."
<</if>>
<br><br>
<<if $player.beautyScore > 6 and $npc_6.sexTimes === 0 and $npc_6.relationship < 10>>
<<set _tmpDateOffer = true>>
His eyes travel up and down your body, not even trying to hide that he's mentally undressing you. "Tell you what, honey. Go on a date with me and I'll sponsor you. Deal?"
<<else>>
"Tell you what, if you can impress me with how much you can bench I'll sponsor you. Sound like a deal?"
<</if>>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if _tmpDateOffer>>
<<button "Agree to a date">>
<<replace "#repCont">>
"Great. how about tomorrow night, say 7pm?"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Agree">>
<</button>>
<<button "Suggest a different time">>
<</button>>
</div>
<div class="buttonContainer">
<<button "Skip for now - dates WIP" "BeachGym">>
<</button>>
</div>
<</replace>>
<</button>>
<<if $player.dom > 50>>
<<button "Challenge him to a contest instead">>
<<replace "#repCont">>
$npc_6.firstName laughs and claps his hands together, "I like you, beauty and balls! A dangerous combination. Tell you what -- if you can bench more than me I'll sponsor you here, OK?"
<</replace>>
<<replace "#actionsContainer">>
<<button "Accept his challenge">>
<<goto "JerryChallenge">>
<<addMins 2>>
<</button>>
<</replace>>
<</button>>
<</if>>
<<elseif _tmpSexOffer>>
<<button "Accept his challenge">>
<<replace "#repCont">>
walking pic
<br><br>
you walk to his nearby home together.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "JerryHome">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Accept his challenge">>
<<goto "JerryChallenge">>
<<addMins 2>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Step back" "BeachGym">>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Chat with $npc_6.firstName">>
<<set $npc_6.knowsPlayer = true>>
<<set $returnLoc = 'BeachGym'>>
<<set $currDNA = $npc_6.dna>>
<<set $sceneSpecialLoc = 'JerrySexOffer'>>
<<goto "ChitChat">>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<if $npc_6.relationship >= 15 or ($player.beautyScore > 5 and $player.presenting === 'Female' and $npc_6.sexTimes > 0)>>
<<button "Ask about a private workout">>
<<replace "#repCont">>
He smiles wide and drops his weights to the mat with a thud, "Oh, hells yeah. Let's go right now!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Follow him to his house" "JerryHome">>
<<addMins 10>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Step back" "BeachGym">>
<<addSecs 5>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_6.image" height="450rem">
</div>
<div>
<span id="repCont">
<<if !$npc_6.knowsPlayer>>
<<set $npc_6.knowsPlayer = true>>
<<if $player.presenting === 'Female'>>
He tosses his head back in a brief nod. "Sup. I'm $npc_6.firstName."
<<else>>
"You need something, bro?" he sneers at you as you approach. "I'm a judge here so I'm pretty busy."
<</if>>
<<else>>
<<if $npc_6.relationship <= 2>>
He tosses his head back in a brief nod.
<<else>>
"Oh hey, $player.firstName." he says when you approach,<<if $player.presenting === 'Female' and $player.beautyScore > 3>> his eyes already undressing your body.<<else>> but his attention quickly turns away after identifying you as neither threat nor sexual prey<</if>>
<</if>>
<</if>>
<br><br>
<<if $relicQuest and $relicQuest.path === 'Jerry'>>
<b>You need to figure out how to get close enough to steal the $relicQuest.relicName from him.</b>
<br>
<div class="badText">Maybe the Wet T-shirt contest is a way to get his attention...</div>
<</if>>
</span>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContianer">
<<button "Chat with $npc_6.firstName">>
<<if $npc_6.knowsPlayer or calcAttraction($npc_6,$player)>>
<<set $returnLoc = 'WetTShirtContest'>>
<<set $currDNA = $npc_6.dna>>
<<set $sceneSpecialLoc = 'JerrySexOffer'>>
<<goto "ChitChat">>
<<else>>
<<replace "#repCont">>
$npc_6.firstName waves his hand dismissively over your face "I can't talk right now. I've got a very important job here."
<br><br>
<<if $player.presenting === 'Female'>>
<div class="badText">His focus seems to be on the girls lining up for the contest. Maybe that's how you can get his attention...</div>
<<else>>
<div class="badText">His focus seems to be on the girls lining up for the contest; and you can't compete with that kind of eye-candy.</div>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Step Back" "WetTShirtContest">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step back" "WetTShirtContest">>
<<addSecs 5>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_6.image" height="450rem">
</div>
<div>
"Nice. We'll each take turns on the bench till one of us can't lift the bar. Let's do this!" He says, flexing so his veins stand out for a moment as he yells.
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "JerryBenchLoop">>
<<set
$currBencher = $npc_6;
$benchWeight = 50
>>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<<if $currBencher.dna === $player.dna>>
<<workoutPic "Weights">>
<br><br>
<<if 4*$player.strength > $benchWeight>>
<<if 4*$npc_6.strength <= $benchWeight>>
<<set $jerryFail = true>>
<</if>>
You easily lift the bar off the cradle.
<<else>>
<<set $playerFail = true>>
You struggle to lift the bar even an inch but eventually have to sag back in defeat.
<</if>>
<<else>>
<<set _tmpImg = "Media/Exercise/Bench/Indoors/Clothed/M/" + random(3,6) + '.webp'>>
<img @src="_tmpImg" height="500rem">
<br><br>
<<if 4*$npc_6.strength > $benchWeight>>
$npc_6.firstName easily benches the bar.
<<else>>
$npc_6.firstName struggles with the heavy load until his face turns bright red but eventually he sags back against the bench and his arms drop down to his sides.
<</if>>
<</if>>
<br><br>
Current weight: $benchWeight lbs.
</center>
<<set _tmpLocArr = ['JerryBenchLoop']>>
<<addNPC $npc_6 _tmpLocArr ''>>
<<getCurrNPCs 'JerryBenchLoop'>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $jerryFail>>
<<button "You win!" "JerryPostContest">>
<<addSecs 45>>
<</button>>
<<elseif $playerFail>>
<<button "You lose!""JerryPostContest">>
<<addSecs 45>>
<</button>>
<<else>>
<<if $currBencher.dna === $player.dna>>
<<set _tmpLbl = '$npc_6.firstName\'s'>>
<<else>>
<<set _tmpLbl = 'Your'>>
<</if>>
<<button "_tmpLbl turn" "JerryBenchLoop">>
<<if $currBencher.dna === $player.dna>>
<<set
$currBencher = $npc_6;
$benchWeight += ($benchWeight + 50).clamp(50,4*$player.strength)
>>
<<else>>
<<set
$currBencher = $player;
>>
<</if>>
<</button>>
<</if>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_6.image" height="450rem">
</div>
<div>
<span id="repCont">
<<if $jerryFail>>
<<if $npc_6.relationship < 5>>
<<set $npc_6.relationship = 5>>
<</if>>
/* Jerry loses */
<<if $relicQuest and $relicQuest.path === 'Jerry'>>
<<run $player.questLog.addQuest('RelicQuest','You have an in with $npc_6.firstName, all you need to do now is go to his home and search for the relic.')>>
<<set $relicQuest.level = 3>>
<</if>>
<<set $beachGymBody = true>>
<<set $jerryContestWinner = true>>
$npc_6.firstName laughs and claps you on the back.
<br><br>
"Nice job! It's not often I get beaten at my own gym. You're good people, $player.firstName. Tell you what, I'll definitely sponsor you here, but I also have my own personal home gym that I bet a pro like you would love to check out. What do you say?"
<br><br>
<<if $relicQuest and $relicQuest.path === 'Jerry'>>
<b>Perfect! This is exactly the sort of opportunity you need to get the $relicQuest.relicName that the Fortune Teller wants!</b>
<</if>>
<<else>>
<<if $npc_6.relationship < 3>>
<<set $npc_6.relationship = 3>>
<</if>>
/* Jerry wins */
$npc_6.firstName laughs and claps you on the back.
<br><br>
"No shame in losing to the best!" he exclaims loudly for the whole gym to hear. "You can always come challenge me again if you like!"
<</if>>
</span>
</div>
</div>
<hr>
<div id="actionsContainer">
<<if $jerryFail>>
<div class="buttonContainer">
<<button "Agree to go to his house" "JerryHome">>
<<unset $playerFail>>
<<unset $jerryFail>>
<<addMins 10>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline the offer">>
<<unset $playerFail>>
<<unset $jerryFail>>
<<set $player.phone.contacts.push($npc_6.dna)>>
<<set $player.phone.inbox.push({txtNPC: $npc_6.dna, log: [], new: false, code: ''})>>
<<replace "#repCont">>
"Oh," he says, clearly dissapointed. "Well here," he pulls his phone out and taps it against yours to exchange contact info.
<br><br>
"Hit me up for a workout sometime, I bet we could totally push each other to new limits."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "BeachGym">>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "Step back" "BeachGym">>
<<unset $playerFail>>
<<unset $jerryFail>>
<<unset $jerryContestWinner>>
<<addSecs 45>>
<</button>>
</div>
<</if>>
</div><div class="profileContainer">
<div>
<img @src="$npc_6.image" height="450rem">
</div>
<div>
<span id="repCont">
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> leans in close enough for <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> warm breath to wash against your cheek and whispers "What do you say we get out of here? Find some place quiet where we can....get to know each other."
<br><br>
<<if $relicQuest and $relicQuest.path === 'Jerry'>>
<div class="goodText">This is your chance to find the $relicQuest.relicName!</div>
<</if>>
</span>
</div>
</div>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Go home with $npc_6.firstName" "JerryWalkHome">>
<<set $relicQuest.level = 3>>
<<set $jerrySex = true>>
<<addMins 5>>
<</button>>
</div>
</div><center>
<<if $jerryContestWinner>>
<<set _tmpImg = 'Media/Characters/Static/Jerry/walkHome' +($player.presenting === 'Male'?'':'1') + '.webp'>>
<img @src="_tmpImg" height="600rem">
<br><br>
For some reason $npc_6.firstName seems to completely trust you since you're able to bench more than him. Like he thinks you can't possibly be a bad person if you're more fit than he is...weird.
<br><br>
<<else>>
<img @src="Media/Characters/Static/Jerry/jerryWalk.webp" height="600rem">
<br><br>
$npc_6.firstName tells you all about his personal workout routine as he flexes for you as you walk.
<br><br>
<</if>>
Before long the two of you arrive at his apartment near the beach.
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Continue" "JerryHome">>
<<set $jerrySexCounter = 0>>
<<addMins 5>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<center>
<img src="Media/Characters/Static/Jerry/Home/lroom1.webp" height="600rem">
<br><br>
The room is barely furnished - little more than a chair, a table, and a TV.
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 3 and !$jerryOutCold>>
<br><br>
<div class="badText">You need to distract $npc_6.firstName so you can search for the $relicQuest.relicName</div>
<<elseif $jerryOutCold and $jerryComaLoc == 'JerryHome'>>
<div class="badText">$npc_6.firstName is passed out on the floor</div>
<</if>>
</center>
<<if $jerryOutCold and $jerryComaLoc == 'JerryHome'>>
<<purgeNPC $npc_6.dna>>
<<set _tmpLocArr = ['JerryHome']>>
<<addNPC $npc_6 _tmpLocArr ''>>
<<else>>
<<if !$npc_6.awake>>
<<set _tmpLocArr = ['JerryBedroom']>>
<<else>>
<<set _tmpLocArr = ['JerryHome','JerryGym','JerryKitchen','JerryBedroom']>>
<</if>>
<<if $jerrySex>>
<<set _tmpLoc = 'sexSceneEngine'>>
<<set $currDNA = $npc_6.dna>>
<<set $skipEnding = true>>
<<set $blockStop = true>>
<<set $sceneLoc = 'JerryPostSex'>>
<<set $postSexNude = true>>
<<set $forceSex = true>>
<<set $sceneAct = 'Foreplay'>>
<<elseif $jerryContestWinner>>
<<set _tmpLoc = 'JerryHomeGymIntro'>>
<<else>>
<<set _tmpLoc = 'ChitChat'>>
<</if>>
<<addNPC $npc_6 _tmpLocArr _tmpLoc>>
<</if>>
<<getCurrNPCs 'JerryHome'>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 4 and $jerryRooms.includes('JerryHome')>>
<<button "Search for the relic" "JerryRelicSearch">>
<<run $jerryRooms.delete('JerryHome')>>
<<set $jerrySearchLoc = passage()>>
<<addMins 5>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Kitchen" "JerryKitchen">>
<<addSecs 45>>
<</button>>
<<button "Home gym" "JerryGym">>
<<addSecs 45>>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Bathroom" "JerryBathroom">>
<<addSecs 45>>
<</button>>
</div>
<div class="buttonContainer">
<<button "$npc_6.firstName's bedroom" "JerryBedroom">>
<<addSecs 45>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Leave">>
<<if !$relicQuest or $relicQuest.path != 'Jerry' or ($relicQuest.path === 'Jerry' and ($relicQuest.level < 3 or $relicQuest.level === 5))>>
<<set _tmpVal = passage()>>
<<unset $jerryOutCold>>
<<unset $jerryComaLoc>>
<<preFlightCheck _tmpVal 'Beach' 5>>
<<else>>
<<script>>
Dialog.setup('Message');
Dialog.wiki('<div class="badText">You can\'t leave until you find the $relicQuest.relicName</div>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</if>>
<</button>>
</div>
</div>
<<timed 0s>>
<<if !$jerryOutCold>>
<<if $jerrySex>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Turn to $npc_6.firstName" 'sexSceneEngine'>>
<<set $currDNA = $npc_6.dna>>
<<set $skipEnding = true>>
<<set $blockStop = true>>
<<set $sceneLoc = 'JerryPostSex'>>
<<set $postSexNude = true>>
<<set $forceSex = true>>
<<set $sceneAct = 'Foreplay'>>
<</button>>
<<button "Ask for that drink" 'JerryDrinks'>>
<<set $tmpJerryDrunk = 0>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<<elseif $jerryContestWinner>>
<<unset $jerryContestWinner>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Turn to $npc_6.firstName" 'JerryHomeGymIntro'>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</if>>
<</if>>
<</timed>><<if $tmpJerryDrunk >= 100>>
<<set _tmpImg = 'Media/PassedOut/Indoors/M/' + random(1,3) + '.webp'>>
<center>
<img @src="_tmpImg" height='600rem'>
<br><br>
$npc_6.firstName's eyes drop and then his head hits the table with a hallow thunk before he slumps over and collapses to the ground. Ouch, that looked like it hurt.
<br><br>
<div class="goodText">He's out cold! Now's your chance to search for the relic!</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "JerryHome">>
<<set $jerryOutCold = true>>
<<set $jerryComaLoc = 'JerryHome'>>
<<set $jerryRooms = ['JerryHome','JerryBathroom','JerryKitchen','JerryGym','JerryBedroom']>>
<<set $relicRoom = $jerryRooms[random(0,4)]>>
<<set $relicQuest.level = 4>>
<<addSecs 15>>
<</button>>
<div>
</div>
<<elseif $player.drunk >= 100>>
/*player passes out */
<<set _tmpImg = 'Media/PassedOut/Indoors/F/' + random(1,4) + '.webp'>>
<center>
<img @src="_tmpImg" height='600rem'>
<br><br>
You don't even remember the last couple of drinks. All you do know is that you're on the floor and the room is spinning around you like crazy.
<br><br>
Just as your vision tunnels down to black you see $npc_6.firstName's head pop into view as he leans down to scoop you up.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<if $player.body.gender == 'Female'>>
<<goto "JerryDrunkSex">>
<<else>>
<<goto "JerryTransSurprise">>
<</if>>
<</button>>
<div>
</div>
<<else>>
<<set _tmpImg = "Media/Drinking/Home/MF/" + random(1,7) + ".webp">>
<div class="sexScene">
<img @src="_tmpImg" height="600rem">
<br><br>
<<set _divWidth = $player.drunk + '%' >>
<div>Your booze level: <div style="width:60%; height: 2em; display:inline-block; border: red 1px solid;"><div @style="'width:' + _divWidth + '; height:2em; background-color:red; color:red'"> </div></div></div>
<<set _div2Width = $tmpJerryDrunk + '%' >>
<div><<print $npc_6.firstName>>'s booze level: <div style="width:60%; height: 2em; display:inline-block; border: red 1px solid;"><div @style="'width:' + _div2Width + '; height:2em; background-color:red; color:red'"> </div></div></div>
<br><br>
<<if $tmpJerrySus > 25>>
$npc_6.firstName starts looking at your glass as if he's noticed you're not drinking.
<</if>>
<br><br>
You gently encourage $npc_6.firstName to drink a little more.
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $tmpJerrySus > 35>>
<<button "Flirt with him to keep him distracted" "JerryDrinks">>
<<addMins 5>>
<<set
$tmpJerryDrunk += 15;
$tmpJerrySus += 10;
$player.drunk += 5;
>>
<<if $tmpJerrySus > 20>>
$tmpJerrySus += 5;
<</if>>
<</button>>
<</if>>
<<button "Drink your shot" "JerryDrinks">>
<<addMins 5>>
<<set
$tmpJerryDrunk += 2;
$tmpJerrySus = ($tmpJerrySus -5).clamp(0,100);
$player.drunk += 10;
>>
<</button>>
</div>
</div>
<</if>><<calcArousal "intercourse" $arousalFactor 3>>
<center>
clip of passed out sex
<br><br>
You're pulled back to conciousness by a pleasant but insistent pounding sensation. You wake up to find $npc_6.firstName buried full length inside your pussy just as his cock spasms and fills you full of his hot cum!
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" 'JerryPostSex'>>
<<set
$player.drunk = $player.drunk/2;
$jerrySexCounter = 3;
$cumDNA = $npc_6.dna;
>>
<<addCum 'Pussy'>>
<<sexPowerDown>>
<</button>>
</div>
</div><<unset $jerrySex>>
<center>
<<if $jerrySexCounter < 2 and $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 3>>
<<set
$player.thirst += 20;
$player.energy += 10;
$player.stamina += 20;
$player.hunger += 20;
>>
<<set _tmpImg = 'Media/Sex/Teasing/' + random(1,6) + '.webp'>>
<img @src="_tmpImg" height="600rem">
<br><br>
$npc_6.firstName does not seem finished yet. He caresses and kisses you, keeping you on a razor edge of arousal while he recovers from the last round. He even feeds you fruit and juice from a nearby table...this is definitely not his first marathon.
<br><br>
In a surpsingly short amount of time he's up and ready to go again.
<<else>>
<<set $npc_6.awake = false>>
<<set _tmpImg = 'Media/Characters/Static/Jerry/sleep.webp'>>
<img @src="_tmpImg" height="600rem">
<br><br>
Jerry rolls over after finishing and almost instantly you hear soft snoring.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if !$npc_6.awake>>
<<button "Get out of bed" "JerryBedroom">>
<<unset $jerrySexCounter>>
<<purgeNPC $npc_6.dna>>
<<set $relicQuest.level = 4>>
<<set $jerryRooms = ['JerryHome','JerryBathroom','JerryKitchen','JerryGym','JerryBedroom']>>
<<set $relicRoom = $jerryRooms[random(0,4)]>>
<<set _tmpLocArr = ['JerryBedroom']>>
<<addNPC $npc_6 _tmpLocArr ''>>
<<addSecs 15>>
<</button>>
<<else>>
<<button "Go for another round">>
<<set $jerrySexCounter += 1>>
<<set $currDNA = $npc_6.dna>>
<<set $skipOpening = true>>
<<set $skipEnding = true>>
<<set $blockStop = true>>
<<set $sceneLoc = 'JerryPostSex'>>
<<set $sceneAct = 'Intercourse'>>
<<goto 'sexSceneEngine'>>
<</button>>
<</if>>
</div>
</div><center>
<img src="Media/Characters/Static/Jerry/Home/kitchen1.webp" height="600rem">
<br><br>
The kitchen lacks any extra adornments that don't directly support a nutritious carb-heavy meal. Just the kind of kitchen you'd expect from someone like $npc_6.firstName
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 4 and $jerryRooms.includes('JerryKitchen')>>
<<button "Search for the relic" "JerryRelicSearch">>
<<run $jerryRooms.delete('JerryKitchen')>>
<<set $jerrySearchLoc = passage()>>
<<addMins 5>>
<</button>>
<</if>>
</div>
<<if !$relicQuest or $relicQuest.path !== 'Jerry' or ($relicQuest.path === 'Jerry' and $relicQuest.level !== 4)>>
<div class="buttonContainer">
<<button "Get a drink of water">>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Back to the living room" "JerryHome">>
<<addSecs 45>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_6.image" height="450rem">
</div>
<div>
<span id="repCont">
"You ready dude? Follow me to see the ultimate home gym set up!"
</span>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "JerryGym">>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<span id="repCont">
<img src="Media/Characters/Static/Jerry/Home/gym1.webp" height="600rem">
<br><br>
Easily the cleanest room in the house, this home gym shows serious commitment to strength training. There's probably more money in this single room than in the entire rest of the apartment combined!
<<if $jerryOutCold and $jerryComaLoc == 'JerryGym'>>
<div class="badText">$npc_6.firstName is passed out on the floor</div>
<<else>>
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 3>>
<br>
<div class="badText">$npc_6.firstName boasts on and on about his various gym equipment pieces. You need to figure out some way to distract him long enough to let you search.</div>
<<else>>
$npc_6.firstName goes on at length about how state-of-the-art and impressive his home gym is. You have to admit; it does seem rather impressive.
<</if>>
<</if>>
</span>
</center>
<span id="NPCCont">
<<if $jerryOutCold and $jerryComaLoc == 'JerryGym'>>
<<purgeNPC $npc_6>>
<<set _tmpLocArr = ['JerryGym']>>
<<addNPC $npc_6 _tmpLocArr ''>>
<</if>>
<<getCurrNPCs 'JerryGym'>>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 4 and $jerryRooms.includes('JerryGym')>>
<<button "Search for the relic" "JerryRelicSearch">>
<<run $jerryRooms.delete('JerryGym')>>
<<set $jerrySearchLoc = passage()>>
<<addMins 5>>
<</button>>
<</if>>
</div>
<<if !$relicQuest or $relicQuest.path !== 'Jerry' or ($relicQuest.path === 'Jerry' and $relicQuest.level < 3)>>
<div class="buttonContainer">
<<button "Work out">>
<</button>>
</div>
<</if>>
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 3>>
<div class="buttonContainer">
<<button "Try to seduce him">>
<</button>>
<<button "Sucker punch him">>
<<set _tmpImg = 'Media/Characters/Static/Jerry/Home/' + $player.presenting[0].toLowerCase() + 'SuckerPunch.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
You suddenly lash out without warning, landing a solid sucker punch right to $npc_6.firstName's jaw. He drops like a sack of bricks never even knowing what hit him. He should be out for a few minutes but not much longer, better to to searching.
<</replace>>
<<replace "#NPCCont">>
<<set _tmpLocArr = [passage()]>>
<<addNPC $npc_6 _tmpLocArr 'JerryGym'>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "JerryGym">>
<<set $jerryOutCold = true>>
<<set $jerryComaLoc = 'JerryGym'>>
<<set $jerryRooms = ['JerryHome','JerryBathroom','JerryKitchen','JerryGym','JerryBedroom']>>
<<set $relicRoom = $jerryRooms[random(0,4)]>>
<<set $relicQuest.level = 4>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Back to the living room" "JerryHome">>
<<addSecs 45>>
<</button>>
</div>
</div><<set $homeBath = false>>
<center>
<img src="Media/Characters/Static/Jerry/Home/bathroom1.webp" height="600rem">
<br><br>
$npc_6.firstName's bathroom can best be described as 'short and to the point'.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 4 and $jerryRooms.includes('JerryBathroom')>>
<<button "Search for the relic" "JerryRelicSearch">>
<<run $jerryRooms.delete('JerryBathroom')>>
<<set $jerrySearchLoc = passage()>>
<<addMins 5>>
<</button>>
<</if>>
</div>
<<if !$relicQuest or $relicQuest.path !== 'Jerry' or ($relicQuest.path === 'Jerry' and $relicQuest.level !== 4)>>
<div class="buttonContainer">
<<button "Use the mirror" "MirrorView">>
<<set $mirrorLoc = passage()>>
<<addSecs 5>>
<</button>>
<<button "Use the sink" "Basin">>
<<set $sinkImg = 'Media/Characters/Static/Jerry/Home/sink1.webp'>>
<<set $sinkLoc = passage()>>
<<addSecs 5>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Back to the living room" "JerryHome">>
<<addSecs 45>>
<</button>>
</div>
</div><center>
<img src="Media/Characters/Static/Jerry/Home/bedroom1.webp" height="600rem">
<br><br>
The inflatable-looking futon directly on the floor, clothes strung about with little regard, the stale feeling of the air - everything here gives the impression of someone who does not priortize sleep.
</center>
<<if !$jerryOutCold>>
<<set _tmpLocArr = ['JerryBedroom']>>
<<if !$npc_6.awake>>
<<set _tmpLoc = 'WakeupNPC'>>
<<set $currDNA = $npc_6.dna>>
<<set $retLoc = 'JerryBedroom'>>
<<else>>
<<set _tmpLoc = 'ChitChat'>>
<</if>>
<<addNPC $npc_6 _tmpLocArr _tmpLoc>>
<<getCurrNPCs 'JerryBedroom'>>
<</if>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $relicQuest and $relicQuest.path === 'Jerry' and $relicQuest.level === 4 and $jerryRooms.includes('JerryBedroom')>>
<<button "Search for the relic" "JerryRelicSearch">>
<<run $jerryRooms.delete('JerryBedroom')>>
<<set $jerrySearchLoc = passage()>>
<<addMins 5>>
<</button>>
<</if>>
</div>
<<if $player.isNude and $lastWornFit>>
<div class="buttonContainer">
<<button "Get dressed" "JerryBedroom">>
<<set $pickedFit = clone($lastWornFit)>>
<<wearFit $pickedFit "Auto">>
<</button>>
</div>
<</if>>
<<if !$jerryOutCold and (!$relicQuest or $relicQuest.path !== 'Jerry' or ($relicQuest.path === 'Jerry' and $relicQuest.level !== 4))>>
<div class="buttonContainer">
<<button "Get into bed" "Bed">>
/*
<<set $bedLoc = passage()>>
<<addSecs 5>>
*/
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Leave the bedroom" "JerryHome">>
<<addSecs 45>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Misc/Snooping/' + ($player.presenting === 'Female'?'F/' + random(1,5):'M/' + random(1,2)) + '.webp'>>
<center>
<span id='repCont'>
<img @src="_tmpImg" height="600rem">
<br><br>
You look through $npc_6.firstName's apartment as quietly and as quickly as you can. Checking drawers, scanning through closets, looking anywhere someone might stash a valuable object.
<br><br>
<<if $relicRoom !== $jerrySearchLoc>>
<div class='badText'>But you don't find anything</div>
<<else>>
<<set _foundIt = true>>
<div>You're about to give up when you notice a glint of something shiny beneath a piece of furniture. Maybe if you get down on your knees and peer into the dark space using your phone as a flash light?</div>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if _foundIt>>
<<button "Pick it up">>
<<unset $jerryRooms>>
<<unset $jerrySexCounter>>
<<collectRelic>>
<<replace "#repCont">>
<<genRelic $relicQuest.relicIdx>>
<img @src="$relicObj.image" height="600rem">>
<br><br>
$relicObj.desc
<br><br>
You could just leave now - you have what you came here for. On the other hand; $npc_6.firstName is not likely to notice it's gone anytime soon..
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 45>>
<<set _tmpLoc = $relicRoom>>
<<unset $relicRoom>>
<<goto _tmpLoc>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Continue" $jerrySearchLoc>>
<<addMins 2>>
<</button>>
<</if>>
</div>
</div><center>
Surprise Jerry with your cock
<br><br>
he doesn't take this well
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Fight! Fight!">>
<</button>>
</div>
<div class="buttonContainer">
<<button "For now you win anyway">>
<<collectRelic>>
<<goto "Beach">>
<</button>>
</div>
</div><<if !$npc_1.knowsPlayer>>
<<goto 'JulesInitIntro'>>
<<else>>
<<goto 'JulesGenericIntro'>>
<</if>><<set
$npc_1.relationship = 1;
$npc_1.knowsPlayer = true;
>>
<center>
<div class="horzContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
You build up your courage and walk over to the stranger, if nothing else having a friend in this place is probably worth it. She watches you approach with a cool indifference in her eyes, her beautiful blonde hair frames her face perfectly and her voice is mesmerizing.
<br><br>
"You must be the new girl I saw talking in the Director's Office. Welcome to to the 3rd circle of hell. I'm $npc_1.firstName." As she speaks her eyes roam over your body in a calculating and unsettling way.
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Step back" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
</div><<set $npc_1.relationship = 1>>
<center>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
<<if $player.questTracker.some(obj => obj.idx === 'JuliaBlock')>>
$npc_1.firstName narrows her eyes at you in distate and then quickly turns her back to you.
<<else>>
<<if $player.presenting === 'Male' and $player.questTracker.some(obj => obj.idx == 'JuliaSexToy') and !$dailyLimit.includes('JulesGenderBash')>>
<<goto "JulesGenderBash">>
<<else>>
<<set _julArr = $player.questTracker.filter(obj => ['JuliaSexToy'].includes(obj.idx))>>
<<if _julArr.length > 0>>
<<for _i to 0; _i < _julArr.length; _i++>>
<<switch _julArr[_i].idx>>
<<case "JuliaSexToy">>
<<if _julArr[_i].level === 1 and $gameDate.getHours() >= 15 and $gameDate.getHours() < 17>>
<<goto "JulesParkPhotosInit">>
<</if>>
<</switch>>
<</for>>
<</if>>
<</if>>
$npc_1.firstName arches one eyebrow as if to ask why you're talking to her.
<</if>>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Step back" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
</div><center>
<<if $player.body.gender != 'Female'>>
<img src="Media/Locations/Downtown/Fairhaven/caught1.webp" height ="600rem" >
<<else>>
<img src="Media/Locations/Downtown/Fairhaven/caught2.webp" height ="600rem" >
<</if>>
<br><br>
<<if $player.body.gender != 'Female' and !$player.questTracker.some(item => item.idx === 'JuliaSexToy')>>
You let out a startled yelp when the curtain is suddenly yanked back and $npc_1.firstName is there staring at your hand wrapped around your still-hard cock.
<br><br>
You both freeze for a moment before you quickly try to hide your <<descDick $player>> dick. But your hesitation was all she needed to realize what you have between your legs isn't just a really large clit -- she knows your secret!
<<elseif $player.questTracker.some(item => item.idx === 'JuliaSexToy')>>
Again? You deserve a punishment.
<<elseif $player.body.gender != 'Female'>>
$npc_1.firstName smirks in a knowing way as she eyeballs your naked wet body. "Having a little bit of fun? Well, don't let me stop you.."
<br><br>
But she stands there holding the curtain open for a moment before letting it fall back in place.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<if $player.body.gender !== 'Female'>>
<<set _tmpQuest = $player.questTracker.find(item => item.idx === 'JuliaSexToy')>>
<<if !_tmpQuest>>
<<goto 'JulBlackMailInit'>>
<<else>>
<<goto 'JulesPunish'>>
<</if>>
<<else>>
<<set $showerText = 'You stand there for a moment unsure of what to do next as the warm water cascades down your body.'>>
<<goto 'Shower'>>
<</if>>
<</button>>
</div>
</div><<run $player.questLog.addQuest('JuliaSexToy','$npc_1.firstName knows your secret! She\'s playing some sort of game with you and won\'t turn you in if you play along. She said to come find her at Fairhaven between 3:00pm and 5:00pm')>>
<<run $player.questTracker.push({idx: 'JuliaSexToy',level:1})>>
<<if !$julesThreats>>
<<set $julesThreats = []>>
<</if>>
<<set $julesThreats.push('GenderBlackMail')>>
<center>
<span id="repCont">
<img @src="$npc_1.image" height ="500rem" >
<br>
Instead of screaming or running away, she sort of smiles and slides her eyes up from your crotch to look you in the eyes. "Well, well. I knew there was something off about you "$player.firstName", and I was right. You could get into a lot of trouble you know, sneaking into a women-only shelter to try and abuse us in our sleep."
<br><br>
She holds her hand up when you start to protest your innocence "Now now, don't worry. This doesn't have to end horribly for you, in fact...I bet you'll grow to love it."
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Think of something!">>
<<replace "#repCont">>
<img src="Media/Characters/Static/Julia/showercaught2.webp" height ="600rem" >
<br><br>
Your already wide eyes widen further as $npc_1.firstName slips her hands under her shirt and starts teasing at her nipples before she slowly starts to pull her shirt off, exposing more and more of her soft tight young skin.'
<br><br>
"Mmm, in fact, now that I've had time to think about it, this could definitely work out good for both of us."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Maybe there's hope...">>
<<replace '#repCont'>>
<img src="Media/Characters/Static/Julia/showercaught3.webp" height ="600rem" >
<br><br>
She closes her eyes and bites her lip as her hand slides down into her panties and starts to tug them down, her other hand pulling her shirt even higher. In moments she's completely naked and she walks toward your still-frozen body in the shower stall.
<br><br>
Your breath starts to get shaky and ragged when $npc_1.firstName gets close enough to touch. She reaches out one hand and trails one perfectly manicured nail down your chest as she drops to her knees. You're only able to put up a modest protest at this point and she easily bats your hands aside, exposing your <<descDick $player>> <<sizeDick $player>>cm cock.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Stand there helpless">>
<<replace "#repCont">>
<img src="Media/Characters/Static/Julia/showercaught4.webp" height ="500rem" >
<br><br>
You look down with deer-in-headlights wonder as she starts to tug on your still wet cock in her hand.
<br><br>
<<if $player.body.cock < 4>>
She leans in and presses her lips against your already throbbing cock and looks up at you with a smile in her eyes. "Oh, it's so cute! No wonder you thought you could pass as a woman -- this thing is barely bigger than a really large clit!"
<<else>>
She leans in and presses her lips against your already throbbing cock and looks up at you with a smile in her eyes. "Mm, I'm not sure how you thought you'd hide this monster in here! But I'm glad you tried."
<</if>>
<br><br>
She holds eye contact with you as she keeps pumping your cock in her other hand, her mouth less than an inch away from your swollen head and you can feel her hot breath wash over you. She dips her head down and pushes her lips together, giving your cock a soft sweet kiss before her tongue trails out to drag along the sensitive skin.
<br><br>
"Mm, yes it looks like you're ready to play", she purrs at you. "But all games have rules, you know, do you agree to play by my rules?" She mixes kisses and licks in between her words, making it almost impossible for you to follow along.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<img src="Media/Characters/Static/Julia/showercaught4.webp" height ="500rem" >
<br><br>
She claps her hands around your <<descDick $player>> cock and smiles at the wince that pops up on your face.
<br><br>
"Oops," she says clearly without meaning it, "You just have me so excited! I'm glad you agreed, puppy. Here's your first reward."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<calcArousal 'bj_get', 2>>
<<sexPowerDown>>
<<replace "#repCont">>
<img src="Media/Characters/Static/Julia/showercaught5.webp" height ="600rem" >
<br><br>
Your eyes feel like they're going to pop out of your skull when she finally wraps her juicy lips around your raging hard cock. She rotates her head side to side as she bobs up and down before she suddenly stops and shoves you away from her.
<br><br>
"There you go, puppy. But if you want more you'll have to start doing what I say. I'll need some time to think of our first game but you'll definitely see me soon."
<br><br>
She turns and leaves you alone and throbbing in the shower, you better move quick before someone else comes in.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<set _tmpLoc = clone($showerLoc)>>
<<unset $showerLoc>>
<<unset $showerVid>>
<<unset $showerInProg>>
<<addSecs 5>>
<<goto _tmpLoc>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $juleRefReasons = []>>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
<<if !$player.questTracker.some(obj => obj.idx == 'ParkPhotoQuest')>>
<<run $player.questTracker.push({idx:'ParkPhotoQuest',level:1})>>
"Oh, good, $player.firstName, I've been hoping to see you. I've got our first game planned!" $npc_1.firstName practically beams at you, she's clearly really looking forward to whatever this game is that she has planned.
<br><br>
You can't tell if that's a good or a very very bad thing.
<br><br>
She laughs when she sees your expression. "Oh, don't worry. We're just going to go hang out at the park for a little while. Nothing horrible! And to show you what I mean; I left you a gift back in the bathroom, go check it out and come back when you're ready!"
<<else>>
<div class="badText">
$npc_1.firstName narrows her eyes at you "What are you waiting for, $player.firstName? Do I have to spell this out for you! Go. See. What. I. Left. For. You."
</div>
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go to the bathroom" "Bathroom">>
<<set $homeBath = true>>
<<set $bathType = 'Private'>>
<<set $bathLoc = 'FairhavenHall'>>
<<set $bathImg = 'Media/Locations/Downtown/Fairhaven/sharedBath1.webp'>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = 'A simple room providing the basic necessities for a group of young women. There are shower stalls along the far side of the room, a handful of toilets opposite them, and a row of sinks along the wall as soon as you enter.'>>
<<addSecs 20>>
<</button>>
</div>
</div><<set $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level = 2>>
<center>
<span id="repCont">
<img src="Media/Misc/giftBag.webp" height="500rem">
<br><br>
Without even opening the bag you can feel a pit forming in your stomach -- what sort of game is $npc_1.firstName playing here? You reach in and start pulling items out of the bag, each one confirming that this is not an event you are going to enjoy.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<div class="wardIcons">
<div>
<<genFit 64>>
<<run $player.wardrobe.addItem($clothingObj)>>
[img[clothing|$clothingObj.image]]
</div>
<div>
<<genPanties 11>>
<<run $player.wardrobe.addItem($clothingObj)>>
[img[clothing|$clothingObj.image]]
</div>
<div>
<<genShoes 36>>
<<run $player.wardrobe.addItem($clothingObj)>>
[img[clothing|$clothingObj.image]]
</div>
</div>
<br>
This looks like a summer outfit picked out for a woman going on a picnic or something, what could $npc_1.firstName have in mind for you? Just then you hear the door behind you open and $npc_1.firstName walks in.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Turn toward $npc_1.firstName">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
"Oh good, you found my present. I just know you're going to look adorable in that dress, don't you think?" she asks you with a slight edge to her tone.
<br><br>
"Well? Put it on." Her tone on these last words leaves no doubt about her sincerity.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Agree to wear the clothes" "JulesParkFit">>
<<addSecs 45>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Refuse">>
<<set $julesDemand = 'JulesParkFit'>>
<<goto "JulesRefuse">>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $player.statBuffs.sub += 1>>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
<<if $player.body.legHair > 2>>
"Those hairy legs of yours will look just horrible sticking out from the bottom of that beautiful dress. So go ahead and hop in the shower and take care of that, will you dear?", she offers a shaver and a can of shaving cream with her other hand.
<<else>>
"I was going to make you shave your legs, but it seems you've beaten me to it, Little Miss. I love that you're already playing along." she says as she drops her razor back onto the counter.
<</if>>
<br><br>
"Now get showered and dressed! I feel like a school girl waiting for christmas morning!"
</div>
</div>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<if $player.body.legHair > 1>>
<<set $showerLoc = 'JulesLegCheck'>>
<<set _tmpLbl = "Agree to shave and get in the shower">>
<<else>>
<<set $showerLoc = 'JulesFitCheck'>>
<<set _tmpLbl = "Undress and get in the shower">>
<</if>>
<<button _tmpLbl "InitShower">>
<<set $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level = 2>>
<<run $player.inventory.addItem('Razor',1)>>
<<addSecs 5>>
<</button>>
</div>
<<if $player.body.legHair > 2>>
<div class="buttonContainer">
<div class="buttonContainer">
<<button "Refuse">>
<<set $julesDemand = 'InitShower'>>
<<goto "JulesRefuse">>
<</button>>
</div>
</div>
<</if>>
</div><<set $juleRefReasons.push($julesDemand)>>
<center>
<span id="repCont">
<img src="Media/Characters/Static/Julia/stare.webp" height="500rem">
<br><br>
<<switch $julesDemand>>
<<case 'JulesParkFit'>>
Julia's eyes narrow as you firmly refuse to wear the sundress. Her jaw clenches in frustration and the tension in the room grows palpable.
<<case 'InitShower'>>
When you stubbornly decline to shave your legs, Julia's face darkens with fury. She grips the razor tightly, her knuckles turning white. The air crackles with animosity as she towers over you, unwilling to tolerate your insubordination.
<<case 'CityPark'>>
You demand that she tell you what is going on before you go any further. You've played along enough already! Julia's nostrils flare with indignation and atmosphere becomes oppressive as she locks eyes with you, determined to assert her dominance.
<<case 'JulesPhotoLoop'>>
<<switch $julPhotoType>>
<<case 'Panties'>>
As you adamantly decline to expose your panties for the photos, Julia's face contorts with anger. She points the camera at you aggressively, her finger hovering over the shutter button. The atmosphere becomes charged with hostility as she looms over you, unwilling to accept your defiance.
<<case 'Tits'>>
You unequivocally refuse bare your tits for topless shots, Julia's nostrils flare with wrath. She drops the camera to her side, her gestures abrupt and irritated. The environment grows heavy with confrontation as she locks eyes with you, resolved to overcome your obstinacy.
<<case 'Groin'>>
Julia's eyes narrow as you firmly refuse to bare your <<if $player.body.gender === 'Female'>>pussy<<else>>cock<</if>> in public for the photos. Her jaw clenches, betraying her frustration at your defiance. The weight of her demand hangs heavily in the air, pressing down on you like an invisible force.
<<default>>
Julia's face contorts with anger at your refusal to pose in the sundress. Her intense stare bears down on you, filled with disappointment and irritation. The pressure of her expectation weighs on your shoulders, making it difficult to breathe.
<</switch>>
<<default>>
Julia's face reddens with anger as you again refuse to bow to her. Her fists clench at her sides, knuckles turning white with the force of her grip. The air between you thickens, heavy with unspoken confrontation.
<</switch>>
</span>
<br><br>
<<if $juleRefReasons.length == 1>>
<<if !$julesThreats>>
<<elseif $julesThreats.includes('GenderBlackMail')>>
"Again with this useless defiance?" She says with her head cocked to the side as if she's looking at a rebellious puppy who just messed on the floor. "Well I'll just go straight to the housing director then and tell her all about you. Is that what you want?"
<</if>>
<<elseif $juleRefReasons.length == 2>>
She steps in close, the anger radiating from her is almost palpable as she stares you down.
<br><br>
'Resist me one more time, little miss. I dare you.'
<<elseif $juleRefReasons.length < 4>>
<<timed 0s>>
<<replace "#repCont">>
<img src="Media/Misc/ff_slap1.webp" height="500rem">
<br><br>
You open your mouth to intake a breath but before you even speak $npc_1.firstName whirls around and slaps you across the face.
<br><br>
The force of it makes you stumble back and fall to the ground, your face afire with stinging pain. The choice is clear - what do you do?
<</replace>>
<</timed>>
<<else>>
"You know what? Fine. You play with fire, you get burned. Have fun, little miss." She says before turning on her heels and walking brisquely away.
<br><br>
She's...not really going to do anything, right?
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if $juleRefReasons.length < 4>>
<div class="buttonContainer">
<<button "Give in to her demand" $julesDemand>>
<<switch $julesDemand>>
<<case 'InitShower'>>
<<set $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level = 2>>
<<run $player.inventory.addItem('Razor',1)>>
<<case 'CityPark'>>
<<set $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level = 3>>
<</switch>>
<<set $player.statBuffs.sub += 2>>
<<addSecs 45>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Defy her">>
<<goto "JulesRefuse">>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "Continue">>
<<if !$FHReport>>
<<set $FHReport = []>>
<</if>>
<<run $FHReport.push('GenderBender')>>
<<if $juleRefReasons.some(str => ['CityPark','JulesPhotoInit','JulesPhotoLoop'].includes(str))>>
<<set _tmpLoc = 'CityPark'>>
<<else>>
<<set _tmpLoc = 'Bathroom'>>
<</if>>
<<purgeJuliaQuests>>
<<purgeNPC $npc_1.dna>>
<<goto _tmpLoc>>
<</button>>
</div>
<</if>>
</div><div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
<<if $player.body.legHair > 1>>
$npc_1.firstName raises an eyebrow as you step out of the shower still sporting your leg hair. "Hmm, I thought I made myself clear, little miss. Those hairy legs of yours will look just horrible sticking out from the bottom of that beautiful dress. Don't make me repeat myself."
<<else>>
$npc_1.firstName eyes your smooth, hairless legs approvingly as you step out of the shower. "Much better, little miss. Now go ahead and get dressed in that outfit I picked out for you, I can't wait to see how adorable you look!"
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.body.legHair > 1>>
<<button "Get in the shower" "InitShower">>
<<set $showerLoc = 'JulesLegCheck'>>
<<addSecs 5>>
<</button>>
<<else>>
<<button "Get Dressed">>
<<set $pickedFit = {
bra: 0,
fit: 64,
panties: 11,
shoes: 36,
earrings: 0,
bracelet: 0,
ring: 0,
purse: 0,
coat: 0,
relic: 0
}>>
<<set $wardLoc = 'JulesFitCheck'>>
<<wearFit $pickedFit>>
<</button>>
<</if>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
<span id="repCont">
<<if $player.outfit.fit != 64 or $player.outfit.panties != 11 or $player.outfit.shoes != 36>>
bad bad bunny
<<else>>
$npc_1.firstName lets her eyes roam over your body and you get the distinct impression that this is how a cow feels when it's being sized up at the butcher shop. She must like what she sees however because after a few moments she nods.
<br><br>
"Good enough, considering. Now come on, little miss! We have to be on our way so get a move on!" $npc_1.firstName barks at you as you as if you were a petulant child dragging your feet before school.
<br><br>
Something stirs inside you from being treated this way, but right now you're too preoccupied and confused to study the reaction. If you leave here with her there's no telling what she has planned -- but if you refuse she could get you in serious trouble...
<</if>>
</span>
</div>
</div>
<hr>
<div id="actionsContainer">
<<if $player.outfit.fit != 64 or $player.outfit.panties != 11 or $player.outfit.shoes != 36>>
<div class="buttonContainer">
<<button "Get Dressed">>
<<set $pickedFit = {
bra: 0,
fit: 64,
panties: 11,
shoes: 36,
earrings: 0,
bracelet: 0,
ring: 0,
purse: $player.outfit.purse,
coat: $player.outfit.coat,
relic: 0
}>>
<<set $wardLoc = 'JulesFitCheck'>>
<<wearFit $pickedFit>>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "Follow her" "CityPark">>
<<set $player.statBuffs.sub += 1>>
<<set $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level = 3>>
<<addMins 15>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Refuse">>
<<set $player.statBuffs.dom += 1>>
<<set $julesDemand = 'CityPark'>>
<<goto "JulesRefuse">>
<</button>>
</div>
<</if>>
</div><center>
<span id='repCont'>
<img src="Media/Misc/ff_slap1.webp" height="500rem">
<br><br>
You open your mouth to intake a breath but before you even speak $npc_1.firstName whirls around and slaps you across the face.
<br><br>
The force of it makes you stumble back and fall to the ground, your face afire with stinging pain.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<img src="Media/Characters/Static/Julia/stare.webp" height="450rem">
<br><br>
"You do 'NOT' question me. Do you understand me? Now get up, little miss. We have work to do."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level < 4>>
<<set _tmpLoc = 'JulesPhotoInit'>>
<<else>>
<<set _tmpLoc = 'JulesPhotoLoop'>>
<</if>>
<<button "Nod quietly and do as you are told" _tmpLoc>>
<<set $player.statBuffs.sub += 2>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<if $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level < 4>>
<<set $player.questTracker.find(obj => obj.idx == 'ParkPhotoQuest').level = 4>>
<</if>>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
After walking a ways into the park Julia finally points to a spot and gets out her phone, "Ok, come stand here so I can start taking pictures."
<br><br>
<<if $juleRefReasons.length > 2>>
You've already made her angry -- dare you push it again?
<<elseif $juleRefReasons.length > 0>>
She's already threatened to expose your secret - do you want to test that?
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Do as she says" "JulesPhotoLoop">>
<<set $player.statBuffs.sub += 1>>
<<set $julPhotoType = 'Reg'>>
<<set $julPhotoIdx = []>>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Refuse" "JulesRefuse">>
<<set $player.statBuffs.dom += 1>>
<<set $julPhotoType = 'Reg'>>
<<set $julPhotoIdx = []>>
<<set $julesDemand = 'JulesPhotoLoop'>>
<</button>>
</div>
</div><<switch $julPhotoType>>
<<case "Reg">>
<<set _tmpImg = 'Media/Locations/BDistrict/MSquare/Park/Pose/F/Reg/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(0,0) + '.webp'>>
<<else>>
<<set _preCount = $julPhotoIdx.length>>
<<for _i to 1;_preCount == $julPhotoIdx.length; _i++>>
<<capture _j>>
<<set _j = random(1,11)>>
<<if !$julPhotoIdx.includes(_j)>>
<<set $julPhotoIdx.push(_j)>>
<<set _tmpImg += _j + '.webp'>>
<</if>>
<</capture>>
<</for>>
<</if>>
<<case "Panties">>
<<set $player.statBuffs.exhib += 1>>
<<set _tmpImg = 'Media/Self/Flash/Outdoors/Panties/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(0,0) + '.webp'>>
<<else>>
<<set _preCount = $julPhotoIdx.length>>
<<for _i to 1;_preCount == $julPhotoIdx.length; _i++>>
<<capture _j>>
<<set _j = random(1,21)>>
<<if !$julPhotoIdx.includes(_j)>>
<<set $julPhotoIdx.push(_j)>>
<<set _tmpImg += _j + '.webp'>>
<</if>>
<</capture>>
<</for>>
<</if>>
<<case "Tits">>
<<set $player.statBuffs.exhib += 2>>
<<set _tmpImg = 'Media/Self/Flash/Outdoors/Tits/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(0,0) + '.webp'>>
<<else>>
<<set _preCount = $julPhotoIdx.length>>
<<for _i to 1;_preCount == $julPhotoIdx.length; _i++>>
<<capture _j>>
<<set _j = random(1,28)>>
<<if !$julPhotoIdx.includes(_j)>>
<<set $julPhotoIdx.push(_j)>>
<<set _tmpImg += _j + '.webp'>>
<</if>>
<</capture>>
<</for>>
<</if>>
<<case "Groin">>
<<set $player.statBuffs.exhib += 3>>
<<set _tmpImg = 'Media/Self/Flash/Outdoors/'>>
<<if $player.body.womb>>
<<if $player.body.womb.showPreg>>
<<set _tmpImg += 'Pussy/Preg/' + random(0,0) + '.webp'>>
<<else>>
<<set _preCount = $julPhotoIdx.length>>
<<for _i to 1;_preCount == $julPhotoIdx.length; _i++>>
<<capture _j>>
<<set _j = random(1,17)>>
<<if !$julPhotoIdx.includes(_j)>>
<<set $julPhotoIdx.push(_j)>>
<<set _tmpImg += 'Pussy/' + _j + '.webp'>>
<</if>>
<</capture>>
<</for>>
<</if>>
<<else>>
<<set _preCount = $julPhotoIdx.length>>
<<for _i to 1;_preCount == $julPhotoIdx.length; _i++>>
<<capture _j>>
<<set _j = random(1,13)>>
<<if !$julPhotoIdx.includes(_j)>>
<<set $julPhotoIdx.push(_j)>>
<<set _tmpImg += 'Cock/T/' + _j + '.webp'>>
<</if>>
<</capture>>
<</for>>
<</if>>
<</switch>>
<center>
<span id='repCont'>
<img @src='_tmpImg' height='600rem'>
<br><br>
<<switch $julPhotoType>>
<<case 'Reg'>>
<<if $player.inhib > 80 or $player.mentalFem < 30>>
<<switch random(1,4)>>
<<case 1>>
You fidget uncomfortably as you pose, tugging at the hem of your dress in a futile attempt to cover more of your exposed thighs for more protection from the curious stares of passersby. Your cheeks burn with humiliation as you imagine what they must be thinking and you want nothing more than to run and hide, but the threat of exposure keeps you rooted to the spot.
<<case 2>>
Standing awkwardly beneath a flowering tree, you feel the petals brush against your bare shoulders, their delicate touch a stark contrast to the heavy weight of shame bearing down on you. The camera clicks incessantly, capturing your mortification from every angle. You try to arrange your features into something resembling a smile, but it feels more like a grimace
<<case 3>>
The wind picks up, billowing your skirt dangerously high as you struggle to hold it down. Panic surges through you as you realize anyone nearby could see your underwear! You're left painfully exposed, the cold air raising goosebumps on your sensitive flesh. Humiliation washes over you like a tidal wave, threatening to drown you in its depths.
<<case 4>>
$npc_1.firstName calls out directions for you to pose this way or that. You obey stiffly, your limbs heavy with dread as you comply with her demands. With each click of the shutter, you feel another piece of your pride crumbling away, replaced by a growing sense of despair. How did you even end up here?
<</switch>>
<<elseif $player.inhib >= 50 or $player.mentalFem < 40>>
<<switch random(1,4)>>
<<case 1>>
A flush creeps up your neck as you feel the warmth of the sun on your exposed skin, the breeze tickling your bare legs. You're acutely aware of the stares from passersby, their eyes lingering on your figure. Despite your initial reluctance, a thrill runs through you, your body responding to the attention in ways you never anticipated as you pose in your feminine attire.
<<case 2>>
Posing awkwardly beneath a blooming magnolia tree, you fight the urge to cover yourself, your hands fluttering uncertainly at your sides. $npc_1.firstName's commands ring in your ears, urging you to relax, to embrace the moment. Against your better judgment, you find yourself complying, your body instinctively assuming more provocative positions. The realization that you're enjoying this unexpectedly sends a wave of confusion washing over you, mixing exhilaration with embarassment and maybe a twinge of shame.
<<case 3>>
The sensation of the fabric against your skin sends shivers down your spine, a mix of apprehension and excitement. As the camera clicks, capturing your every move, you feel a strange sense of liberation, as if shedding your inhibitions. The knowledge that other people in the park might witness your behavior both terrifies and electrifies you, leaving you torn between modesty and the newfound thrill of exhibitionism.
<<case 4>>
You stand awkwardly in the middle of the bustling park, the soft fabric of your sundress fluttering gently in the breeze. Your heart races as you notice people glancing your way, their eyes lingering on your exposed skin. Despite your initial reservations, you feel a strange tingle of excitement mixed with embarrassment.
<</switch>>
<<elseif $player.inhib >= 40 or $player.mentalFem < 50 >>
<<switch random(1,4)>>
<<case 1>>
The sun warms your skin as you pose by the fountain, the sundress clinging to your curves. Passersby steal glances, their eyes lingering on your exposed legs. Excitement mingles with embarrassment, your heart racing as $npc_1.firstName snaps photos. "That's it, baby. Show them what you've got," she encourages, her voice sending shivers down your spine. You strike a seductive pose, fighting the urge to cover up, torn between desire and propriety.
<<case 2>>
You stretch out, the sundress riding up your thighs as $npc_!.firstName hovers nearby, capturing every angle. "Give me a come-hither look," she commands. You pout playfully, your body responding to the attention despite your internal conflict.
<<case 3>>
Balancing on a low wall, you hike up your skirt, revealing more of your toned legs. $npc_1.firstName circles you, her lens focused intently. "Work it, little miss. Let everyone see how sexy you are," she urges. You arch your back, struck by a sudden surge of confidence mixed with shame. Families picnic nearby, their stares both flattering and judgmental - feuling both your growing passion but also your knowledge that you shouldn't be behaving this way.
<<case 4>>
Standing beneath a towering oak tree, you lean against its trunk, the rough bark contrasting with the delicate fabric of your sundress. $npc_1.firstName positions you carefully, ensuring that the dappled sunlight highlights your best features. You comply with her instructions, striking sultry poses that emphasize your curves. The awareness of being watched sends a thrill through your body, even as you wrestle with the guilt of acting as you are in public.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
The warm sun beats down on your bare shoulders as you pose beside a vibrant flower bed, the sundress hugging your curves just right. $npc_1.firstName snaps away with her camera, calling out encouragement. "Work it, girl! You look stunning!" Emboldened by her praise, you strike a playful pose, blowing a kiss to an imaginary audience. Nearby, a group of college guys nudge each other, their eyes fixed on you. You flash them a flirty smile, relishing the attention.
<<case 2>>
You hike up your sundress, revealing more of your toned thighs. Julia circles you, capturing every provocative angle. "That's it, show them what you've got!" she exclaims, her enthusiasm infectious. You lean back, stretching out languidly, the thin fabric of your dress clinging to your body.
<<case 3>>
$npc_1.firstName circles you, camera clicking rapidly as she captures your every move. "That's it, work those angles!" she encourages, her voice bubbling with excitement. You strike a series of playful poses, twirling and laughing, your sundress fluttering around your thighs. Nearby, a group of joggers slows down, their eyes lingering on your exposed skin. You flash them a mischievous grin, loving the attention.
<<case 4>>
Feeling daring, you turn to face $npc_1.firstName, spreading your legs slightly and giving the camera a sultry look. A mother hurries her child past, shooting you a scandalized glare, but you simply laugh, high on the rush of pushing boundaries and basking in the spotlight.
<</switch>>
<</if>>
<<case 'Panties'>>
<<if $player.inhib > 80 or ($player.inhib > 50 and $player.slutLevel < 2)>>
<<switch random(1,4)>>
<<case 1>>
Your heart pounds as you hike up your sundress, exposing your lacy panties to the camera. Humiliation floods through you, your cheeks burning with shame. Reluctantly, you plaster on a smile, feeling the cool breeze on your thighs. The camera clicks incessantly, capturing your embarrassment for posterity.
<<case 2>>
Reluctantly you part your thighs to reveal the lacy panties beneath your sundress. The camera zooms in, capturing the intimate details of your undergarments. You feel exposed and vulnerable, your cheeks burning with shame as passersby steal curious glances.
<<case 3>>
The camera shutter fires repeatedly as you reveal your lacy underwear to the world. You feel like a sideshow attraction, a curiosity for others to mock and ridicule, and the burden of your shame nearly overwhelms you.
<<case 4>>
With trembling hands, you comply, lifting the hem of your dress higher and higher until it rests just below your waist. The camera zooms in, focusing on the intricate details of your lacy panties. You feel utterly exposed, your humiliation laid as bare as your panties.
<</switch>>
<<elseif $player.inhib >= 50>>
<<switch random(1,4)>>
<<case 1>>
Your heart races as you stand in the middle of the bustling park, the sundress raised up around your hips in a way that is both thrilling and terrifying. The lacy trim of your panties is fully viewable to anyone walking by, and you feel a wave of excitement mixed with embarrassment wash over you. The camera clicks rapidly, capturing your exposed skin from every angle.
<<case 2>>
The camera clicks rapidly, capturing your exposed panties from every angle. Passersby shoot curious glances, some snickering, others averting their eyes. Despite your discomfort, a thrill of excitement courses through you, leaving you confused and conflicted. But your racing pulse is not just from shame...
<<case 3>>
Pressing your back against a large oak tree, you grip the hem of your dress, lifting it to reveal your lacy panties. The camera clicks incessantly, documenting your humiliation from behind. You feel like a spectacle, both horrified and secretly thrilled by the attention. The weight of your embarrassment and excitement battle within you, leaving you breathless and conflicted.
<<case 4>>
You reluctantly comply, hiking your sundress up to expose your lacy underwear. The cool breeze tickles your thighs, heightening your awareness of your vulnerability and your growing excitement.
<</switch>>
<<elseif $player.slutLevel < 4>>
<<switch random(1,4)>>
<<case 1>>
You hesitate, your cheeks flushing red. But the thrill of being watched, of pushing boundaries, is too strong to ignore. Slowly, you grasp the hem of your sundress and inch it upward, revealing the lacy trim of your underwear. The camera clicks rapidly, capturing your embarrassment and excitement.
<<case 2>>
You part your thighs to expose your lacy panties beneath the sundress. The camera zooms in, capturing the intimate details. You feel both shame and arousal as passerby steal glances, their expressions ranging from shock to amusement - matching your own inner conflict.
<<case 3>>
With trembling hands, you grasp the hem of your dress and raise it, baring your lacy panties to the world. The camera clicks incessantly, documenting your humiliation and growing excitement. You feel like a spectacle, torn between your desire for propriety and the thrill of exhibitionism.
<<case 4>>
The cool breeze caresses your newly bared skin as you stand there, exposed yet strangely empowered; your bare panties more a badge of pride than a scarlet letter of shame. Your heart races with both fear and exhilaration.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
You turn slightly, giving $npc_1.firstName a tantalizing view of your pert bottom barely covered by your panties. The click of the shutter becomes faster, more urgent, as she tries to capture every seductive pose.
<<case 2>>
You feel alive, powerful, and utterly irresistible. The risk of being caught adds an extra layer of excitement, making your heart race and your breath quicken as you pose for upskirt photos, your lacy panties on full display.
<<case 3>>
Lift your dress even higher, you offer $npc_1.firstName and any onlookers a tantalizing glimpse of your panties. The soft fabric clings to your curves, leaving little to the imagination. You turn playfully, giving $npc_1.firstName a perfect view of your firm bottom, barely concealed by your underwear. The sound of the shutter grows more frequent, matching the pounding of your excited heart.
<<case 4>>
Your sundress pools around your hips as you show off your panties with a wide smile. $npc_1.firstName focuses intently on framing the perfect shot as you cast a sexy wink at a passing stranger.
<</switch>>
<</if>>
<<case 'Tits'>>
<<if $player.inhib > 80 or $player.mentalFem < 30>>
<<switch random(1,4)>>
<<case 1>>
The cool air hits your skin, sending a shiver down your spine as your exposed nipples pebble into hardened little nubs. You feel utterly exposed, your cheeks burning with shame as passersby shoot you curious and disgusted glances. The camera clicks incessantly, capturing your mortification from every angle.
<<case 2>>
You try to calm your shakning hands as you stand there, revealing your bare chest to the public park. You can feel the stares of strangers burning into your skin, judging you for your indecency. With each click of $npc_1.firstName's camera, you flinch, feeling more and more exposed and vulnerable.
<<case 3>>
You stand awkwardly in the middle of the park, your arms crossed tightly over your bare chest. Every time $npc_1.firstName tells you to strike a pose, you hesitate, trying to find a way to cover yourself as much as possible. When she commands you to arch your back and push out your breasts, you feel a wave of humiliation wash over you, but you obey nonetheless.
<<case 4>>
Under $npc_1.firstName's direction, you reluctantly lift your arms above your head, giving everyone in the park an unobstructed view of your naked <<sizeTits $player>> breasts. You turn around slowly, feeling incredibly self-conscious as your breasts jiggle with each movement. All the while, $npc_1.firstName snaps photo after photo, documenting your embarrassment for posterity.
<</switch>>
<<elseif $player.inhib >= 50 or $player.mentalFem < 40>>
<<switch random(1,4)>>
<<case 1>>
You never expected to find yourself in such a compromising position, yet here you are, standing half-naked in a public park. $npc_1.firstName's camera clicks away, capturing every moment of your humiliation, but you can't deny the small part of you that's excited by the danger, the risk of being seen. As she has you pose provocatively, you catch yourself smiling, almost forgetting that this isn't your idea of fun.
<<case 2>>
As you stand topless in the middle of the park, you feel a strange sense of excitement building within you. You follow $npc_1.firstName's instructions, turning and posing for the camera, and you find yourself reveling in the attention. It's a side of yourself you never knew existed, and you're both shocked and intrigued by your own shameful reactions.
<<case 3>>
You never imagined you'd be doing something so bold, so daring, but as you stand before $npc_1.firstName, your breasts bared for all to see, you feel a rush of adrenaline coursing through your veins. When she tells you to lean forward, presenting your chest to the camera you only hesitate for a moment and then revel in the feeling of being exposed.
<<case 4>>
As you stand there, topless and exposed, you feel a confusing mix of emotions. Shame and embarrassment course through you, but there's also an undeniable thrill, a secret enjoyment in the taboo nature of what you're doing. When $npc_1.firstName instructs you to run your hands over your bare breasts, you hesitate briefly before complying, feeling a shiver of pleasure at your own touch.
<</switch>>
<<elseif $player.inhib >= 40 or $player.mentalFem < 50 >>
<<switch random(1,4)>>
<<case 1>>
As you stand there, topless and exposed, you feel a confusing mix of emotions. On one hand, you know this isn't right - it's improper, shameful even. Yet, on the other hand, you can't deny the thrill that courses through your body as $npc_1.firstName's camera clicks away. When she instructs you to cup your breasts, lifting them enticingly, you comply without hesitation, feeling a guilty pleasure at your own brazenness.
<<case 2>>
The weight of societal expectations presses down on you, reminding you that good girls don't do things like this. But as you arch your back, thrusting out your chest for $npc_1.firstName's lens, you can't suppress the excitement bubbling up inside you. Maybe, just maybe, being bad feels too good to resist.
<<case 3>>
Standing there, half-naked and on display, you grapple with conflicting feelings. Part of you screams that this is wrong, that you should be ashamed of yourself. But another part, a part you never knew existed until now, revels in the freedom, the exhilaration of casting aside propriety. When $npc_1.firstName tells you to pinch your nipples, teasing them to stiff peaks, you obey without question, gasping softly as pleasure mingles with your lingering guilt.
<<case 4>>
$npc_1.firstName's eyes gleam with satisfaction as she watches you struggle with your conflicting emotions. "That's it, baby," she coos, snapping another photo. "Show me how much you love this." Her words send a shiver down your spine, a mix of shame and arousal. As you tentatively run your hands over your bare breasts, you can't deny the pleasure that ripples through you, even as your conscience screams that this is wrong.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
You stand confidently in the center of the park, your bare breasts glistening in the sunlight. The thrill of being so exposed sends electric pulses through your body, heightening your senses. $npc_1.firstName circles around you, camera clicking away, and you revel in her appreciative gaze, striking pose after provocative pose.
<<case 2>>
The cool breeze caresses your naked skin as you arch your back, pushing out your chest for Ju$npc_1.firstNamelia's lens. You can feel the stares of passersby, their shock and desire fueling your own excitement. When $npc_1.firstName tells you to play with your nipples, you comply eagerly, moaning softly as you tug and twist the sensitive buds.
<<case 3>>
You've never felt so alive, so free, as you do now, posing topless in the middle of a crowded park. $npc_1.firstName's encouragement spurs you on, making you feel sexy and powerful. You bend at the waist, dangling your breasts tantalizingly close to the ground, loving the way they swing and jiggle with each movement. This is pure ecstasy, and you never want it to end.
<<case 4>>
Leaning back against a tree, you arch your back, offering your breasts up to the sky. The rough bark scrapes against your sensitive flesh, sending shivers of pleasure through your body. $npc_1.firstName moves in closer, zooming in on your erect nipples, and you moan softly, lost in the moment.
<</switch>>
<</if>>
<<case 'Groin'>>
<<if $player.body.gender === 'Female'>>
<<if $player.inhib > 80 or $player.mentalFem < 30>>
<<switch random(1,4)>>
<<case 1>>
With trembling hands, you obey your tormentor, revealing your bare pussy to the world. The cool breeze brushes against your sensitive flesh, making you acutely aware of your vulnerability. $npc_1.firstName's camera clicks relentlessly, capturing your shame for eternity.
<<case 2>>
The grin on your face feels like the most fake thing in the world as you reluctantly spread your legs, giving $npc_1.firstName an unobstructed view of your pussy. You can hardly breathe, overwhelmed by the humiliation of being so exposed. As she zooms in for a close-up, you want nothing more than to disappear, to escape this nightmare.
<<case 3>>
Your dress bunches around your hips, exposing your ass and bare pussy to anyone who might be watching. The blood rushes to your head as you hang there, helpless and degraded, while $npc_1.firstName documents your submission from every angle.
<<case 4>>
You hesitate briefly before complying, pulling the fabric up to reveal your bare pussy to the world. The exposure makes you feel sick with shame, but you have no choice but to obey. $npc_1.firstName's camera clicks mercilessly, capturing your humiliation from every angle.
<</switch>>
<<elseif $player.inhib >= 50 or $player.mentalFem < 40>>
<<switch random(1,4)>>
<<case 1>>
You stand there, skirt hiked up, revealing your bare pussy to the world. The cool air brushes against your sensitive flesh, making you shiver with both embarrassment and unexpected arousal. $npc_1.firstName's camera clicks away, capturing your conflicted expression as you struggle to reconcile your shame with your growing excitement.
<<case 2>>
You meekly comply with $npc_1.firstName's demands, feeling the warmth of the sun on your exposed pussy as you stand there mortified. Despite your initial reservations, you can't deny the thrill that courses through your body as you pose lewdly for the camera, your arousal evident in the glistening wetness between your thighs.
<<case 3>>
You bend over, touching your toes, your skirt riding up to reveal your ass and pussy to anyone who might be watching. The blood rushes to your head, making you dizzy with a mixture of humiliation and desire. $npc_1.firstName moves in close, her camera capturing every intimate detail, and you can't help but moan softly, torn between your shame and your mounting excitement.
<<case 4>>
Your heart pounds as you hook a finger under the delicate fabric of your panties, exposing your most intimate area to her lens. You can feel the heat rising in your cheeks, but there's also an undeniable throb of excitement between your legs.
<</switch>>
<<elseif $player.inhib >= 40 or $player.mentalFem < 50 >>
<<switch random(1,4)>>
<<case 1>>
You stand there, skirt hiked up, exposing your bare pussy to the world. The cool air brushes against your sensitive flesh, making you shiver with arousal. Despite your better judgment, you find yourself growing wetter by the second, your body betraying your conservative values. $npc_1.firstName's camera clicks away, capturing your inner turmoil and forbidden excitement.
<<case 2>>
The knowledge that anyone could walk by and see you in such a compromising position only fuels your desire, even as your mind screams at you that this is not a propery way for a girl to behave.
<<case 3>>
You recline on a park bench, legs splayed wide, your pussy glistening with arousal. Julia crouches down, her camera mere inches from your most intimate area. The thrill of being so exposed, so vulnerable, sends waves of pleasure through your body. You bite your lip, trying to suppress a moan, torn between your need to be proper and your overwhelming lust.
<<case 4>>
You feel a flush spreading across your body, a mix of shame and intense arousal. As you obey her command, spreading your legs wider, you can't deny the wetness gathering between your thighs. The forbidden thrill of exposing yourself in public is almost too much to bear.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
You stand confidently in the middle of the park, your skirt hiked up to reveal your bare pussy. The cool breeze brushes against your sensitive flesh, making you shiver with delight. $npc_1.firstName snaps away with her camera, capturing your brazen exhibitionism for posterity. You love every second of it, reveling in the thrill of being watched.
<<case 2>>
Perching on a park bench, you spread your legs wide, giving Julia an unobstructed view of your glistening pussy. You run your fingers along your slick folds, putting on a show for any passerby. $npc_1.firstName's camera clicks away, preserving your sluttiness forever. The thought of strangers seeing these photos only adds to your arousal.
<<case 3>>
You bend over, resting your hands on your knees, your short skirt riding up to expose your ass and pussy. You wiggle your hips seductively, showing off for $npc_1.firstName and anyone else who might be watching. The sound of her camera shutter is music to your ears, fueling your desire to be even more outrageous. Being such a dirty slut in public turns you on beyond belief.
<<case 4>>
You stand proudly in the park, your pussy on full display as you lift your skirt high. The thrill of being seen by strangers sends a rush of excitement through you. $npc_1.firstName snaps photo after photo, capturing your unabashed sluttiness from every angle. You feel alive, powerful, and incredibly aroused.
<</switch>>
<</if>>
<<else>>
<<if $player.inhib > 80 or $player.mentalFem < 30>>
<<switch random(1,4)>>
<<case 1>>
With shaking hands, you comply, exposing your <<descDick $player>> cock to the world. The cool air brushes against your sensitive flesh, making you acutely aware of your vulnerability. $npc_1.firstName's camera clicks relentlessly, capturing your shame for eternity.
<<case 2>>
Mechanically, you obey, revealing your most private parts to the world. The exposure leaves you feeling sick with shame, but you have no choice but to comply. $npc_1.firstName's camera clicks away, capturing your humiliation for all eternity.
<<case 3>>
Fighting back tears, you expose your <<descDick $player>> cock for her camera and anyone within eyesight. The mortification is overwhelming, and you wish you could simply vanish from this nightmare.
<<case 4>>
You present your <<sizeDick $player>>cm cock to $npc_1.firstName merciless lens. The degradation is almost too much to bear, but you know resistance is futile. $npc_1.firstName's camera preserves your shame forever.
<</switch>>
<<elseif $player.inhib >= 50 or $player.mentalFem < 40>>
<<switch random(1,4)>>
<<case 1>>
You stand there, skirt hiked up around your hips, your cock exposed to the world. The cool breeze brushes against your sensitive flesh, making you shiver with both embarrassment and unexpected arousal. $npc_1.firstName's camera clicks away, capturing your conflicted expression as you struggle to reconcile your shame with your growing excitement.
<<case 2>>
The sun bathes on your exposed cock in warm light as you stand there, helpless and flustered. Despite your initial reservations, you can't deny the thrill that courses through your body as you perform for the camera, your arousal evident in the growing hardness between your legs.
<<case 3>>
The blood rushes to your head, making you dizzy with a mixture of humiliation and desire. $npc_1.firstName moves in close, her camera capturing every intimate detail, and you can't help but moan softly, torn between your shame and your mounting excitement.
<<case 4>>
You can't believe what you're doing as you stand there, cock exposed to the world. The cool air brushes against your sensitive flesh, making you shiver with a mix of embarrassment and unexpected arousal. $npc_1.firstName's camera clicks away, capturing your conflicted expression as you grapple with your shame and growing excitement.
<</switch>>
<<elseif $player.inhib >= 40 or $player.mentalFem < 50 >>
<<switch random(1,4)>>
<<case 1>>
You stand confidently in the middle of the park, your skirt hiked up to reveal your hard cock. The cool breeze brushes against your sensitive flesh, making you shiver with delight. Julia snaps away with her camera, capturing your brazen exhibitionism for posterity. You love every second of it, reveling in the thrill of being watched, even though you know good girls shouldn't behave this way.
<<case 2>>
Perching on a park bench, you spread your legs wide, giving $npc_1.firstName an unobstructed view of your throbbing cock. You stroke yourself slowly, putting on a show for any passerby. Julia's camera clicks away, preserving your sluttiness forever. The thought of strangers seeing these photos only adds to your arousal. Despite the nagging voice in your head telling you this isn't proper you can't deny how much fun this is.
<<case 3>>
You wiggle your hips seductively, showing off for $npc_1.firstName and anyone else who might be watching. The sound of her camera shutter is music to your ears, fueling your desire to be even more outrageous. Being such a dirty slut in public turns you on beyond belief, even though you know you shouldn't enjoy it so much.
<<case 4>>
The rapid fire of her camera shutter drives you wild, igniting your passion to act even more scandalously. Engaging in such public debauchery excites you immensely, although you recognize it contradicts the proper conduct expected of you.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
You strut confidently through the park, your cock bouncing freely beneath your short skirt. $npc_1.firstName trails behind you, snapping photos as you push the boundaries of decency. You pause to adjust your skirt, flashing your bare ass to a group of joggers, giggling at their shocked expressions.
<<case 2>>
Perched on a swing set, you pump your legs, sending your skirt flying up with each motion. $npc_1.firstName captures your playful antics, zooming in on your exposed cock. You notice a mother shielding her child's eyes, but instead of stopping, you only swing higher, reveling in your ability to shock and titillate.
<<case 3>>
Your cock already semi-hard with anticipation as you let it flop around in full view. $npc_1.firstName positions herself for the perfect shot as you exposing yourself. Gasps and murmurs fill the air, but you simply strike a pose, basking in the attention and the thrill of testing society's limits.
<<case 4>>
You climb onto a children's merry-go-round, sitting with your legs spread wide. $npc_1.firstName circles you, snapping shots from various angles as you spin. A group of teenagers gawk openly, pointing and whispering. Instead of covering up, you simply smile and wave, enjoying the scandalized reactions you provoke.
<</switch>>
<</if>>
<</if>>
<</switch>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<if $julPhotoIdx.length < 4>>
<<addSecs 45>>
<<goto "JulesPhotoLoop">>
<<else>>
<<switch $julPhotoType>>
<<case "Reg">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
$npc_1.firstName smiles to herself in a not-nice way and says, "OK, little miss, that's enough of the boring pics. Time for the real show -- show me those panties for the next set!"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Wait - what?" "JulesParkSlap">>
<<set $julPhotoType = 'Panties'>>
<<set $julPhotoIdx = []>>
<<addMins 2>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Do as she tells you" "JulesPhotoLoop">>
<<set $player.statBuffs.sub += 1>>
<<set $julPhotoType = 'Panties'>>
<<set $julPhotoIdx = []>>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<<case 'Panties'>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
<<if $player.body.tits > 0>>
$npc_1.firstName waves her hand in a frenchman's wave and says casually "OK, time to lose the top. I want to see your titties in the sunlight!"
<<else>>
"Time for the real show, little miss. Hike up that skirt and let's see what you got hidden down there!"
<</if>>
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Refuse">>
<<set $julesDemand = 'JulesPhotoLoop'>>
<<if $player.body.tits > 0>>
<<set $julPhotoType = 'Tits'>>
<<else>>
<<set $julPhotoType = 'Groin'>>
<</if>>
<<set $julPhotoIdx = []>>
<<goto "JulesRefuse">>
<</button>>
</div>
<div class="buttonContainer">
<<button "Do as she tells you" "JulesPhotoLoop">>
<<set $player.statBuffs.sub += 1>>
<<if $player.body.tits > 0>>
<<set $julPhotoType = 'Tits'>>
<<else>>
<<set $julPhotoType = 'Groin'>>
<</if>>
<<set $julPhotoIdx = []>>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<<case 'Tits'>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
"Time for the real show, little miss. Hike up that skirt and let's see what you got hidden down there!"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Refuse">>
<<set $julesDemand = 'JulesPhotoLoop'>>
<<set $julPhotoType = 'Groin'>>
<<set $julPhotoIdx = []>>
<<goto "JulesRefuse">>
<</button>>
</div>
<div class="buttonContainer">
<<button "Do as she tells you" "JulesPhotoLoop">>
<<set $player.statBuffs.sub += 1>>
<<set $julPhotoType = 'Groin'>>
<<set $julPhotoIdx = []>>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<<case 'Groin'>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
"OK, I think we've had enough fun." $npc_1.firstName says as she tucks her phone away.
<br><br>
"The cops will probably show up soon after your slutty little public display! You can keep the dress, by the way. I can tell you're starting to enjoy it. Bye!"
<br><br>
And with that $npc_1.firstName turns and walks off, leaving you alone in the park with your new sundress and many many questions.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "CityPark">>
<<set $player.questTracker = $player.questTracker.filter(obj => obj.idx !== 'ParkPhotoQuest')>>
<<run $player.questLog.addQuest('JuliaSexToy','You played $npc_1.firstName\'s little game - she should leave you alone now.')>>
<<set $player.questTracker.find(obj => obj.idx == 'JuliaSexToy').level = 2>>
<<unset $julPhotoType>>
<<unset $julPhotoIdx>>
<<unset $julesDemand>>
<<unset $juleRefReasons>>
<<purgeNPC $npc_1.dna>>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<</switch>>
<</if>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
"I need an appropriate punishment for you"
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "Shower">>
<<addSecs 15>>
<</button>>
</div>
</div><<run $dailyLimit.push('JulesGenderBash')>>
<<set _tmpImg = 'Media/Fighting/Choke/FM/' + random(1,1) + '.webp'>>
<center>
<span id="repCont">
<img @src="_tmpImg" height="500rem">
<br><br>
Suddenly $npc_1.firstName's hand grabs you by around the throat and she yanks you around a corner where she can pin you against the wall in private.
<br><br>
"Anyone who sees you can spot you're a man from a mile away!" she spits at you. "What the fuck are you doing? Do you <b>want</b> to get reported to the cops as a perv?"
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Continue" "JulesGenderMasks">>
<<set $julesTxt = '"I\'m not about to let my favorite toy get booted out of here so easily. You need to learn to disguise the fact that you\'re really a disgusting little piggy boy."<br><br>'>>
<<addMins 1>>
<</button>>
</div>
</div><<set _tmpOptions = []>>
<<if $player.body.hair.length <= 80>>
<<set _tmpOptions.push('hair')>>
<<else>>
<<if $player.body.makeup === 0>>
<<set _tmpOptions.push('makeup')>>
<</if>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.stats.fem != 1>>
<<set _tmpOptions.push('outfits')>>
<</if>>
<<if $player.body.tits < 4 and $player.body.makeup != 0 and $clothingObj.stats.fem === 1>>
<<set _tmpOptions.push('tits')>>
<</if>>
<</if>>
<center>
<span id="repCont">
<div class="profileContainer">
<div>
<img src="Media/Characters/Static/Julia/stare.webp" height="450rem">
</div>
<div class="flex-item">
$julesTxt
<<set _currMask = _tmpOptions[random(0,_tmpOptions.length-1)]>>
<<switch _currMask>>
<<case 'hair'>>
"Here, put on this wig. Maybe some longer hair will help hide your shameful secret."'
<br><br>
Without waiting for your response $npc_1.firstName slams a wig down on your head. There's an odd tingle from your scalp and suddenly $npc_1.firstName's eyes unfocus in a strange way for a second, almost as if she was rebooting. She blinks a few times and then refocuses on you.
<<case 'makeup'>>
"God you're just so plain and boring! You'll never pass as a woman looking like yourself." she says, her breath washing warm and sweet-smelling across your face as she leans in close to study you. "Let's put some lipstick on this pig, shall we?"
<br><br>
A tube of lipstick suddenly appears in her other hand as she smiles in a very not-so-nice fashion.
<<case 'outfits'>>
"Right," she says looking you up and down. "I think your main problem are these horribly ugly clothes. You need to wear things that highlight your femininity!" She says as she storms over to your locker.
<<case 'tits'>>
"Even with all that you still scream 'I'm a dirty boy' from a mile away." She throws up her hands and walks away "You might be a lost cause."
<</switch>>
</div>
</div>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<switch _currMask>>
<<case 'hair'>>
<<button "Check your wig" "JulesWigMagic">>
<<unset $julesTxt>>
<<set $player.body.hair.length = 200>>
<<addMins 2>>
<</button>>
<<case 'makeup'>>
<<button "Continue" "JulesMakeover">>
<<unset $julesTxt>>
<<addMins 2>>
<</button>>
<<case 'outfits'>>
<<button "Follow her" "JulesPantyRaid">>
<<unset $julesTxt>>
<<addMins 2>>
<</button>>
<<case 'tits'>>
<<button "Continue" "FHBedroom">>
<<unset $julesTxt>>
<<addMins 2>>
<</button>>
<</switch>>
</div>
</div><center>
<img src="Media/Misc/hPull.webp" height="600rem">
<br><br>
You pull at a few strands of the wig and wince when you feel a painful tugging on your scalp -- <b>the wig has somehow turned into your real hair!!</b> You better get to a mirror and check this out!
<br><br>
$npc_1.firstName clears her throat and frowns at you "As I was saying...if you're going to have long hair like this you need to keep it brushed and clean like a good little girl, OK? Don't make me repeat myself." She scolds, pushing you away from her.
</center>
<hr>
<div class="buttonContainer">
<<button "Continue">>
<<if $player.presenting === 'Female'>>
<<goto $returnLoc>>
<<addMins 2>>
<<else>>
<<set $julesTxt = '$npc_1.firstName looks at you critically, "Still not quite pulling it off..." she mumbles.<br><br>'>>
<<goto "JulesGenderMasks">>
<</if>>
<</button>>
</div><center>
<span id='repCont'>
<video src="Media/Misc/clothesToss.webm" height="500rem" autoplay loop></video>
<br><br>
$npc_1.firstName starts yanking out clothes from your wardrobe she deems unworthy, throwing them out the window. By the time you get out there the homeless population will likey have stolen anything worth keeping.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.dom > 50>>
<<set _tmpLbl = 'Try to stop her'>>
<<else>>
<<set _tmpLbl = 'Just watch her finish'>>
<</if>>
<<button "Just watch her finish">>
<<set $femFitList = []>>
<<for _j to 0;_j < $player.wardrobe.items.length;_j++>>
<<genFit $player.wardrobe.items[_j]>>
<<if $clothingObj.stats.fem != 1>>
/* remove outfit --? */
<<else>>
<<set $femFitList.push($player.wardrobe.items[_j])>>
<</if>>
<</for>>
<<replace "#repCont">>
<<if $player.dom > 50>>
<<set $player.statBuffs.dom += 1>>
<img src="Media/Misc/ff_slap1.webp" height="500rem">
<br><br>
Before you can make it two steps $npc_1.firstName whirls around and slaps you <b>hard</b> across your face!
<br><br>
You drop to the floor, blinking back tears as hot pain quickly moves across your cheek like a spreading fire.
<<else>>
<<set $player.statBuffs.sub += 1>>
<img src="Media/Characters/Static/Julia/stare.webp" height="500rem">
<br><br>
Finally $npc_1.firstName turns back to you with a smirk, "You just let me throw away your clothes? You really *are* a weak little bitch, aren't you?"
<</if>>
<br><br>
Her eyes fall on the outfit you have on, "That too. Off with it, little miss."
<br><br>
For some reason you feel compelled to follow her direction - the weight of her gaze almost physically oppressive. You quietly disrobe, handing your outfit over to her with your eyes cast down to the ground.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addMins 5>>
<<refreshCaption>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_1.image" height="450rem">
</div>
<div class="flex-item">
<<if $femFitList.length > 0>>
You have some passable outfits at least. I suggest you put one of those on.
<<else>>
<<set _tmpArr = []>>
<<for _x = 2;_x < 300;_x++>>
<<capture _x>>
<<if !$player.wardrobe.items.some(fit => fit.type === 'Fit' and fit.sku == _x)>>
<<genFit _x>>
<<if $clothingObj.style == 'Casual' and $clothingObj.stats.fem == 1 and ($clothingObj.stats.topSkin > 1 or $clothingObj.stats.btmSkin > 2)>>
<<if ((!$clothingObj.stats.zCup and $player.body.tits < 13) or ($clothingObj.stats.zCup and $player.body.tits == 13)) and (($clothingObj.stats.tight != 0 and (!$player.body.womb or !$player.body.womb.showPreg)) or ($clothingObj.stats.tight == 0 and ($player.body.womb and $player.body.womb.showPreg)))>>
<<set _tmpArr.push($clothingObj.sku)>>
<</if>>
<</if>>
<</if>>
<</capture>>
<</for>>
<<set $newFit = _tmpArr[random(0,_tmpArr.length-1)]>>
"Here, take this old outfit I don't wear anymore. But you need to get more clothes, little miss. I don't want to see you in any boring old boy clothes ever again."
<</if>>
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $femFitList.length > 0>>
<<button "Get up" "FHBedroom">>
<<addSecs 45>>
<</button>>
<<else>>
<<button "Look at your new outfit">>
<<genFit $newFit>>
<<replace "#repCont">>
<img @src='$clothingObj.image' height='500rem'>
<br><br>
<<playerFitRx $clothingObj>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Get dressed">>
<<run $player.wardrobe.addItem($clothingObj)>>
<<set $forceFit = true>>
<<set $pickedFit = clone($player.outfit)>>
<<set $pickedFit.fit = $newFit>>
<<wearFit $pickedFit "Auto">>
<<calcGender>>
<<if $player.presenting != 'Female'>>
<<set $julesTxt = '$npc_1.firstName looks at you critically, "Still not quite pulling it off..." she mumbles.<br><br>'>>
<<set $wardLoc = 'JulesGenderMasks'>>
<<else>>
<<set $wardLoc = 'FHBedroom'>>
<</if>>
<<wearFit $pickedFit>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><center>
<span id="repCont">
<img src="Media/Makeup/mLipstick.webp" height="450">'
<br><br>
She holds you as still as she can with her steel grip around your throat and roughly smashes some lipstick the general vicinity of your lips. Even you can tell that she's not really applying it to look good -- she's just trying to humiliate you.
<br><br>
Suddenly she grips your head in both hands and shoves your face toward a mirror. "What a pretty little piggy boy!" she says with genuine merriment in her voice.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Look in the mirror">>
<<set $player.body.makeup = -1>>
<<refreshCaption>>
<<replace "#repCont">>
<img src="Media/Makeup/mSmear.webp" height="450">'
<br><br>
You get a quick glimps of a scared-looking girl with lipstick smeared all over her face with $npc_1.firstName's hands holding her there -- is that you?
<br><br>
but before you can really start to process it $npc_1.firstName spins you around and shoves you down to your knees.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<replace "#repCont">>
<<if $player.presenting === 'Female'>>
<<set _tmpImg = 'Media/Fighting/FaceGrab/FF/' + random(1,1) + '.webp'>>
<img @src="_tmpImg" height="600rem">
<br><br>
$npc_1.firstName grips your cheeks painfully in her fingers, forcing your face toward hers.
<br><br>
"If you don't want a repeat of this event I suggest you learn to always put your face on before anyone sees you!" she hisses in your face.
<<else>>
<<set $julesTxt = '$npc_1.firstName looks at you critically, "Still not quite pulling it off..." she mumbles.<br><br>'>>
<<goto "JulesGenderMasks">>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<goto $returnLoc>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><center>
Jules presents you with a set of silicone body mold breasts!
<br><br>
She forces you to put it on. Oh god -- it looks like you have tits!
<<set _j = 0>>
<<for _i to 0;$player.presenting != 'Female';_i++>>
<<set _j += 1>>
<<set $player.body.tits += 1>>
<<calcGender>>
<</for>>
<<print _j + ' tits'>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<if $player.presenting === 'Female'>>
<<goto $returnLoc>>
<<addMins 2>>
<<else>>
<<set $julesTxt = '$npc_1.firstName looks at you critically, "Still not quite pulling it off..." she mumbles.<br><br>'>>
<<goto "JulesGenderMasks">>
<</if>>
<</button>>
</div>
</div><<widget "purgeJuliaQuests">>
<<run $player.questLog.removeQuest('JuliaSexToy')>>
<<set $player.questTracker.filter(obj => obj.idx !== 'JuliaSexToy')>>
<<set $player.questTracker.filter(obj => obj.idx !== 'ParkPhotoQuest')>>
<<unset $julPhotoType>>
<<unset $julPhotoIdx>>
<<unset $julesDemand>>
<<unset $juleRefReasons>>
<<unset $julesThreats>>
<</widget>><<set $npc_2.knowsPlayer = true>>
<center>
<span id='repCont'>
<img src="Media/Characters/Static/Melissa/melissa1.webp" height="450rem">
<br><br>
<<if $jobArr.find(item => item.employer ==='Hooters').title === 'Dishwasher'>>
While scrubbing a praticularly difficult pan one of the waitresses wanders in to the kitchen and introduces herself.
<<else>>
You're clearing one of your tables when one of the other waitresses stops by and smiles at you.
<</if>>
<br><br>
"Hi! You must be the new hire; $player.firstName. My name's $npc_2.firstName! Nice to meet you!"
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Introduce yourself">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Characters/Static/Melissa/melissa2.webp" height="450rem" >
</div>
<div>
$npc_2.firstName is a lithe blonde woman in her early 20's, clearly a waitress here based on her outfit. She gives off that bubbly almost nervous energy some hyper people seem to have. Even relaxed it looks like she's poised for a sudden change in direction, and when she talks it's so fast you struggle to follow along.
<br><br>
"It's so cool to have someone new working here! We haven't had any fresh young meat for the grinder in a while! Hah! just kidding, you're going to love working here! And I'm always happy to have another woman around."
<br><br>
<<if $home.name === 'Fairhaven'>>
Suddenly her eyes widen and she takes in a sharp breath, "Wait! Didn't I see you coming out of Fairhaven? I did! Ohh, You do have a story, don't you! Spill it, girl!"
<<else>>
She props an elbow on top of a tub of dishes and looks you over for a second, "So, what's your story, new fish? You new in town or what?" she finally asks.
<</if>>
</div>
</div>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Make something up">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Characters/Static/Melissa/melissa2.webp" height="450rem" >
</div>
<div>
<<if $player.mentalFem < 35 and $home.name === 'Fairhaven'>>
The blood drains out of your face at her words, if she knows you're staying at Fairhaven then she must know it's a girls' only house. <<if $player.body.gender != 'Female'>> If she finds out you're really a guy she could get you in some serious trouble!<<else>>So you're going to have to keep up the lie while you're around her.<</if>>
<br><br>
<</if>>
You try to think quickly while you put away some clean dishes to buy time. Finally out of ways to stall you turn back toward and say...
</div>
</div>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button 'Moved here for a boy'>>
<<set $player.statBuffs.femBuff += 3>>
<<set $npc_2.relationship += 10>>
<<set _tmpQst = $player.questTracker.find(item => item.idx === 'MelissaWingman')>>
<<if !(_tmpQst)>><<set $player.questTracker.push({idx: 'MelissaWingman',level:1})>><</if>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Characters/Static/Melissa/melissa3.webp" height="450rem" >
</div>
<div>
In for a penny, in for a pound, right? Might as well through her way off the scent. You spin some tale about moving here with your highschool boyfriend with big dreams of life in the Big City. That was, at least until you found him in bed with your new roommate. You packed up your things and walked out right there, and now you're here putting things back together.
<br><br>
You didn't talk for long, but it seems like $npc_2.firstName is about to explode from holding in her reaction during your short story.
<br>
"Holy fuck balls!" She screams loud enough to be heard in the front part of the restaurant, and more than a few heads in the kitchen turn in your direction. "You just up and left? I'd have cut his dick off and shoved it in her throat before I left, but damn! I'm sorry to hear that. Hey, I'll buy you a drink sometime OK? but I need to head back to my tables. Nice meeting you!"
<br><br>
She gives you a brief hug before she darts back out to the front of the house to tend to her customers. You smile to yourself at the bullet you just dodged, and pleased with your sudden ability to lie when necessary.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 45>>
<<if $jobArr.find(item => item.employer ==='Hooters').title === 'Dishwasher'>>
<<goto "HootersJobHUB">>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
<<button 'Ran away from abusive stepfather'>>
<<set $player.statBuffs.femBuff += 2>>
<<set $player.statBuffs.sub += 1>>
<<set $npc_2.relationship += 4>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Characters/Static/Melissa/melissa3.webp" height="450rem" >
</div>
<div>
Going for some sympathy points you tell her about your mother's new husband and his habit of creeping into your room at night. Having had enough of that you set sails for the big city and, while not exactly what you had hoped for you, you were striving to make your way.
<br><br>
"Oh you poor thing," $npc_2.firstName whispers, "You're going to do fine here, I can just tell. You'll have to tell me more later, but right now I need to get back to my tables. Talk to you soon, sweetie!" She pushes herself away from the table and heads back out to the front of the restaurant.
<br><br>
You nod to yourself at a job well done, $npc_2.firstName won't suspect a thing with a cover story like that. You turn back to the pile of dishes in the sink and sigh, never an end in sight.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 45>>
<<if $jobArr.find(item => item.employer ==='Hooters').title === 'Dishwasher'>>
<<goto "HootersJobHUB">>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
<<button 'Just a girl with some bad luck'>>
<<set $player.statBuffs.femBuff += 1>>
<<set $npc_2.relationship += 2>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Characters/Static/Melissa/melissa3.webp" height="450rem" >
</div>
<div>
You shake your head and shrug your shoulders. You want her off your back, but you don't want to draw attention to yourself. You tell her you're just an average girl like everyone else, just trying to make a buck and get ahead.
<br><br>
$npc_2.firstName seems disappointed by that, and she shakes her head with a frown on her face. "No...no that doesn't sound right. There's definitely a story with you, and I'm not giving up until I find out what it is!" As she says that she pushes off from the wall and slips back out to the front of the restaurant. Leaving you alone and confused by the piles of dirty dishes.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 45>>
<<if $jobArr.find(item => item.employer ==='Hooters').title === 'Dishwasher'>>
<<goto "HootersJobHUB">>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<<if $player.body.gender != 'Female'>>
<div class="buttonContainer">
<<button "Correct her assumption about your gender">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Characters/Static/Melissa/melissa3.webp" height="450rem" >
</div>
<div>
She pauses for a second when you tell her you're a assumption on your gender. But then her eyes narrow and her lips curl into a snarky smile.
<br><br>
<<if $jobArr.find(item => item.employer ==='Hooters').title === 'Waitress'>>
"Hah, good one! But you're a Hooters Girl! "girl" is in the job description. You almost got me there!"
<<elseif $home.name === 'Fairhaven'>>
"Hah, good one! But like I said I've seen you coming out of Fairhaven, so you're either a pervert or a woman! And you don't look like a dirty dirty boy. You almost got me!"
<<else>>
"Hah, good one! You almost had me there. But I know the Boss Man said he'd hired a new female employee."
<</if>>
<br><br>
Try as you might she just refuses to believe you and finally ends the conversation to go back to work. You stand there staring at her back as she bounces away at a loss for words.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 45>>
<<if $jobArr.find(item => item.employer ==='Hooters').title === 'Dishwasher'>>
<<goto "HootersJobHUB">>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<</replace>>
<</button>>
</div>
</div><<if $npc_2.relationship <= 10 or !$player.phone.contacts.includes($npc_2.dna)>>
<<set $npc_2.relationship += 2>>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem">
</div>
<div>
$npc_2.firstName pops by for a quick chat now and then when she has a lull in her section.
<<if $npc_2.relationship < 20>>
Despite your first impression of her you find yourself warming up to her and even looking forward to hearing her jokes and comments.
<</if>>
<br><br>
<<genMelissaTopics>>
<<if $npc_2.relationship == 10>>
<<if !$player.phone.contacts.includes($npc_2.dna) or $gameDate.getDay() !== 3>>
<br><br>
Before she leaves Melissa grabs your phone and quickly adds her phone to your contact list and then calls it before hanging up. She puts your phone back and smiles at you, "Now we have each others numbers!"
<<set $player.phone.contacts.push($npc_2.dna)>>
<<set $player.phone.inbox.push({txtNPC: $npc_2.dna, log: [], new: false, code: ''})>>
<</if>>
<</if>>
</div>
</div>
<<else>>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem">
</div>
<div>
$npc_2.firstName comes bouncing in and plops herself down next to you, watching you <<if $jobArr.find(item => item.employer ==='Hooters').title === 'Dishwasher'>>scrub pots in the sink<<else>>clean off tables and restock generic restaurant supplies.<</if>>
<br><br>
<<if $npc_2.relationship > 25 and random($npc_2.relationship,100) > 75 and !$player.questTracker.some(quest => quest.idx === 'MelissaHustle')>>
<<if $jobArr.find(item => item.employer ==='Hooters').title === 'Dishwasher'>>
<<set $melReturnLoc = "HootersJobHUB">>
<<else>>
<<set $melReturnLoc = "HootersJobHUB">>
<</if>>
<<goto "MelSideHustleIntro">>
<<elseif ($gameDate.getDay() === 3 or random(0,100) > 65) and (!($player.questTracker.some(item => item.idx === 'GirlsNight')) or $player.questTracker.find(item => item.idx === 'GirlsNight').level < 4)>>
<<goto "GirlsNightInvite">>
<<else>>
<<genMelissaTopics>>
<</if>>
</div>
</div>
<</if>>
<hr>
<div id="actionsContainer">
<div class='buttonContainer'>
<<button "Continue">>
<<addSecs 45>>
<<if $jobArr.some(item => item.employer ==='Hooters')>>
<<goto "HootersJobHUB">>
<<elseif $jobArr.some(item => item.employer ==='BBungalow')>>
<<if $jobArr.find(item => item.employer ==='BBungalow').title === 'Waitress'>>
<<goto "BBWaitressHUB">>
<<else>>
<<goto "BBStripperHUB">>
<</if>>
<</if>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem">
</div>
<div id="repCont">
<<if !($player.questTracker.some(item => item.idx === 'GirlsNight'))>>
<<set $player.questTracker.push({idx: 'GirlsNight',level:1})>>
$npc_2.firstName comes bouncing in and drapes herself across your shoulders in a very dramatic fashion.
<br><br>
"Oh! Some of the other girls and I are going out for drinks on Wednesday, we do it every week. You should totally come! I won't take no for an answer!" she beams her brilliant smile at you as if you saying no wasn't even a possibility.'
<<if $player.mentalFem < 40>>
<br><br>
Normally going out for drinks with a group of hot waitresses would sound like a dream come true, but this would be more like a "Girls' Night" -- and you'd be one of the girls! But still, they already think you're a woman and it might be less depressing than sitting at home... Would it really be that bad?'
<</if>>
<br><br>
<<elseif $player.questTracker.find(item => item.idx === 'GirlsNight').level < 3>>
"I think you should reconsider coming out with us for drinks after work! It's great to unwind and, trust me, you could use some fun!"
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Agree to go">>
<<set $player.questTracker.find(item => item.idx === 'GirlsNight').level = 4>>
<<replace "#repCont">>
"Oh goodie! We met every wednesday at 8:00pm. We meet in the parking lot outside work at 8, or you can just show up at the bar whenever!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
/* calc date of date */
<<set _tmpJulDate = clone($currJulianDate)>>
<<if $gameDate.getDay() <= 3>>
/* THIS wednesday */
<<set _tmpJulDate += 3 - $gameDate.getDay()>>
<<else>>
/* NEXT Wednesday */
<<set _tmpJulDate += 10 - $gameDate.getDay()>>
<</if>>
<<set _tmpStartTime = clone($gameDate)>>
<<if _tmpJulDate > 0>>
/* to midnight */
<<run _tmpStartTime.setUTCMinutes($gameDate.getUTCMinutes() + 1440 - ($gameDate.getHours()*60 + $gameDate.getMinutes()))>>
/*to start of date day */
<<run _tmpStartTime.setUTCHours(_tmpStartTime.getUTCHours() + (_tmpJulDate -1 - $currJulianDate) * 24)>>
<</if>>
/* to start of date time */
<<run _tmpStartTime.setUTCMinutes(_tmpStartTime.getUTCMinutes() + 1200)>>
/* end time of date */
<<set _tmpEndTime = clone(_tmpStartTime)>>
<<run _tmpEndTime.setUTCMinutes(_tmpEndTime.getUTCMinutes() + 240)>>
<<set _tmpEvent = new DateObject(
_dateType = 'GirlsNight',
_lable = 'Date',
_npc = $npc_2,
_location = 'KellysPub',
_passage = 'DateIntro',
_julDate = _tmpJulDate,
_startTime = _tmpStartTime,
_endTime = _tmpEndTime,
_details = "Meet $npc_2.firstName at Kelly\'s Pub starting at 8:00pm",
_repeat = 7
)>>
<<run $player.phone.calendar.addDate(_tmpEvent)>>
<<if $jobArr.find(item => item.employer ==='Hooters').title === 'Dishwasher'>>
<<goto "HootersJobHUB">>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline">>
<<replace "#repCont">>
<div>
$npc2.firstName pouts and tilts her head to the side. "You sure? I think it'd be a lot of fun!"
<br><br>
When you hold steady to your position she finally shrugs, "Ok, fine. Be a downer. But I'll just keep asking you!"
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 45>>
<<if $jobArr.find(item => item.employer ==='Hooters').title === 'Dishwasher'>>
<<goto "HootersJobHUB">>
<<else>>
<<goto "HootersJobHUB">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<if $gameDate.getHours() === 20 and $gameDate.getMinutes() <= 10>>
<<set _onTime = true>>
<center>
<img src="Media/Characters/Static/Melissa/MelissaFriends1.webp" height="600rem" >
<br><br>
You get out to the Hooters parking lot and you see $npc_2.firstName and the other waitresses already in their street clothes and waiting for you. $npc_2.firstName smiles brightly and waves you over to the group.
</center>
<<else>>
<center>
<img src="Media/Characters/Static/Melissa/emptyLot.webp" height="600rem" >
<br><br>
The parking lot is empty by the time you get out here. You check your phone and see a message from $npc_2.firstName that they've already head to the bar without you. Looks like you're going to have to catch up with them there.
</center>
<</if>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if _onTime>>
<<button "Join them for Girls' Night">>
<<addSecs 5>>
<<if $gameDate.getHours() < 20>>
<<set _tmpMins = 60 - $gameDate.getMinutes()>>
<<addMins _tmpMins>>
<</if>>
<<set _currDate = $player.phone.calendar.items.find(date => date.julianDate === $currJulianDate and date.type === 'GirlsNight' and date.with.dna === $npc_2.dna)>>
<<set _currDateIdx = $player.phone.calendar.items.indexOf(_currDate)>>
<<set $foodPassage = "GirlsNightHUB">>
<<cleanDate _currDateIdx>>
<<goto "GirlsNightHUB">>
<</button>>
<<else>>
<<button "Head to the bar" "KellysPub">>
<<addMins 5>>
<</button>>
<</if>>
</div>
</div><<set $player.questTracker.push({idx: 'BreastCream',level:1})>>
<<set _tmpImg = 'Media/Characters/Static/Melissa/melTits' + random(1,3) + '.webp'>>
<span id="repCont">
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
<span id= "subRepCont">
"Oh my god $player.firstName, you <b>HAVE</b> to try this new breast cream I found! It's called "Honeydew Cream" and you can get it right at Safeway, I swear it's made my tits bigger! Honest truth. What do you think?" She asks as she arches her back and leans forward to give you a good long look.
</span>
</center>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Stare at her tits">>
<<set $player.statBuffs.tits += 1>>
<<replace "#subRepCont">>
You can't help but focus on the creamy smooth skin she's so happily showing off to you. You have to admit, they do seem a little more full and perky.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<if $player.inventory.checkInv('Honeydew Cream') > 0>>
<<button "Tell you already have some">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem">
</div>
<div id="repCont">
$npc_2.firstName places her hand over heart in mock emotion and rests her other hand on your arm. "My little $player.firstName, growing up so fast!"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Agree to try the cream">>
<<run $player.questLog.addQuest('BreastCream','$npc_2.firstName has suggested you pick up a bottle of "Honeydew" cream from the Safeway cosmetic store')>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem">
</div>
<div id="repCont">
You nod your head and tell her that you'll pick some up next time you're at the store.
<br><br>
"Great!" $npc_2.firstName replies. "I can't wait to get your opinion on it!"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Just nod and smile" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
</div>
</div><<set _tmpQuest = $player.questTracker.find(item => item.idx === 'BreastCream')>>
<<if _tmpQuest.level < 2>>
<<set _tmpQuest.level = 2>>
<</if>>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem">
</div>
<div id="repCont">
$npc_2.firstName leans in close so you can hear her over the music. "Have you tried that Honeydew Mellon cream yet? You simply have to! I'm dying to get your opinion!"
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Tell her you'll try it soon">>
<<set $player.statBuffs.femBuff += 1>>
<<replace "#repCont">>
You shake your head but tell her that you'll try it soon. $npc_2.firstName squints at you in suspicion but lets the topic drop
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<<if _tmpQuest.level === 3>>
<<button "Tell her you've used it already">>
<<set _tmpQuest.level = 4>>
<<addMins 2>>
<<replace "#repCont">>
You spend a few minutes talking about the cream's affects, but you can't really tell if her experience is the same as yours, or if she's just overexaggerating.
<br><br>
Eventually the other girls pull you back into their conversation and $npc_2.firstName drops the subject.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Deflect the question and change the topic">>
<<replace "#repCont">>
You distract $npc_2.firstName by pointing out a hot guy across the room and before you know it she's off on a tagent about whatever new guy she's dating.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<if !$player.questTracker.some(item => item.idx === 'Skin Cream')>>
<<set $player.questTracker.push({idx: 'Skin Cream',level:0})>>
<</if>>
<<set _tmpQuest = $player.questTracker.find(item => item.idx === 'Skin Cream')>>
<span id="repCont">
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem">
</div>
<div>
<span id= "subRepCont">
<<if _tmpQuest.level === 0>>
<<set _tmpQuest.level === 1>>
$npc_2.firstName frowns as she looks at you. "You should take better care of your skin, $player.firstName. It's the only one you have!" she says as she starts rooting around in her purse. After a few minutes she finally pulls out a small jar and holds it out to you.
<<else>>
$npc_2.firstName frowns as she looks at you, "$player.firstName, have you even tried that lotion I recommended? Cuz it doesn't look like you have."
<</if>>
</span>
</div>
</div>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if _tmpQuest.level === 1>>
<<if $player.inventory.checkInv('Skin Cream') === 0>>
<<button "Take the lotion" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<run $player.inventory.addItem('Skin Cream',5)>>
<<addMins 2>>
<</button>>
<<else>>
<<button "Tell you already have some">>
<<replace "#subRepCont">>
"Just having it isn't enough - you need to use it too! Promise me you'll use it, ok? You'll thank me in 5 years."
<</replace>>
<<replace "#actionsContainer">>
<<button "Agree to try it" "GirlsNightHUB">>
<<run $player.questLog.addQuest('SkinCreamQuest','You\'ve promised $npc_2.firstName that you\'ll try the skin cream lotion she recommended.')>>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
<</replace>>
<</button>>
<</if>>
<<else>>
<<if $player.inventory.checkInv('Skin Cream') === 0>>
<<button "Tell her you don't have any">>
<<replace "#subRepCont">>
"Well that's easily fixed!" she says, rummaging around in her purse. "I never leave home without it. Here, take the rest of mine - just promise me you'll use it!"
<br><br>
"Rub it into your skin after your shower each day and you'll definitely see some improvement in no time at all!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Take the lotion and promise to try it" "GirlsNightHUB">>
<<run $player.questLog.addQuest('SkinCreamQuest','You\'ve promised $npc_2.firstName that you\'ll try the skin cream lotion she recommended.')>>
<<set $gnAct = 'Chat'>>
<<run $player.inventory.addItem('Skin Cream',5)>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Agree to try it" "GirlsNightHUB">>
<<run $player.questLog.addQuest('SkinCreamQuest','You\'ve promised $npc_2.firstName that you\'ll try the skin cream lotion she recommended.')>>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
<</if>>
<</if>>
</div>
</div><<run $player.questTracker.push({idx:'MelissaHustle',level:1})>>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem" >
</div>
<div id="repCont">
$npc_2.firstName drags herself in and leans against the counter next to you as she rubs her eyes and yawns.
<br><br>
"Man, I'm soo tired today. Working my side hustle can sometimes be a drain, no cap. But the money is..well...*money*!"
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Side Hustle?">>
<<replace "#repCont">>
"I do some exot- wait. $player.firstName do you not have a side hustle?" she asks, her already large expressive eyes growing a bit wider.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Play it off">>
<<replace "#repCont">>
You make some non-committal response about having irons in fires and then ask about the sparkly plastic bracelet she's wearing. Asking about her latest jewelry is guaranteed to get her to change topics.
<br><br>
Eventually she has to go back to her own section and the topic seems forgotten.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 5>>
<<set _tmpLoc = clone($melReturnLoc)>>
<<unset $melReturnLoc>>
<<goto _tmpLoc>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Admit you do not">>
<<replace "#repCont">>
$npc_2.firstName makes an exaggerated upset face and reaches out to gently squeeze your shoulder as she says "Oh, $player.firstName, what's wrong with you? You'll never get anywhere if you don't take charge of it yourself! Tell you what -- come with me after work and I'll show you what I do and maybe you can work there too! It's super chill and you only have to work when you want to, what do you say?"'
<br><br>
She stands there staring at you with those puppy dog eyes you've come to learn mean she's determined to get her own way -- it might be just to humor her for the night even if you don't want to have a second job.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Agree">>
<<set $player.questTracker.find(quest => quest.idx === 'MelissaHustle').level = 2>>
<<set _tmpStartTime = clone($gameDate)>>
<<set _tmpMins = (60-$gameDate.getMinutes() + (($jobArr.find(job => job.employer === 'Hooters').shiftEnd) - ($gameDate.getHours() -1))*60)>>
<<run _tmpStartTime.setUTCMinutes(_tmpStartTime.getUTCMinutes() + _tmpMins)>>
/* end time of date */
<<set _tmpEndTime = clone(_tmpStartTime)>>
<<run _tmpEndTime.setUTCMinutes(_tmpEndTime.getUTCMinutes() + 240)>>
<<set _tmpEvent = new DateObject(
_dateType = 'MelissaHustle',
_lable = 'Date',
_npc = $npc_2,
_location = 'Downtown',
_passage = '',
_julDate = clone($currJulianDate),
_startTime = _tmpStartTime,
_endTime = _tmpEndTime,
_details = "Meet $npc_2.firstName after work to learn about her Side Hustle",
_repeat = false
)>>
<<run $player.phone.calendar.addDate(_tmpEvent)>>
<<replace "#repCont">>
She jumps and down, clapping her hands exictedly. As usual her energy is infectious and you find yourself grinning stupidly along with her.
<br><br>
"Oh this will be so much fun!" she squeals.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Back to work">>
<<addSecs 5>>
<<set _tmpLoc = $melReturnLoc>>
<<unset $melReturnLoc>>
<<goto _tmpLoc>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline">>
<<replace "#repCont">>
She pouts and folders her arms over her chest. "You're never any fun. But really, you should think about how you can earn extra money. You never know when you'll need it!"
<br><br>
With that she twirls on her heels and walks away, her long blonde pony tail swishing behind her like the tail of angry cat.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Back to work">>
<<run $player.questLog.addQuest('MelissaHustle','$npc_2.firstName mentioned she has a side hustle job that makes a lot of money. Maybe you should ask her about it again.')>>
<<addSecs 5>>
<<set _tmpLoc = clone($melReturnLoc)>>
<<unset $melReturnLoc>>
<<goto _tmpLoc>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<addMins 20>>
<center>
<span id='repCont'>
<div class="profileContainer">
<div>
<img src="Media/Characters/Static/Melissa/melissaStripper1.webp" height="600rem" >
</div>
<div>
You can't help letting your jaw drop open as you meet up with your friend - she doesn't even dress like this on a girls' night out at the bar. You immediately become suspicious and you slow your approach -- just what kind of side-job does she have?
<br><br>
She waves her hand in a dismissive gesture as she links her arm around yours and pulls you along to walk faster with her. "Don't be such a drag, come on! Surprises are fun and I know you'll just love this place!" Her enthusiasm is as infectious as always and you're soon matching her stride as you stroll down the street together.
<br><br>
<<if $unknownLocs.some(item => item[1] === 'RLDistrict')>>
<<set _tmpLoc = $unknownLocs.find(item => item[1] === 'RLDistrict')>>
<<set $unknownLocs = $unknownLocs.filter(item => item != _tmpLoc) >>
<<run $knownLocs.push(_tmpLoc)>>
After taking some unfamiliar turns $npc_2.firstName leads you into Ellis' Red Light District.
<br><br>
<div class="goodText">Now that you know the way you can make it back here on your own.</div>
<<else>>
$npc_2.firstName drags you all the way to the Red Light District. What does she do 'here'?
<</if>>
</div>
</div>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<goto "MelStripperIntro">>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Travel/Walking/Day/FF/' + random(1,6) + '.webp'>>
<center>
<span id="repCont">
<b><font size="10em">Red Light District</font></b>
<br>
<img @src="_tmpImg" height ="600rem" >
<br><br>
$npc_2.firstName is one of those people who can suck you into a conversation so that you don't even notice the hours pass, and it's almost a surprise when she suddenly pulls you into one of the shops on the street.
<br><br>
"Surprise! We're here! This is my side hustle!" she exclaims with some excitement.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Look around">>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Lobby/' + random(1,3) + '.webp'>>
<<replace "#repCont">>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<img @src="_tmpImg" height ="600rem" >
<br><br>
It takes a moment for your eyes to adjust -- at first all you see is darkness with some dim lights spread around the room but then you can see shapes, some of them people..and some of them moving. You can smell alcohol and stale smoke and way, way, too much perfume. Suddenly it all snaps into place and you realize what this is: a strip club! <<if $player.inhib> 75>> You look over at your friend in shock, even knowing her like you do you're still surprised she would work here.<<else>> You look at your friend with a smile on your face, leave it to her to find a fun sexy way to earn some extra spending cash.<</if>>
<br><br>
$npc_2.firstName's not slowing down and she still has a death grip on your arm so you have no choice as she pulls you deeper into the club. Your head pivots back and forth on your neck as you try to look around and take it all in, seeing it in a new light now that you realize you know someone who works here.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<set _tmpImg ='Media/Characters/Static/Melissa/poleDancer1.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height ="600rem" >
<br><br>
Melissa pulls you into one of the private dance rooms and does a little spin around the stipper pole in the center.
<br><br>
She flashes one of her big smiles at you and cocks out one hip, "So yeah, this is the big surprise; I'm a stripper!"
<br><br>
You can tell by the way she's looking at you that's waiting to see your reaction.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Show disgust">>
<<set _tmpImg ='Media/Emotions/Disgust/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,12) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<<if $npc_2.relationship > 16>>
<<set $npc_2.relationship -= 15>>
<<else>>
<<set $npc_2.relationship = 2>>
<</if>>
<<replace "#repCont">>
<img @src="_tmpImg" height ="600rem" >
<br><br>
You tell her in no uncertain terms that you're actually shocked she's working in a place like this and that you're appalled she acted like you would want to work here too. You can see her hopeful expression crumble as she realizes you don't approve. She turns to run away, maybe so you can't see her tears and one of the other dancers steps in front of you and points toward the door.
<br><br>
"I think you should go now," she says. You might have just damaged your friendship with Melissa in a big way.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Leave the strip club" "RLDistrict">>
<<addMins 3>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Show support">>
<<set $npc_2.relationship += 5>>
<<replace '#repCont'>>
<img src="Media/Characters/Static/Melissa/melissaStripper2.webp" height="550rem" >
<br><br>
You laugh and softly clap your hands together, "I should have known," you say, "and good for you, this looks like a great way to make some extra money! Specially for someone as hot as you are." Melissa's smile brightens when she hears your approval and you realize she was actually worried about your response. That warms your heart a little and your relationship with Melissa grows a little bit deeper.
<br><br>
"So," she says, raising her hands up. "What do you think? We can talk to the manager if you might want to work here. He owes me a favor so you're almost a guarantee!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $player.inhib > 80>>
<<set _tmpLbl = "Tell her you don't think you could be a stripper">>
<</if>>
<<if $player.skills.dance < 5>>
<<set _tmpLbl = "Tell her you're not a great dancer">>
<</if>>
<<button _tmpLbl>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="600rem" >
</div>
<div>
$npc_2.firstName waves her hand dismissively, "Oh that's fine. I'm sure we can get you a non-dancing gig. It would just be great to work with you here too! Don't you think?"
<br><br>
She grabs your hand and leads you further into the strip club. "Come on, I'll introduce you to my boss, Mike."
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "MelStripJobOffer">>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<if $player.inhib <= 80 and $player.inhib > 70>>
<<button "Smile and blush">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="600rem" >
</div>
<div>
"There it is - I knew there was a dancer in there! Come on, let's go talk to Mike!" She says, grabbing your hand and leading deeper into the strip club.
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<<button "Continue" "MelStripJobOffer">>
<<addMins 5>>
<</button>>
<</replace>>
<</button>>
<<elseif $player.inhib <= 70>>
<<button "Smile and nod">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="600rem" >
</div>
<div>
$npc_2.firstName first pumps her fist, "Yaaas! There's my girl! Let's do this! Come on, I'll introduce you to my boss, Mike!"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Leave the strip club" "MelStripJobOffer">>
<<addMins 5>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Thanks, but no thanks">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="600rem" >
</div>
<div>
"Oh, sure, I get that," she says as her smile falters. She's obviously dissapointed in your answer but what can you do? You feel kind of gross just standing in here.
<br><br>
"Well, I've actually got some stuff I need to take care of." she says, showing you toward the exit. "Catch up with you later?"
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Leave the strip club" "RLDistrict">>
<<addMins 3>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<<set _tmpImg = 'Media/Characters/Static/Melissa/melTits' + random(1,3) + '.webp'>>
<img @src="_tmpImg " height="500rem" >
</div>
<div id="repCont">
"Hey," $npc_2.firstName says with that twinkle in her eye you've learned means she has an idea she's already sold on. "You should be my gym partner! I need someone else there to help keep me motivated -- and I can do the same for you!
<br><br>
I go Mondays and Fridays at 9am to that gym in the Business District. You wouldn't even have to buy a membership! If you go in with me you'd be my guest. What do you say? Pretty Please?"
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Agree">>
<<replace "#repCont">>
$npc_2.firstName claps with joy and beams her high-wattage smile at you. "Awesome-sauce! Meet me there in the lobby on Monday and Wednesdays at 9am, k?"
<br><br>
"Oh this is going to be so much fun!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "GirlsNightHUB">>
/*Friday Event */
<<set _tmpStartTime = clone($gameDate)>>
<<set _tmpMins = (60-$gameDate.getMinutes()) + (23 - ($gameDate.getHours()))*60 + 9*60>>
<<run _tmpStartTime.setUTCMinutes(_tmpStartTime.getUTCMinutes() + 24*60 + _tmpMins)>>
<<set _tmpEndTime = clone(_tmpStartTime)>>
<<run _tmpEndTime.setUTCMinutes(_tmpEndTime.getUTCMinutes() + 15)>>
<<set _tmpEvent = new DateObject(
_dateType = 'GymDate',
_lable = 'Date',
_npc = $npc_2,
_location = 'DwightsGym',
_passage = 'MelGymIntro',
_julDate = clone($currJulianDate)+2,
_startTime = _tmpStartTime,
_endTime = _tmpEndTime,
_details = "Meet " + $npc_2.firstName + " in the Business District Gym at 9:00am",
_repeat = 7
)>>
<<run $player.phone.calendar.addDate(_tmpEvent)>>
/* Monday Date */
<<set _newStartTime = clone(_tmpStartTime)>>
<<run _newStartTime.setUTCMinutes(_newStartTime.getUTCMinutes() + 3*24*60)>>
<<set _newEndTime = clone(_tmpEndTime)>>
<<run _newEndTime.setUTCMinutes(_newEndTime.getUTCMinutes() + 3*24*60)>>
<<set _tmpNewEvent = new DateObject(
_dateType = 'GymDate',
_lable = 'Date',
_npc = $npc_2,
_location = 'DwightsGym',
_passage = 'MelGymIntro',
_julDate = clone($currJulianDate)+5,
_startTime = _newStartTime,
_endTime = _newEndTime,
_details = "Meet " + $npc_2.firstName + " in the Business District Gym at 9:00am",
_repeat = 7
)>>
<<run $player.phone.calendar.addDate(_tmpNewEvent)>>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline">>
<<replace "#repCont">>
$npc_2.firstName mock-pouts for a moment but then her usual smile returns "Ok, but I'm going to ask again later! I can be *very* persistant."
<</replace>>
<<replace "#actionsContainer">>
<<button "Continue" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<addMins 2>>
<</button>>
<</replace>>
<</button>>
</div>
</div><<set $onDate = true>>
<<set _currDate = $player.phone.calendar.items.find(date => date.julianDate === $currJulianDate and date.type === 'GymDate' and date.with.dna === $npc_2.dna)>>
<<if _currDate>>
<<set _currDateIdx = $player.phone.calendar.items.indexOf(_currDate)>>
<<cleanDate _currDateIdx>>
<</if>>
<<unset $onDate>>
<center>
<img src="Media/Characters/Static/Melissa/melissaGreet1.webp" height="600rem">
<br><br>
$npc_2.firstName smiles brightly as you walk up to her. "Hey, $player.firstName! Glad you made it! And don't worry if you don't have a workout outfit. I have one you can borrow." she says.
<br><br>
"So - want to head in or do you need to do something else first?"
</center>
<hr>
<div id="actionsContainer">
<<MelGymFitCode>>
<div class="buttonContainer">
<<button "Head to the lockerroom">>
<<if $player.presenting === 'Female'>>
<<purgeNPC $npc_2.dna>>
<<set $melGymDate = true>>
<<set _tmpLocAr =['DGLocker']>>
<<addNPC $npc_2 _tmpLocAr 'MelLockerChat'>>
<<set $DGLockerType = 'Fem'>>
<<else>>
<<set $DGLockerType = 'Masc'>>
<</if>>
<<goto "DGLocker">>
<</button>>
</div>
<div class="buttonContainer">
<div class="buttonContainer">
<<button "Take a raincheck">>
<</button>>
</div>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_2.image" height="500rem" >
</div>
<div>
<<if $melGymDate>>
"Let's go! I'm itching to get my sweat on." $npc_2.firstName says, hopping from foot to foot.
<<else>>
"Hey, $player.firstName. Are you always here?" $npc_2.firstName asks with a grin.
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<<if $melGymDate>>
<<MelGymFitCode>>
<div class="buttonContainer">
<<button "Head the gym floor together">>
<<preFlightCheck _tmpVal 'DuoGymHUB' 1>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step back" "DGLocker">>
<<addSecs 5>>
<</button>>
</div>
</div><span id="repCont">
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="500rem" >
</div>
<div>
<<if !$player.questTracker.some(quest => quest.idx ==='MelGymFit')>>
<<run $player.questTracker.push({idx: 'MelGymFit',level: 1})>>
"Oh yeah, no problem! Here, this one should fit you" she says, pulling out a set of gym clothes from her bag.
<<else>>
<<set $preGymFit = clone($player.outfit)>>
<<set $pickedFit = $player.outfit>>
<<set
$pickedFit.fit = 34;
$pickedFit.shoes = 6;
>>
<<set $wardLoc = 'DGLocker'>>
<<wearFit $pickedFit>>
<</if>>
</div>
</div>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Check it out">>
<<replace "#repCont">>
<<genFit 34>>
<center>
<img @src="$clothingObj.image" height="500rem">
<<genShoes 6>>
<img @src="$clothingObj.image" height="500rem">
<br><br>
<<canWearIt 34 'fit'>>
<<if !$canWearFit>>
Your mouth goes dry and you try to swallow as you look at the outfit Melissa gave you to wear. This is way outside your comfort zone, even if it's a 'normal' outfit for a girl to wear at the gym. But if you back out now you'd have to explain why -- might be better to just suck it up and get through this until you can get a better set of gym clothes.
<<else>>
You thank her for the outfit and start changing.
<</if>>
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $player.presenting === 'Female'>>
<<button "Get dressed">>
<<set $preGymFit = clone($player.outfit)>>
<<set $pickedFit = $player.outfit>>
<<set
$pickedFit.fit = 34;
$pickedFit.shoes = 6;
>>
<<set $wardLoc = 'DGLocker'>>
<<wearFit $pickedFit>>
<</button>>
<<else>>
<<button "Take outfit to the lockerroom" "DGLocker">>
<<purgeNPC $npc_2.dna>>
<<set
$melGymDate = true;
$DGLockerType = 'Masc';
$melFit = true;
>>
<<addMins 1>>
<</button>>
<</if>>
</div>
<</replace>>
<</button>>
</div>
</div><span id="repCont">
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="500rem" >
</div>
<div>
"Thanks, glad it fit you! I'll keep it here in case you need to borrow it again, ok?"
</div>
</div>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<unset $melGymDate>>
<<addSecs 15>>
<<if $DGLockerType == 'Fem'>>
<<goto "DGLocker">>
<<else>>
<<goto "DwightsGym">>
<</if>>
<</button>>
</div>
</div><center>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem" >
</div>
<div>
<span id="repCont">
"Hey, $player.firstName." $npc_2.firstName says, talking your hand and pulling you aside.
<br><br>
"That was pretty rough back there with the customer. You'll never earn tips that way. Can I offer you some suggestions?"
</span>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Hear what she has to say">>
<<set $npc_2.relationship += 5>>
<<replace "#repCont">>
"The guys who come here don't really care about the food. They come for us girls!" She says, bumping her hip against yours in a show of camradarie.
<br><br>
"You gotta sell the sizzle, baby! I don't mean you need to go full slut - but a little giggle now and then, maybe bend over a certain away, and the wallets will open!"
<br><br>
"What do you think, want to give it a try? I see a table over there just begging to be fleeced."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Why not - give it a shot" "HootersEncounter">>
<<set
$betterTips = true;
$melFlirtingCoach = true;
>>
<</button>>
</div>
<div class="buttonContainer">
<<button "No thanks">>
<<replace "#repCont">>
"Oh," she says, as concern crosses her face, "well, just think about what I said, ok?" She squeezes your hand in support before flitting off back to her section.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "HootersJobHUB">>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "No thanks">>
<<set $npc_2.relationship -= 1>>
<<replace "#repCont">>
"Oh," she says, as concern crosses her face, "well forget I said anything then. See you around."
<br><br>
She spins on her heels and walks off, her blond ponytail swishing angrily in her wake. Maybe it wouldn't have hurt to at least hear her out...
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "HootersJobHUB">>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $npc_2.relationship += 5>>
<center>
<div class="profileContainer">
<div>
<img @src="$npc_2.image" height="450rem" >
</div>
<div>
<span id="repCont">
$npc_2.firstName mimes excitement and quiet-claps as you walk back over to her with a smile on your face - her mood is just infections no matter how hard you try to resist.
<br><br>
"So, what do you think - not so bad, right?" She says, giving you a hug when you get within arms reach.
</span>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Admit it wasn't bad">>
<<replace "#repCont">>
You didn't think it was possible, but her smile gets even wider. "Atta, girl! Use what your momma gave ya! Come on, let's go earn some cash!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "HootersJobHUB">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Tell her it's not for you">>
<<replace "#repCont">>
She puts her hand on your shoulder in a friendly gesture, "I get it - it doesn't always come naturally. But give it some time and I'll check in with you later, ok?"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "HootersJobHUB">>
<<unset $betterTips>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<widget "genMelissaTopics">>
<<switch random(1,13)>>
<<case 1>>
"Have you seen the guy at table #3? Man I'd let him bend me over it in a heartbeat!"
<<case 2>>
"Doesn't the term 'staff member' make you laugh? Because both of those words mean cock."
<<case 3>>
"Two nuns are riding bikes along a cobbled road. One turns to the other and says, 'I've never come this way before'. The other replies, 'Neither have I. It must be the cobbles'"
<<case 4>>
"I'm not saying I'm dramatic, but my coffee order has three plot twists."
<<case 5>>
"My toxic trait is thinking I can fix my life with a new lip gloss."
<<case 6>>
"I'm usually not flirting, I just talk like a rom-com character."
<<case 7>>
"I'm emotionally attached to my Amazon cart."
<<case 8>>
"My spirit animal is a raccoon with a latte and unresolved issues."
<<case 9>>
"I don't ignore dating red flags, I collect them like Pokémon!"
<<case 10>>
"My standards aren't unrealistic, they're just inconvenient for mediocre men."
<<case 11>>
"You know, Voldemort is basically a teenage girl.."
<<case 12>>
"'Shit ton' is my favorite unit of measurement."
<<case 13>>
"You know it's a really good bar when there's a couple outside breaking up."
<</switch>>
<</widget>>
<<widget "MelGymFitCode">>
<<if $melGymDate or passage() == 'MelGymIntro'>>
<<if !$gymBag or $gymBag.length === 0>>
<<set _noFit = true>>
<<else>>
<<for _i to 0;_i < $gymBag.length; _i++ >>
<<set _tmpFit = $player.wardrobe.plannedFits.find(fit => fit.idx === $gymBag[_i].idx).clothes>>
<<genFit _tmpFit.fit>>
<<if $clothingObj.style == 'Athletic'>>
<<genShoes _tmpFit.shoes>>
<<if $clothingObj.style === 'Athletic'>>
<<set _foundIt = true>>
<</if>>
<</if>>
<</for>>
<<set _noFit = !_foundIt>>
<</if>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style === 'Athletic'>>
<<genShoes $player.outfit.shoes>>
<<if $clothingObj.style === 'Athletic'>>
<<set _noFit = false>>
<</if>>
<</if>>
<<if _noFit and !$preGymFit and $player.outfit.fit != 34>>
<<if $DGLockerType == 'Fem'>>
<<if !$player.questTracker.some(quest => quest.idx ==='MelGymFit')>>
<<set _tmpLbl = 'Borrow a fit from $npc_2.firstName'>>
<<else>>
<<set _tmpLbl = 'Borrow $npc_2.firstName\'s workout fit'>>
<</if>>
<<elseif $player.presenting === 'Male'>>
<<set _tmpLbl = 'Tell her you don\'t have a gym outfit'>>
<</if>>
<<if _tmpLbl>>
<div class="buttonContainer">
<<button _tmpLbl "MelFitLoaner">>
<<addSecs 15>>
<</button>>
</div>
<</if>>
<<elseif $preGymFit and $player.outfit.fit == 34 and $postMelGym>>
<div class="buttonContainer">
<<button "Get changed and return $npc_2.firstName's outfit" "MelFitReturn">>
<<addMins 2>>
<<set $pickedFit = clone($preGymFit)>>
<<unset $preGymFit>>
<<unset $postMelGym>>
<<set $wardLoc = ''>>
<<wearFit $pickedFit 'Auto'>>
<</button>>
</div>
<</if>>
<</if>>
<</widget>><center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<span id='repCont'>
<div class="profileContainer">
<div>
<img @src="$npc_7.image" height="500rem" >
</div>
<div>
The room $npc_2.firstName leads you to is tiny, cramped, and reeks of stale sweat and desperation. There's a tiny weasle-of-a-man crouched in the center of the messy room and he looks exactly like you might imagine a strip club manager to look like. He adjusts his tinted glasses and wipes his sweaty forehead with a cloth held in his other hand as he leans back to look at you both.
<br><br>
"Well, hello there $npc_2.firstName. Didn't you just work last night? I didn't expect to see you back again so soon. And who's your little friend here?" His voice is nasally and somehow greasy, just hearing it makes you want to swab out your ears with a q-tip. His eyes are hidden behind his glasses, but you just know they're red and beady and pointed straight at you. Maybe it's better if you just get out of here.
<br><br>
$npc_2.firstName seems to read your tense body language because she grabs your hand and squeezes it tight in reassurance as she introduces you to Mike. "This is my friend $player.firstName, she's a great girl and she's interested in working here part time like I do. Do you have anything that would work for her? And remember that favor you owe me."
</div>
</div>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<replace '#repCont'>>
<img @src="$npc_7.image" height="500rem" >
<br><br>
$npc_7.firstName leans forward in his chair and puts his elbows on the the top of his desk with a thump, causing his glasses to slide down on his sweat-slicked nose as he peers over the top of them at you. You have to strongly resist the urge to fidget and squirm under his uncomfortable glare. Finally he pushes his glasses back up on his nose and leans back in his chair.
<br><br>
<<if $player.presenting === 'Male'>>
"You know I love you, $npc_2.nickName - but I don't have any open positions for..' he pauses and glances briefly at you with a wince '..your friend. If you have any friends look more like you then maybe we can talk."
<br><br>
He turns back to you and holds his hands up and pats the air as if to calm you down, "No offense, pal, but you're wasting my time."
<<elseif $player.beautyScore < 3>>
<<set _tmpOffer = 'Waitress'>>
/* waitress job */
"She's not really dancer material...but I do owe you, $npc_2.nickName, so sure. We could use a parttime waitress on the weekend day shifts."
<br><br>
He turns back toward you, "You can work as many hours you want from 10:00am to 4:00pm on Saturdays and Sundays. The pay isn't much though...$12 per hour but you can keep any tips you earn. How does that sound?"
<<else>>
<<set _tmpOffer = 'Stripper'>>
/* stripper job */
"We could always use girls on our day shift, the business is slow during the day so the dancers don't tend to like working then. I'd pay you $16.00 per hour and you can keep any tips you earn on stage. You could work as many hours as you want from 10:00am through 4:00pm any day of the week."
<br><br>
"There's also a waitress position open from 10:00am to 4:00pm on weekends. The pay is only $12.00 per hour plus tips, but I think you'd be wasted as a waitress. I do owe Mel here a favor, so I'll let you pick which position you're interested in."
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if !_tmpOffer>>
<<button "Leave his office">>
<<set _tmpImg = 'Media/Misc/Hugs/'>>
<<if $player.presenting ==='Female'>>
<<set _tmpImg +='FF/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'MF/' + random(1,1) + '.webp'>>
<</if>>
<<replace "#repCont">>
<img @src='_tmpImg' height="550rem">
<br><br>
$npc_2.firstName give a you a hug outside $npc_7.firstName's office - then you hear him call her back in.
<br><br>
"I'm so sorry, honey. He can be a bit - pig-headed." she says pulling back. "We'll catch up later, yeah?"
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Leave the strip club" "RLDistrict">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<if ['Stripper','Waitress'].includes(_tmpOffer)>>
<<button "Accept waitress job">>
<<run $player.questTracker.push({idx: "BBCocktailDress",level: 1})>>
<<set _tmpJob = new Job('BBungalow','PartTime','Waitress','You can work as a waitress at Boobie Bungalow from 10:00am to 4:00pm Saturdays and Sundays',12,[5,6],10,16,'BBWaitressPrep')>>
<<set _tmpJob.lastWorkDay = $currJulianDate + 1>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()-1>>
<<set $jobArr.push(_tmpJob)>>
<<replace "#repCont">>
<img src="Media/Characters/Static/ClubMike/Mike4.webp" height="500" >
<br><br>
"There it is!" $npc_7.firstName calls out, giving you finger guns. You sign a few papers and make it official.
<br><br>
"Oh, $npc_2.nickName, could you stay back a bit? There's something I'd like to discuss with you in private" He says when you're finished.
<br><br>
$npc_2.firstName squeezes your hand in congratulations, "I'll catch up with you later, ok? No need to wait for me. I'm so happy we'll both be working here!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Leave the office" "BBungalow">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<if _tmpOffer == 'Stripper'>>
<<button "Accept stripper job">>
<<set _tmpJob = new Job('BBungalow','PartTime','Stripper','You can work as a stripper at Boobie Bungalow from 10:00am to 4:00pm 7 days a week',16,[0,1,2,3,4,5,6],10,16,'BBStripperPrep')>>
<<set _tmpJob.lastWorkDay = $currJulianDate + 1>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()>>
<<set $jobArr.push(_tmpJob)>>
<<replace "#repCont">>
<img src="Media/Characters/Static/ClubMike/Mike4.webp" height="550" >
<br><br>
"There it is!" $npc_7.firstName calls out, giving you finger guns. You sign a few papers and make it official.
<br><br>
"All I need now is a stage name and you're all set" he says, smiling at you in a somehow oily way.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Give a stage name">>
<<set $withMel = true>>
<<script>>
Dialog.setup('Enter your stripper stage name:');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if $userInput.length >= 0>><<set $player.stripperName = $userInput>><</if>><<goto "PostMikeSignUp">><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<</if>>
</div>
<</replace>>
<</button>>
</div>
</div><span id="repCont">
<div class="profileContainer">
<div>
<img @src="$npc_7.image" height="500rem" >
</div>
<div>
As you exit the dressing room <<if $npc_7.knowsPlayer>>$npc_7.firstName<<else>><<set $npc_7.knowsPlayer = true>> a greasy looking man<</if>> walks up to you.
<br><br>
"Execellent work out there, babe," He says. "How would like to come work here as a dancer? You could earn some real cash with your...talents."
</div>
</div>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContianer">
<<button "Tell him you're interested">>
<<replace "#repCont">>
/* stripper job */
<center>
<img src="Media/Characters/Static/ClubMike/Mike2.webp" height="500rem" >
<br><br>
$npc_7.firstName leads you to his office and sits down behind a messy desk.
<br><br>
"We could always use girls on our day shift, the business is slow during the day so the dancers don't tend to like working then. I'd pay you $16.00 per hour and you can keep any tips you earn on stage. You could work as many hours as you want from 10:00am through 4:00pm any day of the week."
<br><br>
"The night shift is more lucrative, so if you do well maybe later we can talk about a promotion." He says, flicking his disheveled hair out of his eyes.
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContianer">
<<button "Take the job">>
/* remove waitress job */
<<if $jobArr.some(job => job.employer === 'BBungalow')>>
<<set $jobArr = $jobArr.filter(job => job.employer != 'BBungalow')>>
<<set $player.questTracker = $player.questTracker.filter(obj => obj.idx !="BBCocktailDress")>>
<</if>>
<<set _tmpJob = new Job('BBungalow','PartTime','Stripper','You can work as a stripper at Boobie Bungalow from 10:00am to 4:00pm 7 days a week',16,[0,1,2,3,4,5,6],10,16,'BBStripperPrep')>>
<<set _tmpJob.lastWorkDay = $currJulianDate + 1>>
<<set _tmpJob.lastPaidMonth = $gameDate.getMonth()>>
<<set $jobArr.push(_tmpJob)>>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<img src="Media/Characters/Static/ClubMike/Mike4.webp" height="500rem" >
</div>
<div>
<br><br>
"There it is!" $npc_7.firstName calls out, giving you finger guns. "All we need now is your stage name."
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Give a stage name">>
<<script>>
Dialog.setup('Enter your stripper stage name:');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if $userInput.length >= 0>><<set $player.stripperName = $userInput>><</if>><<goto "PostMikeSignUp">><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContianer">
<<button "No thanks" "BBungalow">>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContianer">
<<button "Decline" "BBungalow">>
<<addMins 1>>
<</button>>
</div>
</div><<script>>Dialog.close()<</script>>
<div class="profileContainer">
<div>
<img @src="$npc_7.image" height="500rem" >
</div>
<div>
You sign a few papers and make it official.
<br><br>
"Welcome to the family, $player.stripperName!" He says, "Glad to have you."
<<if $withMel>>
<br><br>
<<unset $withMel>>
"Oh, $npc_2.nickName, could you stay back a bit? There's something I'd like to discuss with you in private" He says when you're finished.
<br><br>
$npc_2.firstName squeezes your hand in congratulations, "I'll catch up with you later, ok? No need to wait for me. I'm so happy we'll both be working here!"
<</if>>
</div>
</div>
<center>
<b>You can now work as a stripper at Boobie Bungalow!</b>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave $npc_7.firstName's office" "BBungalow">>
<<addMins 2>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_8.image" height="500rem">
</div>
<div>
<span id="repCont">
His mouth doesn't move an inch but you can hear his words as clear as a bell, that's enough to convince you that he's at least not some random crackpot.
<br><br>
<i>I know what has been done to you, I know she who calls you 'Lost One'. Do you seek guidance on your journey?</i>
<br><br>
Oh great, another "friendly" offer to help from an obviously mystical being. That didn't work out so well last time, did it? But something about his presence makes you think he might actually be able to help.
</span>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Talk to him" "ShamanChatHUB">>
<<set
$npc_8.knowsPlayer = true;
$npc_8.relationship = 1
>>
<<addSecs 10>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$npc_8.image" height="500rem">
</div>
<div>
<span id="repCont">
Talk with the shaman
</span>
</div>
</div>
<hr>
<div id="actionsContainer">
<<if $player.questTracker.find(quest => quest.idx === 'UnknownRelics').level === 2 and $unknownRelics>>
<div class="buttonContainer">
<<button "Ask about a relic">>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<for _i = 0; _i < $unknownRelics.length;_i++>>
<<genRelic $unknownRelics[_i]>>
<<capture $relicObj>>
<<button $relicObj.name $relicObj.name>>
<<addSecs 5>>
<</button>>
<</capture>>
<</for>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Stop talking" "Alleyway">>
<<addSecs 15>>
<</button>>
</div>
</div><<set _tmpLog = $relicLog.find(obj => obj.idx === 1)>>
<<set
_tmpLog.log = 'You need to somehow "wear" this relic and then coat it with...something.';
_tmpLog.level = 2;
>>
<span id="repCont">
<div class="profileContainer">
<div>
<img @src="$npc_8.image" height="500rem">
</div>
<div>
<i>This object grants the wearer the ability to change something about their personal appearance. But it does not come cheaply.</i>
<br><br>
<i>You do not "wear" the ring, but must hold it inside of you. And then it needs to be charged with the seed of life -- a lot of it. Only then can it be used as I spoke.</i>
</div>
</div>
</span>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "What the fuck does that mean?">>
<<replace "#repCont">>
<center>
<img src="Media/Locations/Downtown/Alley/vanished.webp" height="600rem">
<br><br>
Right as you're about to speak a giant gust of wind blows through the thin trees of the homeless camp and you have to raise your hand to protect your eyes from the flying dirt and debris.
<br><br>
When you lower your hand again the grizzled old man is nowhere to be seen...just great.
<br><br>
What did he mean -- you must hold the ring inside and charge it with the seed of life? That makes no sense.
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button 'Continue' 'Alleyway'>>
<<purgeNPC $npc_8>>
<<purgeNPCLocation 'Alleyway'>>
<<set $player.questTracker.find(quest => quest.idx === 'UnknownRelics').level = 1>>
<<run $player.questLog.removeQuest('UnknownRelic')>>
<<run $unknownRelics.delete($relicObj.sku)>>
<<unset $relicObj>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<widget "shamanTexts">>
<<if $unknownRelics and $unknownRelics.length > 0 and !$player.questTracker.some(obj => obj.idx === 'UnknownRelics')>>
<<run $player.questTracker.push({idx: 'UnknownRelics',level:1})>>
<<if !$player.phone.contacts.includes($npc_8.dna)>>
<<if !$NPCArray.some(npc => npc.dna == $npc_unknown.dna)>>
<<run $NPCArray.push($npc_unknown)>>
<</if>>
<<run $player.phone.contacts.push($npc_unknown.dna)>>
<<set _tmpMsg = new TxtMsg('NPCTxt',"You have an object you know nothing about. Meet me at the camp near the bus station if you want to learn more.")>>
<<set _tmpCode = "Wikifier.wikifyEval('<<ShamanTextResponses \"Unknown_init\">>')">>
<<run $player.phone.inbox.push({txtNPC: $npc_unknown.dna, log: [_tmpMsg], new: true, code: _tmpCode})>>
<<else>>
<</if>>
<</if>>
<</widget>>
<<widget "ShamanTextResponses">>
<<set $currChat.code = ''>>
<<switch _args[0]>>
<<case 'Unknown_init'>>
<<set $player.questTracker.find(quest => quest.idx === 'UnknownRelics').level = 2>>
<<if !($player.questLog.items.some(obj => obj.idx === 'UnknownRelic'))>>
<<if $npc_8.knowsPlayer>>
<<run $player.questLog.addQuest('UnknownRelic','The Shaman told you to meet him in the clearing behind the Downtown bus station for information on the relic you found')>>
<<else>>
<<run $player.questLog.addQuest('UnknownRelic','You received a mysterious text to meet someone in the clearing behind the downtown bus station to talk about the relic you found.')>>
<</if>>
<</if>>
<<replace "#actionsContainer">>
<<if !$npc_8.knowsPlayer>>
<div class="buttonContainer">
<<button "Who is this?">>
<<set _tmpCode = "Wikifier.wikifyEval('<<ShamanTextResponses \"Unknown_reply\">>')">>
<<set $currChat.code = _tmpCode>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',"Who is this?")>>
<<addText _tmpMsg>>
<<timed .5s>>
<<replace "#repCont">>
<div class="badText">You don't get a response</div>
<</replace>>
<<replace "#actionsContainer">>
<<getTxtButtons>>
<</replace>>
<</timed>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addChatLog $chatLog>>
<<run $player.phone.contacts.delete($npc_unknown.dna)>>
<<run $player.phone.inbox = $player.phone.inbox.filter(log => log.txtNPC != $npc_unknown.dna)>>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addChatLog $chatLog>>
<<run $player.phone.contacts.delete($npc_unknown.dna)>>
<<run $player.phone.inbox = $player.phone.inbox.filter(log => log.txtNPC !== $npc_unknown.dna)>>
<<addSecs 3>>
<</button>>
</div>
<</replace>>
<<case 'Unknown_reply'>>
<<replace "#repCont">>
<div class="badText">You don't get a response</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addChatLog $chatLog>>
<<run $player.phone.contacts.delete($npc_unknown.dna)>>
<<run $player.phone.inbox = $player.phone.inbox.filter(log => log.txtNPC !== $npc_unknown.dna)>>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addChatLog $chatLog>>
<<run $player.phone.contacts.delete($npc_unknown.dna)>>
<<run $player.phone.inbox = $player.phone.inbox.filter(log => log.txtNPC !== $npc_unknown.dna)>>
<<addSecs 3>>
<</button>>
</div>
<</replace>>
<</switch>>
<</widget>><div class="profileContainer">
<div>
<img @src="$npc_9.image" height="450rem">
</div>
<div>
Dr. $npc_9.lastName enters the waiting room a few minutes later and greets you.
<br><br>
You find yourself wondering why he became a therapist rather than a movie star -- the man definitely has that look.
<<if $player.prefs.gender != 'Female' and $player.slutLevel > 2>>
<br><br>
<b>You bite your lower lip as you think of what this man might be able to do in a more...personal setting.</b>
<</if>>
<br><br>
"Ahh, you must be my new patient; $player.firstName $player.lastName. I'm so glad for this chance to meet you. Please follow me into my office."
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Start your first session" "ThayerTherapy">>
<<addMins 2>>
<</button>>
</div>
</div>/*HUB scene - start with intro "hi, how are you doing today? etc
Then actions replace with whatever is needed
" */
<center>
<b><font size="10em">Dr. Thayer's Office</font></b>
</center>
<div class="profileContainer">
<div>
<img @src="$npc_9.image" height="450rem">
</div>
<div>
<<if $player.questTracker.find(obj => obj.idx === 'TherapyPath').level === 1>>
Dr. Thayer ushers you toward a couch while he takes a seat in a leather recliner across from the couch.
<br><br>
So, $player.lastName, we're here because you informed the Fairhaven Director's Board that you're transitioning to female. They just want you and I to chat to make sure we're doing everything we can to facilitate your progress." His smile fades away and his voice takes on a more serious tone.
<br><br>
"I'm also tasked with verifying that you aren't just lying about this. It's no laughing matter and we take such transgression seriously. But as long as you're honest and upfront we won't have any issues. OK? So, ready to get started?"
<<else>>
"Afternoon, Ms. $player.lastName", Dr. $npc_9.lastName says with his customary aloof smile and distant tone. "Please, have a seat and let's get started."
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "QuestionRound">>
<<addMins 15>>
<</button>>
</div>
</div><center>
<b><font size="10em">Dr. Thayer's Office</font></b>
</center>
<div class="profileContainer">
<div>
<img @src="$npc_9.image" height="450rem">
</div>
<div>
<<if $player.questTracker.find(obj => obj.idx === 'TherapyPath').level === 1>>
<<set $therapyDone = true>>
"Normally I break my session up into two parts. Q&A and Homework. The names are self-explanatory I believe. Today we'll skip the questions, I just wanted to meet you and see if we could work together. And I do believe I can help you."
<<else>>
Generate some questions
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $therapyDone>>
<<button "Continue" "HomeworkRound">>
<<addSecs 15>>
<</button>>
<</if>>
</div>
</div><center>
<b><font size="10em">Dr. Thayer's Office</font></b>
</center>
<div class="profileContainer">
<div>
<img @src="$npc_9.image" height="450rem">
</div>
<div>
<<if $player.questTracker.find(obj => obj.idx === 'TherapyPath').level === 1>>
"But I would like to assign you some homework. Tell me, $player.firstName - and this is entirely professional - What kind of underwear to you have on right now?"
<<else>>
Generate some questions
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $therapyDone>>
<<button "Time's up" "ThayerOffice">>
<<addSecs 15>>
<</button>>
<</if>>
</div>
</div><<widget "GenStaticNPCs">>
/* Fortune Teller */
<<set $npc_0 = new Person(100,"Female")>>
<<set
$npc_0.image = 'Media/Characters/Static/FTeller/profile1.webp';
$npc_0.body.hair.color = 'Black';
$npc_0.firstName = 'The Fortune Teller';
>>
/* Julia */
<<set $npc_1 = new Person(22,"Female")>>
<<set
$npc_1.image = 'Media/Characters/Static/Julia/profile1.webp';
$npc_1.firstName = 'Julia';
$npc_1.body.hair.color = 'blonde';
$npc_1.body.bodyType = 'Athletic';
$npc_1.prefs.gender = 'Female';
>>
/* Melissa */
<<set $npc_2 = new Person(22,"Female")>>
<<set
$npc_2.image = 'Media/Characters/Static/Melissa/profile1.webp';
$npc_2.firstName = 'Melissa';
$npc_2.nickName = 'Mel';
$npc_1.body.hair.color = 'blonde';
$npc_2.body.bodyType = 'Athletic';
$npc_2.personality = 3;
$npc_2.prefs.gender = 'Bisexual';
$npc_2.dom = 80;
$npc_2.sub = 20;
>>
/* Jeffory */
<<set $npc_3 = new Person(65,"Male")>>
<<set
$npc_3.image = 'Media/Characters/Static/Jeffory/profile1.webp';
$npc_3.firstName = 'Jeffory';
$npc_3.body.bodyType = 'Thin';
$npc_3.prefs.gender = 'Female';
>>
/* Mrs Scoggins */
<<set $npc_4 = new Person(45,"Female")>>
<<set
$npc_4.image = 'Media/Characters/Static/Scoggins/profile1.webp';
$npc_4.firstName = 'Amanda';
$npc_4.lastName = 'Scoggins';
$npc_4.body.bodyType = 'Thin';
>>
/* Hooters Boss */
<<set $npc_5 = new Person(35,"Male")>>
<<set
$npc_5.image = 'Media/Characters/Static/Markswell/profile1.webp';
$npc_5.lastName = 'Markswell';
$npc_5.body.bodyType = 'Chubby';
$npc_5.prefs.gender = 'Female';
$npc_5.body.cock = 2;
>>
/* Beach Jerry */
<<set $npc_6 = new Person(28,"Male")>>
<<set
$npc_6.image = 'Media/Characters/Static/Jerry/profile1.webp';
$npc_6.firstName = 'Jerry';
$npc_6.body.bodyType = 'Athletic';
$npc_6.prefs = {
gender: 'Female',
beauty: 7,
tits: 10,
bodyType: 'Athletic',
style: 'Unknown'
};
$npc_6.strength = 75;
$npc_6.dom = 95;
$npc_6.sub = 5;
>>
/*Boobie Bungalow Boss */
<<set $npc_7 = new Person(32,"Male")>>
<<set
$npc_7.image = 'Media/Characters/Static/ClubMike/profile1.webp';
$npc_7.firstName = 'Mike';
$npc_7.body.bodyType = 'Chubby';
$npc_7.prefs.gender = 'Female';
$npc_7.body.cock = 1;
>>
/* Mystical Shaman */
<<set $npc_8 = new Person(1000,"Male")>>
<<set
$npc_8.image = 'Media/Characters/Static/Shaman/profile1.webp';
$npc_8.firstName = 'Shaman';
$npc_8.body.bodyType = 'Thin';
$npc_8.prefs.gender = 'Female';
$npc_8.body.cock = 1;
>>
/* Therapist */
<<set $npc_9 = new Person(46,"Male")>>
<<set
$npc_9.image = 'Media/Characters/Static/Thayer/profile1.webp';
$npc_9.lastName = 'Thayer';
$npc_9.prefs.gender = 'Female';
$npc_9.body.cock = 3;
>>
<<set $npc_unknown = new Person(20,"Male")>>
<<set
$npc_unknown.image = 'Media/System/Phone/unknown.webp';
$npc_unknown.firstName = 'Unknown';
>>
<<set $staticNPCList = [$npc_1,$npc_2,$npc_3,$npc_4,$npc_5,$npc_6,$npc_7,$npc_8,$npc_9]>>
<</widget>><center>
<br><br>
<div class='txtContainer'>
<table width="80%">
<tr>
<th> Date</th><th>Transaction</th><th>Amount</th>
</tr>
<<for _i to 0; _i < $bankAccount.txLog.length;_i ++>>
<tr>
<td style="text-align: center;"><<print $bankAccount.txLog[_i].date>></td>
<td style="text-align: center;"><<print $bankAccount.txLog[_i].type>></td>
<td style="text-align: center;">$<<print $bankAccount.txLog[_i].amount>>.00</td>
</tr>
<</for>>
</table>
</div>
<br><br>
You currently have <b>$<<print $bankAccount.amount>>.00</b> in your Ellis Bank account
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addSecs 3>>
<</button>>
</div>
</div><center>
<b><font size="10em">Upcoming Events</font></b>
<div id="calendarView">
<<for _i = 0; _i < GameDays.length; _i++>>
<<if _i < $gameDate.getDay()>>
<<set _tmpDiff = 7 + (_i - $gameDate.getDay())>>
<<else>>
<<set _tmpDiff = _i - $gameDate.getDay()>>
<</if>>
<div class="calendarEvent">
<<print GameDays[_i]>>
<br>
<<set _tmpDay = clone($gameDate)>>
<<run _tmpDay.setUTCHours(_tmpDay.getUTCHours() + (_tmpDiff * 24))>>
<<print String.format("{0}/{1}/{2}",
_tmpDay.getMonth(),
_tmpDay.getDate(),
_tmpDay.getFullYear()
)>>
<hr style="border-top: 2px solid black;">
<<set _tmpEvents = $player.phone.calendar.items.filter(obj => obj.julianDate === ($currJulianDate + _tmpDiff))>>
<<for _j to 0; _j < _tmpEvents.length;_j++>>
<<capture _j>>
<<set _tmpDate = $player.phone.calendar.items[_j]>>
<<switch _tmpDate.label>>
<<case 'Therapy'>>
<<set _tmpLbl = 'You have a Therapy appointment'>>
<<case 'OBGYN'>>
<<set _tmpLbl = 'OBGYN Appointment'>>
<<case 'AmateurNight'>>
<<set _tmpLbl = 'Amateur Night at Boobie Bungalow'>>
<<default>>
<<set _tmpLbl = 'You have a date with <<print $NPCArray.find(npc => npc.dna == _tmpDate.with).firstName>>'>>
<</switch>>
<span class="dateBubble">
<<link _tmpLbl>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<center>_tmpDate.details</center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</link>>
</span>
<</capture>>
<</for>>
</div>
<</for>>
</div>
<<timed 0s>>
<<script>>
for(let _i = 0;_i < State.variables.gameDate.getDay();_i++){
document.getElementById('calendarView').children[_i].classList.add('inActiveDay');
}
document.getElementById('calendarView').children[State.variables.gameDate.getDay()].classList.add('activeDay');
<</script>>
<</timed>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<unset $selfieType>>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<unset $selfieType>>
<<addSecs 3>>
<</button>>
</div>
</div><center>
<<set $selfieType = ''>>
<<set _tmpImg = 'Media/Shared/Phone/'>>
<<switch $locType>>
<<case 'Outdoors'>>
<<set _tmpImg += 'Outdoors/'>>
<<if $player.body.tits === 13>>
<<set _tmpImg += 'ZCup/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,4) + '.webp'>>
<</if>>
<<default>>
<<set _tmpImg += 'Indoors/'>>
<<if $player.presenting === 'Female'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,3) + '.webp'>>
<</if>>
<</switch>>
[img[img|_tmpImg]]
</center>
<hr>
<div id="actionsContainer">
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Take a selfie" "selfieMenu">>
<<set $newSelfie = true>>
<<addSecs 15>>
<</button>>
<<button "Look through album" "selfieScreen">>
<<set $newSelfie = false>>
<<addSecs 3>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addSecs 3>>
<</button>>
</div>
</div>
</div><<set _tmpImg = "Media/Self/Selfies/">>
<<if $player.presenting==='Female'>>
<<set _tmpImg += "fSelfie1.webp">>
<<else>>
<<set _tmpImg += "mSelfie1.webp">>
<</if>>
<center>
<img @src="_tmpImg" height="450rem">
<br><br>
You hold up your phone and try to get a angle on yourself.
<br><br>
What kind of selfie should you take?
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Cute" "selfieScreen">>
<<set $selfieType = 'Cute'>>
<<genSelfie "Cute">>
<<addSecs 3>>
<</button>>
<<if ($locType === 'Indoors' and $player.slutLevel > 0 and $player.expoLevel >= 2) or ($locType === 'Outdoors' and $player.slutLevel > 2 and $player.expoLevel > 2)>>
<<button "Sexy" "selfieScreen">>
<<set $selfieType = 'Sexy'>>
<<genSelfie "Sexy">>
<<addSecs 3>>
<</button>>
<</if>>
<<if ($locType === 'Indoors' and $player.slutLevel > 2 or $player.expoLevel > 3) or ($locType === 'Outdoors' and $player.slutLevel > 3 or $player.expoLevel > 4)>>
<<button "Slutty" "selfieScreen">>
<<set $selfieType = 'Slutty'>>
<<genSelfie "Slutty">>
<<addSecs 3>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addSecs 3>>
<</button>>
</div>
</div><center>
<<if $player.phone.cameraRoll.length > 0>>
<<set _tmpImg = $player.phone.cameraRoll[$camIdx]>>
<div class="tripleContainer">
<div class="box">
<<if $camIdx > 0>>
<<link '<<'>><<set $camIdx -= 1>><<goto "selfieScreen">> <</link>>
<<else>>
<<print '<<'>>
<</if>>
</div>
<div class="box">
<img @src="_tmpImg">
</div>
<div class="box">
<<if $camIdx < $player.phone.cameraRoll.length -1>>
<<link '>>'>><<set $camIdx += 1>><<goto "selfieScreen">> <</link>>
<<else>>
<<print '>>'>>
<</if>>
</div>
</div>
<<else>>
<img src="Media/System/Phone/noSelfies.webp">
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go back" "selfieMenu">>
<<unset $selfieType>>
<<addSecs 1>>
<</button>>
<<if $player.phone.cameraRoll.length > 0>>
<<button "Delete this selfie" "selfieScreen">>
<<set $player.phone.cameraRoll = $player.phone.cameraRoll.filter(item => item !== $player.phone.cameraRoll[$camIdx])>>
<<set $camIdx = $camIdx % $player.phone.cameraRoll.length>>
<<addSecs 3>>
<</button>>
<</if>>
<<if $newSelfie>>
<<set _tmpPassage = 'selfieScreen'>>
<<set _tmp = 'another'>>
<<else>>
<<set _tmpPassage = 'selfieMenu'>>
<<set _tmp = 'a'>>
<</if>>
<<button "Take _tmp selfie" _tmpPassage>>
<<set $newSelfie = true>>
<<set $camIdx = $player.phone.cameraRoll.length>>
<<genSelfie $selfieType>>
<<addSecs 3>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<unset $selfieType>>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<unset $selfieType>>
<<addSecs 3>>
<</button>>
</div>
</div><<widget "genSelfie">>
<<set _tmpImg = 'Media/Self/Selfies/'>>
<<switch _args[0]>>
<<case "Cute">>
<<set _tmpImg += 'Cute/'>>
<<switch $locType>>
<<case "Outdoors">>
<<set _tmpImg += 'Outdoors/'>>
<<if $player.presenting[0] == 'F'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,26) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,5) + '.webp'>>
<</if>>
<<default>>
<<set _tmpImg += 'Indoors/'>>
<<if $player.presenting[0] == 'F'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,21) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,23) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,5) + '.webp'>>
<</if>>
<</switch>>
<<case "Sexy">>
<<set _tmpImg += 'Sexy/'>>
<<switch $locType>>
<<case "Outdoors">>
<<set _tmpImg += 'Outdoors/'>>
<<if $player.presenting[0] == 'F'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,30) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,5) + '.webp'>>
<</if>>
<<default>>
<<set _tmpImg += 'Indoors/'>>
<<if $player.presenting[0] == 'F'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,20) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,28) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,5) + '.webp'>>
<</if>>
<</switch>>
<<case "Slutty">>
<<set _tmpImg += 'Slutty/'>>
<<switch $locType>>
<<case "Outdoors">>
<<set _tmpImg += 'Outdoors/'>>
<<if $player.presenting[0] == 'F'>>
<<if $player.isNude>>
<<if $player.body.gender === 'Trans'>>
<<set _tmpImg += 'T/Nude/' + random(1,1) + '.webp'>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Nude/Preg/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/Nude/' + random(1,30) + '.webp'>>
<</if>>
<<else>>
<<switch $player.body.tits>>
<<case 0>>
<<case 1>>
<<case 2>>
<<set _tmpImg += 'F/Topless/Small/' + random(1,21) + '.webp'>>
<<case 3>>
<<case 4>>
<<case 5>>
<<set _tmpImg += 'F/Topless/Mid/' + random(1,24) + '.webp'>>
<<default>>
<<set _tmpImg += 'F/Topless/Large/' + random(1,9) + '.webp'>>
<</switch>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<<default>>
<<set _tmpImg += 'Indoors/'>>
<<if $player.presenting[0] == 'F'>>
<<if $player.isNude>>
<<if $player.body.gender === 'Trans'>>
<<set _tmpImg += 'T/Nude/' + random(1,13) + '.webp'>>
<<elseif $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Nude/Preg/' + random(1,15) + '.webp'>>
<<else>>
<<switch $player.body.tits>>
<<case 0>>
<<case 1>>
<<case 2>>
<<set _tmpImg += 'F/Nude/Small/' + random(1,11) + '.webp'>>
<<case 3>>
<<case 4>>
<<case 5>>
<<set _tmpImg += 'F/Nude/Mid/' + random(1,8) + '.webp'>>
<<default>>
<<set _tmpImg += 'F/Nude/Large/' + random(1,9) + '.webp'>>
<</switch>>
<</if>>
<<else>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'F/Topless/Preg/' + random(1,8) + '.webp'>>
<<else>>
<<switch $player.body.tits>>
<<case 0>>
<<case 1>>
<<case 2>>
<<set _tmpImg += 'F/Topless/Small/' + random(1,13) + '.webp'>>
<<case 3>>
<<case 4>>
<<case 5>>
<<set _tmpImg += 'F/Topless/Mid/' + random(1,18) + '.webp'>>
<<default>>
<<set _tmpImg += 'F/Topless/Large/' + random(1,10) + '.webp'>>
<</switch>>
<</if>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,7) + '.webp'>>
<</if>>
<</switch>>
<</switch>>
<<if !($player.phone.cameraRoll.includes(_tmpImg))>>
<<set $player.phone.cameraRoll.push(_tmpImg)>>
<<set $camIdx = $player.phone.cameraRoll.length-1>>
<<else>>
<<set $camIdx = random(0,$player.phone.cameraRoll.length - 1)>>
<</if>>
<</widget>><center>
<b><font size="10em">The Helpful Habit App!</font></b>
<br>
Help reinforce those habits that make you a better you!
<br><br>
<div class="tripleContainer" style="width: 50%;">
<div class='habitsCard'>
<u><b>Morning Routine</b></u><br>
<span id="MorningList">
<<MornRoutine>>
</span>
</div>
<div class='habitsCard'>
<u><b>Evening Routine</b></u><br>
<span id="EveningList">
<<EveRoutine>>
</span>
</div>
</div>
<br>
<div class="tripleContainer" style="width: 50%;">
<div class='habitsCard'>
<u><b>Shower Routine</b></u><br>
<span id="ShowerList">
<<ShowerRoutine>>
</span>
</div>
<div class='habitsCard'>
<u><b>Mirror Routine</b></u><br>
<span id="MirrorList">
<<MirrorRoutine>>
</span>
</div>
<div class='habitsCard'>
<u><b>Misc Routines</b></u><br>
<span id="MiscList">
<<MiscRoutine>>
</span>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addSecs 3>>
<</button>>
</div>
</div><<widget "MornRoutine">>
<<set _morningOptions = ['Wear Clean Clothes','Eat breakfast','Shower','Brush your teeth','Use a mirror','Use feminine hygiene products']>>
<table>
<<for _i to 0;_i < _morningOptions.length;_i++>>
<<set _tmpHabit = _morningOptions[_i]>>
<<capture _tmpHabit>>
<tr>
<td>
_tmpHabit
</td>
<td>
<<if !$player.phone.habitList.morning.includes(_tmpHabit)>>
<<capture _tmpHabit>>
<<if _tmpHabit === 'Use feminine hygiene products' and $player.body.gender !== 'Female'>>
<<run $player.phone.habitList.evening.delete(_tmpHabit)>>
<span class='blockButton'><<button "OFF">><</button>></span>
<<else>>
<<button "OFF">>
<<set $player.phone.habitList.morning.push(_tmpHabit)>>
<<replace "#MorningList">>
<<MornRoutine>>
<</replace>>
<</button>>
<</if>>
<</capture>>
<<else>>
<<button "ON">>
<<set $player.phone.habitList.morning.delete(_tmpHabit)>>
<<replace "#MorningList">>
<<MornRoutine>>
<</replace>>
<</button>>
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<timed 0s>>
<<script>>
const collection = document.getElementsByClassName("blockButton");
for (let i = 0; i < collection.length; i++) {
collection[i].children[0].setAttribute("disabled", "disabled");
}
<</script>>
<</timed>>
<</widget>>
<<widget "EveRoutine">>
<<set _eveningOptions = ['Wear sleepwear','Brush your teeth','Wash off makeup','Drink water']>>
<table>
<<for _i to 0;_i < _eveningOptions.length;_i++>>
<<set _tmpHabit = _eveningOptions[_i]>>
<<capture _tmpHabit>>
<tr>
<td>
_tmpHabit
</td>
<td>
<<if !$player.phone.habitList.evening.includes(_tmpHabit)>>
<<capture _tmpHabit>>
<<if _tmpHabit === 'Wash off makeup' and ($player.mentalFem <= 32 and !$player.traits.includes(1) and !$player.traits.includes(11))>>
<<run $player.phone.habitList.evening.delete(_tmpHabit)>>
<span class='blockButton'><<button "OFF">><</button>></span>
<<else>>
<<button "OFF">>
<<set $player.phone.habitList.evening.push(_tmpHabit)>>
<<replace "#EveningList">>
<<EveRoutine>>
<</replace>>
<</button>>
<</if>>
<</capture>>
<<else>>
<<button "ON">>
<<replace "#EveningList">>
<<set $player.phone.habitList.evening.delete(_tmpHabit)>>
<<EveRoutine>>
<</replace>>
<</button>>
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<timed 0s>>
<<script>>
const collection = document.getElementsByClassName("blockButton");
for (let i = 0; i < collection.length; i++) {
collection[i].children[0].setAttribute("disabled", "disabled");
}
<</script>>
<</timed>>
<</widget>>
<<widget "MirrorRoutine">>
<<set _mirrorOptions = ['Style your hair','Makeup style']>>
<table>
<<for _i to 0;_i < _mirrorOptions.length;_i++>>
<<set _tmpHabit = _mirrorOptions[_i]>>
<<capture _tmpHabit>>
<tr>
<td>
_tmpHabit
</td>
<td>
<<switch _tmpHabit>>
<<case "Makeup style">>
<<capture _tmpHabit>>
<<if $player.knownStyles.length == 0 or ($player.mentalFem <= 32 and !$player.traits.includes(1) and !$player.traits.includes(11))>>
<<run $player.phone.habitList.evening.delete(_tmpHabit)>>
<span class='blockButton'><<button "OFF">><</button>></span>
<<else>>
<<if !$player.phone.habitList.mirror.includes(_tmpHabit)>>
<<button "NONE">>
<<replace "#MirrorList">>
<<set $player.phone.habitList.mirror.push(_tmpHabit)>>
<<MirrorRoutine>>
<</replace>>
<</button>>
<<else>>
<<if !$habitMakeupStyle>>
<<set $habitMakeupStyle = 0>>
<</if>>
<<button $player.knownStyles[$habitMakeupStyle]>>
<<set $habitMakeupStyle += 1>>
<<if $habitMakeupStyle === $player.knownStyles.length>>
<<set $player.phone.habitList.mirror.delete(_tmpHabit)>>
<<unset $habitMakeupStyle>>
<</if>>
<<replace "#MirrorList">>
<<MirrorRoutine>>
<</replace>>
<</button>>
<</if>>
<</if>>
<</capture>>
<<default>>
<<if !$player.phone.habitList.mirror.includes(_tmpHabit)>>
<<button "OFF">>
<<replace "#MirrorList">>
<<set $player.phone.habitList.mirror.push(_tmpHabit)>>
<<MirrorRoutine>>
<</replace>>
<</button>>
<<else>>
<<button "ON">>
<<replace "#MirrorList">>
<<set $player.phone.habitList.mirror.delete(_tmpHabit)>>
<<MirrorRoutine>>
<</replace>>
<</button>>
<</if>>
<</switch>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<timed 0s>>
<<script>>
const collection = document.getElementsByClassName("blockButton");
for (let i = 0; i < collection.length; i++) {
collection[i].children[0].setAttribute("disabled", "disabled");
}
<</script>>
<</timed>>
<</widget>>
<<widget "ShowerRoutine">>
<<set _showerOptions = ['Use shampoo','Shave your pits','Shave your pubes','Shave your legs']>>
<table>
<<for _i to 0;_i < _showerOptions.length;_i++>>
<<set _tmpHabit = _showerOptions[_i]>>
<<capture _tmpHabit>>
<tr>
<td>
_tmpHabit
</td>
<td>
<<capture _tmpHabit>>
<<if _tmpHabit === 'Shave your legs' and $player.mentalFem <= 30>>
<<run $player.phone.habitList.evening.delete(_tmpHabit)>>
<span class='blockButton'><<button "OFF">><</button>></span>
<<elseif _tmpHabit === 'Shave your pits' and $player.expo > 0>>
<<run $player.phone.habitList.evening.delete(_tmpHabit)>>
<span class='blockButton'><<button "OFF">><</button>></span>
<<else>>
<<if !$player.phone.habitList.shower.includes(_tmpHabit)>>
<<button "OFF">>
<<replace "#ShowerList">>
<<set $player.phone.habitList.shower.push(_tmpHabit)>>
<<ShowerRoutine>>
<</replace>>
<</button>>
<<else>>
<<button "ON">>
<<replace "#ShowerList">>
<<set $player.phone.habitList.shower.delete(_tmpHabit)>>
<<ShowerRoutine>>
<</replace>>
<</button>>
<</if>>
<</if>>
<</capture>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<timed 0s>>
<<script>>
const collection = document.getElementsByClassName("blockButton");
for (let i = 0; i < collection.length; i++) {
collection[i].children[0].setAttribute("disabled", "disabled");
}
<</script>>
<</timed>>
<</widget>>
<<widget "MiscRoutine">>
<<set _miscOptions = ['Dietary choice','Preferred payment method']>>
<table>
<<for _i to 0;_i < _miscOptions.length;_i++>>
<<set _tmpHabit = _miscOptions[_i]>>
<<capture _tmpHabit>>
<tr>
<td>
_tmpHabit
</td>
<td>
<<switch _tmpHabit>>
<<case "Preferred payment method">>
<<if !$bankAccount>>
<<set $prefPay = "Cash">>
<span class='blockButton'><<button "CASH">><</button>></span>
<<else>>
<<if $prefPay === 'Card' and $bankAccount>>
<<button "CARD">>
<<replace "#MiscList">>
<<set $prefPay = "Cash">>
<<MiscRoutine>>
<</replace>>
<</button>>
<<else>>
<<button "CASH">>
<<replace "#MiscList">>
<<set $prefPay = "Card">>
<<MiscRoutine>>
<</replace>>
<</button>>
<</if>>
<</if>>
<<default>>
<span class='blockButton'><<button "OFF">><</button>></span>
/*
<<if !$player.phone.habitList.misc.includes(_tmpHabit)>>
<<button "OFF">>
<<replace "#MiscList">>
<<set $player.phone.habitList.misc.push(_tmpHabit)>>
<<MiscRoutine>>
<</replace>>
<</button>>
<<else>>
<<button "ON">>
<<replace "#MiscList">>
<<set $player.phone.habitList.misc.delete(_tmpHabit)>>
<<MiscRoutine>>
<</replace>>
<</button>>
<</if>>
*/
<</switch>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<<timed 0s>>
<<script>>
const collection = document.getElementsByClassName("blockButton");
for (let i = 0; i < collection.length; i++) {
collection[i].children[0].setAttribute("disabled", "disabled");
}
<</script>>
<</timed>>
<</widget>><<if $noteTab is undefined>>
<<set $noteTab = 'Quests'>>
<</if>>
<<include 'notepadTabs'>>
<br>
<center>
<div class='txtContainer' style="min-height: 20rem;">
<<include $noteTab>>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close app" 'PhoneMenu'>><<addSecs 5>><</button>>
</div>
<div class="buttonContainer">
<<button "Put down your phone" $menuPassage>><<addSecs 5>><</button>>
</div>
</div><<if $player.questLog.items.length > 0>>
<<for _i to 0;_i < $player.questLog.items.length;_i++>>
<<if $newQuests.includes($player.questLog.items[_i].idx)>>
<<set $newQuests = $newQuests.filter(item => item != $player.questLog.items[_i].idx)>>
<div class="questContainer newQuest">
<<print $player.questLog.items[_i].log>>
</div>
<<else>>
<div class="questContainer">
<<print $player.questLog.items[_i].log>>
</div>
<</if>>
<br>
<</for>>
<<else>>
You don't have any active quests
<</if>><<if $jobArr.length > 0>>
<<for _i to 0;_i < $jobArr.length;_i++>>
<u><<print $jobArr[_i].employer>></u>
<br>
<<print $jobArr[_i].desc>>
<br><br>
<</for>>
<<else>>
You don't have any job prospects
<</if>><<if $player.comCourses or $player.comClasses>>
<<if $player.comClasses>>
<b>Classes</b>
<<for _i to 0;_i < $player.comClasses.length;_i++>>
blah blah
<</for>>
<</if>>
<<if $player.comCourses>>
<b>Community Center Courses</b>
<br><br>
<<for _i to 0;_i < $player.comCourses.length;_i++>>
<<set _tmpHour = (Math.floor($player.comCourses[_i].time / 60) > 12? Math.floor($player.comCourses[_i].time / 60)-12:Math.floor($player.comCourses[_i].time / 60))>>
<<set _tmpMins = (Math.floor($player.comCourses[_i].time % 60) > 10? Math.floor($player.comCourses[_i].time % 60):'0' + Math.floor($player.comCourses[_i].time % 60))>>
<<set _tmpLbl = _tmpHour + ':' + _tmpMins + (Math.floor($player.comCourses[_i].time / 60) >= 12?' PM':' AM')>>
<<if !$dailyLimit.includes($player.comCourses[_i].title)>>
<b>$player.comCourses[_i].title starts daily at _tmpLbl.</b>
<<else>>
You have already attended $player.comCourses[_i].title today.
<</if>>
<br>
<</for>>
<</if>>
<<else>>
You don't have any classes
<</if>><<if $player.relics.length === 0>>
You don't have any relics
<<else>>
<<for _i = 0;_i < $player.relics.length;_i++>>
<<genRelic $player.relics[_i]>>
$relicObj.logEntry
<</for>>
<</if>>WIPWIP<div class="paddedCont">
<div id="phoneContainer">
<div id='appsList'>
<<for _i to 0; _i < $player.phone.appsList.length; _i++>>
<<capture _i>>
<<set _tmpApp = $player.phone.appsList[_i]>>
<<set _tmpIcon = _tmpApp.image>>
<<switch _tmpApp.name>>
<<case 'Notepad'>>
<<if $newQuests.length > 0>>
<<set _tmpIcon = 'Media/System/Phone/notepadMsg.png'>>
<</if>>
<<case 'Text'>>
<<if $player.phone.inbox.some(text => text.new === true)>>
<<set _tmpIcon = 'Media/System/Phone/smsM.png'>>
<</if>>
<</switch>>
[img[_tmpApp.name|_tmpIcon][_tmpApp.passage]]
<</capture>>
<</for>>
</div>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Put down your phone" $menuPassage>>
<<addSecs 3>>
<</button>>
</div>
</div><div class="paddedCont">
<div id="phoneContainer">
<div id='appsList'>
<<if $player.phone.contacts.length === 0>>
<div style="color: black;">You have no contacts</div>
<<else>>
<<for _i to 0; _i < $player.phone.contacts.length; _i ++>>
<<capture _i>>
<<link "<<phoneIDCard $player.phone.contacts[_i]>>">>
<<set _tmpLog = $player.phone.inbox.find(obj => obj.txtNPC === $player.phone.contacts[_i])>>
<<set
$currChat = _tmpLog;
$currDNA = $player.phone.contacts[_i]
>>
<<if _tmpLog.log.length > 0>>
<<set $chatLog = _tmpLog.log>>
<<else>>
<<set $chatLog = []>>
<</if>>
<<goto "TextWindow">>
<</link>>
<</capture>>
<</for>>
<</if>>
</div>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close the app" "PhoneMenu">>
<<addSecs 3>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Put down your phone" $menuPassage>>
<<addSecs 3>>
<</button>>
</div>
</div><<widget 'phoneIDCard'>>
<img @src="$NPCArray.find(npc => npc.dna == _args[0]).image">
<</widget>><div class="paddedCont">
<div id="phoneContainer">
<div id='appsList'>
<<for _textIdx to 0; _textIdx < $player.phone.inbox.length; _textIdx ++>>
<<if $player.phone.inbox[_textIdx].log.length > 0>>
<<capture _textIdx>>
<<set _foundMsg = true>>
<<link "<<phoneIDCard $player.phone.inbox[_textIdx].txtNPC>>">>
<<set
$player.phone.inbox[_textIdx].new = false;
$currChat = $player.phone.inbox[_textIdx];
$chatLog = $player.phone.inbox[_textIdx].log;
$currDNA = $player.phone.inbox[_textIdx].txtNPC;
>>
<<goto "TextWindow">>
<</link>>
<</capture>>
<<else>>
/*
<<set $player.phone.inbox = $player.phone.inbox.filter(txt => txt.txtNPC.dna != $player.phone.inbox[_textIdx].txtNPC.dna)>>
*/
<</if>>
<</for>>
<<if !_foundMsg>>
<<timed 0s>>
<<replace "#appsList">>
<div style="color: black;">You have no messages</div>
<</replace>>
<</timed>>
<</if>>
</div>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Send a message" "ContactList">>
<<addSecs 15>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addSecs 3>>
<</button>>
</div>
</div><center>
<div class='txtContainer'>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="250px">
<br>
Texting <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>
<hr style="border: none; border-top: 1px solid black; height: 1px; background-color: black; width: 80%">
<div id='chatWindow'>
<<getTexts>>
</div>
<span id="repCont"><br></span>
</div>
</center>
<<timed 0s>>
<<script>>
const mySection = document.getElementById("chatWindow");
if (mySection) {
mySection.scrollTop = mySection.scrollHeight;
}
<</script>>
<</timed>>
<hr>
<div id="actionsContainer">
<<getTxtButtons>>
</div><<widget "getTexts">>
<<for _i to 0;_i < $chatLog.length; _i++>>
<<capture _i>>
<<set _tmpVal = $chatLog[_i]>>
<div @class="$chatLog[_i].speaker">
<strong><<print $chatLog[_i].message>></strong>
</div>
<</capture>>
<</for>>
<</widget>>
<<widget "addText">>
<<set $chatLog.push(_args[0])>>
<<addSecs 1>>
<<replace "#chatWindow">>
<<getTexts>>
<</replace>>
<<script>>
const mySection = document.getElementById("chatWindow");
if (mySection) {
mySection.scrollTop = mySection.scrollHeight;
}
<</script>>
<</widget>>
<<widget "addChatLog">>
<<for _logIdx = 0; _logIdx < $player.phone.inbox.length; _logIdx++>>
<<if $player.phone.inbox[_logIdx].txtNPC == $currDNA>>
<<set $player.phone.inbox[_logIdx].log = $chatLog>>
<</if>>
<</for>>
<<unset $currDNA>>
<<unset $currChat>>
<<unset $chatLog>>
<</widget>>
<<widget "disableButtons">>
<<script>>
$(":button").prop("disabled",true);
<</script>>
<</widget>>
<<widget "getTxtButtons">>
<<if $currChat.code != ''>>
<<timed 0s>>
<<script>>
eval(State.variables.currChat['code']);
<</script>>
<</timed>>
<<else>>
<<switch $currDNA>>
<<case $npc_0.dna>>
/* fortune teller */
<div class="buttonContainer">
<<FTTextButtons>>
</div>
<<default>>
<div class="buttonContainer">
<<button "Want to get together?">>
<<disableButtons>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',"Want to hang out? ")>>
<<addText _tmpMsg>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship >= 10 and random(0,100) <= $NPCArray.find(npc => npc.dna == $currDNA).relationship>>
<<set _tmpDateAccept = true>>
<<set _npcMsg = new TxtMsg('NPCTxt',"I'd be up for that. Have anything specific in mind?")>>
<<else>>
<<set _npcMsg = new TxtMsg('NPCTxt',"Sorry, $player.firstName, I can't. I'm just...really busy.")>>
<</if>>
<<timed 1s>>
<<addText _npcMsg>>
<<replace "#actionsContainer">>
<<if _tmpDateAccept>>
<<set $currChat.code = "Wikifier.wikifyEval('<<AskOutNPC>>')">>
<<getTxtButtons>>
<<else>>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addChatLog $chatLog>>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addChatLog $chatLog>>
<<addSecs 3>>
<</button>>
</div>
<</if>>
<</replace>>
<</timed>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Invite <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> over">>
<<disableButtons>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',"Want to come over to mine? ")>>
<<addText _tmpMsg>>
<<set _npcMsg = new TxtMsg('NPCTxt',"Sorry, can't. I don't think that's been developed yet.")>>
<<timed 1s>>
<<addText _npcMsg>>
<</timed>>
<<timed 1.1s>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addChatLog $chatLog>>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addChatLog $chatLog>>
<<addSecs 3>>
<</button>>
</div>
<</replace>>
<</timed>>
<</button>>
<<button "Send a funny text">>
<<disableButtons>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',"something funny ")>>
<<addText _tmpMsg>>
<<set _npcMsg = new TxtMsg('NPCTxt',"LOL")>>
<<timed 1s>>
<<addText _npcMsg>>
<</timed>>
<<timed 1.1s>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addChatLog $chatLog>>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addChatLog $chatLog>>
<<addSecs 3>>
<</button>>
</div>
<</replace>>
<</timed>>
<</button>>
</div>
<</switch>>
<div class="buttonContainer">
<<button "Close app" "PhoneMenu">>
<<addChatLog $chatLog>>
<<addSecs 1>>
<</button>>
<<button "Put down your phone" $menuPassage>>
<<addChatLog $chatLog>>
<<addSecs 3>>
<</button>>
</div>
<</if>>
<</widget>>
<<widget "TextEngine">>
<<set _blockTxt = false>>
/* conditions that block texting here */
<<if !_blockTxt>>
/* quest/event related texts */
/* Shaman */
<<shamanTexts>>
/* cycle through contacts to see if an NPC texts you */
<<for _idx == 0; _idx < $player.phone.contacts; _i++>>
<</for>>
<</if>>
<</widget>>
<<widget "AskOutNPC">>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Plan a date">>
<<datePopUp>>
<</button>>
<<button "Let <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> decide">>
<<disableButtons>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',"Nope. You pick.")>>
<<addText _tmpMsg>>
<<NPCDateOptions>>
<<timed 1s>>
<<addText _npcMsg>>
<<replace "#actionsContainer">>
<<getTxtButtons>>
<</replace>>
<</timed>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Nevermind">>
<<disableButtons>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',"Actually, nevermind.")>>
<<addText _tmpMsg>>
<<CloseText>>
<</button>>
</div>
<</replace>>
<</widget>>
<<widget "datePopUp">>
<<script>>
Dialog.setup("Date Details");
Dialog.wiki('<<dateCard>>');
Dialog.open({top: "calc(50vh - 40px)"}, setup.done);
<</script>>
<</widget>>
<<widget "dateCard">>
<<set _dateLocs = ["Kelly's Pub","City Park"]>>
<table>
<tr>
<td>
Location:
</td>
<td>
<<listbox "$dateLoc">>
<<optionsfrom _dateLocs>>
<</listbox>>
</td>
</tr>
<tr>
<td>
<<set _dateDays = clone(GameDays)>>
<<set _dateDays[$gameDate.getDay()] = 'Today'>>
Date:
</td>
<td>
<<timed 0s>>
<<listbox "$dateDay">>
<<optionsfrom _dateDays>>
<</listbox>>
<</timed>>
</td>
</tr>
<tr>
<td>
Time:
</td>
<td>
<<get12hr>>
<td>
<<set _dateHours = ['1','2','3','4','5','6','7','8','9','10','11','12']>>
<<listbox "$dateHour">>
<<optionsfrom _dateHours>>
<</listbox>>
</td>
<td>
<<set _dateMins = []>>
<<for _i to 0;_i < 60;_i++>>
<<run _dateMins.push(('0'+_i).slice(-2))>>
<</for>>
<<listbox "$dateMinute">>
<<optionsfrom _dateMins>>
<</listbox>>
</td>
<td>
<<set _dateMeridian = ['AM','PM']>>
<<listbox "$dateMeridian">>
<<optionsfrom _dateMeridian>>
<</listbox>>
</td>
</td>
</tr>
</table>
<br>
<div class="controls">
<<button "Set details">>
<<script>>
Dialog.close();
<</script>>
<<disableButtons>>
<<if $dateDay === 'Today'>>
<<set _tmpDayLbl = 'today'>>
<<else>>
<<set _tmpDayLbl = 'on ' + $dateDay>>
<</if>>
<<set _tmpDateTime = ($dateMeridian === 'AM'?$dateHour:$dateHour+12)*60 + parseInt($dateMinute,10)>>
<<if $dateDay === 'Today' and _tmpDateTime < ($gameDate.getHours()*60 + $gameDate.getMinutes())>>
<<script>>
Dialog.setup("Error");
Dialog.wiki('<center><font size="5em;"><div class="badText">You can\'t pick a time in the past.</div></font></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<replace "#actionsContainer">>
<<getTxtButtons>>
<</replace>>
<<else>>
<<if $dateDay === 'Today'>>
<<set _tmpDayDiff = 0>>
<<elseif GameDays.indexOf($dateDay) >= $gameDate.getDay()>>
<<set _tmpDayDiff = GameDays.indexOf($dateDay) - $gameDate.getDay()>>
<<else>>
<<set _tmpDayDiff = (7-$gameDate.getDay()) + GameDays.indexOf($dateDay)>>
<</if>>
<<set _tmpMins = parseInt($dateMinute,10) - $gameDate.getMinutes()>>
<<set _tmpHour = ($dateMeridian === 'AM'?parseInt($dateHour):parseInt($dateHour)+12) - $gameDate.getHours()>>
<<set _tmpTimeDiff = _tmpHour*60 + _tmpMins>>
<<set _tmpStartTime = clone($gameDate)>>
<<run _tmpStartTime.setUTCMinutes(_tmpStartTime.getMinutes() + _tmpTimeDiff + _tmpDayDiff*24*60)>>
<<checkDateEvent $dateLoc _tmpStartTime.getHours()>>
<<if !_dateConflict>>
<<set _tmpEndTime = clone(_tmpStartTime)>>
<<run _tmpEndTime.setUTCMinutes(_tmpStartTime.getMinutes() + 15)>>
<<set _tmpDateTime = $dateHour + ':' + $dateMinute + ' ' + $dateMeridian>>
<<set _tmpVal = $dateLoc + " " + _tmpDayLbl + " at " + _tmpDateTime>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',_tmpVal)>>
<<addText _tmpMsg>>
<<set _npcMsg = new TxtMsg('NPCTxt',"Done. See you there!")>>
<<timed 1s>>
<<addText _npcMsg>>
<<replace "#actionsContainer">>
<<getTxtButtons>>
<</replace>>
<</timed>>
<<set _tmpEvent = new DateObject(
_dateType = 'Date',
_lable = 'Date',
_npc = $currDNA,
_location = $dateLoc.replace("'","").replace(" ",""),
_passage = 'DateIntro',
_julDate = $currJulianDate + _tmpDayDiff,
_startTime =_tmpStartTime,
_endTime = _tmpEndTime,
_details = "Meet " + $NPCArray.find(npc => npc.dna == $currDNA).firstName + " at " + $dateLoc + " at " + _tmpDateTime,
_repeat = 0
)>>
<<run $player.phone.calendar.addDate(_tmpEvent)>>
<<set $currChat.code = "Wikifier.wikifyEval('<<CloseText>>')">>
<<else>>
<<script>>
Dialog.setup("Error");
Dialog.wiki('<center>' + State.temporary.dateConflict + '</center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<replace "#actionsContainer">>
<<getTxtButtons>>
<</replace>>
<</if>>
<</if>>
<</button>>
</div>
<</widget>>
<<widget "CloseText">>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Close the app" "PhoneMenu">>
<<addChatLog $chatLog>>
<<unset $dateDay; $dateLoc>>
<<addSecs 3>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Put down your phone" $menuPassage>>
<<addChatLog $chatLog>>
<<addSecs 3>>
<</button>>
</div>
<</replace>>
<</widget>>
<<widget "checkDateEvent">>
<<switch _args[0] >>
<<case "Kelly's Pub">>
<<if (_args[1] gte 2) and (_args[1] lt 10) >>
<<set _dateConflict = '<div class="badText">' + $dateLoc + ' is closed at that time.</div>'>>
<</if>>
<</switch>>
<</widget>>
<<widget "NPCDateOptions">>
<<set
_dateLocs = ["Kelly's Pub"];
$dateDay = GameDays[random(0,6)];
>>
<<if $dateDay === $gameDate.getDay()>>
<<set
$dateDay = 'Today';
_minHour = $gameDate.getHours()+1;
>>
<<else>>
<<set _minHour = 10>>;
<</if>>
<<if _minHour < 10>><<set _minHour = 8>><</if>>
<<set $dateHour = random(_minHour,22)>>
<<if $dateHour == 12>>
<<set $dateHour = random(1,2)>>
<</if>>
<<set $dateLoc = _dateLocs[random(0,_dateLocs.length-1)]>>
<<checkDateEvent $dateLoc $dateHour>>
<<if !_dateConflict>>
<<if $dateDay === 'Today'>>
<<set _tmpDayLbl = 'today'>>
<<else>>
<<set _tmpDayLbl = 'on ' + $dateDay>>
<</if>>
<<set _npcMsg = new TxtMsg('NPCTxt',"How about " + $dateLoc + " " + _tmpDayLbl + " at " + ($dateHour > 12?$dateHour-12:$dateHour) + ":00" + ($dateHour > 12?'PM':'AM') + "?")>>
<<set $currChat.code = "Wikifier.wikifyEval('<<NPCAskOut>>')">>
<<else>>
<<set _npcMsg = new TxtMsg('NPCTxt',"I can't think of anything either. Maybe another time.")>>
<<set $currChat.code = "Wikifier.wikifyEval('<<CloseText>>')">>
<</if>>
<</widget>>
<<widget "NPCAskOut">>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Agree">>
<<disableButtons>>
<<if $dateDay === 'Today'>>
<<set _tmpDayDiff = 0>>
<<elseif GameDays.indexOf($dateDay) >= $gameDate.getDay()>>
<<set _tmpDayDiff = GameDays.indexOf($dateDay) - $gameDate.getDay()>>
<<else>>
<<set _tmpDayDiff = (7-$gameDate.getDay()) + GameDays.indexOf($dateDay)>>
<</if>>
<<set _tmpMins = 60 - $gameDate.getMinutes()>>
<<set _tmpHour = $dateHour - ($gameDate.getHours()+1)>>
<<set _tmpTimeDiff = _tmpHour*60 + _tmpMins + _tmpDayDiff*24*60>>
<<set _tmpStartTime = clone($gameDate)>>
<<run _tmpStartTime.setUTCMinutes(_tmpStartTime.getMinutes() + parseInt(_tmpTimeDiff))>>
<<set _tmpEndTime = clone(_tmpStartTime)>>
<<run _tmpEndTime.setUTCMinutes(_tmpStartTime.getMinutes() + 15)>>
<<set _tmpDateTime = (parseInt($dateHour) > 12?parseInt($dateHour) - 12:parseInt($dateHour)) + ':00' + ' ' + (parseInt($dateHour) > 12?'PM':'AM')>>
<<set _tmpEvent = new DateObject(
_dateType = 'Date',
_lable = 'Date',
_npc = $currDNA,
_location = $dateLoc.replace("'","").replace(" ",""),
_passage = 'DateIntro',
_julDate = $currJulianDate + _tmpDayDiff,
_startTime =_tmpStartTime,
_endTime = _tmpEndTime,
_details = "Meet " + $NPCArray.find(npc => npc.dna == $currDNA).firstName + " at " + $dateLoc + " at " + _tmpDateTime,
_repeat = 0
)>>
<<run $player.phone.calendar.addDate(_tmpEvent)>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',"Done. See you there!")>>
<<addText _tmpMsg>>
<<set $currChat.code = "Wikifier.wikifyEval('<<CloseText>>')">>
<<replace "#actionsContainer">>
<<getTxtButtons>>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Decline">>
<<disableButtons>>
<<set _tmpMsg = new TxtMsg('PlayerTxt',"No thanks, maybe another time.")>>
<<addText _tmpMsg>>
<<set $currChat.code = "Wikifier.wikifyEval('<<CloseText>>')">>
<<set _npcMsg = new TxtMsg('NPCTxt',"Oh, ok. See you around, I guess.")>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship -= 1>>
<<timed 1s>>
<<addText _npcMsg>>
<<replace "#actionsContainer">>
<<getTxtButtons>>
<</replace>>
<</timed>>
<</button>>
</div>
<</replace>>
<</widget>><<set _tmpImg = 'Media/Locations/Bench/Sit/'>>
<<if $dayStage < 4>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<if $gameDate.getMonth() >= 2 and $gameDate.getMonth() <= 8>>
<<set _tmpImg += '1'>>
<<else>>
<<set _tmpImg += '2'>>
<</if>>
<<set _tmpImg += '.webp'>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You relax on a public bench and just take in your surroundings. The air carries a faint mix of exhaust, roasted coffee from a nearby café, and an underlying odor of human sweat. Around you life of the city hums — not in isolation, but as a symphony of urban rhythm.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<set $phoneMins = 0>>
<<button "Play on your phone">>
<<script>>
Dialog.setup('Enter time in minutes');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if !(isNaN(Number($userInput))) and $userInput >= 0>><<set $phoneMins = Number($userInput)>><</if>><<script>>Dialog.close()<</script>><<if ! isNaN(Number($phoneMins)) and $phoneMins > 0>><<phoneStatUpdate>><<goto "BenchPhone">><</if>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
<<button "People watch" "BenchPeep">>
<<addMins 30>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stand up" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
</div><<unset $userInput>>
<<set _tmpImg = 'Media/Random/Phone/' + $locType + '/'>>
<<if $locType === 'Outdoors'>>
<<if $player.body.tits === 13>>
<<set _tmpImg += 'ZCup/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,4) + '.webp'>>
<</if>>
<<else>>
<<if $player.presenting === 'Female'>>
<<if $player.body.show_preg === 1>>
<<set _tmpImg += 'F/Preg/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,3) + '.webp'>>
<</if>>
<</if>>
<center>
<img @src="_tmpImg" height="450rem">
<br><br>
You spend $phoneMins minutes idly playing on your phone.
</center>
<hr>
<div id="actionsContainer">
<<if $returnLoc != 'SafewayBreakroom'>>
<div class="buttonContainer">
<<button "Keep playing">>
<<set $phoneMins = 0>>
<<script>>
Dialog.setup('Enter time in minutes');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if !(isNaN(Number($userInput))) and $userInput >= 0>><<set $phoneMins = Number($userInput)>><</if>><<script>>Dialog.close()<</script>><<if ! isNaN(Number($phoneMins)) and $phoneMins > 0>><<phoneStatUpdate>><<goto "BenchPhone">><</if>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
<<button "Put your phone down" "BenchSit">>
<<addSecs 5>>
<<unset $phoneMins>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<if $returnLoc === 'SafewayBreakroom'>>
<<set _tmpLbl = 'Stop playing'>>
<<else>>
<<set _tmpLbl = 'Stand up'>>
<</if>>
<<button _tmpLbl $returnLoc>>
<<addSecs 5>>
<<unset $phoneMins>>
<</button>>
</div>
</div><<set _tmpPic = 'Media/Random/PeepWatch/Misc/'>>
<<if $dayStage < 4>>
<<set _tmpPic += 'Day/' + random(1,6) + '.webp'>>
<<set _tmpTxt = 'You burn 30 minutes idly watching people move up and down the street around you.'>>
<<else>>
<<set _tmpPic += 'Night/' + random(1,2) + '.webp'>>
<<set _tmpTxt = 'There aren\'t many people walking at night, but it\'s still relaxing to just take in your surroundings.'>>
<</if>>
<center>
<img @src="_tmpPic" height="450rem">
<br><br>
<<print _tmpTxt>>
<<if random(0,100) > 80 and !$dailyLimit.includes('NPC Peeper')>>
<br><br>
<b>[[Someone|TFPeep]] nearby happens to catch your eye.</b>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Keep watching" "BenchPeep">>
<<addMins 30>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stand up" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
</div><<set $peepNPC = new Person(random(18,30),'Random')>>
<<set _tmpImg = 'Media/Random/PeepWatch/'>>
<<if $peepNPC.body.gender === 'Female'>>
<<set _tmpImg += 'F/'>>
<<if $dayStage < 4>>
<<set _tmpImg += 'Day/' + random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += 'Night/' + random(1,3) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/'>>
<<if $dayStage < 4>>
<<set _tmpImg += 'Day/' + random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += 'Night/' + random(1,5) + '.webp'>>
<</if>>
<</if>>
<div id='repCont'>
<center>
<img @src="_tmpImg" height ="650px" >
<br><br>
You study the person and try to identify what about them drew your eye.
</center>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $peepNPC.body.gender === 'Female'>>
<<button 'Stare at $peepNPC.secondRef chest'>>
<<run $dailyLimit.push('NPC Peeper')>>
<<addMins 2>>
<<refreshCaption>>
<<replace "#repCont">>
<center>
<<set _tmpVid = 'Media/Random/PeepWatch/F/Tits/' + random(1,9) + '.mp4'>>
<video autoplay loop @src="_tmpVid" height="550"></video>'
<br><br>
The woman starts to walk in your direction and your eyes stay glued to the jiggle and bounce of her breasts as she moves.
<br><br>
It's not until she passes by and her amazing tits pass out of sight that you blink and come back to your surroundings.
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Snap out of it" "BenchSit">>
<<unset $peepNPC>>
<<set $player.statBuffs.tits += 1>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Watch $peepNPC.secondRef hair">>
<<run $dailyLimit.push('NPC Peeper')>>
<<addMins 2>>
<<refreshCaption>>
<<replace "#repCont">>
<center>
<<set _tmpVid = 'Media/Random/HairEnc/' + random(1,3) + '.webm'>>
<video autoplay loop @src="_tmpVid" height="450rem"></video>'
<br><br>
You can't help but watch her hair move in the wind, mesmerized by how it relfects as well as absorbes light around it.'
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Snap out of it" "BenchSit">>
<<unset $peepNPC>>
<<set $player.statBuffs.femBuff += 1>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button 'Stare at $peepNPC.secondRef muscles'>>
<<run $dailyLimit.push('NPC Peeper')>>
<<addMins 2>>
<<refreshCaption>>
<<replace "#repCont">>
<center>
<<set _tmpVid = 'Media/Random/PeepWatch/M/Flex/' + random(1,3) + '.mp4'>>
<video autoplay loop @src="_tmpVid" height="450rem"></video>'
<br><br>
As if aware of your gaze the man flexes his arms; happy to show off the results of all his time in the gym.
</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Snap out of it" "BenchSit">>
<<unset $peepNPC>>
<<set $player.statBuffs.mascBuff += 1>>
<<set $player.statBuffs.mascPref += 1>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<button 'Look at $peepNPC.secondRef crotch'>>
<<run $dailyLimit.push('NPC Peeper')>>
<<addMins 2>>
<<refreshCaption>>
<<replace "#repCont">>
<<if $peepNPC.body.gender === 'Female'>>
<<if random(0,1000) > 800>>
<center>
<<set $peepNPC.body.gender = 'Trans'>>
<<set _tmpVid = 'Media/Random/Flash/Upskirt/' + random(100,100) + '.mp4'>>
<video autoplay loop @src="_tmpVid" height="450rem"></video>
<br><br>
As you watch the woman, she moves in such a way that her skirt shifts and a large meaty cock plops into view between her thighs! She quickly tucks it away and straightens her skirt, pretending like nothing happened at all.
</center>
<<else>>
<center>
<<set _tmpVid = 'Media/Random/Flash/Upskirt/' + random(1,11) + '.mp4'>>
<video autoplay loop @src="_tmpVid" height="450rem"></video>'
<br><br>
As you watch, the woman moves in such a way that lets you see right up her skirt to her bare pussy! You're not even sure she's aware of what she's exposing, but it doesn't stop you from staring.
</center>
<</if>>
<<else>>
<center>
<<set _tmpVid = 'Media/Random/PeepWatch/M/Cock/' + random(1,3) + '.mp4'>>
<video autoplay loop @src="_tmpVid" height="450rem"></video>
<br><br>
As the man walks by you can't help but stare at the clearly visible outline of his cock in his pants - he looks <b>massive</b>!
</center>
<</if>>
<br><br>
<center>You feel a pang of emotion, and it takes you a moment to identify it.</center>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "It's Envy" "BenchSit">>
<<if $peepNPC.body.gender == 'Female'>>
$player.statBuffs.femBuff += 1
<<elseif $peepNPC.body.gender == 'Trans'>>
$player.statBuffs.mascBuff += 1
<<else>>
$player.statBuffs.mascBuff += 1
<</if>>
<</button>>
<<button "You feel aroused" "BenchSit">>
<<if $peepNPC.body.gender != 'Male'>>
$player.statBuffs.femPref += 1
<<else>>
$player.statBuffs.mascPref += 1
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
<<button 'Check out $peepNPC.secondRef ass'>>
<<run $dailyLimit.push('NPC Peeper')>>
<<addMins 2>>
<<refreshCaption>>
<<replace "#repCont">>
<<if $peepNPC.body.gender === 'Female'>>
<center>
<<set $player.statBuffs.femPref += 1>>
<<set _tmpVid = 'Media/Random/AssEnc/' + random(1,11) + '.webm'>>
<video autoplay loop @src="_tmpVid" height="550"></video>'
<br><br>
Your eyes are helplessly drawn to her ass as she walks away, your eyes following each bounce and jiggle of her cheeks until she's out of sight.
<br><br>
You clear your throat and glance around, wondering if anyone saw you staring so openly.
</center>
<<else>>
<center>
<<set $player.statBuffs.malePref += 1>>
<<set _tmpVid = 'Media/Random/PeepWatch/M/Ass/' + random(1,1) + '.mp4'>>
<video autoplay loop @src="_tmpVid" height="550"></video>'
<br><br>
You can't resist starting at his tight ass as he walks by. It looks like hes chiseled out of stone and those jeans are just painted on!
</center>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Snap out of it" "BenchSit">>
<<set $player.statBuffs.ass += 1>>
<<unset $peepNPC>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button 'Quickly look away' "BenchSit">>
<<addSecs 5>>
<<unset $peepNPC>>
<</button>>
</div>
</div><<widget "phoneStatUpdate">>
<<addMins $phoneMins>>
<<if $player.mood > 45>>
<<if $phoneMins <= 15>>
<<set $player.mood += 1>>
<<else>>
<<set $player.mood += $phoneMins/15>>
<</if>>
<</if>>
<<set $player.stamina += $phoneMins/15>>
<</widget>><<run $dailyLimit.push('TittyCompare')>>
<center>
<<set _tmpImg = "Media/Random/TitComp/" + random(1,11) + '.webp'>>
[img[tits|_tmpImg]]
<br><br>
<span id="repCont">You happen to notice to friends posing for a picture and without knowing why, or even being aware of doing it, your eyes linger on one of them.
<br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "The one on the left">>
<<set $player.statBuffs.tits -= 1>>
<<replace "#repCont">>
<div class="badText">You feel a pins-and-needles sensation across your chest for a flicker of a moment before you finally manage to pull your eyes away from the woman.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<addSecs 10>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "The one on the right">>
<<set $player.statBuffs.tits += 1>>
<<replace "#repCont">>
<div class="tfText">You feel a pins-and-needles sensation across your chest for a flicker of a moment before you finally manage to pull your eyes away from the woman.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<addSecs 10>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Pull yourself away" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
</div><<run $dailyLimit.push('AssEncounter')>>
<<set _tmpImg = 'Media/Random/AssEnc/' + random(1,11) + '.webm'>>
<center>
<video autoplay loop @src="_tmpImg" height="600rem"></video>
<br><br>
<span id="repCont">
Your eyes are drawn to the ass of a woman walking in front of you.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Admire her ass">>
<<set $player.statBuffs.ass += 1>>
<<replace "#repCont">>
The way it shakes and jiggles is mesmerizing and you spend a few minutes just taking it in.
<br><br>
You squeeze your own ass cheeks together and subconsciously picture yourself with that much junk in your trunk.
<br><br>
<div class="tfText">A tingle spreads across your ass and you shiver as it passes; but the distraction was enough to pull you out of your daydream.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Look away" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
</div><<run $dailyLimit.push('HairEncounter')>>
<<if !$hairCounter>><<set $hairCounter = 0>><</if>>
<<set _tmpImg = 'Media/Random/HairEnc/' + random(1,3) + '.webm'>>
<center>
<video autoplay loop @src="_tmpImg" height="600rem"></video>
<br><br>
<span id="repCont">
You see someone walking down the street with incredibly long hair. They look so stylish that you pause without realizing it just to watch their hair flow with their movements.'
<br><br>
<<if $player.body.hair.length > 360>>
You absently run your fingers thrown your own <<descHair $player>> locks, wondering if that's how you look to others.
<<elseif $player.body.hair.length > 260>>
Maybe you could look like that if your hair was a little longer?
<<else>>
You self-consciously pluck at your much shorter hair, wondering why you keep it from growing longer.
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Watch for a bit">>
<<if $hairCounter > 5>>
<<unset $hairCounter>>
<<addTrait 30>>
<<else>>
<<set $hairCounter += 1>>
<</if>>
<<addMins 2>>
<<refreshCaption>>
<<replace "#repCont">>
<div class='tfText'>You can't help but watch that long flowing hair, momentarily echanted with how it sways as the person moves and walks.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContianer">
<div class="buttonContainer">
<<button "Look away" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
</div>
</div><<run $dailyLimit.push('DoggieEncounter')>>
<<set _tmpImg = 'Media/Random/Dog/' + random(1,4) + '.webp'>>
<center>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
You see a cute dog on the street corner with his leash around a sign post. The owner is probably in a nearby store.
<br><br>
The dog looks at you and gives a little doggey-smile - clearly hoping for some attention.
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Scratch his cute little ears">>
<<addMins 5>>
<<set $player.statBuffs.femBuff += 1>>
<<set _tmpImg = 'Media/Random/Dog/Cute/'>>
<<if $player.presenting == 'Male'>>
<<set _tmpImg += 'M/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,6) + '.webp'>>
<</if>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
<<switch random(1,3)>>
<<case 1>>
The dog trots up, tail helicoptering. You crouch before you even think about it and your voice slips into a soft, lilting coo as you scratch under its chin.
<br><br>
<b><font color="pink">A warm flutter rises in your chest, and you feel a tingle spread across your skin</font></b>
<<case 2>>
You bend down to pet the dog, but instead of your usual squat, your knees drift together, feet angled inward.
<br><br>
<b><font color="pink">A rosy warmth spreads across your cheeks as you murmur, "Aww, aren't you just a precious thing..."</font></b>
<<case 3>>
The dog rolls onto his back so you can pet his belly and you let out a gasp — a tiny, delighted sound — and immediately rub its belly with both hands.
<br><br>
Your voice rises into playful, singsong nonsense: "Who's the cutest little guy, hmm?"
<br><br>
<b><font color="pink">A warm flutter rises in your chest, and you feel a tingle spread across your skin</font></b>
<</switch>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Pat his head">>
<<set $player.statBuffs.mascBuff += 1>>
<<addMins 5>>>
<<set $player.statBuffs.femBuff += 1>>
<<set _tmpImg = 'Media/Random/Dog/Reg/' + random(1,2) + '.webp'>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
<<switch random(1,2)>>
<<case 1>>
You give the dog a single firm pat on the head as you walk past.
<<case 2>>
The dog approaches, tail thumping.
<br><br>
You bend slightly, offer your hand for a sniff, then give a single, strong stroke down its back as you continue past.
<</switch>>
<br><br>
<b><font color="blue">You feel an odd tingle spread across your skin. That was nothing, right?</font></b>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Ignore the mutt" $returnLoc>>
<<addMins 1>>
<<set
$player.statBuffs.mascBuff += 2;
$player.statBuffs.femBuff = 0
>>
<</button>>
</div>
</div><<if $player.body.makeup > 0>><<set $player.body.makeup = -1>><</if>>
<<if $player.body.hair.styled>><<set $player.body.hair.styled = false>><</if>>
<<set _tmpImg = "Media/Random/Rain/">>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/'>>
<<if $player.isNude>>
<<if $player.inhibition > 70 and ($player.slutLevel < 2 or $player.arousal < 40)>>
<<set _tmpImg += '1.webp'>>
<<elseif !player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += '3.webp'>>
<<elseif $player.body.gender === 'Female'>>
<<set _tmpImg += random(2,3) + '.webp'>>
<<else>>
<<set _tmpImg += random(4,9) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += random(1,7) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/'>>
<<if $player.isNude>>
<<set _tmpImg += '0.webp'>>
<<else>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</if>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You don't have an umbrella and the rain has you drenched in almost no time at all!
<br><br>
<b>Your hair is now wet and messy <<if $player.body.makeup = -1>>and your makeup is smeard down your face in streaks.<<else>>.<</if>></b>
<br><br>
<div class="badText">Maybe you should carry an umbrella!</div>
</center>
<hr>
<div id='actionsContainer'>
<div class='buttonContainer'>
<<button "Continue" $returnLoc>>
<<addSecs 5>>
<</button>>
</div>
</div><<set $player.statBuffs.femBuff += 1>>
<<set _tmpImg = 'Media/Flash/Tits/'>>
<<if $player.body.tits < 2>>
<<set _tmpImg += 'Small/' + random(1,6) + '.webm'>>
<<elseif $player.body.tits < 5>>
<<set _tmpImg += 'Medium/' + random(1,9) + '.webm'>>
<<else>>
<<set _tmpImg += 'Large/' + random(1,8) + '.webm'>>
<</if>>
<center>
<video autoplay loop @src="_tmpImg" height="600rem"></video>
<br><br>
<<if $player.inhib > 60 and $player.sexStats.flash < 10>>
<<switch random(1,4)>>
<<set $player.mood -= 2>>
<<case 1>>
You put your fingers under the bottom of your shirt and hesitate, your mind momentarily rejects the weird reality you find yourself in. You take a few deep breaths and then lift your shirt up, giving the dirty perv an open view of your <<descTits $player>> <<sizeTits $player>> breasts.
<<case 2>>
As you slowly lift your shirt, exposing yourself to his hungry gaze, a shiver of trepidation courses through you. The cool air kisses your bared skin, making your nipples pucker instinctively on the tips of your <<sizeTits $player>> breasts. You have to fight the urge to cover yourself, and justify it by telling yourself you had no choice.
<<case 3>>
With a moment of hesitation you pull your top aside and your breasts spill forth, greeted by his unwavering gaze. Shame and exposure intertwine, leaving you raw and exposed. You're keenly aware of your vulnerability, displayed for his twisted delight. The sensation is both mortifying and strangely exhilarating, a dance of darkness and shame.
<<case 4>>
Shivering, you reveal your <<descTits $player>> <<sizeTits $player>> breasts, your nipples tightening in the cold air. Every fiber of your being screams to cover up, but a perverse curiosity keeps you exposed, like a deer in headlights.
<</switch>>
<<elseif $player.inhib > 40 or $player.sexStats.flash >= 10>>
<<switch random(1,4)>>
<<case 1>>
You slowly lift your shirt, revealing the pale expanse of your <<sizeTits $player>> breasts. A shiver runs through you as the chilly air meets your exposed skin, nipples instantly hardening. You stay exposed a little longer than necessary, but you don't think you'll get any complaints.
<<case 2>>
His gaze fixates on your offered flesh, consuming you whole. Humiliation mixes with a dull acceptance, the normative nature of these acts allowing you to endure. As he stares, a familiar numbness creeps in, shielding you from the full impact of degradation.
<<case 3>>
With resigned familiarity, you raise your shirt, baring your <<sizeTits $player>> breasts to his insatiable gaze. Chill air nips at your tender flesh, nipples pebbling in response. This display, once foreign, now feels akin to shedding clothes for a doctor's exam - expected, even necessary.
<<case 4>>
His stare drinks in your exposed <<descTits $player>>, and you meet it with a practiced blankness, having learned to dissociate from such moments. It's simply another bill to pay for existing as a woman. A currency of self-objectification exchanged for fleeting convenience or protection.
<</switch>>
<<else>>
<<set $player.mood += 2>>
<<switch random(1,4)>>
<<case 1>>
Exhilaration pulses through you as you shrug off your top, unleashing my <<descTits $player>> <<sizeTits $player>> bosom to the world. Cool air kisses your flushed skin, and you revel in the rush of exposing yourself so brazenly.
<<case 2>>
As you boldly expose your <<sizeTits $player>> tits, a surge of euphoria courses through you. The breeze dancing across your sensitive skin as intoxicating as the feel of eyes crawling over your debauchary.
<<case 3>>
His ravenous stare devours every detail of your <<sizeTits $player>> breasts, and you drink in the adoration, feeling powerful and desired. In this moment, you're not a complex individual but a tantalizing set of curves, and the acknowledgment thrills you deeply.
<<case 4>>
You crave more attention, angling your chest to maximize visual appeal. Each appreciative leer is a small victory, cementing your identity as a wanton exhibitionist. In this moment, objectification is empowerment, and you revel in it unabashedly.
<</switch>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<sexPowerDown>>
<<addSecs 5>>
<</button>>
</div>
</div><<set $player.statBuffs.femBuff += 1>>
<<set _tmpImg = 'Media/Grope/Tits/'>>
<<if $player.body.tits < 2>>
<<set _tmpImg += 'Small/' + random(1,5) + '.mp4'>>
<<elseif $player.body.tits < 5>>
<<set _tmpImg += 'Mid/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpImg += 'Large/' + random(1,6) + '.mp4'>>
<</if>>
<center>
<video autoplay loop @src="_tmpImg" height="600rem"></video>
<br><br>
<<if $player.inhib > 60 and $player.sexStats.grope < 10>>
<<switch random(1,4)>>
<<set $player.mood -= 2>>
<<case 1>>
You stand there, frozen in place as his hands roughly squeeze and knead your <<descTits $player>> breasts. Your face burns with embarrassment and shame as he fondles you so brazenly. You want to scream at him to stop, to push his hands away, but you hold back.
<<case 2>>
His fingers dig into the soft flesh of your breasts, pinching and pulling at your sensitive nipples. Hot tears sting your eyes as mortification floods through you. This isn't right, you shouldn't be letting someone maul your body like some cheap whore.
<<case 3>>
You flinch as calloused palms scrape over your tender skin, sending shivers of revulsion down your spine. Every fiber of your being recoils at his unwanted caresses, yet you make no move to stop him.
<<case 4>>
You feel his rough hands pawing at your chest, groping and squeezing without mercy. Disgust wells up inside you, making your stomach churn. How could you allow yourself to be treated this way? Like an object to be used for someone else's pleasure?
<</switch>>
<<elseif $player.inhib > 40 or $player.sexStats.grope >= 10>>
<<switch random(1,4)>>
<<case 1>>
As his strong hands grasp your bare breasts, a moan escapes your lips before you can stop it. Your cheeks flush crimson with embarrassment and shame wars with growing arousal as he teases your stiffening nipples between thumb and forefinger.
<<case 2>>
His fingers dance across your sensitive skin, leaving trails of fire in their wake. Your breath hitches as he cups the weight of your breasts in his palms, testing their fullness. Alarm bells ring in your head, screaming that this is wrong, that you need to stop him now before things go any further. But oh, the sensation!
<<case 3>>
A gasp lodges in your throat as he rolls your pebbled nipples beneath his fingertips, coaxing them to hard points. You know you shouldn't encourage such blatant indecency, but your body seems to have developed a mind of its own.
<<case 4>>
His rough palms scrape deliciously against your tender flesh, drawing a reluctant whimper from deep within you. You know this is wrong, that proper ladies don't allow strange men to handle them so intimately. And yet...oh, the sensations coursing through you!
<</switch>>
<<else>>
<<set $player.mood += 2>>
<<switch random(1,4)>>
<<case 1>>
He wastes no time in taking advantage, his big hands engulfing your breasts and giving them a firm squeeze. A thrill races through you at the bold contact, your nipples tightening instantly under his touch. Yes, this is exactly what you needed. To be desired, appreciated, used like the sexy piece of ass you are.
<<case 2>>
His fingers sink into the plump flesh of your breasts, massaging and teasing with expert precision. Each stroke sends bolts of pleasure shooting straight to your core, stoking the flames of your arousal higher and hotter. There's nothing quite like the rush of having a man paw at you so shamelessly, treating you like his personal plaything. It makes you feel powerful, irresistible.
<<case 3>>
His hands roam freely over your exposed cleavage, tracing the swell of your breasts and flicking lightly at your straining nipples. You bite your lip to stifle a moan, savoring the delicious sensations radiating from his touch. There's something so incredibly liberating about letting loose and embracing your sexuality without inhibition.
<<case 4>>
You purr contentedly as he lavishes attention on your <<descTits $player>> rack, his strong hands working magic on your sensitive skin. Every nerve ending sings with delight under his skilled manipulation, sending jolts of pure ecstasy rippling through you. Being groped so openly, so brazenly, feeds directly into your exhibitionist tendencies.
<</switch>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<sexPowerDown>>
<<addSecs 5>>
<</button>>
</div>
</div><<if !($breastGrowthDay is undefined)>>
<<if $currJulianDate - $breastGrowthDay > 5>>
<<unset $breastGrowthDay>>
<</if>>
<<if $player.body.tits > 0 and random(1,100) > 45 and !$dailyLimit.includes('BodyText')>>
<<run $dailyLimit.push('BodyText')>>
<<if $player.body.tits <= 3>>
/* itty bitty titties */
<<if $player.mentalFem < 40 and $prefDir != 1>>
/* foreign and weird */
<<switch random(1,6)>>
<<case 1>>
<div class="badText">Your shirt stretches across your chest unexpectedly when you move in certain ways, constantly bringing your attention back to your <<descTits $player>> breasts.<<if $player.outfit.bra > 0>> As if feeling the gentle constriction of your bra wrapped around your rib cage wasn't reminder enough already.<</if>></div>
<<case 2>>
<div class="badText">Your <<descTits $player>> breasts, though small, jiggle <<if $player.outfit.bra === 0>>freely under your top<<else>>in the tight confines of your bra<</if>> as you walk. It's a new and alien sensation that you're not sure you'll ever grow accustomed to.</div>
<<case 3>>
<div class="badText">Every time your shirt stretches across your <<descTits $player>> breasts you can't help but feel that everyone is staring at them, even though you know they're barely larger than bee-stings.</div>
<<case 4>>
<div class="badText">With each step, you feel an unfamiliar bounce of your <<descTits $player>> breasts — subtle but undeniable. The gentle pull of gravity reminding you that your body is no longer quite the same.</div>
<<case 5>>
<div class="badText">The jiggling weight on your chest feels oddly intrusive, like a presence you didn't invite and you find yourself adjusting your posture; unsure if your additional movement just helping or just drawing more attention</div>
<<case 6>>
<div class="badText">Each step sends a strange, jiggling sway through your <<descTits $player>> breasts, like your body is betraying its own blueprint. The sensation is so alien it makes you flinch inward, as if you're wearing someone else's skin and it doesn't quite fit.</div>
<</switch>>
<<else>>
/*lovely and natural */
<<switch random(1,6)>>
<<case 1>>
<div class="goodText">You can't help but smile as your <<if $player.outfit.bra != 0>>bra<<else>>top<</if>> pulls tight against your growing <<descTits $player>> breasts when you twist your torso in certain ways.</div>
<<case 2>>
<<if $player.outfit.bra != 0>>
<div class="goodText">Your bra keeps your nipples covered, but your top slides across the bra's material in a deliciously feminine way, sending small shivers up your spine now and then.</div>
<<else>>
<div class="goodText">The material of your shirt rubs against your sensitive nipples, giving you random jolts of stimulation as your <<descTits $player>> breasts shift and jostle with your movements.</div>
<</if>>
<<case 3>>
<div class="goodText">You subconsiously arch your back, stretching your top across your <<descTits $player>> tits to give a good outline of <<if $player.outfit.bra != 0>>your bra line<<else>>your hard nipples<</if>> through your shirt, more because you like the feel of it than because you want anyone to notice.</div>
<<case 4>>
<div class="goodText">You smile softly as the gentle sway of your <<descTits $player>> tits adds a new rhythm to your stride. It's a light, buoyant feeling—like a secret you carry with a grin.</div>
<<case 5>>
<div class="goodText">The soft weight of your <<descTits $player>> tits press gently against your chest, shifting with each step like a subtle pendulum. Your shirt clings and releases in rhythm, drawing your attention to every contour and motion.</div>
<<case 6>>
<div class="goodText">The fabric of your <<if $player.outfit.bra != 0>>bra<<else>>top<</if>> brushes against your <<sizeTits $player>> breasts with a whispering friction, tracing your curves with each breath. It's a tactile feedback loop, amplifying the awareness of their presence in every moment.</div>
<</switch>>
<</if>>
<<else>>
/* big enough to jiggle */
<<if $player.mentalFem < 40 and $prefDir != 1>>
/* foreign and weird */
<<switch random(1,6)>>
<<case 1>>
<div class="badText">The heavy sway of your <<descTits $player>> <<sizeTits $player>> tits throws off your rhythm, forcing you to walk with a stiffness that feels unnatural. Each step reminds you that your body no longer moves the way it used to, which is deeply unsettling.</div>
<<case 2>>
<div class="badText">You feel the heavy pull on your <<descTits $player>> <<sizeTits $player>> breasts with every step, like soft anchors dragging you forward. It throws off your posture, and you catch yourself adjusting constantly, trying to walk in a way that no longer feels natural.</div>
<<case 3>>
<div class="badText">Your <<sizeTits $player>> breasts feel as if something has been added to your body without permission, swaying and pressing against your ribs with every breath. You shift your shoulders and brace your core, but the sensation remains — uninvited, persistent, and deeply strange.</div>
<<case 4>>
<div class="badText">You feel the weight dragging at your chest from your <<descTits $player>> <<sizeTits $player>> like a pair of soft burdens that never stop shifting. Every step throws your balance off, forcing you to walk with a strange, deliberate rhythm that doesn't feel like yours.</div>
<<case 5>>
<div class="badText">You're hyper-aware of every shift and every drag of your unfamiliar <<descTits $player>> <<sizeTits $player>> breasts and it leaves you feeling disconnected from your own frame.</div>
<<case 6>>
<div class="badText">Each step causes an exaggerated bounce in your <<sizeTits $player>> tits, pulling at your skin and posture in ways that make you wince. You're constantly adjusting, bracing, trying to find a way to move that doesn't feel so foreign.</div>
<</switch>>
<<else>>
<<switch random(1,6)>>
<<case 1>>
<div class="goodText">
As you walk you notice the subtle bounce of your <<descTits $player>> <<sizeTits $player>> breasts with each stride. It's rhythmic, almost hypnotic. Your breasts sways with movement, brushing against your shirt in a way that's both unfamiliar and oddly comforting.
</div>
<<case 2>>
<div class="goodText">
The fabric of your <<if $player.outfit.bra != 0>>bra<<else>>top<</if>> moves differently now, hugging and lifting in places it never used to. The air feels cooler, the touch more noticeable, and you're surprised by how sensitive your <<sizeTits $player>> chest feels — how every motion, every gust, seems to register.
</div>
<<case 3>>
<div class="goodText">
Your <<descTits $player>> breasts sway in rhythm with your stride, a constant, subtle motion that makes you smile. Your <<sizeTits $player>> breasts aren't cumbersome - they're grounding. You adjust your posture instinctively, shoulders back, chest forward, walking with a new kind of presence.
</div>
<<case 4>>
<div class="goodText">
With every stride, your feel a tug and bounce fom your <<descTits $player>> <<sizeTits $player>> breasts that adds rhythm to your walk. It's as if your body has gained a new tempo, and you find yourelf smiling at the unexpected harmony between motion and sensation.
</div>
<<case 5>>
<div class="goodText">
The fullness of your <<sizeTits $player>> breasts press against your <<if $player.outfit.bra != 0>>bra<<else>>top<</if>>, a constant pleasant pressure that makes you feel grounded and present. Your posture shifts instinctively to support and showcase your ample assets.
</div>
<<case 6>>
<div class="goodText">
You feel the fabric stretch and shift with every breath, every turn, every step. The sensation and weight from your <<descTits $player>> <<sizeTits $player>> breasts is constant, a subtle pressure and motion that reminds you — this is real, and it's you. You catch yourself smiling at how alive your body feels.
</div>
<</switch>>
<</if>>
<</if>>
<br>
<</if>>
<</if>><<widget "genRandomEvents">>
/* descriptive text about body changes */
<<include 'bodyEvents'>>
/* Fortune Teller Quest Assignment */
<<FortuneWaiting>>
/* rainy day with no umbrella */
<<if $locType == 'Outdoors' and $rainyDay and $player.inventory.checkInv('Umbrella') == 0 and !$dailyLimit.includes('RainyDay')>>
<<run $dailyLimit.push('RainyDay')>>
<<set $returnLoc = passage()>>
<<goto 'RainyDay'>>
<</if>>
/* random TF events. Need trigger to slow down occurance */
<<if $currJulianDate > 2460861 and (!$lastRandEvent or Math.abs($gameDate.getHours() - $lastRandEvent) >= 6) and random(0,100) > 60>>
<<set $lastRandEvent = $gameDate.getHours()>>
<<set _tmpEventArr = [
{event:'TittyCompare',condition: '$player.body.tits < $sizeLimits.tits and !$dailyLimit.includes("TittyCompare")'},
{event:'AssEncounter',condition: '$player.body.ass < $sizeLimits.ass and !$dailyLimit.includes("AssEncounter")'},
{event:'HairEncounter',condition: '!($player.traits.includes(30)) and !$dailyLimit.includes("HairEncounter")'},
{event:'DoggieEncounter',condition: '!$dailyLimit.includes("DoggieEncounter")'}
]
>>
<<set _tmpEvent = _tmpEventArr[random(0,_tmpEventArr.length-1)]>>
<<if Scripting.evalTwineScript(_tmpEvent.condition)>>
<<set $returnLoc = passage()>>
<<goto _tmpEvent.event>>
<</if>>
<</if>>
<</widget>><center>
<b><font size="10em">Ring of Alteration</font></b>
<br>
Change one thing about yourself....
<br><br>
<div class="tripleContainer" style="width: 50%;">
<div class='habitsCard'>
<u><b>Head</b></u><br>
<<RelicHeadOptions>>
</div>
<div class='habitsCard'>
<u><b>Body</b></u><br>
<<RelicBodyOptions>>
</div>
</div>
<br>
<div class="tripleContainer" style="width: 50%;">
<div class='habitsCard'>
<u><b>Add Traits</b></u><br>
</div>
<div class='habitsCard'>
<u><b>Remove Traits</b></u><br>
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<<if $pointsUsed>>
<div class="buttonContainer">
<<button "Reset" "DragonRingMenu">>
<<unset $pointsUsed>>
<<switch $pointCategory>>
<<case 'Hair.length'>>
<<set $player.body.hair.length = $trueValue>>
<<case 'HairColor'>>
<<set $player.body.hair.color = $trueValue>>
<<case 'EyeSize'>>
<<set $player.body.eyes = $trueValue>>
<<case 'EyeColor'>>
<<set $player.body.eyeColor = $trueValue>>
<<case 'Tits'>>
<<set $player.body.tits = $trueValue>>
<<case 'BMI'>>
<<set $player.body.weight = $trueValue>>
<<case 'Height'>>
<<set $player.body.height = $trueValue>>
<<case "Race">>
<<set $player.race = $trueValue>>
<<set $player.body.skinTone = setRaceSkinTone($player.race)>>
<</switch>>
<<unset $trueValue>>
<<unset $pointCategory>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Finish" "Bed">>
<<set $player.outfit.relic.dose = 0>>
<<unset $hairColorArr>>
<<unset $eyeColorArr>>
<<unset $raceArr>>
<<unset $currHairIdx>>
<<unset $currEyeIdx>>
<<unset $currRaceIdx>>
<<unset $pointsUsed>>
<<unset $trueValue>>
<<unset $pointCategory>>
<<addSecs 5>>
<</button>>
</div>
</div><<widget "RelicHeadOptions">>
<div class="horzContainer">
<div>
Hair Length:
</div>
<div>
<<if !$pointsUsed or $pointCategory === 'HairLength'>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.hair.length>>
<<set $pointCategory = 'HairLength'>>
<</if>>
<<dragonHairChange "Shrink">>
<<goto 'DragonRingMenu'>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
<<if $player.body.hair.length === 0>>
Buzz cut
<<elseif $player.body.hair.length <= 30>>
Very short
<<elseif $player.body.hair.length <= 80>>
Pixie
<<elseif $player.body.hair.length <= 160>>
Ear-length
<<elseif $player.body.hair.length <= 260>>
Shoulder-length
<<elseif $player.body.hair.length <= 360>>
Braline
<<elseif $player.body.hair.length > 360>>
Very long
<</if>>
<<if !$pointsUsed or $pointCategory === 'HairLength'>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.hair.length>>
<<set $pointCategory = 'HairLength'>>
<</if>>
<<dragonHairChange "Grow">>
<<goto 'DragonRingMenu'>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</div>
</div>
<div class="horzContainer">
<<set $hairColorArr = ['black','blonde','brown','red']>>
<<set $currHairIdx = $hairColorArr.indexOf($player.body.hair.color)>>
<div>
Hair Color:
</div>
<div>
<<if !$pointsUsed or $pointCategory === 'HairColor' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.hair.color>>
<<set $pointCategory = 'HairColor'>>
<</if>>
<<set $currHairIdx = $currHairIdx - 1>>
<<if $currHairIdx < 0>><<set $currHairIdx = 3>><</if>>
<<set $player.body.hair.color = $hairColorArr[$currHairIdx]>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
<<print capitalizeFirstLetter($player.body.hair.color)>>
<<if !$pointsUsed or $pointCategory === 'HairColor' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.hair.color>>
<<set $pointCategory = 'HairColor'>>
<</if>>
<<set $currHairIdx = ($currHairIdx + 1) % 4>>
<<set $player.body.hair.color = $hairColorArr[$currHairIdx]>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</div>
</div>
<div class="horzContainer">
<div>
Eye Size:
</div>
<div>
<<if !$pointsUsed or $pointCategory === 'EyeSize' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.eyes>>
<<set $pointCategory = 'EyeSize'>>
<</if>>
<<set _tmpSize = $player.body.eyes - 1>>
<<if _tmpSize < 0>><<set _tmpSize = 3>><</if>>
<<set $player.body.eyes = _tmpSize>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
<<switch $player.body.eyes>>
<<case 0>>
Small
<<case 1>>
Average
<<case 2>>
Large
<<case 3>>
Doll-Like
<</switch>>
<<if !$pointsUsed or $pointCategory === 'EyeSize' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.eyes>>
<<set $pointCategory = 'EyeSize'>>
<</if>>
<<set $player.body.eyes = ($player.body.eyes + 1) % 4>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</div>
</div>
<div class="horzContainer">
<<set $eyeColorArr = ['green','hazel','brown','blue']>>
<<set $currEyeIdx = $eyeColorArr.indexOf($player.body.eyeColor)>>
<div>
Eye Color:
</div>
<div>
<<if !$pointsUsed or $pointCategory === 'EyeColor' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.eyeColor>>
<<set $pointCategory = 'EyeColor'>>
<</if>>
<<set $currEyeIdx = $currEyeIdx - 1>>
<<if $currEyeIdx < 0>><<set $currEyeIdx = 3>><</if>>
<<set $player.body.eyeColor = $eyeColorArr[$currEyeIdx]>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
<<print capitalizeFirstLetter($player.body.eyeColor)>>
<<if !$pointsUsed or $pointCategory === 'EyeColor' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.eyeColor>>
<<set $pointCategory = 'EyeColor'>>
<</if>>
<<set $currEyeIdx = ($currEyeIdx + 1) % 4>>
<<set $player.body.eyeColor = $eyeColorArr[$currEyeIdx]>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</div>
</div>
<div class="horzContainer">
<div>
Lip Size:
</div>
<div>
<<if !$pointsUsed or $pointCategory === 'LipSize' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.lips>>
<<set $pointCategory = 'LipSize'>>
<</if>>
<<set _tmpSize = $player.body.lips - 1>>
<<if _tmpSize < 0>><<set _tmpSize = 5>><</if>>
<<set $player.body.lips = _tmpSize>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
<<switch $player.body.lips>>
<<case 0>>
Thin
<<case 1>>
Average
<<case 2>>
Full
<<case 3>>
Pouty
<<case 4>>
Kissable
<<case 5>>
Pillowy
<</switch>>
<<if !$pointsUsed or $pointCategory === 'LipSize' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.lips>>
<<set $pointCategory = 'LipSize'>>
<</if>>
<<set $player.body.eyes = ($player.body.lips + 1) % 6>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</div>
</div>
<</widget>>
<<widget "RelicBodyOptions">>
<<set $raceArr = ['White','Asian','Arabic']>>
<<set $currRaceIdx = $raceArr.indexOf($player.race)>>
<div class="horzContainer">
<div>
Ethnicity:
</div>
<div>
<<if (!$pointsUsed or $pointCategory === 'Race')>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.Race>>
<<set $pointCategory = 'Race'>>
<</if>>
<<set $currRaceIdx = $currRaceIdx - 1>>
<<if $currRaceIdx < 0>><<set $currRaceIdx = 1>><</if>>
<<set $player.race = $raceArr[$currRaceIdx]>>
<<set $player.body.skinTone = setRaceSkinTone($player.race)>>
<<goto 'DragonRingMenu'>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
$player.race
<<if (!$pointsUsed or $pointCategory === 'Race')>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.Race>>
<<set $pointCategory = 'Race'>>
<</if>>
<<set $player.race = $raceArr[($currRaceIdx + 1) % 2]>>
<<set $player.body.skinTone = setRaceSkinTone($player.race)>>
<<goto 'DragonRingMenu'>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</div>
</div>
<div class="horzContainer">
<div>
Breast Size:
</div>
<div>
<<if (!$pointsUsed or $pointCategory === 'Tits') and $player.body.tits < 13>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.tits>>
<<set $pointCategory = 'Tits'>>
<</if>>
<<set _tmpSize = $player.body.tits - 1>>
<<if _tmpSize < 0>><<set _tmpSize = 12>><</if>>
<<set $player.body.tits = _tmpSize>>
<<goto 'DragonRingMenu'>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
<<switch $player.body.tits>>
<<case 0>>
Flat
<<case 1>>
AA Cup
<<case 2>>
A Cup
<<case 3>>
B Cup
<<case 4>>
C Cup
<<case 5>>
D Cup
<<case 6>>
E Cup
<<case 7>>
F Cup
<<case 8>>
G Cup
<<case 9>>
H Cup
<<case 10>>
I Cup
<<case 11>>
J Cup
<<case 12>>
L Cup
<<case 13>>
Z Cup
<</switch>>
<<if (!$pointsUsed or $pointCategory === 'Tits') and $player.body.tits < 13>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.tits>>
<<set $pointCategory = 'Tits'>>
<</if>>
<<set $player.body.tits = ($player.body.tits + 1) % 13>>
<<goto 'DragonRingMenu'>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</div>
</div>
<div class="horzContainer">
<div>
Weight:
</div>
<div>
<<if (!$pointsUsed or $pointCategory === 'BMI')>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.weight>>
<<set $pointCategory = 'BMI'>>
<</if>>
<<dragonWeightChange "Shrink">>
<<goto 'DragonRingMenu'>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
<<set _bmi = calcBMI($player)>>
<<if _bmi < 16>>
Malnurished
<<elseif _bmi >= 16 and _bmi < 19>>
Skinny
<<elseif _bmi >= 19 and _bmi < 24>>
Healthy
<<elseif _bmi >= 24 and _bmi < 30>>
Pudgy
<<elseif _bmi >= 30 and _bmi < 35>>
Chubby
<<elseif _bmi >= 35 and _bmi < 40>>
Fat
<<elseif _bmi >= 40 and _bmi < 45>>
Severely Obese
<<elseif _bmi >= 45>>
Morbidly obese
<</if>>
<<if (!$pointsUsed or $pointCategory === 'BMI')>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.weight>>
<<set $pointCategory = 'BMI'>>
<</if>>
<<dragonWeightChange "Grow">>
<<goto 'DragonRingMenu'>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</div>
</div>
<div class="horzContainer">
<div>
Height:
</div>
<div>
<<if !$pointsUsed or $pointCategory === 'Height' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.height>>
<<set $pointCategory = 'Height'>>
<</if>>
<<if $player.body.height > 130>>
<<set $player.body.height -= 1>>
<</if>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
$player.body.height cm
<<if !$pointsUsed or $pointCategory === 'Height' >>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg>>
<<if !$pointsUsed>>
<<set $pointsUsed = true>>
<<set $trueValue = $player.body.height>>
<<set $pointCategory = 'Height'>>
<</if>>
<<if $player.body.height < 175>>
<<set $player.body.height += 1>>
<</if>>
<<goto "DragonRingMenu">>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</div>
</div>
<</widget>>
<<widget "dragonHairChange">>
<<switch _args[0]>>
<<case 'Grow'>>
<<if $player.body.hair.length <= 30>>
<<set $player.body.hair.length = 31>>
<<elseif $player.body.hair.length <= 80>>
<<set $player.body.hair.length = 81>>
<<elseif $player.body.hair.length <= 160>>
<<set $player.body.hair.length = 161>>
<<elseif $player.body.hair.length <= 260>>
<<set $player.body.hair.length = 261>>
<<elseif $player.body.hair.length <= 360>>
<<set $player.body.hair.length = 361>>
<<else>>
<<set $player.body.hair.length = 0>>
<</if>>
<<case 'Shrink'>>
<<if $player.body.hair.length > 400>>
<<set $player.body.hair.length = 361>>
<<elseif $player.body.hair.length > 360>>
<<set $player.body.hair.length = 261>>
<<elseif $player.body.hair.length > 260>>
<<set $player.body.hair.length = 161>>
<<elseif $player.body.hair.length > 160>>
<<set $player.body.hair.length = 81>>
<<elseif $player.body.hair.length > 80>>
<<set $player.body.hair.length = 31>>
<<else>>
<<set $player.body.hair.length = 401>>
<</if>>
<</switch>>
<</widget>>
<<widget "dragonWeightChange">>
<<set _bmi = calcBMI($player)>>
<<switch _args[0]>>
<<case "Grow">>
<<if _bmi < 16>>
<<for _i to 0; _bmi < 16;_i++>>
<<set $player.body.bodyFat += 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 16 and _bmi < 19>>
<<for _i to 0; _bmi < 19;_i++>>
<<set $player.body.bodyFat += 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 19 and _bmi < 24>>
<<for _i to 0; _bmi < 24;_i++>>
<<set $player.body.bodyFat += 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 24 and _bmi < 30>>
<<for _i to 0; _bmi < 30;_i++>>
<<set $player.body.bodyFat += 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 30 and _bmi < 35>>
<<for _i to 0; _bmi < 35;_i++>>
<<set $player.body.bodyFat += 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 35 and _bmi < 40>>
<<for _i to 0; _bmi < 40;_i++>>
<<set $player.body.bodyFat += 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 40 and _bmi < 45>>
<<for _i to 0; _bmi < 45;_i++>>
<<set $player.body.bodyFat += 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 45>>
<<for _i to 0; _bmi > 15;_i++>>
<<set $player.body.bodyFat -= 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<</if>>
<<case "Shrink">>
<<if _bmi < 16>>
<<for _i to 0; _bmi < 45;_i++>>
<<set $player.body.bodyFat += 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 16 and _bmi < 19>>
<<for _i to 0; _bmi > 15;_i++>>
<<set $player.body.bodyFat -= 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 19 and _bmi < 24>>
<<for _i to 0; _bmi > 18;_i++>>
<<set $player.body.bodyFat -= 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 24 and _bmi < 30>>
<<for _i to 0; _bmi > 23;_i++>>
<<set $player.body.bodyFat -= 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 30 and _bmi < 35>>
<<for _i to 0; _bmi > 29;_i++>>
<<set $player.body.bodyFat -= 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 35 and _bmi < 40>>
<<for _i to 0; _bmi > 34;_i++>>
<<set $player.body.bodyFat -= 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 40 and _bmi < 45>>
<<for _i to 0; _bmi > 40;_i++>>
<<set $player.body.bodyFat -= 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<<elseif _bmi >= 45>>
<<for _i to 0; _bmi > 44;_i++>>
<<set $player.body.bodyFat -= 1>>
<<set $player.body.weight = calcWeight($player)>>
<<set _bmi = calcBMI($player)>>
<</for>>
<</if>>
<</switch>>
<<set $player.body.wieght = calcBMI($player)>>
<</widget>><<for _rowIndex to 0; _rowIndex < $player.relics.length; _rowIndex++>>
<<capture _rowIndex>>
<<genRelic $player.relics[_rowIndex]>>
<span @id="$player.relics[_rowIndex]">
[img[relics|$relicObj.image][ExamineRelic][$pickedRelic = $player.relics[_rowIndex]]]
</span>
<</capture>>
<</for>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Step back">>
<<addSecs 10>>
<<goto $relicLoc>>
<</button>>
</div>
</div><<genRelic $pickedRelic>>
<center>
<span id="repCont">
<img @src="$relicObj.image" height="500rem">
<br><br>
$relicObj.desc
<span id="subRepCont"><br><br></span>
</span>
</center>
<hr>
<div id="actionsContainer">
<<relicActions>>
<<if $player.outfit.relic.idx != $relicObj.sku>>
<div class="buttonContainer">
<<button "Put it down">>
<<unset $pickedRelic>>
<<goto "ListRelics">>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step back" $relicLoc>>
<<unset $pickedRelic>>
<</button>>
</div>
</div>/* some sort of negative effect */
<<set $player.health -= $player.health*.25 >>
<center>
<span id='repCont'>
pic of strained/pained expression?
<br><br>
You take a deep breath and apply all your force to removing the relic - white pain flares up behind your eyes but you can tell you're almost there; it's just about to give.
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Keep going">>
<<set $player.health -= $player.health*.10>>
<<set $player.outfit.relic = {idx: 0,dose: 0}>>
<<replace "#repCont">>
pic of sweaty but happy face
<br><br>
With one last flash of pain you finally remove the relic.
<<if random(0,100) > 0>>
<br><br>
<<set $randTF = true>>
But something else happened...
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<if $randTF>>
<<unset $randTF>>
<<randomTF $relicLoc>>
<<else>>
<<goto "ListRelics">>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Give up">>
<<addSecs 10>>
<<goto $relicLoc>>
<</button>>
</div>
</div><<widget "genRelic">>
<<switch _args[0]>>
<<case 1>>
<<set
_sku = 1;
_name = 'Double Snake-head Ring';
_image = 'Media/Artifacts/1.webp';
_type = 'Charged';
_maxDose = 6;
_wornLoc = 'Wrist';
_desc = 'A ring of some kind ending with two silver snake heads. There\'s some sort of dense black material too, it\'s like nothing you\'ve ever seen.';
_logEntry = 'You have the Double Snake-head Ring that the Fortune Teller wants. What about this makes it so important?';
_FTDialog = 'What I want is a small circular object, with two snake heads at the end of the ring. Trust me, you\'ll know it when you see it.';
>>
<</switch>>
<<set $relicObj = new Relic(_sku,_name,_image,_type,_maxDose,_wornLoc,_desc,_logEntry,_FTDialog)>>
<</widget>>
<<widget "collectRelic">>
<<run $player.relics.push($relicQuest.relicIdx)>>
<<if !$unknownRelics>>
<<set $unknownRelics = [$relicQuest.relicIdx]>>
<<else>>
<<run $unknownRelics.push($relicQuest.relicIdx)>>
<</if>>
<<run $worldRelics.delete($relicQuest.relicIdx)>>
<<set $relicQuest.level = $relicQuest.complete>>
<<run $player.questLog.addQuest('RelicQuest','You found the $relicQuest.relicName, you should report in your success.')>>
<<if !$relicLog>>
<<set $relicLog = [{idx: $relicQuest.relicIdx, log: 'A $relicQuest.relicName; you don\'t know how to use it.',level: 1}]>>
<<else>>
<<set $relicLog.push({idx: $relicQuest.relicIdx, log: 'A $relicQuest.relicName; you don\'t know how to use it.',level: 1})>>
<</if>>
<<set $blockFTVisit = $currJulianDate + random(15,30)>>
<</widget>>
<<widget "relicActions">>
<<switch $relicObj.sku>>
<<case 1>>
<<if !$unknownRelics.includes(1)>>
<div class="buttonContainer">
<<if $player.outfit.relic.idx != 1>>
<<button "Wear it">>
<<if $player.outfit.relic.idx != 0>>
<<replace "#subRepCont">>
<div class="badText">You are already wearing a relic. You cannot wear more than one.</div>
<</replace>>
<<else>>
<<set
$player.outfit.relic = {
idx: 1,
dose: 0
}
>>
<<replace "#repCont">>
<img src="Media/Misc/selfAssGrope.webp" height="600rem">
<br><br>
<<set _tmpLog = $relicLog.find(obj => obj.idx === 1)>>
<<if _tmpLog.level === 2>>
<<set
_tmpLog.log = 'This relic is worn by slipping it up your ass. What to do next is uncertain';
_tmpLog.level = 3;
>>
<<set $player.outfit.relic.dose = 1>>
As soon as you make the decision to wear it, a compulsion overcomes you and you reach behind yourself to touch the ring to your puckered asshole. When the ring comes into contact with your ass it almost seems to come alive and squirms it's away deep inside you.
<br><br>
Surprisingly, it doesn't hurt and instead feels actually really really good. You arch your back and stand up on your tiptoes, rocking your hips back against your fingers as the ring moves in deeper.
<<else>>
Your lips curl in a slight smile as the ring pleasantly slides home inside your ass, right where it belongs.
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 10>>
<<goto $relicLoc>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
<<else>>
<<timed 0s>>
<<replace "#subRepCont">>
<div class="badText">This relic is currently inserted deep inside your ass</div>
<</replace>>
<</timed>>
<<button "Remove it">>
<<if $player.outfit.relic.dose === 0>>
<<set $player.outfit.relic = {idx: 0, dose: 0}>>
<<replace "#subRepCont">>
<div class="goodText">As soon as you have the concious though to remove it, the ring drops out of your ass - clean as a whistle.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class='buttonContainer'>
<<button "Back to your relics" "ListRelics">>
<<addSecs 5>>
<</button>>
</div>
<div class='buttonContainer'>
<<button "Step away">>
<<addSecs 10>>
<<goto $relicLoc>>
<</button>>
</div>
<</replace>>
<<else>>
<<replace "#subRepCont">>
<div class="badText">There's a sting of magical energy in the ring and it resists being removed - you can do it. But it's not going to be pleasant</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Force it">>
<<goto "ForceRelicRemoval">>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stop for now">>
<<addSecs 10>>
<<goto $relicLoc>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
<</if>>
</div>
<<else>>
<<timed 0s>>
<<replace "#subRepCont">>
<div class="badText">It's too big to wear on your finger. Maybe it's an amulet or pendent of some kind...</div>
<</replace>>
<</timed>>
<</if>>
<<default>>
<</switch>>
<</widget>>
<<widget "checkRelicPowers">>
<<if $player.outfit.relic.dose >= 3>>
<div class="buttonContainer">
<<genRelic $player.outfit.relic.idx>>
<<button "Activate the $relicObj.name">>
<<switch $player.outfit.relic.idx>>
<<case 1>>
<<goto "DragonRingMenu">>
<</switch>>
<</button>>
</div>
<</if>>
<</widget>>
<<widget "calcRelicImpact">>
<<switch $player.outfit.relic.idx>>
<<case 1>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).justCame and $cumScene == 'Ass' and !$protectionUsed and $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<timed 0s>>
<<replace "#repCont">>
<br><br>
<<if $player.outfit.relic.dose < 3>>
<<set $player.outfit.relic.dose += 1>>
<</if>>
<<set _tmpLog = $relicLog.find(obj => obj.idx === 1)>>
<<if _tmpLog.level === 3>>
<<set
_tmpLog.log = 'This relic is powered by slipping it up your ass and then coating it with cum, but it doesn\'t yet feel fully charged.';
_tmpLog.level = 4;
>>
<</if>>
<<if $player.outfit.relic.dose === 3>>
<div class="badText">The relic inside your ass grows hot as if to indicate it's fully charged</div>
<<set _tmpLog = $relicLog.find(obj => obj.idx === 1)>>
<<if $relicLog.find(obj => obj.idx === 1).level === 4>>
<<set
$relicLog.find(obj => obj.idx === 1).log = 'This relic is powered by slipping it up your ass and then coating it with cum three times.';
$relicLog.find(obj => obj.idx === 1).level = 5;
>>
<</if>>
<</if>>
<</replace>>
<</timed>>
<</if>>
<</switch>>
<</widget>><<set $skipEnding = true>>
<<set $ghAct = 'Intro'>>
<<set $npcCum = 0>>
<<if $ghDir === 'Giving'>>
<<set $oralGenders = $player.presenting[0] + $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<<if $oralGenders === 'FM'>>
<<set $oralGenders = 'MF'>>
<</if>>
<<set $givingGender = $player.presenting[0]>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === "Male">>
<<set $oralType = 'BJ'>>
<<else>>
<<set $oralType = 'Cuni'>>
<</if>>
<<else>>
<<if $player.body.cock > 0>>
<<set $oralType = 'BJ'>>
<<else>>
<<set $oralType = 'Cuni'>>
<</if>>
<<set $givingGender = $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<</if>>
/* calculate happiness of giver */
<<calcOralRx $ghDir>>
<<calcHJRx $ghDir>>
<<goto 'GloryHoleScene'>><div class='sexScene'>
<<getGloryHoleClips>>
<br><br>
<<if $ghAct != 'Intro'>>
<<if $ghDir == 'Giving'>>
<<calcOrgBar $currDNA>>
<<else>>
<<calcOrgBar $player.dna>>
<</if>>
<br>
<</if>>
<div id="cumNotice">
<<if $ghAct == 'Intro'>>
<<if $ghDir == 'Giving'>>
<<switch $oralRx>>
<<case 'Resist'>>
You can't help but recoil in disgust when a cock bursts through the glory hole, already hard and throbbing!
<<case 'Willing'>>
You take a moment to study the cock pops through the hole, all-in-all it's not bad...
<<case 'Happy'>>
You practically clap when a cock pokes through the hole, already hard and ready for fun.
<</switch>>
<<else>>
You see a women kneeling on the other side, her mouth open and waiting for something to slide through the hole
<</if>>
<<else>>
<<getGloryHoleText>>
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<<getGloryHoleActions>>
</div>
<<if $ghDir == 'Giving'>>
<<calcOrgasm $currDNA>>
<<else>>
<<calcOrgasm $player.dna>>
<</if>>
<<timed 0s>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).justCame>>
<<if $ghDir === 'Giving'>>
<<set $cumDir = 'Getting'>>
<<else>>
<<set $cumDir = 'Giving'>>
<</if>>
<<set $cumAct = 'GloryHole'>>
<<set $cumDNA = $currDNA>>
<<set $cumRx = $oralRx>>
<<getCumActions>>
<<elseif $player.justCame>>
<<if $ghDir === 'Giving'>>
<<set $cumDir = 'Getting'>>
<<else>>
<<set $cumDir = 'Giving'>>
<</if>>
<<set $cumAct = 'GloryHole'>>
<<set $cumDNA = $player.dna>>
<<set $cumRx = $oralRx>>
<<getCumActions>>
<</if>>
<</timed>><<widget "getGloryHoleClips">>
<<switch $ghAct>>
<<case 'Intro'>>
<<if $ghDir == 'Giving'>>
<<if $givingGender === 'M'>>
<<set _tmpImg = 'Media/Sex/GloryHole/Intro/Giving/' + $givingGender + '/' + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg = 'Media/Sex/GloryHole/Intro/Giving/' + $givingGender + '/' + ($oralRx == 'Resist'?'Bad':'Good') + '/'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,9) + '.webp'>>
<<default>>
<<set _tmpImg += random(1,7) + '.webp'>>
<</switch>>
<</if>>
<<else>>
<<set _tmpImg = 'Media/Sex/GloryHole/Intro/Getting/' + random(1,1) + '.webp'>>
<</if>>
<img @src ="_tmpImg" height="450rem">
<<case 'Hand'>>
<<if $givingGender === 'M'>>
<<set _tmpImg = 'Media/Sex/GloryHole/Hand/M/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpImg = 'Media/Sex/GloryHole/Hand/F/' + random(1,9) + '.mp4'>>
<</if>>
<video @src="_tmpImg" autoplay loop></video>
<<case 'Mouth'>>
<<if $givingGender === 'M'>>
<<set _tmpImg = 'Media/Sex/GloryHole/Mouth/M/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpImg = 'Media/Sex/GloryHole/Mouth/F/' + random(1,11) + '.mp4'>>
<</if>>
<video @src="_tmpImg" autoplay loop></video>
<</switch>>
<</widget>>
<<widget "getGloryHoleText">>
<<switch $ghAct>>
<<case 'Hand'>>
<<switch random(1,4)>>
<<case 1>>
The musky scent of the stranger's throbbing cock fills your nostrils as you grip its girthy shaft tightly. Your hands glide up and down the pulsating member, slick with pre-cum, mere inches from your parted lips. You feel the heat radiating off his swollen tip, begging to be engulfed by your eager mouth.
<<case 2>>
The veiny texture of the anonymous dick rubs against your soft palms as you stroke it vigorously. Beads of sweat trickle down your forehead while you pump the rigid pole, lost in a haze of lust. Your breath hitches as a drop of salty fluid oozes out, landing tantalizingly close to your tongue.
<<case 3>>
With every stroke, the bulbous head grows redder and angrier, demanding release. Your fingers dance along the underside, teasing the sensitive spot beneath the crown. Moans echo from behind the wall, urging you to quicken your pace and bring him closer to the edge.
<<case 4>>
As you jerk off the throbbing cock with increasing intensity, your own arousal builds between your thighs. The taboo nature of servicing an unknown man in such a public place sends shivers down your spine.
<</switch>>
<<case 'Mouth'>>
<<if $ghDir == 'Giving'>>
<<switch random(1,4)>>
<<case 1>>
As the stranger's thick cock slides through the opening, you wrap your plump lips around its engorged head, tasting the salty tang of his arousal. With long, sensuous strokes, you run your tongue along the underside of his shaft, tracing every ridge and vein.
<<case 2>>
Bobbing your head, you take him deeper into your warm, wet mouth. Your forehead presses against the wall dividing you two as he fucks your willing throat. Gagging slightly, you relax your muscles, allowing him to plunge even further inside. Strands of drool escape from the corners of your stretched lips, dripping onto the grimy tiles below.
<<case 3>>
Swirling your tongue around his sensitive tip, you lap up the steady stream of pre-cum leaking from his slit. Your free hand reaches up to fondle his weighty sac, rolling his testicles gently between your fingers. Groans of pleasure emanate from the other side of the wall, spurring you on to increase your efforts.
<<case 4>>
Lost in a frenzy of oral worship, you deepthroat the anonymous dick with abandon. Your nose presses against the wall as you swallow him whole. The musty scent of his arousal fills your senses, heightening your own desire. With muffled moans, you continue to suck and slurp.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
A jolt of pleasure shoots through your body as the unseen woman lavishes attention upon your straining <<sizeDick $player>>cm cock.
<<case 2>>
Her skilled tongue dances along the underside of your shaft, teasing and exploring every inch. She takes you deeper into her inviting mouth, applying just the right amount of suction to drive you wild. Wet slurping sounds fill the confined space as she works her magic, clearly relishing the task at hand.
<<case 3>>
Grunting softly, you thrust your hips forward against the wall, driving yourself further into her welcoming throat. She meets your movements with enthusiasm, bobbing her head in perfect rhythm. Her hands come up to grasp the base of your shaft, stroking in tandem with her expert mouthwork.
<<case 4>>
Every nerve ending in your body seems to be on fire as she worships your manhood with single-minded devotion. It's as if pleasuring you is her sole purpose in life, and she's determined to make this the best blowjob you've ever received. Lost in a haze of ecstasy, you can only stand there and enjoy the ride, grateful for the anonymous angel on the other side of the wall who knows exactly how to push all your buttons.
<</switch>>
<</if>>
<</switch>>
<</widget>>
<<widget "getGloryHoleActions">>
<<if $ghAct == 'Intro'>>
<<if $oralRx == 'Resist'>>
<div class="buttonContainer">
<<button "Get out of there!" "Bathroom">>
<<addSecs 15>>
<</button>>
</div>
<<else>>
<<if $ghDir == 'Giving'>>
<div class="buttonContainer">
<<button "Play with it" "GloryHoleScene">>
<<set _tmpQst = $player.questTracker.find(obj => obj.idx === 'GloryHole')>>
<<if _tmpQst.level < 3>>
<<set _tmpQst.level = 3>>
<</if>>
<<set $ghAct = 'Hand'>>
<<set $arousalFactor = 1 + $hjSkill>>
<<addSecs 15>>
<</button>>
</div>
<<elseif $ghDir == 'Getting' and $player.body.gender != 'Female'>>
<div class="buttonContainer">
<<button "Stick your cock in the hole" "GloryHoleScene">>
<<set _tmpQst = $player.questTracker.find(obj => obj.idx === 'GloryHole')>>
<<if _tmpQst.level < 3>>
<<set _tmpQst.level = 3>>
<</if>>
<<set $ghAct = 'Mouth'>>
<<addSecs 15>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Ignore it" "Bathroom">>
<<addSecs 15>>
<</button>>
</div>
<</if>>
<<else>>
<div class="buttonContainer">
<<button "Keep going" "GloryHoleScene">>
<<if $ghAct == 'Hand'>>
<<calcArousal 'hj' $arousalFactor 2>>
<<elseif $ghAct == 'Mouth'>>
<<calcArousal 'bj' $arousalFactor 2>>
<</if>>
<</button>>
</div>
<<if $ghDir == 'Giving'>>
<<if $ghAct != 'Hand'>>
<div class="buttonContainer">
<<button "Use your hand" "GloryHoleScene">>
<<set $ghAct = 'Hand'>>
<<set $arousalFactor = 1 + $hjSkill>>
<<calcArousal 'hj' $arousalFactor 2>>
<<addSecs 15>>
<</button>>
</div>
<</if>>
<<if $ghAct != 'Mouth'>>
<div class="buttonContainer">
<<button "Suck it" "GloryHoleScene">>
<<set $ghAct = 'Mouth'>>
<<set $arousalFactor = 2 + $bjSkill>>
<<calcArousal 'bj' $arousalFactor 2>>
<<addSecs 15>>
<</button>>
</div>
<</if>>
<</if>>
<</if>>
<</widget>>
<<widget "gloryholePowerDown">>
<<unset $oralType>>
<<unset $oralText>>
<<unset $oralType>>
<<unset $ghDir>>
<<unset $sceneDir>>
<<unset $bjSkill>>
<<unset $txtSkill>>
<</widget>><<set $hjAct = 'Intro'>>
<<set $npcCum = 0>>
<<if $hjDir === 'Giving'>>
<<set $hjGenders = $player.presenting[0] + $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<<if $hjGenders === 'FM'>>
<<set $hjGenders = 'MF'>>
<</if>>
<<set $givingGender = $player.presenting[0]>>
<<set $receivingGender = $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<<if $receivingGender === 'M'>>
<<set $hjTarget = 'Cock'>>
<<else>>
<<set $hjTarget = 'Pussy'>>
<</if>>
<<else>>
<<set $givingGender = $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<<set $receivingGender = $player.presenting[0]>>
<</if>>
/* calculate happiness of giver */
<<calcHJRx $hjDir>>
<<goto 'HJScene'>><div class='sexScene'>
<<getHJClips>>
<br><br>
<<if $hjDir == 'Giving'>>
<<calcOrgBar $currDNA>>
<<else>>
<<calcOrgBar $player.dna>>
<</if>>
<br>
<div id="cumNotice">
<<getHJText>>
</div>
</div>
<hr>
<div id="actionsContainer">
<<getHJActions>>
</div>
<<if $hjDir == 'Giving'>>
<<calcOrgasm $currDNA>>
<<else>>
<<calcOrgasm $player.dna>>
<</if>>
<<timed 0s>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).justCame>>
<<if $hjDir === 'Giving'>>
<<set $cumDir = 'Getting'>>
<<else>>
<<set $cumDir = 'Giving'>>
<</if>>
<<set $cumAct = 'Handjob'>>
<<set $cumDNA = $currDNA>>
<<set $cumRx = $hjRx>>
<<getCumActions>>
<<elseif $player.justCame>>
<<if $ohjDir === 'Giving'>>
<<set $cumDir = 'Getting'>>
<<else>>
<<set $cumDir = 'Giving'>>
<</if>>
<<set $cumAct = 'Handjob'>>
<<set $cumDNA = $player.dna>>
<<set $cumRx = $hjRx>>
<<getCumActions>>
<</if>>
<</timed>><<widget "getHJActions">>
<<timed 0s>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $hjAct !== 'Intro'>>
<<button "Keep going" "HJScene">>
<<calcArousal 'hj' $arousalFactor 2>>
<</button>>
<</if>>
<<if $receivingGender === 'M'>>
<<if $hjAct != 'ShaftPump'>>
<<if $hjDir === 'Giving'>>
<<set _tmpLbl = 'Pump his shaft'>>
<<else>>
<<set _tmpLbl = 'Pump your shaft'>>
<</if>>
<<button "<<print _tmpLbl>>" "HJScene">>
<<set $hjAct = 'ShaftPump'>>
<<set $arousalFactor = 1 + $hjSkill>>
<<calcArousal 'hj' $arousalFactor 2>>
<</button>>
<</if>>
<<if $hjAct != 'CockRub'>>
<<if $hjDir === 'Giving'>>
<<set _tmpLbl = 'Work his tip'>>
<<else>>
<<set _tmpLbl = 'Make <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> work your tip'>>
<</if>>
<<button "<<print _tmpLbl>>" "HJScene">>
<<set $hjAct = 'CockRub'>>
<<set $arousalFactor = 1 + $hjSkill>>
<<calcArousal 'hj' $arousalFactor 2>>
<</button>>
<</if>>
<<else>>
<<if $hjAct != 'FingerFuck'>>
<<if $hjDir === 'Giving'>>
<<set _tmpLbl = 'Finger fuck her'>>
<<else>>
<<set _tmpLbl = 'Tell <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> to use <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers'>>
<</if>>
<<button "<<print _tmpLbl>>" "HJScene">>
<<set $hjAct = 'FingerFuck'>>
<<set $arousalFactor = 1 + $hjSkill>>
<<calcArousal 'hj' $arousalFactor 2>>
<</button>>
<</if>>
<<if $hjAct != 'ClitRub'>>
<<if $hjDir === 'Giving'>>
<<set _tmpLbl = 'Work her clit'>>
<<else>>
<<set _tmpLbl = 'Tell <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> to focus on your clit'>>
<</if>>
<<button "<<print _tmpLbl>>" "HJScene">>
<<set $hjAct = 'ClitRub'>>
<<set $arousalFactor = 1 + $hjSkill>>
<<calcArousal 'hj' $arousalFactor 2>>
<</button>>
<</if>>
<</if>>
</div>
<<otherActs>>
<</replace>>
<</timed>>
<</widget>>
<<widget "getHJClips">>
<<switch $hjAct>>
<<case "Intro">>
<<set _tmpImg = 'Media/Sex/Oral/' + ($receivingGender === 'M'?'BJ/':'Cuni/') + $givingGender + '/' + $hjRx + '/'>>
<<if $hjTarget === 'Cock'>>
<<if $givingGender === 'M'>>
<<switch $hjRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<</switch>>
<<else>>
<<switch $hjRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,40) + '.webp'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,4) + '.webp'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,15) + '.webp'>>
<</switch>>
<</if>>
<<else>>
<<if $givingGender === 'M'>>
<<switch $hjRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,5) + '.webp'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</switch>>
<<else>>
<<switch $hjRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<</switch>>
<</if>>
<</if>>
[img[hjImg|_tmpImg]]
<<case 'ShaftPump'>>
<<set _tmpVid = 'Media/Sex/HJ/' + $givingGender + '/' + $hjRx + '/' + $hjAct + '/'>>
<<switch $hjRx>>
<<case 'Resist'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,10) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<</if>>
<<case 'Willing'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,4) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<</if>>
<<case 'Happy'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,28) + '.webm'>>
<<else>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<</if>>
<</switch>>
<video @src="_tmpVid" autoplay loop></video>
<<case 'CockRub'>>
<<set _tmpVid = 'Media/Sex/HJ/' + $givingGender + '/' + $hjRx + '/' + $hjAct + '/'>>
<<switch $hjRx>>
<<case 'Resist'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<</if>>
<<case 'Willing'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<</if>>
<<case 'Happy'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,5) + '.webm'>>
<<else>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<</if>>
<</switch>>
<video @src="_tmpVid" autoplay loop></video>
<<case 'FingerFuck'>>
<<set _tmpVid = 'Media/Sex/HJ/' + $givingGender + '/' + $hjRx + '/' + $hjAct + '/'>>
<<switch $hjRx>>
<<case 'Resist'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<</if>>
<<case 'Willing'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<</if>>
<<case 'Happy'>>
<<if $givingGender === 'F'>>
<<if $hjDir === 'Giving'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += '/Preg/Giving/' + random(1,3) + '.mp4'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).body.womb.showPreg>>
<<set _tmpVid += '/Preg/Getting/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.womb.showPreg>>
<<set _tmpVid += '/Preg/Getting/' + random(1,2) + '.mp4'>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += '/Preg/Giving/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<</if>>
<</if>>
<<else>>
<<if $hjDir === 'Giving' and $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += '/Preg/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<</if>>
<</if>>
<</switch>>
<video @src="_tmpVid" autoplay loop></video>
<<case 'ClitRub'>>
<<set _tmpVid = 'Media/Sex/HJ/' + $givingGender + '/' + $hjRx + '/' + $hjAct + '/'>>
<<switch $hjRx>>
<<case 'Resist'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<</if>>
<video @src="_tmpVid" autoplay loop></video>
<<case 'Willing'>>
<<if $givingGender === 'F'>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<</if>>
<video @src="_tmpVid" autoplay loop></video>
<<case 'Happy'>>
<<if $givingGender === 'F'>>
<<if $hjDir === 'Giving'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += '/Preg/Giving/' + random(1,1) + '.mp4'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).body.womb.showPreg>>
<<set _tmpVid += '/Preg/Getting/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.womb.showPreg>>
<<set _tmpVid += '/Preg/Getting/' + random(1,2) + '.mp4'>>
<<elseif $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += '/Preg/Giving/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<</if>>
<</if>>
<<else>>
<<if $hjDir === 'Giving' and $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += '/Preg/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<</if>>
<</if>>
<video @src="_tmpVid" autoplay loop></video>
<</switch>>
<</switch>>
<</widget>>
<<widget "getHJText">>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == $currDNA)>>
<<switch $hjAct>>
<<case 'Intro'>>
<<switch $hjRx>>
<<case "Resist">>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
Your scowl gives away how much you don't want to be here. But it doesn't look like life is going to give you much of a choice.
<<else>>
Overwhelmed by dread, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> cowers before you, cheeks flushed and eyes downcast as you tower above, your <<if $hjTarget === 'Pussy'>>dripping wet pussy just at eye level<<else>>engorged cock a leering specter between you<</if>>.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Panic surges through your veins as you realize there's no escape from this degrading act. Despite your revulsion, you're compelled to <<if $hjTarget === 'Pussy'>>brush your fingers against her dripping pussy<<else>>wrap your fingers around his girth<</if>>, the obscene flesh pulsing in your grip.
<<else>>
As <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> forces <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>self to gaze up at you, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes are wide with fear and disgust, reflected in the way <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> shrinks back from your <<if $hjTarget === 'Pussy'>>quivering pussy <<else>>throbbing <<sizeDick $player>>cm erection<</if>>.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
You feel a mix of disgust and terror as your trembling hands hover over <<if $hjTarget === 'Pussy'>>her dripping pussy<<else>>his thick shaft<</if>>, the coarse stubble threatening to poke and tickle your skin.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> kneels before you, feeling utterly powerless as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> gaze is drawn inexorably to the <<if $hjTarget === 'Pussy'>> dripping pussy between your thighs<<else>>throbbing <<sizeDick $player>>cm cock pointing at <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face<</if>>.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Your gut clenches as <<if $hjTarget === 'Pussy'>>her quivering pussy inches closer to your<<else>>his cock invades your personal space, its veiny length brushing against your cheek<</if>>. Bile rises in your throat at the musk of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> arousal, making your head spin.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> kneels before you, consumed by dread as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes fixate on <<if $hjTarget === 'Pussy'>> your dripping hungry pussy<<else>>the <<sizeDick $player>>cm length of your cock<</if>>. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> breath catches in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> throat as you as you step closer.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
Waves of nausea crash over you as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> presses closer, trapping you beneath <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> dominant presence. Every instinct screams to flee, yet your hands remain frozen, poised to obey <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> depraved command.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> stares in mute horror at your <<if $hjTarget === 'Pussy'>>pussy<<else>><<descDick $player>> <<sizeDick $player>>cm cock<</if>>. But you can see in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes that <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> knows there's only one way out of this.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
You wish this was more enjoyable for you. It's nice that your partner has a good time; but you would rather be on the receiving end.
<<else>>
Your exposed <<if $hjTarget === 'Pussy'>>pussy<<else>>cock<</if>> hovers mere inches from <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face. You meet <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> resigned gaze, a small nod encouraging <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> to get on with show.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Kneeling before <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>, you swallow hard, gazing up at <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> expectant face. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> <<if $hjTarget === 'Pussy'>>pussy glistens with desire<<else>><<sizeDick _tmpNPC>>cm cock juts out obscenely, pointing directly at you<</if>>. You can smell the potent musk of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> arousal, making your stomach clench with trepidation as as you resign yourself to what's to come.
<<else>>
A look of resigned dread is ecthed on <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> delicate hand reaches out, trembling slightly, as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> prepares to <<if $hjTarget === 'Pussy'>> finger your dripping hot pussy<<else>>take hold of your engorged cock<</if>>.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
Gritting your teeth, you raise your hand, fingers splayed, toward the <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s <<if $hjTarget === 'Pussy'>> waiting pussy<<else>>straining cock<</if>>. It's an offering, a token of your surrender, as you steel yourself for the degrading act to come.
<<else>>
You can practically feel <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> turmoil, the conflicted emotions warring within <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> reaches out with one trembling hand toward your <<if $hjTarget === 'Pussy'>>waiting pussy<<else>><<descDick $player>> <<sizeDick $player>>cm cock<</if>>.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
There's no going back; you've committed to this vile ritual. Slowly, deliberately, you close the gap, making contact with the hot, pulsing flesh, ready to begin - if not eager.
<<else>>
You note the determined set of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> jaw contrasting with the vulnerable quiver of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hands as they approach your <<if $hjTarget === 'Pussy'>>enflamed pussy<<else>>throbbing member<</if>>. <<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> fingers graze your burning skin, sending sparks of anticipation through your core.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
Your hand trembles as you hover inches from <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s <<if $hjTarget === 'Pussy'>>burning pussy<<else>>twitching <<descDick _tmpNPC>> cock<</if>>, the musky aroma of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> desire filling your senses. A surge of apprehension and shame courses through you, knowing you're about to submit to this degrading act.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> expression is a mix of apprehension and reluctance as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> approaches your <<if $hjTarget === 'Pussy'>>aching pussy<<else>>throbbing erection<</if>>. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> hand shakes as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> extends it, the tips of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers just grazing your sensitive skin.
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
You almost purr as you move in toward your goal. You can't think of anywhere you'd rather be at this exact moment.
<<else>>
As <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers <<if $hjTarget === 'Pussy'>>brush against your pussy<<else>>wrap around your shaft<</if>>, you let out a low growl of satisfaction. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> grip is firm, assertive, and you can sense the mix of pleasure and submission emanating from <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Your eager gaze fixes on <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> <<if $hjTarget === 'Pussy'>>dripping pussy<<else>><<descDick _tmpNPC>> erection<</if>> mere inches from your face. You can feel the heat radiating off <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> flesh, the matching the fire building inside you.
<<else>>
As <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> takes hold of your <<if $hjTarget === 'Pussy'>>pussy<<else>>cock<</if>>, a mischievous grin spreads across <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face, hinting at the secret thrill <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> derives from this act of dominance and submission.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
Reaching out, your hand hovers over the <<if $hjTarget === 'Pussy'>> slit of her pussy<<else>>prominent vein of his <<descDick _tmpNPC>> <<sizeDick _tmpNPC>>cm cock<</if>>, your fingers dancing lightly across the surface. You pause for a fleeting moment, savoring the moment before surrendering to pleasure and submitting to <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> desires.
<<else>>
Reaching out, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s hand hovers over the <<if $hjTarget === 'Pussy'>> slit of your pussy<<else>>prominent vein of your <<descDick $player>> <<sizeDick $player>>cm cock<</if>>, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers dancing lightly across the surface, pausing to savor the moment before focusing on your <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> desires.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
You bend forward, eagerly positioning yourself before <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> <<if $hjTarget === 'Pussy'>>pussy<<else>><<descDick _tmpNPC>> <<sizeDick _tmpNPC>>cm erection<</if>>. Anticipation swirls within you as you gaze up at <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> expectant face, enjoying the lust directed at you.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> leans in closer, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eager fingers reaching to <<if $hjTarget === 'Pussy'>>brush against your pussy<<else>>wrap around your <<descDick $player>> shaft<</if>>. A soft hum of delight escapes <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> moves closer.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
With a deep breath, you reach out, your fingers brushing lightly against the smooth, hot skin. A spark of excitement ignites within you, and your eagerness to please shines through in the confident way you prepare to take control of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> <<if $hjTarget === 'Pussy'>>wet pussy<<else>>throbbing member<</if>>.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> pleasure is palpable, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes gleaming with satisfaction as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> reaches out for your <<if $hjTarget === 'Pussy'>>hot pussy<<else>><<descDick $player>> <<sizeDick $player>>cm cock<</if>>.
<</if>>
<</switch>>
<</switch>>
<<case 'ShaftPump'>>
<<switch $hjRx>>
<<case "Resist">>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
Kneeling before <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>, you're overcome with revulsion as your hand moves mechanically along his throbbing cock. Each stroke feels like a betrayal, your mind screaming for your nightmare to end.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> forces <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>self to service your <<descDick $player>> cock. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> hand moves with a jerky, unpracticed rhythm, betraying <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> discomfort and resentment.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Even as shame and guilt churn inside you, you continue the degrading act, forced to bear witness to the shameful display of your own subjugation as your hand pumps up and down his <<descDick _tmpNPC>> cock.
<<else>>
You tower over the reluctant $NPCArray.find(npc => npc.dna == $currDNA).genRef, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> shaking hand wrapped tightly around your rigid <<sizeDick $player>>cm cock. Despite <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> clear distaste, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> persists in stroking you with a desperate fervor, urging you to finish quickly.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
As your hand pumps his dick with reluctant compliance, a bitter taste of despair fills your mouth. Each slick glide of skin on skin is a fresh insult, a brutal reminder of your newfound situation.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> fingers dancing along your sensitive skin. Even in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> resistance, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> brings a raw intensity to the act. You can see the battle raging behind <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes, torn between duty and disdain.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Trapped in this twisted dynamic, you're helpless to resist, forced to pleasure his throbbing cock with your own hand, your motions mechanical but still complicit.
<<else>>
<<$NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s grip tightens reflexively as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> continues <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> <<if $NPCArray.find(npc => npc.dna == $currDNA).dom > 40>>anger-driven<<else>>fearful<</if>> ministrations, each stroke a visible effort of willpower. Despite <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> obvious discomfort, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> doesn't falter, driven to finish this unspeakable act.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
You force your fingers to move, rubbing the cock that fills your vision. Every stroke is a agony of submission, the reality of your helplessness sinking deeper with each pump.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> jaw clenches as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> forces <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>self to maintain a steady rhythm, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hand moving up and down your <<sizeDick $player>>cm shaft with an unnatural grace. The exertion of willpower etches lines of strain across <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> features, belaying <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> true feelings.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
As your fingers glide along <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> <<descDick _tmpNPC>> <<sizeDick _tmpNPC>> cock, you can't help but feel a twinge of pleasure mixed with reluctance. Though you don't revel in the act, there's a certain satisfaction in seeing him respond to your touch.
<<else>>
You watch <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hand work its way up and down your straining length. The touch is skilled but lacks true passion, each stroke a blend of duty and begrudging compliance.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Your movements remain unhurried, almost perfunctory, but the subtle tightening of your grip hints at a growing interest. Despite the initial hesitation, you find yourself drawn into the moment, your attention focused intently on bringing <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> to climax.
<<else>>
His hand glides firmly along your <<sizeDick $player>>cm shaft, pumping with an expert rhythm. Yet, the lack of genuine enthusiasm is palpable in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> touch - <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> is willing, but not passionate.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
You pump your hand up and down <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s cock, your hand gliding smoothly along his heated flesh. While still ambivelant about your actions, you're undeniably proud about the effect your touch has on him.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> hand moves in a practiced pattern along your shaft, stroking with a detached precision. Despite the skill, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lack of enthusiasm is evident in the subtle looseness of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> grip.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
As you stroke his <<descDick _tmpNPC>> cock, the knowledge that you've brought him to this state stirs something within you - a mix of power, curiosity, and perhaps a hint of desire.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> hand glides along your shaft with an almost robotic consistency, the lack of creativity and interest stifles your pleasure a little.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
Your palm glides smoothly, if a bit mechanically, along his shaft. The man's breath hitches with each stroke, his hips flexing slightly in time with your movements.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> hand glides deftly along your <<descDick $player>> shaft, pumping with a measured cadence. There's a certain elegance to <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> movements, a sense of familiarity born from repetition. Yet, the absence of genuine interest permeates each stroke.
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
As your fingers fly along his throbbing <<sizeDick _tmpNPC>>cm cock, a smile creeps up on your lips. Each stroke is a celebration of his arousal for you, a testament to the raw chemistry between you.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> hands work your aching cock with unbridled fervor, each stroke a masterclass in devotion.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Lost in the rhythm, you savor the musky scent of his desire, the silky texture of his skin under your touch. Your enthusiasm intensifies with every twitch of his hips, urging you onward.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> skilled fingers pump relentlessly, coaxing your pleasure to a fever pitch as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> loses <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>self in the act of bringing you ecstasy.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
Your hands moves with passion and intent, pumping his cock with exhilarating vigor. Every pass sends tingles up your arms, fueling your own pleasure.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pumps your throbbing cock with wild enthusiasm. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> grip is firm yet tender as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> strokes you with single-minded purpose.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Breathless and flushed, you pump your hand along his <<sizeDick _tmpNPC>>cm cock, mesmerized by the silken feel of his skin as he thorbs and pulses with lust for you.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> fervor is intoxicating, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hands dancing along your shaft with a reverence that borders on religious.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
His cries of pleasure are music to your ears, his hips thrust in time with your enthusastic hand on his cock. You're lost in the primal rush of the moment, consumed by the urgent need to bring him to the brink of bliss.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> fervent pumping of your shaft send waves of pleasure coursing through you, pushing you closer to the brink.
<</if>>
<</switch>>
<</switch>>
<<case 'CockRub'>>
<<switch $hjRx>>
<<case "Resist">>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
As you work the tip of his <<descDick _tmpNPC>> cock, you feel a disconnect between your revulsion and the throbbing hardness in your palm - how can he get so much pleasure from something that's causing you so much distress?
<<else>>
Despite <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s evident discomfort, there's an undeniable allure to <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> reluctance. The way <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> recoils slightly after each touch, only to resume the motion is arousing in itself.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
With trembling hands you focus on the tip of his cock, feeling the subtle texture and heat. Your revulsion warms alongside the unexpected thrill, muddling your emotions.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> begrudgingly massages the throbbing tip of your cock. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondref)>> fingers glide across your sensitive skin, the friction sending jolts of pleasure through your core.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
Despite the conflict within, you continue the degrading task, moving your fingers with deliberate focus. Each brush against his sensitive head sends a jolt through you, a bitter reminder of your situation.
<<else>>
Despite the conflict on <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> continue the degrading task, moving <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers with deliberate focus. Each brush against your sensitive head sends a jolt through you, increasing your pleasure.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Your hands tremble as they grasp his rigid shaft, the heat seeping into your palms. You circle the engorged tip, repulsed yet enthralled by the texture, the slight ridges. Each pass stirs a confusing cocktail of dread and something deeper.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s hands tremble as they grasp your rigid shaft. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> circle the engorged tip, repulsed yet enthralled by the texture, the slight ridges.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
You long to flee, yet your fingers remain glued to his flesh, stroking and rubbing. The discord between revulsion and arousal threatens to consume you, leaving you questioning your sanity as you serve submit to his desires.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> grimaces as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> rubs the throbbing tip of your cock, but <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> makes no signs of stopping until you finish.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
Despite your lack of enthusiam, you continue rubbing the tip his <<descDick _tmpNPC>> cock with familiarity. Each circle feels like a concession, acknowledging his dominance even as you cling to remnants of autonomy.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> movements lack enthusiasm - <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> is here present in the act, but <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mind seems elsewhere, letting autopilot give you a lack-luster handjob
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Your fingers glide over the smooth head of his cock, exploring the textures and contours with detached interest. this is just a task, a duty, like any other necessary evil.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> looks bored even as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers graze your crown before settling into a measured rhythm, tracing the outline of your glans. Each rotation is deliberate and effective, but lacking in passion.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
As you continue the rhythmic motions, you focus on the steady pulse beneath your touch and try to tune out what you're actually doing.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> has thousand-yard-stare as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> almost absentmindedly rubs the tip of your <<descDick $player>> cock.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Your fingers dance across the velvety skin of his cock tip, tracing the ridges and curves with clinical detachment. Though not opposed to the act itself, there's no spark of excitement, only a sense of resigned duty.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s gaze seems fixed inward, lost in thought, rather than the intimate act unfolding. The contrast between <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> reserved demeanor and the heat of your desire is palpable.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
Rubbing the sensitive tip, you feel a twinge of jealousy - wishing your own passions were even half as enflamed.
<<else>>
Continuing the measured strokes, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> maintains a reserved focus, seemingly absorbed in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> own contemplations rather than on servicing your baser desires.
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
Your slender fingers wrap around his engorged tip, savoring the hot, hard reality of his desire. A sigh escapes your <<descLips $player>> lips, reveling in the silky texture and potent aroma of his cock.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> slender fingers wrap around your engorged tip, savoring the hot, hard reality of your physical desire. A sigh escapes <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> <<descLips $NPCArray.find(npc => npc.dna == $currDNA)>> lips, reveling in the silky texture and potent aroma of your cock.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
You lose yourself in the simple bliss of pleasuring him. His cock is your domain, your playground, and you move with the confidence of one who's purpose is clear.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> expertly work your sensitive tip, milking every drop of arousal with true vigor and enthusiasm.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
Your strokes quicken, becoming more insistent as you drink in the musky scent and feel the rigid warmth of his arousal against your palm. In this moment, you are fulfilled, dedicated to coaxing forth his pleasure with every eager touch.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> fingers close around my throbbing cockhead, kneading the delicate skin with wanton eagerness. Each stroke sends jolts of electric pleasure coursing through your veins.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Tenderly, you envelop the sensitive crown of his cock, fingers grazing the pulsing vein. A soft hum of pleasure escapes you, savoring the feeling of being the object of his arousal.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> worships the sensitive tip of your cock with single-minded devotion, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> whole focus on making you cum as hard as possible.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
Your movements flow like music, each glide and twist a note of devotion. Lost in the dance of desire, you are a conduit for carnal bliss - your sole focus on the cock before you.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondref)>> fingers grip your cockhead firmly, applying just the right amount of pressure as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> strokes. You can feel <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> excitement in the way <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hand moves, eager and sensual.
<</if>>
<</switch>>
<<case 'FingerFuck'>>
<<switch $hjRx>>
<<case "Resist">>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
Reluctantly, your fingers slide between her thighs, probing the slick folds of her pussy. You curl your fingers slightly even as your stomach churns in resistance - hoping to end this sooner rather than later.
<<else>>
As <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hesitant fingers slip inside, you feel a spark of pleasure in contrast with the same on face.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Hesitantly, your fingers part her soaked lips, sinking into her treacherous warmth. Disgust churns in your gut as you probe deeper, compelled to finish this unwanted act
<<else>>
You watch <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face contort with disgust, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> reluctance palpable as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> continues to finger fuck your aching pussy. The mix of guilt and gratification only intensifies your arousal.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
Her velvety walls grip your reluctant fingers, a mocking sensation of pleasure amidst the turmoil in your mind.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> grimaces, clearly uncomfortable, but your desperate need overrides any qualms. Your hips buck reflexively, driving <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers deeper as you surrender to the illicit bliss
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Forced to comply, your fingers plunge into her, the wet squelch a sickening accompaniment to your distress. Revulsion coils in your stomach as you grind and twist, even as she moans and bucks in passion.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> reluctant fingers delve deeper, hitting a sweet spot that makes you quiver.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
You close your eyes to steel yourself as you pump your finger in and out of her hot wet pussy; trapped in a cycle of obedience and loathing.
<<else>>
Though <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> expression remains conflicted and pained, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers curl upward and hit that sweet spot inside your pussy that makes you moan and arch your back.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
Resigned, you guide your fingers between her thighs, sinking into the welcoming heat. Your pulse quickens, a twinge of guilt mixing with reluctant arousal.
<<else>>
You writhe beneath <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, craving more of the delicious friction as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hesitant fingers plumb your depths. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> reluctance only fuels your desire, a taboo thrill coursing through your veins
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Though you're willing, the act feels dirty, a secret indulgence you'd rather keep hidden. Each thrust is mechanical, lacking passion, yet her moans fuel your own stifled pleasure.
<<else>>
Your hips undulate in rhythm with <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> passionless strokes, guiding <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> towards your maximum pleasure. Despite <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hesitation, your body sings with ecstasy, each reluctant thrust bringing you closer to the edge.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
With a sigh, you dip your fingers into her folds, probing with a half-hearted intensity. Each circling motion elicits a sigh from her, a sound that both excites and shames you.
<<else>>
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
You lose yourself in the rhythmic stroking, letting your mind wander as your body goes on autopilot.
<<else>>
Each tentative stroke ignites a spark, building pressure until you teeter on the brink, desperately hoping $NPCArray.find(npc => npc.dna == $currDNA).firstRef'll give in to the magnetic pull drawing you together.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
Your fingers penetrate her, each deliberate stroke a contradiction of willfulness and reluctance. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> soft whimpers punctuate the silence, stirring an unexpected response within you.
<<else>>
You pant softly, urging <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> on as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers falter inside you. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).sercondRef)>> mixed signals - both reluctance and the unmistakable effect <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> has on you - only heighten the forbidden excitement.
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
You lavish attention on her sensitive folds, relishing the feeling of her slick heat enveloping your fingers. Each sensual stroke sends shivers of delight through you, lost in the sheer pleasure of pleasing your partner.
<<else>>
You gaze up at <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, eyes wide with building pleasure. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> skilled fingers dance across your aching flesh. Each deft stroke ignites sparks of electric pleasure that course through your very being.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Her breathy moans fill the air as you drive her to the brink, your fingers pumping in and out of her with equal passion.
<<else>>
In the midst of the frenzy, you're utterly consumed by the sheer ecstasy, your world narrowing to the sensation of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> touch. Time loses all meaning as you're swept away on a tidal wave of bliss, your body singing in harmony with <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
With abandon, you explore her dripping pussy, fingers gliding effortlessly through the slick channel. Every delicate fold and hidden treasure is mapped, worshipped with devoted attention.
<<else>>
You yield completely to <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> touch, your hips undulating in perfect sync with <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers. Each expert caress sends ripples of pure pleasure through you, building a fever pitch of anticipation.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Her pussy walls flutter wildly around your pumping fingers, letting you know how much she's enjoying your attention.
<<else>>
You tremble with pleasure as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers continue their relentless assault, plunging into your core with bold confidence.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
Lost in the throes of pleasure, you drive your fingers deep, reveling in her increasing urgency. Each thrust stokes the fire within, drawing you both closer to the pinnacle
<<else>>
With each delirious thrust, you inch closer to the precipice, your mind fogged by pleasure as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> encourages you to let go.
<</if>>
<</switch>>
<</switch>>
<<case 'ClitRub'>>
<<switch $hjRx>>
<<case "Resist">>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
Shame and frustration war within you as you struggle with your actions, the feel of her wet hot clit beneath your thumb consumes your whole focus.
<<else>>
You moan softly as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> reluctant fingers brush against your oversensitive clit, the hesitancy evident in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> touch.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Reluctantly, you cup her sex, fingers hovering over the engorged nub that pulses with need. Each touch feels like a betrayal, like a sear on your very soul.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> reluctance only serves to heighten your arousal, a perverse thrill running through you as you subtly guide <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hand to fulfill your darkest desires.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
Biting back a groan, you apply pressure to her throbbing clit, watching as she bucks against your palm. The slick friction ignites a spark of unwanted pleasure within you.
<<else>>
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Each circle of your fingertip rubbing salaciously against her swollen bud sends jolts of shame, and lust, through your reluctant body.
<<else>>
You whimper, aching for more of the elusive pleasure, as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> movements remain hesitant. Yet, even <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> reluctance only stokes the inferno building within you, your body craving satisfaction regardless of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> discomfort.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
Despite your revulsion, your fingers move in tandem with her ragged breathing, applying more urgent stimulation to the aching nub. Shame and arousal collide within you, fueling a heated debate as you struggle to contain your turmoil.
<<else>>
Despite <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> revulsion, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers move in tandem with your ragged breathing, applying more urgent stimulation to the aching nub. Shame and arousal war on <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face, in contrast to the pleasure coursing through you.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
You rub her clit with a detached sense of duty, each circular motion mechanical and uninspired. Your mind drifts to fantasies of escape, anything to break free from this compromising situation.
<<else>>
Methodically, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> traces circles around her clit, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> touch clinical and uninvolved.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Despite the lack of enthusiasm, your fingers continue their assigned task, coaxing soft gasps from her lips. The hum of satisfaction from her body contrasts with the emptiness in yours, leaving you hollow and disenchanted amidst the illicit acts.
<<else>>
Despite the mechanical quality of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> touch, each circular caress sends pleasant tingles through you, your body responding predictably to the stimulation even if <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> expression remains impassive.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
As her breath quickens, you persist, driven by obligation rather than desire. Your fingers press against her clit, coasing her higher.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> fingers pinch and roll your clit with clinical detachment, the inattention feels rough against your hypersensitive skin.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Despite the absence of genuine arousal, you press on, trapped between compliance and contempt. Each soft moan grates, a bitter reminder of the leverage holding you captive in this sordid arrangement.
<<else>>
Moaning, you arch into <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hand, craving more friction as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> drags <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> thumb up and down your engorged nub. Though <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> touch is impersonal, your body sings with pleasure.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
Your hand moves with rote efficiency, milking her clit like a cheap sex toy. She writhes beneath you, desperate for release, while you remain emotionally disconnected
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> hand moves with rote efficiency, milking your clit like a cheap sex toy. You writhe against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> jhand, desperate for release.
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $hjDir === 'Giving'>>
Circling, pinching, and teasing, you revel in her reactions, her sweet moans music to your ears as you coax her closer to the edge of ecstasy, lost in the joy of shared pleasure.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s fingers wrap tightly around your throbbing clit, pressing firm circles that send lightning bolts of pleasure radiating through your core.
<</if>>
<<case 2>>
<<if $hjDir === 'Giving'>>
Your fingers dance over her sensitive nub, coaxing out her pleasure with unrestrained glee. Every twitch and moan is pure delight, lost in the sensual rush of bringing another to the brink of bliss.
<<else>>
Slick fingers glide effortlessly along your throbbing nub, picking up speed as you tremble on the cusp of climax.
<</if>>
<<case 3>>
<<if $hjDir === 'Giving'>>
Delving in with fingers that ache to please, you stroke and tease, guided by the symphony of her escalating pleasure. Her sweet sounds of bliss are your drug, fueling your relentless pursuit of making her come undone in your hands.
<<else>>
Firm pressure on your swollen clit sets off a chain reaction of pleasure, your hips instinctively rolling into the skilled touch as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> watches in rapt attention.
<</if>>
<<case 4>>
<<if $hjDir === 'Giving'>>
Your gaze locks onto her heaving breasts as your fingers work her clit with fervor, drinking in the sight of her pleasure unfolding.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> wet fingers dance and swirl, applying precise strokes that push you towards a shattering climax.
<</if>>
<<case 5>>
<<if $hjDir === 'Giving'>>
With each circling rub, her walls clench tighter, a delicious signal of impending release. You increase the tempo, driven by the primal need to witness her surrender to climax.
<<else>>
Your clit throbs hungrily as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers grasp it, coaxing forth liquid heat. Circular motions ripple through you, intensifying the sensations.
<</if>>
<</switch>>
<</switch>>
<</switch>>
<</switch>>
<</widget>>
<<widget "calcHJRx">>
<<if _args[0] === 'Giving'>>
/* calc skill */
<<if $player.sexStats.bj_give >= 35>>
/*Advanced*/
<<set $hjSkill = 3>>
<<elseif $player.sexStats.bj_give >= 15>>
/*Moderate*/
<<set $hjSkill = 2>>
<<else>>
/*Beginner*/
<<set $hjSkill = 1>>
<</if>>
/* calc enthusiasm */
<<if ($player.prefs.gender === 'Female' and $receivingGender === 'M') or ($player.prefs.gender === 'Male' and $receivingGender === 'Female')>>
/*not very enthusiastic */
<<if $player.slutLevel < 3>>
<<set $hjRx = 'Resist'>>
<<else>>
<<set $hjRx = 'Willing'>>
<</if>>
<<else>>
<<if $player.slutLevel < 3>>
<<set $hjRx = 'Willing'>>
<<else>>
<<set $hjRx = 'Happy'>>
<</if>>
<</if>>
<<else>>
<<if ($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender === 'Female' and $receivingGender === 'M') or ($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender === 'Male' and $receivingGender === 'Female')>>
/*not very enthusiastic */
<<set $hjRx = 'Resist'>>
<<else>>
<<set $hjRx = 'Happy'>>
<</if>>
<</if>>
<</widget>><<if !$sexSceneInProg>>
<<set $player.sexStats.lastSexDate = clone($currJulianDate)>>
<<set $sexPosition = 'Intro'>>
<<if $player.body.womb>>
<<run delete $player.body.womb.sanitation>>
<</if>>
<<set $npcCum = 0>>
<<set $sexType = $player.body.gender[0] + $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<<if $sexType === 'FM'>><<set $sexType = 'MF'>><</if>>
<<set $arousalFactor = 1>>
/* default values, just a starting place */
<<if $player.body.gender === 'Female'>>
<<set $sexDir = 'Getting'>>
<<else>>
<<set $sexDir = 'Giving'>>
<</if>>
<<calcLead>>
<<if $isSub and !(['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender)) and $player.slutLevel < 3>>
<<set $blockPlayerChoice = true>>
<</if>>
<<if $isSub or (!$isDom and ['MF','TF'].includes($sexType))>>
<<set $sexPos = 'OnBot'>>
<<else>>
<<set $sexPos = 'OnTop'>>
<</if>>
<<if $sexType === 'MF' or $sexType === 'MM' or $sexType === 'TM'>>
<<if $isSub or (!($isSub === 0) and $sexPos === 'OnBot')>>
<<set $sexDir === 'Getting'>>
<</if>>
<<elseif $sexType === 'TF'>>
<<if $isSub or (!($isSub === 0) and $sexPos === 'OnBot')>>
<<set $sexDir === 'Getting'>>
<</if>>
<</if>>
<<if $sexDir === 'Getting' and $sexPosition === 'Missionary'>>
<<set $sexPos === 'OnBot'>>
<<elseif $sexDir === 'Giving' and $sexPosition === 'Missionary'>>
<<set $sexPos === 'OnTop'>>
<</if>>
<<if $player.body.gender === 'Female' and $isStrapped and $sexPos === 'OnTop'>>
<<set $sexDir = 'Giving'>>
<</if>>
<<if ($player.body.gender === 'Male' and $sexDir === 'Getting') or ($NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male' and $sexDir === 'Giving')>>
<<set $analOnly = true>>
<<set $vagOnly = false>>
<</if>>
<<if $analOnly>>
<<set $isCoitus = false>>
<<set $isAnal = true>>
<<elseif $vagOnly or $sexType === 'MF'>>
<<set $isCoitus = true>>
<<set $isAnal = false>>
<</if>>
/* relic updates chances of anal sex */
<<if $sexDir === 'Getting' and $player.outfit.relic === 1 and random(0,100) < 25 and $NPCArray.find(npc => npc.dna == $currDNA).personality > 1>>
<<set $isCoitus = false>>
<<set $isAnal = true>>
<</if>>
<<if !$isAnal>>
<<set $isCoitus = true>>
<<set $isAnal = false>>
<</if>>
/* calc loss of virginity */
<<if $player.body.gender === 'Female'>>
<<set $sexDir = 'Getting'>>
<<if ($sexType === 'MF' and $isCoitus and $player.virgin) or ($sexType === 'FF')>>
<<set $player.virgin = false>>
<</if>>
<<else>>
<<if $player.virgin>>
<<set $player.virgin = false>>
<</if>>
<</if>>
<<goto "IntroScene">>
<<else>>
<<goto "IntercourseScene">>
<</if>><div class='sexScene'>
<<if $skipOpening>>
<<if $noCondom or $sexType === 'FF' or $player.drunk > 50>>
/* right to it, then */
<<goto "startIntercourse">>
<<else>>
<<goto "CondomCheck">>
<</if>>
<</if>>
<<timed 0s>>
<<if !$player.isNude>>
<<set _tmpVid = 'Media/Wardrobe/Undress/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpVid += 'F/'>>
<<switch random(1,3)>>
<<case 1>>
<<if $player.outfit.bra === 0>><<goto "IntroScene">><</if>>
<<set _tmpVid += 'Bra/' + random(1,2) + '.mp4'>>
<<case 2>>
<<if $player.outfit.panties === 0>><<goto "IntroScene">><</if>>
<<set _tmpVid += 'Panties/' + random(1,3) + '.mp4'>>
<<default>>
<<if random(0,1) === 1>>
<<set _tmpVid += 'Top/' + random(1,4) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Bottoms/' + random(1,3) + '.mp4'>>
<</if>>
<</switch>>
<<else>>
<<set _tmpVid += 'M/'>>
<<switch random(1,2)>>
<<case 1>>
<<if random(0,1) === 1>>
<<set _tmpVid += 'Top/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Bottoms/' + random(1,1) + '.mp4'>>
<</if>>
<<case 2>>
<<set _tmpVid += 'Panties/' + random(1,1) + '.mp4'>>
<</switch>>
<</if>>
<<stripPlayer>>
<video @src="_tmpVid" height="60rem" autoplay loop></video>
<br>
You<<if $NPCArray.find(npc => npc.dna == $currDNA).isNude !== 1>> each <<else>> <</if>> quickly strip out of your clothes and toss them into a pile off to the side.
<<else>>
<<if $noCondom or $sexType === 'FF' >>
/* right to it, then */
<<goto "startIntercourse">>
<<else>>
<<goto "CondomCheck">>
<</if>>
<</if>>
<</timed>>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<if !$NPCArray.find(npc => npc.dna == $currDNA).knowsPlayerGender and $player.body.gender == "Trans">>
<<goto "SexySurprise">>
<<else>>
<<if $noCondom or $sexType === 'FF' >>
/* right to it, then */
<<goto "startIntercourse">>
<<else>>
<<goto "CondomCheck">>
<</if>>
<</if>>
<</button>>
</div>
</div><center>
<img src='Media/Misc/condom.webp' heigh="600rem">
<br><br>
/*Give NPC chance to request one first */
<<if $sexDir === 'Giving'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).personality > 1 and random($NPCArray.find(npc => npc.dna == $currDNA).personality,3) >= 3>>
<<set _condomOffered = true>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> puts <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hand on your chest and offers you a condom.
<br><br>
<<if !$player.traits.includes(4)>>
Not wanting to waste anytime you quickly slip it on.
<<else>>
You try to beg out of it, you hate using those things -- but it doesn't look like you'll be getting laid without it.
<</if>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender !== 'Female' and (($NPCArray.find(npc => npc.dna == $currDNA).personality < 3 and random($NPCArray.find(npc => npc.dna == $currDNA).personality,3) >= 3) and $player.drunk < 50)>>
<<set _condomOffered = true>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> holds up a condom and says "Just let me slip this on."
<br><br>
<</if>>
/* relic impact to NPC not wearing condum */
<<if _condomOffered and $player.outfit.relic === 1 and random(0,100) > 50>>
<<set _condomOffered = false>>
<</if>>
<</if>>
<<if !_condomOffered>>
/* player chance to request condom */
<<if $sexDir === 'Giving'>>
<<if $player.inventory.checkInv('Condoms') > 0 and $player.drunk < 60>>
<<set _condomRequested = true>>
You hold up a hand to pause the fun for a moment while you fish out a condom.
<<else>>
<<set _tmpStop = true>>
<div class="badText">You should probably wear wear a condom - but you don't have any with you</div>
<</if>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male' and $player.drunk < 70>>
<<set _condomRequested = true>>
<<if $player.inventory.checkInv('Condoms') > 0>>
You put your hand on <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s chest and ask if he has any protection.
<<else>>
You put your hand on <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s chest and hold a condom out for him to put on.
<</if>>
/* relic impact to NPC not wearing condum */
<<if _condomRequested and $player.outfit.relic === 1 and random(0,100) > 25>>
<<set _condomRequested = false>>
<</if>>
<</if>>
<</if>>
</center>
<hr>
<<if _condomOffered or _tmpStop>>
<div id="actionsContainer">
<div class="buttonContainer">
<<if random(0,$player.dom) >= $NPCArray.find(npc => npc.dna == $currDNA).dom or !_condomOffered>>
<<if !$player.traits.includes(4)>>
<<button "Agree">>
<<set $protectionUsed = true>>
<<goto "startIntercourse">>
<</button>>
<</if>>
<<button "Decline">>
<<goto "startIntercourse">>
<</button>>
<<else>>
<<button "Continue">>
<<goto "startIntercourse">>
<</button>>
<</if>>
</div>
</div>
<<elseif _condomRequested>>
<br><br>
NPC can refuse - do you proceed anyway? (for now auto-use)
<<button "Continue">>
<<set $protectionUsed = true>>
<<goto "startIntercourse">>
<</button>>
<<else>>
<<set $protectionUsed = false>>
<<goto "startIntercourse">>
<</if>>/*about to have sex
check for anal plugs
offer strap on
if dom let player pick starting sex position
otherwise NPC picks
*/
<<set _tmpImg = 'Media/Sex/IntroPosition/'>>
<<if $sexType === 'FF' or $sexType === 'TT'>>
<<set _tmpImg += 'FF/'>>
<<elseif $sexType === 'MM'>>
<<set _tmpImg += 'MM/'>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<if $player.dom > $NPCArray.find(npc => npc.dna == $currDNA).dom>>
<<set $sexPos = 'OnBot'>>
<<set _tmpPOS = 'FemOnBot'>>
<<else>>
<<set $sexPos = 'OnTop'>>
<<set _tmpPOS = 'FemOnTop'>>
<</if>>
<<else>>
<<if $player.dom > $NPCArray.find(npc => npc.dna == $currDNA).dom>>
<<set $sexPos = 'OnBot'>>
<<set _tmpPOS = 'FemOnTop'>>
<<else>>
<<set $sexPos = 'OnTop'>>
<<set _tmpPOS = 'FemOnBot'>>
<</if>>
<</if>>
<</if>>
<<if $sexType === 'MF' or $sexType === 'TM'>>
<<set _tmpImg += _tmpPOS + '/'>>
<</if>>
<<if $sexType === 'FF' or $sexType === 'TT'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<elseif $sexType === 'MM'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<<else>>
<<if _tmpPOS === 'FemOnTop'>>
<<set _tmpImg += random(1,12) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,6) + '.webp'>>
<</if>>
<</if>>
<<set $lastPOSSwitch = $gameDate.getTime() + 3*60*1000>>
<<set $sexSceneInProg = true>>
<center>
<img @src='_tmpImg' height="600rem">
<br><br>
<<if $isSub>>
<<set _forcePick = true>>
<<if $sexType === 'FF'>>
<<set $sexPositionArray = ['Scissor','Trib']>>
<<else>>
<<set $sexPositionArray = ['Missionary','Doggy Style','Cowgirl']>>
<</if>>
<<set $sexPosition = $sexPositionArray[random(0,$sexPositionArray.length -1)]>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> grabs you forcefully and pushes you down beneath <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>self. You can feel <<if $NPCArray.find(npc => npc.dna == $currDNA).body.cock > 0>> his cock press down against<<else>> the warmth of her pussy radiating against<</if>> you as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> moves you into position.
<<else>>
You pull <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> against your body as your lips and hands explore each other.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if _forcePick>>
<div class="buttonContainer">
<<button "Continue" "IntercourseScene">>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<if $sexType === 'FF'>>
<<button "Scissor" "IntercourseScene">>
<<set $sexPosition = 'Scissor'>>
<</button>>
<<button "Missionary" "IntercourseScene">>
<<set $sexPosition = 'Trib'>>
<</button>>
<<button "69" "IntercourseScene">>
<<set $sexPosition = '69'>>
<</button>>
<<else>>
<<button "Missionary" "IntercourseScene">>
<<set $sexPosition = 'Missionary'>>
<<if $sexDir == 'Getting'>>
<<set $sexPos = 'OnBot'>>
<</if>>
<</button>>
<<button "Doggy Style" "IntercourseScene">>
<<set $sexPosition = 'Doggy Style'>>
<<if $sexDir == 'Getting'>>
<<set $sexPos = 'OnBot'>>
<</if>>
<</button>>
<<button "Cowgirl" "IntercourseScene">>
<<set $sexPosition = 'Cowgirl'>>
<<if $sexDir == 'Getting'>>
<<set $sexPos = 'OnTop'>>
<</if>>
<</button>>
<</if>>
</div>
<</if>>
</div><<NPCSexInitiave>>
<div class='sexScene'>
<<getSexClips>>
<br><br>
<<calcOrgBar $player.dna>>
<<calcOrgBar $currDNA>>
<br>
<div id="cumNotice">
<<if $holeSwitch>>
<<unset $holeSwitch>>
<<if $isAnal>>
<div class="badText">Your eyes widen as you feel <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s cock rubbing against your asshole - but before you can react he pushes his way inside.</div>
<<else>>
<div class="badText"><<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> slips his cock back into your pussy.</div>
<</if>>
<</if>>
<<getSexText>>
</div>
</div>
<hr>
<div id="actionsContainer">
<<getSexActions>>
</div>
<<calcOrgasm $currDNA>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).orgasm !== 100>>
<<calcOrgasm $player.dna>>
<</if>>
<<timed 0s>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).justCame>>
<<set $cumDir = $sexDir>>
<<set $cumAct = 'Intercourse'>>
<<set $cumDNA = $currDNA>>
<<getCumActions>>
<<elseif $player.justCame>>
<<set $cumDir = $sexDir>>
<<set $cumAct = 'Intercourse'>>
<<set $cumDNA = $player.dna>>
<<getCumActions>>
<</if>>
<</timed>><<widget "getSexText">>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == $currDNA)>>
<<switch $sexPosition>>
<<case "Missionary" "Doggy Style" 'Cowgirl'>>
<<switch $sexAct>>
<<case 'Dirty Talk'>>
<<switch random(1,5)>>
<<case 1>>
<<if $sexDir === 'Getting'>>
Embracing your carnal nature, you let loose a litany of filthy encouragement, egging him on to take you harder, deeper, without restraint. Your nails rake down his back as he complies, ramming into you with reckless abandon.
<<else>>
As you rail into _tmpNPC.thirdRef, you curse vile epithets, calling _tmpNPC.thirdRef every degrading name imaginable.
<</if>>
<<case 2>>
<<if $sexDir === 'Getting'>>
You lie beneath him, thighs spread wide open in wanton invitation. His rigid cock pistons in and out of your soaked slit as you whisper nasty things into his ear about what you want him to do to you.
<<else>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
<<print capitalizeFirstLetter(_tmpNPC.secondRef)>> _tmpTxt clenches around your driving cock, soaking your fist with _tmpNPC.secondRef juices as you continue to degrade _tmpNPC.thirdRef verbally. The crude invective pours from your lips like a filthy sermon, punctuated by the lewd slaps of skin on skin.
<</if>>
<<case 3>>
<<if $sexDir === 'Getting'>>
He ruts into you like a beast, the thick slab of his cock battering your sopping cunt relentlessly. You meet each brutal thrust with a wanton moan, begging for it with filthy curses.
<<else>>
Foul insults spill from your mouth with each violent thrust, fueling your lust. <<print capitalizeFirstLetter(_tmpNPC.secondRef)>> moans of pain and pleasure only egg you on, making you drive deeper, harder, until she's nothing but a wrecked, satisfied mess, forever marked by your brutal claiming.
<</if>>
<<case 4>>
<<if $sexDir === 'Getting'>>
You arch your back, presenting your dripping cunt to him as he ravages you. His <<descDick _tmpNPC>> cock splits your sopping folds, the sound of sloppy wet meaty smacks filling the air. Your dirty words of encouragement spur him on, urging him to fuck you senseless.
<<else>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
Slamming into her, you sneer, calling _tmpNPC.secondRef vile names. Each word drips with contempt as your <<sizeDick $player>>cm splits _tmpNPC.secondRef _tmpTxt.
<</if>>
<<case 5>>
<<if $sexDir === 'Getting'>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
You curse at him, telling to fuck you until you feel it and he responds with brutish efficiency, jackhammering into your spasming _tmpTxt with animalistic ferocity.
<<else>>
You snarl and increasing your tempo. <<print capitalizeFirstLetter(_tmpNPC.secondRef)>> muffled screams the only counterpoint to your bestial foul lanuage as you demean and degrad her.
<</if>>
<</switch>>
<<case 'Speed Up'>>
<<switch random(1,5)>>
<<case 1>>
<<if $sexDir === 'Getting'>>
<<if $sexPosition === 'Doggy Style' and $player.body.tits > 2>>
His cock drives deep, your hips bucking back to meet him. Your dangling tits bounce and sway in a lewd dance, the room filled with the sounds of sweaty skin and wanton moans
<<else>>
As he picks up speed. the slick flesh slapping loudly against yours. Each furious thrust sends waves of intense pleasure crashing through your core, making your inner walls clench and quake.
<</if>>
<<else>>
Your muscles strain with effort as you drive into her, each powerful thrust a blur of motion. Beads of sweat trickle down your forehead, eyes narrowed in concentration.
<</if>>
<<case 2>>
<<if $sexDir === 'Getting'>>
<<if $sexPosition === 'Doggy Style' and $player.body.tits > 2>>
Arching your back, you push your abundant breasts toward the bed, the undersides sliding along the sheets. Each forceful thrust sends them swinging in opposite directions, nipples grazing the fabric.
<<else>>
The relentless pounding pushes you closer to the brink. The rapid tempo builds towards a scorching crescendo that promises to consume you whole.
<</if>>
<<else>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
You increase your pace, relentlessly pounding into _tmpNPC.secondRef quivering _tmpTxt as _tmpNPC.firstRef clings desperately to you.
<</if>>
<<case 3>>
<<if $sexDir === 'Getting'>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
<<if $sexPosition === 'Doggy Style' and $player.body.tits > 2>>
You brace yourself on the bed as he pumps his <<descDick _tmpNPC>> cock into your dripping hot _tmpTxt, your <<descTits $player>> tits jiggle and shake with each impact.
<<else>>
His pace becomes frantic, each savage thrust hammering into your willing cunt. The room fills with the lewd smack of flesh on flesh as he ravages you with increasing urgency.
<</if>>
<<else>>
Your pace accelerates to a frenetic tempo, cock slamming into _tmpNPC.secondRef with unrelenting force. The rhythmic slap of flesh echoes through the room, a primal soundtrack to your exertions as you work to bring _tmpNPC.secondRef to the peak of ecstasy.
<</if>>
<<case 4>>
<<if $sexDir === 'Getting'>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
<<if $sexPosition === 'Doggy Style' and $player.body.tits > 2>>
He pistons in and out of your aching hungry _tmpTxt, the slap of flesh on flesh growing louder. Your <<sizeTits $player>> breasts jiggle beneath you, rock hadr nipples scraping against the ground.
<<else>>
Faster, harder, deeper - his frenzied assault on your _tmpTxt is relentless. Each pounding thrust shakes your very core, your juices flying as he ravishes you with wild abandon.
<</if>>
<<else>>
Panting heavily, you redouble your efforts, hips hammering against hers in a brutal cadence. Veins bulge in your neck as you pour every ounce of strength into claiming her.
<</if>>
<<case 5>>
<<if $sexDir === 'Getting'>>
The rapid pace has you teetering on the edge, every fiber of your being coiled for the impending explosion. Your walls clench and ripple around his plunging cock, aching for release as the torrent of pleasure mounts, threatening to sweep you away in its fiery undertow.
<<else>>
Muscles taut, you grapple with her, hips thrashing in a savage dance as you plunder _tmpNPC.secondRef depths. The sounds of flesh meeting flesh fill the air, a guttural symphony of your rutting.
<</if>>
<</switch>>
<<case "Rub Tits">>
<<switch random(1,5)>>
<<case 1>>
<<if $sexDir === 'Getting'>>
As he pounds into you, your fingers work magic on your sensitive nipples, rolling and pinching them to heightened peaks of pleasure. The dual stimulation has your body singing, arousal surging with each expert thrust.
<<else>>
You cup your <<descTits $player>> breasts, thumbs brushing over sensitive nipples as you pound your <<sizeDick $player>> into her, sweat trickling down your torso and dripping off your hard nipples.
<</if>>
<<case 2>>
<<if $sexDir === 'Getting'>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
Your hands knead and caress your <<descTits $player>> <<sizeTits $player>> breasts as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pumps his <<sizeDick _tmpNPC>>cm cock in-and-out of your _tmpTxt.
<<else>>
The wet glide of _tmpNPC.secondRef _tmpTxt envelops your rigid cock, each thrust sending jolts of pleasure through you. The rhythmic slap of flesh fills the room as your hands massage and cup your <<descTits $player>> tits.
<</if>>
<<case 3>>
<<if $sexDir === 'Getting'>>
His cock plows your dripping snatch with merciless abandon as your fingers roughly palm your tits, tweaking and squeezing those fat nipples until they're stiff and aching.
<<else>>
Her velvety walls hug your shaft, drawing you in with each powerful thrust. Sweat beads on your <<descTits $player>> <<sizeTits $player>> tits as you squeeze and rub them, lost in the sensations coursing through your body.
<</if>>
<<case 4>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
<<if $sexDir === 'Getting'>>
Your juices gush around his pistoning meat as he hammers your _tmpTxt and your hands squeeze and massage your <<descTits $player>> breasts.
<<else>>
<<print capitalizeFirstLetter(_tmpNPC.secondRef)>> tight _tmpTxt grips your throbbing cock, matching the sensations of your hands on your soft <<descTits $player>> breasts.
<</if>>
<<case 5>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
<<if $sexDir === 'Getting'>>
Wet, obscene sounds of fucking fill the air as you writhe beneath him, lost to the overwhelming sensation of his cock in your _tmpTxt and your hands on your tits.
<<else>>
Your hands roam over your <<descTits $player>> tits, fingers pinching and pulling at the tender buds. The sensual friction sends shivers through your torso even as you ceasesly pound into _tmpNPC.secondRef willing _tmpTxt.
<</if>>
<</switch>>
<<case "Rub Clit">>
<<switch random(1,5)>>
<<case 1>>
<<if $sexDir === 'Getting'>>
His thick cock plunges into you, stretching your inner walls with each forceful thrust. As your fingers circle your aching clit, sparks of pleasure radiate through your core, amplifying the intense sensations.
<<else>>
<</if>>
<<case 2>>
<<if $sexDir === 'Getting'>>
His heavy balls smack against <<if $sexPosition === 'Missiionary'>>your ass<<else>>your thighs<</if>>, the lewd noises of flesh meeting flesh filling the room. Your fingers dances desperately over your clit, pushing you toward your building climax.
<<else>>
<</if>>
<<case 3>>
<<if $sexDir === 'Getting'>>
His engorged member pistons in and out, stimulating every sensitive nerve ending within your stretched canal. Each deep penetration ignites a fierce yearning for release, your clitoris a red hot ember under your rubbing fingers.
<<else>>
<</if>>
<<case 4>>
<<if $sexDir === 'Getting'>>
Your fingers dance across the swollen bud, coaxing waves of pleasure that crash through you with each pass. The dual stimulation pushes you perilously close to the edge, your body trembling on the precipice of a mind-shattering orgasm.
<<else>>
<</if>>
<<case 5>>
<<if $sexDir === 'Getting'>>
Moaning wantonly, you finger yourself faster, chasing the peak. His heavy sack slaps your ass, marking you as his plaything. The intensity coils tighter, ready to snap - and you pray he doesn't pull out until you've shattered in his grasp.
<<else>>
<</if>>
<</switch>>
<<default>>
<<switch random(1,5)>>
<<case 1>>
<<if $sexDir === 'Getting'>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
As he drives into you, the head of his cock hits deep, stretching your _tmpTxt walls in delicious ways. His girth fills you completely, the shape of him pushing you open.
<<else>>
<<print capitalizeFirstLetter(_tmpNPC.secondRef)>> snug warmth envelops your throbbing cock, velvet softness gripping you tightly. You set a punishing pace, hips snapping forward to bury yourself balls-deep with each brutal thrust.
<</if>>
<<case 2>>
<<if $sexDir === 'Getting'>>
<<if $sexPosition === 'Missionary'>>
With your legs locked behind his back, you're utterly vulnerable, held captive by the force of his thrusts. Every plunge sends shockwaves through your clit, building heat in your core as he claims you thoroughly, owning your body with each relentless stroke.
<<else>>
Your eyes roll back in your head as your body thrumbs with pleasure from every cell, with a white-hot center of bliss where his cock spreads you open.
<</if>>
<<else>>
Moans and gasps punctuate the air as _tmpNPC.firstRef clings to you, _tmpNPC.secondRef body quivering in blissful submission. The scent of _tmpNPC.secondRef arousal fills your nostrils, spurring you on, your own release coiling tight as you drive _tmpNPC.thirdRef harder toward the edge of orgasm.
<</if>>
<<case 3>>
<<if $sexDir === 'Getting'>>
<<if $isCoitus>>
<<set _tmpTxt = 'dripping folds'>>
<<else>>
<<set _tmpTxt = 'hungry asshole'>>
<</if>>
<<if $sexPosition === 'Missionary'>>
Wrapping your legs tighter, you anchor yourself to him, feeling his hard muscles flex with every powerful drive. Your slick channel clenches greedily around his invading thickness, desperate to trap him inside your hungry pussy.
<<else>>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == $currDNA)>>
He spears you with his <<descDick _tmpNPC>> <<sizeDick _tmpNPC>>cm cock, spreading your _tmpTxt apart as he slides into you.
<</if>>
<<else>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
<<print capitalizeFirstLetter(_tmpNPC.secondRef)>> wet heat engulfs you, drawing you in with each powerful pump of your hips. You can feel _tmpNPC.secondRef _tmpTxt fluttering around your cock, begging for release as you pound _tmpNPC.secondRef relentlessly.
<</if>>
<<case 4>>
<<if $sexDir === 'Getting'>>
The slick slide of his cock as he withdraws leaves you empty, craving fulfillment. Then he's back inside, the blunt head probing your entrance before sinking home in one fluid motion.
<<else>>
<<print capitalizeFirstLetter(_tmpNPC.secondRef)>> warmth wraps around you like a vice, urging you on as you chase your own impending climax, _tmpNPC.secondRef moans of ecstasy music to your ears.
<</if>>
<<case 5>>
<<if $sexDir === 'Getting'>>
You surrender control, letting yourself open up completely to his rock hard cock. His rhythm grows urgent, driving you toward the precipice of ecstasy with each deep, pounding thrust.
<<else>>
Your cock pistons in and out of _tmpNPC.thirdRef, each stroke sending jolts of pleasure through _tmpNPC.secondRef trembling body. <<print capitalizeFirstLetter(_tmpNPC.firstRef)>> meets your ferocity with equal passion, hips bucking to greet your thrusts.
<</if>>
<</switch>>
<</switch>>
<<case "Trib" "Scissor">>
<<switch $sexAct>>
<<case 'Dirty Talk'>>
<<switch random(1,5)>>
<<case 1>>
Whispers of filthy encouragement mingle with the wet sounds of your entwined cunts. "Fuck yeah, just like that," _tmpNPC.firstRef groans, hips rocking frantically as you both seek that elusive spark.
<<case 2>>
Your cunts mash together in a frenzy, the slick sounds of flesh meeting flesh punctuated by lewd grunts. Profane slurs spill from your lips, promises of carnal delights to come
<<case 3>>
Thighs clench, squeezing the other woman's hips as you ride the wave of lust, coaxing _tmpNPC.secondRef onward with dirty talk about what you'll do with _tmpNPC.secondRef when she's too weak to resist
<<case 4>>
Flesh parts and reclaims with each frantic scissor, the damp slap of contact filling the air. Lewd encouragement spills from your mouth, a litany of filthy praise for the tight, wet heat surrounding your aching clit.
<<case 5>>
Panting and writhing, you lose yourself in the sensation, not even paying attention to the slurs and degrading comments you hurl at $NPCArray.find(npc => npc.dna == $currDNA).firstName.
<</switch>>
<<case 'Speed Up'>>
<<switch random(1,5)>>
<<case 1>>
Friction mounts as you pick up the pace, your bodies colliding with urgent need. Wet sounds fill the air as you scissor feverishly, driven by a singular hunger for completion.
<<case 2>>
Clit grinding against clit, you both hurtle toward release, the relentless friction sparking electric tingles throughout. Breath ragged, muscles taut, you prepare to crash over the precipice together, united in ecstatic surrender.
<<case 3>>
Your hips hammer together in a furious rhythm, grinding cunts slick with need. Urgency propels you, each frantic collision bringing you closer to the brink.
<<case 4>>
Breathless moans fill the air as you race toward climax, sweat-slicked bodies moving as one. Frantic and lost in desire, you surrender to the consuming need, hurtling toward a shattering finish.
<<case 5>>
Driven by desperation, you grind against each other harder, faster, each thrust of your hips bringing you closer to the promised land. Muscles strain, heart races, as you careen toward a mutual explosion, the universe narrowing to the electric contact of your joined sex.
<</switch>>
<<case "Rub Tits">>
<<switch random(1,5)>>
<<case 1>>
<<case 2>>
<<case 3>>
<<case 4>>
<<case 5>>
<</switch>>
<<default>>
<<switch random(1,5)>>
<<case 1>>
You gasp as _tmpNPC.secondRef slick heat envelops your aching clit, _tmpNPC.secondRef pelvis pressing firmly against yours. The friction is exquisite, your swollen nub rubbing against _tmpNPC.secondRef engorged bud in a delicious spiral.
<<case 2>>
<<print capitalizeFirstLetter(_tmpNPC.secondRef)>> thighs squeeze your hips, grinding you together in a sinful fusion of flesh. Panting heavily, you both rock your hips, the intimate pressure building rapidly. Your world narrows to the pulse-pounding thrum of pleasure between your entwined sex, the impending climax threatening to consume you whole.
<<case 3>>
<<print capitalizeFirstLetter(_tmpNPC.secondRef)>> drenched cunt massages your clit, the velvet softness contrasting with the sharp ache of need. You both tremble, caught in the feedback loop of shared pleasure
<<case 4>>
Moaning softly, you meet _tmpNPC.secondRef grind, your own movements synchronized. The slick sounds of your bodies joining fill the air as you chase your peaks together, the coil of tension in your core winding ever tighter.
<<case 5>>
Entwined, your slick pussies meld into one as you begin to move in tandem. <<print capitalizeFirstLetter(_tmpNPC.secondRef)>> velvety walls massage your pulsating clit, sending sparks of pleasure through your nerves.
<</switch>>
<</switch>>
<<case '69'>>
<</switch>>
<</widget>>
<<widget "getSexActions">>
<<switch $sexPosition>>
<<case '69'>>
<<keepGoingAct>>
<<speedActs>>
<<otherActs>>
<<default>>
<<keepGoingAct>>
<<speedActs>>
<<selfPlayActs>>
<<dirtyTalkActs>>
<<otherActs>>
<</switch>>
<</widget>>
<<widget "keepGoingAct">>
<div class="buttonContainer">
<<button "Keep going" "IntercourseScene">>
<<unset $sexAct>>
<<calcArousal "intercourse" $arousalFactor 3>>
<</button>>
</div>
<</widget>>
<<widget "speedActs">>
<div class="buttonContainer">
<<button "Speed up" "IntercourseScene">>
<<set $sexAct = 'Speed Up'>>
<<set $arousalFactor += 1>>
<<calcArousal "intercourse" $arousalFactor 3>>
<</button>>
<<button "Slow down" "IntercourseScene">>
<<set $sexAct = 'Slow Down'>>
<<set $arousalFactor -= 1>>
<<calcArousal "intercourse" $arousalFactor 3>>
<</button>>
</div>
<</widget>>
<<widget "selfPlayActs">>
<div class="buttonContainer">
<<if $player.body.tits > 0 and ($player.mentalFem > 40 or $player.slutLevel > 2)>>
<<button "Play with your tits" "IntercourseScene">>
<<set $sexAct = 'Rub Tits'>>
<<calcArousal 'tits' 1 2>>
<<calcArousal 'intercourse' $arousalFactor 2>>
<</button>>
<</if>>
<<if $player.body.gender === 'Female' and $sexType !== 'FF' and ($player.mentalFem > 49 or $player.slutLevel > 2)>>
<<button "Rub your clit" "IntercourseScene">>
<<set $sexAct = 'Rub Clit'>>
<<calcArousal 'mast' 1 2>>
<<calcArousal 'intercourse' $arousalFactor 2>>
<</button>>
<</if>>
</div>
<</widget>>
<<widget "dirtyTalkActs">>
<<if $player.slutLevel >=2>>
<div class="buttonContainer">
<<if $player.sub > 45 or $player.slutLevel > 2>>
<<button "Talk dirty to <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>" "IntercourseScene">>
<<set $sexAct = 'Dirty Talk'>>
<<calcArousal 'intercourse' $arousalFactor 2>>
<<calcArousal 'dirtyTalk' $arousalFactor 2>>
<</button>>
<</if>>
/*
<<if $player.dom > 45 or $player.slutLevel > 2>>
<<button "Tell <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> to talk dirty to you" "IntercourseScene">>
<<set $sexAct = 'Dirty Talk'>>
<<calcArousal 'intercourse' $arousalFactor 2>>
<<calcArousal 'dirtyTalk' $arousalFactor 2>>
<</button>>
<</if>>
*/
</div>
<</if>>
<</widget>>
<<widget "getPositionOptions">>
<div class="buttonContainer">
<<if $sexType === 'FF'>>
<<if $sexPosition != 'Scissor'>>
<<button "Scissor" "IntercourseScene">>
<<addSecs 15>>
<<set $sexPosition = 'Scissor'>>
<</button>>
<</if>>
<<if $sexPosition != 'Trib'>>
<<button "Missionary" "IntercourseScene">>
<<addSecs 15>>
<<set $sexPosition = 'Trib'>>
<</button>>
<</if>>
<<if $sexPosition != '69'>>
<<button "69" "IntercourseScene">>
<<addSecs 15>>
<<set $sexPosition = '69'>>
<</button>>
<</if>>
<<else>>
<<if $sexPosition != 'Missionary'>>
<<button "Missionary" "IntercourseScene">>
<<addSecs 15>>
<<set $sexPosition = 'Missionary'>>
<<checkPosition $sexDir>>
<<calcArousal "intercourse" $arousalFactor 3>>
<</button>>
<</if>>
<<if $sexPosition != 'Doggy Style'>>
<<button "Doggy Style" "IntercourseScene">>
<<addSecs 15>>
<<set $sexPosition = 'Doggy Style'>>
<<checkPosition $sexDir>>
<<calcArousal "intercourse" $arousalFactor 3>>
<</button>>
<</if>>
<<if $sexPosition != 'Cowgirl'>>
<<button "Cowgirl" "IntercourseScene">>
<<addSecs 15>>
<<set $sexPosition = 'Cowgirl'>>
<<checkPosition $sexDir>>
<<calcArousal "intercourse" $arousalFactor 3>>
<</button>>
<</if>>
<<if $sexPosition != '69'>>
<<button "69" "IntercourseScene">>
<<addSecs 15>>
<<set $sexPosition = '69'>>
<<calcArousal "69" $arousalFactor 3>>
<</button>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Go back">>
<<replace "#actionsContainer">>
<<otherActs>>
<</replace>>
<</button>>
</div>
<</widget>>
<<widget "checkPosition">>
<<switch $sexPosition>>
<<case 'Missionary'>>
<<if _args[0] == 'Getting'>>
<<set $sexPos = 'OnBot'>>
<<else>>
<<set $sexPos = 'OnTop'>>
<</if>>
<<case 'Doggy Style'>>
<<if _args[0] == 'Getting'>>
<<set $sexPos = 'OnBot'>>
<<else>>
<<set $sexPos = 'OnTop'>>
<</if>>
<<case 'Cowgirl'>>
<<if _args[0] == 'Getting'>>
<<set $sexPos = 'OnTop'>>
<<else>>
<<set $sexPos = 'OnBot'>>
<</if>>
<</switch>>
<</widget>>
<<widget "getSexClips">>
<<set _tmpVid = 'Media/Sex/'>>
<<if $sexType === 'FF'>>
<<set _tmpVid += 'Lesbian/'>>
<<else>>
<<if $isCoitus>>
<<set _tmpVid += 'Coitus/'>>
<<else>>
<<set _tmpVid += 'Anal/'>>
<</if>>
<</if>>
<<set _tmpVid += $sexPosition + '/' + $sexType + '/'>>
<<switch $sexPosition>>
<<case 'Missionary'>>
<<if $sexType === 'MF'>>
<<switch $sexAct>>
<<case 'Speed Up'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'Fast/' + random(1,16) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Fast/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Fast/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Fast/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Fast/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Fast/' + random(1,4) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<case 'Slow Down'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'Slow/' + random(1,10) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Slow/' + random(1,3) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Slow/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Slow/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Slow/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Slow/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<case 'Rub Clit'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'Clit/' + random(1,4) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Clit/Fast/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Clit/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Clit/' + random(0,0) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Clit/' + random(1,6) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Clit/' + random(1,3) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<case 'Rub Tits'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'Tits/' + random(1,7) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Tits/' + random(1,3) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Tits/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Tits/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Tits/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Tits/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<default>>
<<if $isCoitus>>
<<if $sexDir === 'Getting' and ($player.body.gender === 'Female' and $player.body.womb.showPreg)>>
<<set _tmpVid += 'Preg/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,28) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/' + random(1,2) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<</switch>>
<<elseif $sexType === 'TF'>>
<<switch $sexAct>>
<<case 'Speed Up'>>
<<if $isCoitus>>
<<set _tmpVid += 'Fast/' + random(1,4) + '.mp4'>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Trans')>>
<<set _tmpVid += 'OnTop/Fast/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'OnBot/Fast/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<<case 'Slow Down'>>
<<if $isCoitus>>
<<set _tmpVid += 'Slow/' + random(1,5) + '.mp4'>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Trans')>>
<<set _tmpVid += 'OnTop/Slow/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'OnBot/Slow/' + random(1,2) + '.mp4'>>
<</if>>
<</if>>
<<case 'Rub Clit'>>
<<if $isCoitus>>
<<set _tmpVid += 'Clit/' + random(0,0) + '.mp4'>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Trans')>>
<<set _tmpVid += 'OnTop/Clit/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'OnBot/Clit/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<<case 'Rub Tits'>>
<<if $isCoitus>>
<<set _tmpVid += 'Tits/' + random(1,3) + '.mp4'>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Trans')>>
<<set _tmpVid += 'OnTop/Tits/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'OnBot/Tits/' + random(1,2) + '.mp4'>>
<</if>>
<</if>>
<<default>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += random(1,28) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/' + random(1,3) + '.mp4'>>
<</if>>
<</switch>>
<<elseif $sexType === 'TM'>>
<<switch $sexAct>>
<<case 'Speed Up'>>
<<if $sexDir === 'Giving'>>
<<set _tmpVid += 'OnTop/Fast/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'OnBot/Fast/' + random(1,1) + '.mp4'>>
<</if>>
<<case 'Slow Down'>>
<<if $sexDir === 'Giving'>>
<<set _tmpVid += 'OnTop/Slow/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'OnBot/Slow/' + random(1,1) + '.mp4'>>
<</if>>
<<case 'Jack off'>>
<<if $sexDir === 'Giving'>>
<<set _tmpVid += 'OnTop/Jack/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'OnBot/Jack/' + random(1,3) + '.mp4'>>
<</if>>
<<case 'Rub Tits'>>
<<if $sexDir === 'Giving'>>
<<set _tmpVid += 'OnTop/Tits/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'OnBot/Tits/' + random(1,1) + '.mp4'>>
<</if>>
<<default>>
<<if $sexDir === 'Giving'>>
<<set _tmpVid += 'OnTop/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += 'OnBot/' + random(1,1) + '.mp4'>>
<</if>>
<</switch>>
<<elseif $sexType === 'MM'>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<<else>>
/* strapped lesbians */
<</if>>
<<case 'Doggy Style'>>
<<if ['MF','TF'].includes($sexType)>>
<<switch $sexAct>>
<<case 'Speed Up'>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'Fast/' + random(1,14) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Fast/' + random(1,4) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Fast/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Fast/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Fast/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Fast/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += 'Fast/' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Slow Down'>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'Slow/' + random(1,5) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Slow/' + random(1,5) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Slow/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Slow/' + random(1,3) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Slow/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Slow/' + random(1,2) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += 'Fast/' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Rub Clit'>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'Clit/' + random(1,5) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Clit/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Clit/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Clit/' + random(0,0) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Clit/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Clit/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += 'Fast/' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Rub Tits'>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'Tits/' + random(1,6) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Tits/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Tits/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Tits/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Tits/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Tits/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += 'Fast/' + random(0,0) + '.mp4'>>
<</if>>
<<default>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if $sexDir === 'Getting' and ($player.body.gender === 'Female' and $player.body.womb.showPreg)>>
<<set _tmpVid += 'Preg/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,16) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/' + random(1,2) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += random(0,0) + '.mp4'>>
<</if>>
<</switch>>
<<elseif $sexType === 'MM'>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<<else>>
/* strapped lesbos */
<</if>>
<<case 'Cowgirl'>>
<<if ['MF','TF'].includes($sexType)>>
<<switch $sexAct>>
<<case 'Speed Up'>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender !== 'Female'>>
<<set _tmpVid += 'Fast/' + random(1,13) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Fast/' + random(1,3) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Fast/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Fast/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Fast/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Fast/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += 'Fast/' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Slow Down'>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender !== 'Female'>>
<<set _tmpVid += 'Slow/' + random(1,7) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Slow/' + random(1,3) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Slow/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Slow/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Slow/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Slow/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += 'Slow/' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Rub Clit'>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender !== 'Female'>>
<<set _tmpVid += 'Clit/' + random(1,7) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Clit/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Clit/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Clit/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Clit/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Clit/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += 'Clit/' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Rub Tits'>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender !== 'Female'>>
<<set _tmpVid += 'Tits/' + random(1,8) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Preg/Tits/' + random(1,2) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/Tits/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/Tits/' + random(1,1) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/Tits/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/Tits/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += 'Tits/' + random(0,0) + '.mp4'>>
<</if>>
<<default>>
<<if $sexType === 'MF'>>
<<if $isCoitus>>
<<if $sexDir === 'Getting' and ($player.body.gender === 'Female' and $player.body.womb.showPreg)>>
<<set _tmpVid += 'Preg/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,14) + '.mp4'>>
<</if>>
<<else>>
<<if ($sexPos === 'OnTop' and $player.body.gender === 'Female') or ($sexPos === 'OnBot' and $player.body.gender === 'Male')>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnTop/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnTop/Preg/' + random(1,4) + '.mp4'>>
<</if>>
<<else>>
<<if ($player.body.gender === 'Female' and !$player.body.womb.showPreg) or $player.body.gender === 'Male'>>
<<set _tmpVid += 'FemOnBot/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += 'FemOnBot/Preg/' + random(0,0) + '.mp4'>>
<</if>>
<</if>>
<</if>>
<<elseif $sexType === 'TF'>>
<<set _tmpVid += random(0,0) + '.mp4'>>
<</if>>
<</switch>>
<<elseif $sexType === 'MM'>>
<<set _tmpVid += random(1,1) + '.mp4'>>
<<else>>
/* MM or strapped lesbians */
<</if>>
<<case 'Scissor'>>
<<switch $sexAct>>
<<case 'Speed Up'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/Fast/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Fast/' + random(1,3) + '.mp4'>>
<</if>>
<<case 'Slow Down'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/Slow/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Slow/' + random(1,3) + '.mp4'>>
<</if>>
<<case 'Rub Clit'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/Clit/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Clit/' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Rub Tits'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/Tits/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Tits/' + random(0,0) + '.mp4'>>
<</if>>
<<default>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/' + random(1,6) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,12) + '.mp4'>>
<</if>>
<</switch>>
<<case 'Trib'>>
<<switch $sexAct>>
<<case 'Speed Up'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/Fast/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Fast/' + random(1,1) + '.mp4'>>
<</if>>
<<case 'Slow Down'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/Slow/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Slow/' + random(1,3) + '.mp4'>>
<</if>>
<<case 'Rub Clit'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/Clit/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Clit/' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Rub Tits'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/Tits/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Tits/' + random(0,0) + '.mp4'>>
<</if>>
<<default>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,4) + '.mp4'>>
<</if>>
<</switch>>
<<case '69'>>
<<switch $sexAct>>
<<default>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpVid += 'Preg/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += random(1,7) + '.mp4'>>
<</if>>
<</switch>>
<</switch>>
<video @src="_tmpVid" height="400rem" autoplay loop></video>
<</widget>><<genFit $player.outfit.fit>>
<<set $lapDanceStart = true>>
<<set $lapdanceTimeLimit = ($gameDate.getHours()*60 + $gameDate.getMinutes()) + 10>>
<<if !$player.isNude>>
<<set $stripperFit = {
top: $clothingObj.stats.top,
btm: $clothingObj.stats.btm,
}
>>
<</if>>
<<set $lapAct = 'Tease'>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/LapDance/Intro/' + random(1,2) + '.webp'>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<img @src="_tmpImg" height="600rem">
<br><br>
You lead the client to a private area of the club and sit him down in the chair. You sway your hips and slide your hands along your body as the music for your dance starts up.
<br>
<span id='subRepCont'><br></span>
</center>
<hr>
<div id="actionsContainer">
<<getLapDanceActions>>
</div><<calcArousal 'lapdance' 1 1>>
<center>
<b><font size="10em">Boobie Bungalow</font></b>
<br>
<<getLapDanceImage>>
<br><br>
<span id='repCont'>
<<getLapDanceText>>
</span>
<span id="subRepCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<<getLapDanceActions>>
</div>
<<timed 0s>>
<<if ($gameDate.getHours()*60 + $gameDate.getMinutes()) >= $lapdanceTimeLimit>>
<<set _lapDanceMod = 0>>
<<if $stripperFit.top == 'OFF'>>
<<set _lapDanceMod += 1>>
<</if>>
<<if $stripperFit.btm == 'OFF'>>
<<set _lapDanceMod += 2>>
<</if>>
<<if $player.skills.dancing < 5>>
<<set _lapDanceMod += 0>>
<<elseif $player.skills.dancing < 7>>
<<set _lapDanceMod += 1>>
<<else>>
<<set _lapDanceMod += 2>>
<</if>>
<<set _lapDanceTip = Math.floor($player.beautyScore/2*_lapDanceMod)>>
<<set $shiftTips += _lapDanceTip>>
<<set $shiftDanceCount += 1>>
<<replace "#repCont">>
<b>The song ends and you pull back from <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> to tell him with a pout that his dance is over.</b>
<br><br>
<<if _lapDanceTip > 0>>
<div class="goodText">You earned $10 plus $<<print _lapDanceTip>> as a tip</div>
<<else>>
<div class="goodText">You earned $10 for the dance</div>
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" >>
<<endLapDance>>
<</button>>
</div>
<</replace>>
<</if>>
<</timed>><<widget "getLapDanceActions">>
<<if !$lapDanceStart>>
<div class="buttonContainer">
<<button "Keep going" "LapDanceHUB">>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<if $lapAct != 'Tease'>>
<<button "Tease him" "LapDanceHUB">>
<<unset $lapDanceStart>>
<<set $lapAct = 'Tease'>>
<</button>>
<</if>>
<<if $lapAct != 'Grind'>>
<<button "Sit in his lap" "LapDanceHUB">>
<<unset $lapDanceStart>>
<<set $lapAct = 'Grind'>>
<</button>>
<</if>>
<<if $lapAct != 'Straddle'>>
<<button "Straddle his lap">>
<<if $player.body.gender === 'Female'>>
<<unset $lapDanceStart>>
<<set $lapAct = 'Straddle'>>
<<goto "LapDanceHUB">>
<<else>>
<<replace "#subRepCont">>
<div class="badText">
You shouldn't get too close or he might notice you're packing more than the usual stripper.
</div>
<</replace>>
<</if>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<if $stripperFit.top != 'OFF'>>
<<button "Take your top off" "LapDanceHUB">>
<<unset $lapDanceStart>>
<<calcArousal 'strip' 1 1>>
<<set $stripperFit.top = 'OFF'>>
<</button>>
<</if>>
<<if $stripperFit.btm != 'OFF' and $player.body.gender === 'Female'>>
<<button "Take your bottoms off" "LapDanceHUB">>
<<unset $lapDanceStart>>
<<calcArousal 'strip' 1 1>>
<<set $stripperFit.btm = 'OFF'>>
<</button>>
<</if>>
</div>
<</widget>>
<<widget "getLapDanceImage">>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/LapDance/Giving/'>>
<<if $stripperFit.top != 'OFF'>>
<<set _tmpFit = '1'>>
<<else>>
<<set _tmpFit = '0'>>
<</if>>
<<if $stripperFit.btm != 'OFF'>>
<<set _tmpFit += '1'>>
<<else>>
<<set _tmpFit += '0'>>
<</if>>
<<switch _tmpFit>>
<<case '11'>>
<<switch $lapAct>>
<<case 'Grind'>>
<<set _tmpImg += 'Grind/' + _tmpFit + random(1,11) + '.mp4'>>
<<case 'Straddle'>>
<<set _tmpImg += 'Straddle/' + _tmpFit + random(1,3) + '.mp4'>>
<<case 'Tease'>>
<<set _tmpImg += 'Tease/' + _tmpFit + random(1,8) + '.mp4'>>
<</switch>>
<<case '10'>>
<<switch $lapAct>>
<<case 'Grind'>>
<<set _tmpImg += 'Grind/' + _tmpFit + random(0,0) + '.mp4'>>
<<case 'Straddle'>>
<<set _tmpImg += 'Straddle/' + _tmpFit + random(1,1) + '.mp4'>>
<<case 'Tease'>>
<<set _tmpImg += 'Tease/' + _tmpFit + random(1,3) + '.mp4'>>
<</switch>>
<<case '01'>>
<<switch $lapAct>>
<<case 'Grind'>>
<<set _tmpImg += 'Grind/' + _tmpFit + random(1,4) + '.mp4'>>
<<case 'Straddle'>>
<<set _tmpImg += 'Straddle/' + _tmpFit + random(1,5) + '.mp4'>>
<<case 'Tease'>>
<<set _tmpImg += 'Tease/' + _tmpFit + random(1,2) + '.mp4'>>
<</switch>>
<<case '00'>>
<<switch $lapAct>>
<<case 'Grind'>>
<<set _tmpImg += 'Grind/' + _tmpFit + random(1,4) + '.mp4'>>
<<case 'Straddle'>>
<<set _tmpImg += 'Straddle/' + _tmpFit + random(1,3) + '.mp4'>>
<<case 'Tease'>>
<<set _tmpImg += 'Tease/' + _tmpFit + random(1,1) + '.mp4'>>
<</switch>>
<</switch>>
<video @src="_tmpImg" autoplay loop></video>
<</widget>>
<<widget 'getLapDanceText'>>
<<switch $lapAct>>
<<case 'Grind'>>
<<if $player.skills.dancing < 5>>
<<switch random(1,4)>>
<<case 1>>
You gyrate awkwardly in your client's lap, unsure of your movements as you try to put on an alluring show. Your hips move clumsily as you press your ass back against his crotch, hoping to excite him despite your lack of skill.
<<case 2>>
Perched in your client's lap, you rock your hips from side to side, rubbing your ass cheeks against his groin in what you hope is a tantalizing manner. You may not be the most graceful dancer, but you pour all your effort into pleasing him with your amateurish attempts at seduction.
<<case 3>>
You settle yourself onto your client's lap, wriggling your bottom against his pelvis as you start to gyrate. Your dancing skills leave much to be desired, but you compensate with enthusiasm, doing your utmost to provide a stimulating experience for your paying customer.
<<case 4>>
You push your ass into your client's lap, grinding your ass cheeks roughly against his crotch. Despite your clumsy, uncoordinated movements, you rub your ass hard against his growing bulge, determined to get him fully erect.
<</switch>>
<<elseif $player.skills.dancing < 7>>
<<switch random(1,4)>>
<<case 1>>
You slide smoothly into your client's lap, rolling your hips in a steady, sensuous rhythm as you grind your ass against his groin. While you may not be the most experienced dancer, you've got enough skill to deliver a reasonably enticing performance, swaying your body seductively to the music.
<<case 2>>
With practiced ease, you slide against the buldge in his pants, undulating your torso as you press your ass back against him. Your movements are fluid and deliberate, showcasing your decent lap dancing abilities while still leaving room for improvement.
<<case 3>>
Lowering yourself gracefully onto your client's lap, you begin to gyrate, rubbing your <<descAss $player>> ass provocatively against his crotch. Though you're no expert, you manage to execute a passable routine, twisting and turning your body in a way that's both alluring and sensual.
<<case 4>>
You press you ass into his lap, settling in comfortably before starting to wind your hips in a circular motion. The hard rod you feel pressing up against your cheeks shows you how much he's enjoying it.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
You lower yourself slowly and deliberately onto your client's lap, your lithe body moving with feline grace. The pulsing beat of the music washes over you and you roll your hips in a hypnotic, serpentine motion, your supple ass cheeks gliding across his crotch with electrifying precision.
<<case 2>>
Watching you move is like watching a goddess come to life, your undulations so fluid and natural that they seem almost superhuman. You tease and titillate with consummate skill, your ass grinds against ths bulge in his pants in perfect time to the music.
<<case 3>>
Gracefully mounting your client's thighs, you lean back, pressing your back against him. Every sinuous undulation of your spine is pure poetry in motion, your body flowing like liquid sex as you envelop him in a cocoon of carnal bliss.
<<case 4>>
Your dance is a symphony of seduction, each fluid motion designed to stoke the fires of his lust. With the skill of a true artist, you weave a spell of desire around him as his hard cock presses against your <<descAss $player>> ass cheeks.
<</switch>>
<</if>>
<<case 'Straddle'>>
<<if $player.skills.dancing < 5>>
<<switch random(1,4)>>
<<case 1>>
You straddle your client's thighs, grinding your body against his as you attempt to mimic the sensual moves of your fellow strippers. Your rhythm is off and your motions are stiff, but you're determined to make this lap dance as enjoyable as possible for your paying customer.
<<case 2>>
Straddling your client's lap, you press your crotch firmly against the noticeable bulge in his pants. You try your best to keep pace with the thumping music, but your unskilled gyrations betray your inexperience as a dancer. Still, you're determined to give him a lap dance worth remembering, even if your technique leaves something to be desired.
<<case 3>>
You perch yourself atop your client's thighs, grinding your pelvis against his swollen member. Your moves are awkward and out of sync with the beat, but you refuse to let your lack of talent hold you back. Instead, you double down on your efforts, writhing enthusiastically in his lap.
<<case 4>>
You bump and grind, mashing your crotch against the hard rod in his trousers. Your dancing ability is questionable at best, but your commitment to the cause is admirable as you do your damnedest to get him hot and bothered, in spite of your subpar lap dancing prowess.
<</switch>>
<<elseif $player.skills.dancing < 7>>
<<switch random(1,4)>>
<<case 1>>
Straddling your client's lap, you press your crotch snugly against the prominent bulge in his pants. Your hips swivel with practiced ease, finding a smooth rhythm that matches the pulsing beat of the music.
<<case 2>>
Perched atop your client's thighs, you grind and rub your center against his clothed erection. Your technique is solid, if not spectacular, as you gyrate in time with the throbbing bassline. Each purposeful roll of your hips elicits a soft moan from deep within his chest.
<<case 3>>
You straddle your client's lap confidently, aligning your groin with the conspicuous bulge in his pants. With a smooth, practiced, motion you rotate your hips, creating a delicious friction between your bodies. Your movements are fluid and controlled, designed to bring him to the edge of ecstasy.
<<case 4>>
Mounting your client's lap, you bring your bodies together, your most sensitive areas separated only by the thinnest layer of clothing. You commence a slow, sultry grind, your hips oscillating in a mesmerizing pattern.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
With the poise and confidence of a seasoned pro, you straddle your client's legs, arching your back to emphasize the curve of your spine as you start to grind. Each sinuous movement of your hips sends shivers of pleasure through his body, your flawless technique reducing him to a state of blissful submission.
<<case 2>>
You straddle your client's lap with the grace of a ballerina, your lithe body melding seamlessly with his. You press your groin flush against the impressive bulge in his pants, a thrill coursing through you at being able to illicit such reactions.
<<case 3>>
With a sultry smile playing on your lips, you gyrate, your hips tracing sinuous figure eights that send shockwaves of pleasure straight to his core. Each roll of your pelvis is a master class in eroticism, your movements so fluid and natural that they seem almost otherworldly. You're not just dancing - you're making love to the music, your body a conduit for pure, unadulterated passion.
<<case 4>>
As you continue to grind against him, you can feel his excitement building, his breath coming in ragged gasps as he struggles to maintain control. But you're relentless, your dance becoming more and more intense with each passing second. You lean in close, your breasts brushing against his chest and your hot breath tickling his skin.
<</switch>>
<</if>>
<<case 'Tease'>>
<<if $player.skills.dancing < 5>>
<<switch random(1,4)>>
<<case 1>>
Your awkward gyrations and clumsy attempts at sexy poses showcase your lack of rhythm and coordination, detracting from any potential appeal.
<<case 2>>
You stand awkwardly in front of your client, trying to muster up some semblance of sexiness. You attempt a few clumsy hip thrusts and poorly executed spins, but it's clear that dancing isn't exactly your strong suit.
<<case 3>>
Despite your lack of rhythm and grace, you soldier on, determined to give your client his money's worth. You run your hands over your curves, cupping your breasts and squeezing them together in what you hope is an enticing manner. Then you turn around and bend over, giving him a generous view of your barely covered ass.
<<case 4>>
Your client watches impassively, his expression impossible to read. Is he enjoying the show? Bored out of his mind? It's anyone's guess. You try not to let his stoicism discourage you, instead focusing on putting your body on full display.
<</switch>>
<<elseif $player.skills.dancing < 7>>
<<switch random(1,4)>>
<<case 1>>
You sway your hips to the beat of the music, letting your body flow with the rhythm. Your hands roam over your curves, caressing your breasts and trailing down your stomach as you dance. You catch your client's eye and flash him a seductive smile, inviting him to enjoy the show.
<<case 2>>
Turning your back to him, you bend forward at the waist, giving him a tantalizing view of your ass. You shake your hips from side to side, letting your cheeks jiggle enticingly. Glancing over your shoulder, you see his eyes locked onto your derrière, drinking in every detail.
<<case 3>>
Spinning around to face him once more, you run your fingers through your hair, tousling it playfully. You strut towards him, your high heels clicking on the floor, and when you reach his chair, you plant your feet wide apart, giving him an eyeful of your scantily clad crotch.
<<case 4>>
Leaning forward, you brush your breasts against his chest, letting him feel their softness through his shirt. His breathing quickens slightly, and you can sense his growing arousal. You pull back, blowing him a kiss before resuming your dance, your body a tempting feast for his hungry gaze.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
Your body flows like water, every movement a sensual invitation. You lock eyes with your client, drawing him in with a smoldering gaze as you run your hands over your curves, teasing and tantalizing.
<<case 2>>
Biting your lip, you run your hands down your sides and over your ass, spreading your cheeks slightly. You look back at him with a sultry smile, knowing exactly what effect you're having.
<<case 3>>
You move with fluid grace, your body a symphony of sensuality as you dance before your entranced client. Each roll of your hips, each sway of your curves, is a masterclass in eroticism. You meet his gaze boldly, your eyes smoldering with promise as you slowly reveal more of your flawless skin.
<<case 4>>
Your client is utterly transfixed, his eyes devouring every inch of you as you perform. You can feel the heat of his desire, the palpable tension in the air as you work your magic. With a seductive smile, you turn away, and sway your hips hypnotically, letting your cheeks jiggle enticingly as you look back over your shoulder.
<</switch>>
<</if>>
<</switch>>
<</widget>>
<<widget "endLapDance">>
<<unset $lapAct>>
<<unset $stripperFit>>
<<unset $lapDanceStart>>
<<purgeNPC $NPCArray.find(npc => npc.dna == $currDNA)>>
<<unset $currDNA>>
<<addMins 1>>
<<goto "BBStripperPostStage">>
<</widget>><<goto 'MasturbationScene'>><div class='sexScene'>
<center>
<<getMastClips>>
</center>
<<calcOrgBar $player.dna>>
<br>
<center>
<div id="cumNotice">
<<getMastText>>
</div>
</center>
<hr>
<div id="actionsContainer">
<<getMastActions>>
</div>
</div>
<<calcOrgasm $player.dna>>
<<if $masturbationEvents>>
<<if random(0,100 > 40) and ($gameDate.getTime() - $sexStartTime)/1000 > 120>>
<<if $masturbationEvents.includes('JuliaInterrupt')>>
<<unset $masturbationEvents>>
<<unset $showerInProg>>
<<goto 'JuliaInterrupt'>>
<</if>>
<</if>>
<</if>>
<<timed 0s>>
<<if $player.justCame>>
<<set $cumDNA = $player.dna>>
<<set $cumAct = 'SelfMast'>>
<<getCumActions>>
<</if>>
<</timed>><<widget "getMastClips">>
<<switch $mastAct>>
<<case 'Intro'>>
<<set _tmpImg = 'Media/Sex/Masturbation/Start/' + $player.body.gender[0] + '/'>>
<<if $mastLoc != 'Shower' and $mastLoc != 'Bath'>>
<<set _tmpImg += 'Generic/'>>
<<if $player.body.gender === 'Female'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<<elseif $player.body.gender === 'Trans'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,1) + '.webp'>>
<</if>>
[img[mastImg|_tmpImg]]
<<unset _tmpImg>>
<<elseif $mastLoc === 'Shower'>>
<<set _tmpImg += $mastLoc + '/'>>
<<if $player.body.gender === 'Trans'>>
<<set _tmpImg += random(1,5) + '.webp'>>
[img[mastImg|_tmpImg]]
<<elseif $player.body.gender === 'Female'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<video @src="_tmpImg" width="640" height="480" autoplay loop></video>
<<else>>
<<set _tmpImg += random(1,1) + '.webp'>>
[img[mastImg|_tmpImg]]
<</if>>
<<unset _tmpImg>>
<</if>>
<<case 'JackIt'>>
<<set _tmpImg = 'Media/Sex/Masturbation/POV/' + $mastType + '/' + $player.body.gender[0] + '/'>>
<<switch $mastType>>
<<case 'Generic'>>
<<set _tmpImg += 'JackIt/'>>
<<if $player.body.gender === 'Trans'>>
<<set _tmpImg += random(1,5) + '.mp4'>>
<<else>>
<<set _tmpImg += random(1,5) + '.mp4'>>
<</if>>
<<case 'Shower'>>
<<if $player.body.gender === 'Trans'>>
<<set _tmpImg += 'JackIt/' + random(1,2) + '.mp4'>>
<<else>>
<<if $player.body.cock <=3 >>
<<set _tmpImg += 'Small/JackIt/' + random(1,1) + '.mp4'>>
<<elseif $player.body.cock <= 5>>
<<set _tmpImg += 'Mid/JackIt/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpImg += 'Large/JackIt/' + random(1,1) + '.mp4'>>
<</if>>
<</if>>
<</switch>>
<video @src="_tmpImg" height="550rem" autoplay loop></video>
<<case 'ClitRub'>>
<<set _tmpImg = 'Media/Sex/Masturbation/POV/' + $mastType + '/' + $player.body.gender[0] + '/ClitRub/'>>
<<switch $mastType>>
<<case 'Generic'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(1,2) + '.mp4'>>
<<else>>
<<set _tmpImg += random(1,8) + '.mp4'>>
<</if>>
<<case 'Shower'>>
<<set _tmpImg = 'Media/Sex/Masturbation/POV/' + $mastType + '/' + $player.body.gender[0] + '/Finger/'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpImg += random(1,2) + '.mp4'>>
<</if>>
<</switch>>
<video @src="_tmpImg" height="550rem" autoplay loop></video>
<<case 'Finger'>>
<<set _tmpImg = 'Media/Sex/Masturbation/POV/' + $mastType + '/' + $player.body.gender[0] + '/Finger/'>>
<<switch $mastType>>
<<case 'Generic'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpImg += random(1,5) + '.mp4'>>
<</if>>
<<case 'Shower'>>
<<if $player.body.womb and $player.body.womb.showPreg>>
<<set _tmpImg += 'Preg/' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpImg += random(1,2) + '.mp4'>>
<</if>>
<</switch>>
<video @src="_tmpImg" height="550rem" autoplay loop></video>
<</switch>>
<</widget>>
<<widget "getMastText">>
<<switch $mastAct>>
<<case 'Intro'>>
Your hands slide down your body toward a growing need between your thighs...
<<case 'JackIt'>>
<<switch random(1,3)>>
<<case 1>>
Your fist slides along your throbbing shaft, the skin impossibly smooth and hot. Pre-cum slicks your passage, easing the motion.
<<case 2>>
Your toes curl as your hand flies over your rigid length, squeezing and twisting.
<<case 3>>
Your palm glides effortlessly along your straining erection, the silky skin sliding against your fingertips. Pleasure mounts with each pump, drawing you higher.
<</switch>>
<<case 'ClitRub'>>
<<switch random(1,3)>>
<<case 1>>
Your finger circles your sensitive bud, already slick with arousal. Each brush of your fingertip sends electric shocks zinging up your spine.
<<case 2>>
Rubbing your engorged clit furiously, you gasp at the intensity. Juices flow freely, making your fingers glide easily over the sensitive bud.
<<case 3>>
Frantically rubbing your throbbing clit, you moan wantonly, lost in sensation. Your juices soak your fingers as you push yourself higher.
<</switch>>
<<case 'Finger'>>
<<switch random(1,3)>>
<<case 1>>
Panting heavily, you pump your finger in and out of yourself with wild abandon, seeking release.
<<case 2>>
Your fingers plunge deep inside your dripping pussy, the wet squelching sounds filling the room. Your hips rock as you push back against your pumping fingers.
<<case 3>>
Your fingers drive into your sopping cunt, curling to stroke your G-spot your body convulses with increased pleasure.
<</switch>>
<</switch>>
<</widget>>
<<widget "getMastActions">>
<<timed 0s>>
<<replace "#actionsContainer">>
<<switch $mastAct>>
<<case 'Intro'>>
<div class="buttonContainer">
<<button "Continue" 'MasturbationScene'>>
<<if $player.body.gender === 'Female'>>
<<calcArousal 'mast' 1 2>>
<<set $mastAct = 'ClitRub'>>
<<else>>
<<calcArousal 'mast' 1 2>>
<<set $mastAct = 'JackIt'>>
<</if>>
<</button>>
</div>
<<case 'JackIt'>>
<div class="buttonContainer">
<<button "Keep going" "MasturbationScene">>
<<calcArousal 'mast' 1 2>>
<<goto 'MasturbationScene'>>
<</button>>
</div>
<<case 'ClitRub'>>
<div class="buttonContainer">
<<button "Keep going" "MasturbationScene">>
<<calcArousal 'mast' 1 2>>
<<goto 'MasturbationScene'>>
<</button>>
<<button "Use your fingers" "MasturbationScene">>
<<calcArousal 'mast' 1 2>>
<<set $mastAct = 'Finger'>>
<<goto 'MasturbationScene'>>
<</button>>
</div>
<<case 'Finger'>>
<div class="buttonContainer">
<<button "Keep going" "MasturbationScene">>
<<calcArousal 'mast' 1 2>>
<<goto 'MasturbationScene'>>
<</button>>
<<button "Rub your clit" "MasturbationScene">>
<<calcArousal 'mast' 1 2>>
<<set $mastAct = 'ClitRub'>>
<<goto 'MasturbationScene'>>
<</button>>
</div>
<</switch>>
<<if $player.arousal < 40 or $sceneOrgCount > 0>>
<div class="buttonContainer">
<<button "Stop masturbating">>
<<addSecs 5>>
<<sexPowerDown>>
<<goto $sceneLoc>>
<</button>>
</div>
<</if>>
<</replace>>
<</timed>>
<</widget>><<set $nonConDir = $sceneDir>>
<<set $sexType = 'MF'>>
<<set $arousalFactor = 1>>
<<goto "NonConStart">><center>
<<set _tmpImg = 'Media/Sex/NonCon/Grabbed/'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'MF/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'MM/' + random(1,1) + '.webp'>>
<</if>>
<<else>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'FF/' + random(0,0) + '.webp'>>
<<else>>
<<set _tmpImg += 'MF/' + random(0,0) + '.webp'>>
<</if>>
<</if>>
<span id="repCont">
<img @src='_tmpImg' height="500rem">
<br><br>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> tightens <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> grip on your arm until it borders on painful.
<br><br>
"That's it, you fucking bitch. I'm just going to take what I want!"
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.sub > 45 or $player.slutLevel > 3>>
<<button "Give in">>
<<replace "#repCont">>
<<set _tmpImg = 'Media/Sex/NonCon/Forced/' + $sexType + '/'>>
<<if $sexType === 'MF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += random(0,0) + '.webp'>>
<</if>>
<img @src='_tmpImg' height="500rem">
<br><br>
You are easily stripped of your clothes by your attacker who ignores you cries and begging. <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> is going to get what <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> wants and you aren't strong enough to stop <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "NonConScene">>
<<set $nonConAct = 'Struggle'>>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Fight back">>
/*
claws
strength
*/
<<if (random($player.skills.fighting,100) > 95 and $player.skills.fighting > 40) or $player.traits.includes(40)>>
/* You win */
<<elseif $player.strength >= (3*$NPCArray.find(npc => npc.dna == $currDNA).strength/2) or $player.skills.fighting > 25 or ($player.skills.fighting > 15 and random($player.skills.fighting, 100) > 50)>>
<<set _tmpImg = 'Media/Fighting/Win/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'MF/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'MM/' + random(1,1) + '.webp'>>
<</if>>
<<replace "#repCont">>
<img @src="_tmpImg" height="450">
<br><br>
You struggle and fight, doing everything you can to escape your attacker. One random flail of your hand lands a painful hit and he momentarily loosens his grip on you, allowing you the chance to escape.
<</replace>>
<<replace '$actionsContainer'>>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<addSecs 45>>
<</button>>
</div>
<</replace>>
<<else>>
<<set _tmpImg = 'Media/Fighting/Lose/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'MF/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'MM/' + random(0,0) + '.webp'>>
<</if>>
<<replace "#repCont">>
<img @src="_tmpImg" height="450">
<br><br>
<<if !$player.sexStats.nonCon>>
You try to gasp for breath but the hand over your mouth prevents you from getting enough air to scream. Your vision starts to swirl and your heart beats so hard in your chest it might burst at any moment. What could this person want??!
<<elseif $player.sexStats.nonCon === 1>>
You cry out in despair, not again! You swore you would be more careful after the last time this happened and yet here you are again about to be used like some worthless sex doll.
<<elseif $player.sexStats.nonCon === 2>>
You slump against your attacker, more angry at yourself for falling into this again than at him for taking an opportunity when he saw one. Almost serves you right for not paying attention.
<<elseif $player.sexStats.nonCon <= 5 and $player.slutLevel < 5>>
You struggle and push against your attacker, but even he can tell its mostly for show. You've been through this a few times now and you know what to expect.
<<else>>
You mock fight against the arms holding you, putting up just enough of a struggle to make him think you might break free -- causing him to hold you tighter against him.
<</if>>
<br><br>
You fight back for all your worth but he seems to just absorb your hits without even feeling them. He even lets you go for a moment and laughs when he easily grabs your hair and pulls you back into his embrace before you can make it two steps away. This is happening.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "NonConScene">>
<<set $nonConAct = 'Struggle'>>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
<<if $player.outfit.purse != 0 and $purseInventory.some(obj => obj.name === 'Pepper Spray')>>
<<button "Use Pepper Spray" "PepperSpray">>
<<addSecs 45>>
<</button>>
<</if>>
</div>
</div><div class='sexScene'>
<<getNonConClips>>
<br><br>
<<calcOrgBar $player.dna>>
<<calcOrgBar $currDNA>>
<br>
<div id="cumNotice">
<<getNonConText>>
</div>
</div>
<hr>
<div id="actionsContainer">
<<getNonConActions>>
</div>
<<calcOrgasm $currDNA>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).orgasm !== 100>>
<<calcOrgasm $player.dna>>
<</if>>
<<timed 0s>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).justCame>>
<<set $cumDir = $sexDir>>
<<set $cumAct = 'Intercourse'>>
<<set $cumDNA = $player.dna>>
<<getCumActions>>
<<elseif $player.justCame>>
<<set $cumDir = $sexDir>>
<<set $cumAct = 'Intercourse'>>
<<set $cumDNA = $player.dna>>
<<getCumActions>>
<</if>>
<</timed>><<run $player.inventory.removeItem('Pepper Spray',1)>>
<<set _tmpImg = 'Media/Misc/PepperSpray/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You quickly pull out your pepper spray and blast a full dose right into your attacker's face. It does the job and stops <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> dead in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tracks, giving you time to get away safely.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<purgeNPC $NPCArray.find(npc => npc.dna == $currDNA)>>
<<unset $currDNA>>
<</button>>
</div>
</div><<widget "getNonConActions">>
<div class="buttonContainer">
<<button "Scream" "NonConScene">>
<<calcArousal "intercourse" $arousalFactor 2>>
<<set $nonConAct = 'Scream'>>
<</button>>
<<button "Struggle" "NonConScene">>
<<calcArousal "intercourse" $arousalFactor 2>>
<<set $nonConAct = 'Struggle'>>
<</button>>
</div>
<</widget>>
<<widget "getNonConText">>
<<set _tmpNPC = $NPCArray.find(npc => npc.obj == $currDNA)>>
<<switch $nonConDir>>
<<case 'Getting'>>
<<switch $nonConAct>>
<<case 'Struggle'>>
<<switch random(1,5)>>
<<case 1>>
Struggling beneath him, you kick and flail, but every movement just makes your slick cunt squeeze more around his invading cock.
<<case 2>>
Beneath his towering frame, you writhe and buck, your feeble attempts to escape are useless as he pins you to the bed. His muscular weight crushes you, and his cock spreads you open, leaving no doubt who's in control.
<<case 3>>
You buck and twist, arms flailing, nails scraping his back as you try to break free. But his grip is iron, unyielding. His <<descDick _tmpNPC>> cock spears you relentlessy as you helplessy struggle.
<<case 4>>
He dominates you, hips pounding relentlessly into your resisting body. You thrash, trying to dislodge him, but his strength overwhelms your feeble efforts. Tears stream down your face as he uses you, his cock stretching your cunt mercilessly.
<<case 5>>
You thrash beneath him, kicking and punching at the unyielding mass above. Panic rises in your chest as he holds you down, trapping you in a prison of sweaty skin and driving hips.
<</switch>>
<<case 'Scream'>>
<<switch random(1,5)>>
<<case 1>>
Each powerful thrust sends shockwaves through your core, his dominance over your body heightening the forbidden thrill. You cry out in mock protest even as your inner walls clench around him
<<case 2>>
A guttural grunt escapes you as he drives his cock deeper, your pussy clenching around the intrusion. Tears sting your eyes and you let out a gutteral scream, a futile protest drowned out by the slap of flesh on flesh.
<<case 3>>
Fingers scrabble at his shoulders, nails digging deep in a desperate bid for freedom. Your cries echo in the room, a futile scream against the overwhelming force claiming your body, plunging into your very essence with ruthless abandon.
<<case 4>>
Your voice cracks, a high-pitched wail of distress, as he hammers into you without mercy. You're nothing more than a hot wet hole that he has claims as his own.
<<case 5>>
The raw, animalistic sounds of his pleasure mingle with your screams, creating a cacophony of carnal debauchery. Each brutal thrust makes you convulse, a puppet controlled by his insatiable lust. Helpless beneath him, you're reduced to a mere vessel for his darkest desires.
<</switch>>
<</switch>>
<<case 'Giving'>>
<</switch>>
<</widget>>
<<widget "getNonConClips">>
<<set _tmpVid = 'Media/Sex/NonCon/'>>
<<if $sexType === 'MM' or $isAnal>>
<<set _tmpVid += 'Anal/'+ $sexType + '/'>>
<<else>>
<<set _tmpVid += 'Coitus/'+ $sexType + '/'>>
<</if>>
<<switch $nonConAct>>
<<case 'Struggle'>>
<<if $sexType === 'MF'>>
<<set _tmpVid += 'Struggle/' + random(1,6) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Struggle/' + random(1,3) + '.webm'>>
<</if>>
<<case 'Scream'>>
<<if $sexType === 'MF'>>
<<set _tmpVid += 'Scream/' + random(1,4) + '.webm'>>
<<else>>
<<set _tmpVid += 'Scream/' + random(1,3) + '.webm'>>
<</if>>
<</switch>>
<video @src="_tmpVid" style="height: 32rem" autoplay loop></video>
<</widget>>
<<widget "nonConPowerDown">>
<<unset $nonConAct>>
<</widget>><<set $oralAct = 'Intro'>>
<<set $npcCum = 0>>
<<if $oralDir === 'Giving'>>
<<set $oralGenders = $player.presenting[0] + $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<<if $oralGenders === 'FM'>>
<<set $oralGenders = 'MF'>>
<</if>>
<<set $givingGender = $player.presenting[0]>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === "Male">>
<<set $oralType = 'BJ'>>
<<else>>
<<set $oralType = 'Cuni'>>
<</if>>
<<else>>
<<if $player.body.cock > 0>>
<<set $oralType = 'BJ'>>
<<else>>
<<set $oralType = 'Cuni'>>
<</if>>
<<set $givingGender = $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<</if>>
/* calculate happiness of giver */
<<calcOralRx $oralDir>>
<<goto 'OralScene'>><<if $oralDir === 'Giving' and $sexHistory.includes('bj_give')>>
<<NPCSexInitiave>>
<</if>>
<div class='sexScene'>
<<getOralClips>>
<br><br>
<<if $oralDir == 'Giving'>>
<<calcOrgBar $currDNA>>
<<else>>
<<calcOrgBar $player.dna>>
<</if>>
<br>
<div id="cumNotice">
<<getOralText>>
</div>
</div>
<hr>
<div id="actionsContainer">
<<getOralActions>>
</div>
<<if $oralDir == 'Giving'>>
<<calcOrgasm $currDNA>>
<<else>>
<<calcOrgasm $player.dna>>
<</if>>
<<timed 0s>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).justCame>>
<<if $oralDir === 'Giving'>>
<<set $cumDir = 'Getting'>>
<<else>>
<<set $cumDir = 'Giving'>>
<</if>>
<<set $cumAct = 'OralSex'>>
<<set $cumDNA = $currDNA>>
<<set $cumRx = $oralRx>>
<<getCumActions>>
<<elseif $player.justCame>>
<<if $oralDir === 'Giving'>>
<<set $cumDir = 'Getting'>>
<<else>>
<<set $cumDir = 'Giving'>>
<</if>>
<<set $cumAct = 'OralSex'>>
<<set $cumDNA = $player.dna>>
<<set $cumRx = $oralRx>>
<<getCumActions>>
<</if>>
<</timed>><<widget "getOralClips">>
<<switch $oralAct>>
<<case 'Intro'>>
<<set _tmpImg = 'Media/Sex/Oral/' + $oralType + '/' + $givingGender + '/' + $oralRx + '/'>>
<<if $oralType === 'BJ'>>
<<if $givingGender === 'M'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<</switch>>
<<else>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,40) + '.webp'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,4) + '.webp'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,15) + '.webp'>>
<</switch>>
<</if>>
<<else>>
<<if $givingGender === 'M'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,5) + '.webp'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</switch>>
<<else>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<</switch>>
<</if>>
<</if>>
<img @src ="_tmpImg" height="450rem">
<<case 'CockSuck'>>
<<set _tmpImg = 'Media/Sex/Oral/' + $oralType + '/' + $givingGender + '/' + $oralRx + '/' + $oralAct + '/'>>
<<if $givingGender === 'M'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<</switch>>
<<else>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,13) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,6) + '.mp4'>>
<</switch>>
<</if>>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<<case 'Depethroat'>>
<<set _tmpImg = 'Media/Sex/Oral/' + $oralType + '/' + $givingGender + '/' + $oralRx + '/' + $oralAct + '/'>>
<<if $givingGender === 'M'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<</switch>>
<<else>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(0,0) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(0,0) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,4) + '.mp4'>>
<</switch>>
<</if>>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<<case 'BallSuck'>>
<<set _tmpImg = 'Media/Sex/Oral/' + $oralType + '/' + $givingGender + '/' + $oralRx + '/' + $oralAct + '/'>>
<<if $givingGender === 'M'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<</switch>>
<<else>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,4) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,3) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,6) + '.mp4'>>
<</switch>>
<</if>>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<<case 'ClitSuck'>>
<<set _tmpImg = 'Media/Sex/Oral/' + $oralType + '/' + $givingGender + '/' + $oralRx + '/' + $oralAct + '/'>>
<<if $givingGender === 'M'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,2) + '.mp4'>>
<</switch>>
<<else>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,2) + '.mp4'>>
<</switch>>
<</if>>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<<case 'PussyLick'>>
<<set _tmpImg = 'Media/Sex/Oral/' + $oralType + '/' + $givingGender + '/' + $oralRx + '/' + $oralAct + '/'>>
<<if $givingGender === 'M'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,2) + '.mp4'>>
<</switch>>
<<else>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg = 'Media/Sex/Oral/' + $oralType + '/' + $givingGender + '/' + $oralRx + '/FaceSit/'>>
<<set _tmpImg += random(1,3) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,3) + '.mp4'>>
<</switch>>
<</if>>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<<case 'TongueFuck'>>
<<set _tmpImg = 'Media/Sex/Oral/' + $oralType + '/' + $givingGender + '/' + $oralRx + '/' + $oralAct + '/'>>
<<if $givingGender === 'M'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,3) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<</switch>>
<<else>>
<<switch $oralRx>>
<<case 'Resist'>>
<<set _tmpImg = 'Media/Sex/Oral/' + $oralType + '/' + $givingGender + '/' + $oralRx + '/FaceSit/'>>
<<set _tmpImg += random(1,3) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'Happy'>>
<<set _tmpImg += random(1,3) + '.mp4'>>
<</switch>>
<</if>>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<</switch>>
<</widget>>
<<widget "getOralActions">>
<<timed 0s>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if $oralAct !== 'Intro'>>
<<button "Keep going" "OralScene">>
<<calcArousal 'bj' $arousalFactor 2>>
<</button>>
<</if>>
<<if $oralType === 'BJ'>>
<<if $oralAct !== 'BallSuck'>>
<<if $oralDir === 'Giving'>>
<<set _tmpLbl = 'Suck his balls'>>
<<else>>
<<set _tmpLbl = 'Make <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> suck your balls'>>
<</if>>
<<button "<<print _tmpLbl>>" "OralScene">>
<<set $oralAct = 'BallSuck'>>
<<set $arousalFactor = 1 + $bjSkill>>
<<calcArousal 'bj' $arousalFactor 2>>
<</button>>
<</if>>
<<if $oralAct !== 'CockSuck'>>
<<if $oralDir === 'Giving'>>
<<set _tmpLbl = 'Suck his cock'>>
<<else>>
<<set _tmpLbl = 'Make <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> suck your cock'>>
<</if>>
<<button "<<print _tmpLbl>>" "OralScene">>
<<set $oralAct = 'CockSuck'>>
<<set $arousalFactor = 3 + $bjSkill>>
<<calcArousal 'bj' $arousalFactor 2>>
<</button>>
<</if>>
<<if $oralAct !== 'Deepthroat' and $oralRx == 'Happy'>>
<<if $oralDir === 'Giving'>>
<<set _tmpLbl = 'Deepthroat his cock'>>
<<else>>
<<set _tmpLbl = 'Make <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> deepthroat your cock'>>
<</if>>
<<button "<<print _tmpLbl>>" "OralScene">>
<<set $oralAct = 'Deepthroat'>>
<<set $arousalFactor = 3 + $bjSkill>>
<<calcArousal 'bj' $arousalFactor 2>>
<</button>>
<</if>>
<<else>>
<<if $oralAct !== 'ClitSuck'>>
<<button "Suck her clit" "OralScene">>
<<set $oralAct = 'ClitSuck'>>
<<set $arousalFactor = 3 + $bjSkill>>
<<calcArousal 'cuni' $arousalFactor 2>>
<</button>>
<</if>>
<<if $oralAct !== 'PussyLick'>>
<td>
<<button "Lick her pussy" "OralScene">>
<<set $oralAct = 'PussyLick'>>
<<set $arousalFactor = 3 + $bjSkill>>
<<calcArousal 'cuni' $arousalFactor 2>>
<</button>>
</td>
<</if>>
<<if $oralAct !== 'TongueFuck'>>
<td>
<<button "Tongue fuck her" "OralScene">>
<<set $oralAct = 'TongueFuck'>>
<<set $arousalFactor = 3 + $bjSkill>>
<<calcArousal 'cuni' $arousalFactor 2>>
<</button>>
</td>
<</if>>
<</if>>
</div>
<<otherActs>>
<</replace>>
<</timed>>
<</widget>>
<<widget "getOralText">>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == $currDNA)>>
<<if $oralAct === 'Intro'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<if $oralType === 'BJ'>>
<<switch random(1,3)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
You find yourself suddenly face-to-face with a massive erection, the tip already weeping with excitement. Panic and revulsion seize you as your stomach lurches with realization of what's happening.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> marvels at the way your <<sizeDick $player>>cm cock,already oozing with anticipation, jumps and throbs in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> grip.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
His already hard cock pops into view just inches from your face. Up close it looks even larger, the swollen head leaking clear fluid. The strong musk fills your nostrils, making your head spin with dread and fear.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s eyes widen with undisguised hunger as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> takes in the sight of your erect cock standing proud before <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
You stare in disbelief at the erect penis swaying mere inches from your face. This has to be a nightmare, but the salty-musky smell filling your nose tells you how real this is.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> purrs, nuzzling <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face into your crotch and inhaling deeply.
<</if>>
<</switch>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
You kneel between her spread thighs, your stomach churning with revulsion at the sight and smell of her gaping, glistening slit.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> gasps in delight as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> catches a glimpse of your dripping folds, swollen and glistening with arousal
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Your nose wrinkles at the musky scent assaulting your senses as her pussy inches closer to your face.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> coos excitedly, scooting closer for a better view of your exposed pussy.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
You squeeze your eyes shut to try and block out the vision of her glistening folds inching close to your face.
<<else>>
You spread your legs wide, exposing your glistening, puffy folds to <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s hungry and appreciative gaze.
<</if>>
<</switch>>
<</if>>
<<case 'Willing'>>
<<if $oralType === 'BJ'>>
<<switch random(1,3)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
His member bobs slightly in time with his heartbeat. Taking a deep breath, you wrap your hand around the shaft and resign yourself to what's about to come.
<<else>>
With a sigh, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> looks up at your <<sizeDick>>cm cock with an expression somewhere between annoyance and resignation.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
You eyes his throbbing <<sizeDick _tmpNPC>>cm cock, and sigh in resignation, tentatively reaches up to grasp it in your hand.
<<else>>
Eyeing your throbbing cock, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> sighs in resignation tentatively reaches up to grasp it in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hand.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
You eye his erect cock with a mix of dread and reluctant acceptance, bracing yourself for the task ahead.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> eyes your erect cock with a mix of dread and reluctant acceptance, bracing <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>self for the task ahead.
<</if>>
<</switch>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Eyeing her exposed sex with a mix of mild curiosity and distaste, you note the glistening folds and obvious wetness. At at least she might be an easy cum.
<<else>>
With a noted a lack of enthusiasm, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> positions <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>self between your spread thighs.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
You gaze down at her exposed pussy with a mixture of mild interest and detachment.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> gazes down at your exposed pussy with a mixture of mild interest and detachment.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
With a heavy sigh, you lower your gaze to her exposed cunt, taking in the glistening pink flesh with a sense of detached obligation.
<<else>>
With a heavy sigh, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> lowers <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> gaze to your exposed cunt, taking in the glistening pink flesh with a sense of detached obligation.
<</if>>
<</switch>>
<</if>>
<<case 'Happy'>>
<<if $oralType === 'BJ'>>
<<switch random(1,3)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Your heart races as you gaze up at <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s erection bobbing inches from your face. You subconsiusly lick your lips hungrily, eyeing the thick shaft and swollen tip.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> eyes widen with undisguised lust as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> takes sight of your <<descDick $player>> rock hard cock, standing proud and ready for action.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Your eyes lock on the hard cock pointing at your face. The musky scent makes your head swim with desire.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> purrs, nuzzling <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face into your crotch and inhaling deeply.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
You gaze up at the hard cock swaying tantalizingly near your parted lips, pulse quickening with anticipation.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> breathes reverently, sinking to <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> knees before your exposed cock in a trance-like state.
<</if>>
<</switch>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
You inhale deeply, relishing the intoxicating aroma of her arousal.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> licks <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> stares at your exposed cunt, slick with arousal and practically begging to be claimed
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Your mouth waters in anticipation as you gaze upon her glistening, puffy lips.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> drinks in the sight of your dripping cunt with unabashed hunger, $NPCArray.find(npc => npc.dna == $currDNA).second mouth watering at the enticing aroma of your arousal.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Nose buried in her musky snatch, you inhale deeply, intoxicated by her heady scent.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> groans appreciatively, leaning in close to breathe in your intoxicating musk.
<</if>>
<</switch>>
<</if>>
<</switch>>
<<elseif $oralType === 'BJ'>>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == $currDNA)>>
/* sucking cock */
<<switch $oralAct>>
<<case "BallSuck">>
<<switch $oralRx>>
<<case 'Resist'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
You reluctantly take his heavy sack into your mouth, hating the musky taste and leathery texture.
<<else>>
You grunt, grinding your sack against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> furrows <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> brow but timidly laps at your wrinkled skin.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
The coarse hairs on his nut sack tickle your tongue as you lap at the sensitive skin.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> gags but reluctantly drags <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue across the wrinkled skin of your nut sack with obvious distaste.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
You reluctantly part your lips and take his heavy sack into your mouth, rolling the wrinkled skin around with your tongue.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips wrap around one of your testicles, suckling gently as you tighten your hand in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hair.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
Nose wrinkling in distaste, you part your lips and take his heavy sack into your mouth. Rolling the wrinkled skin around with your tongue, you try to ignore the pungent musk filling your nostrils.
<<else>>
Your other nut presses insistently against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> cheek as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> reluctantly suckles on the wrinkled skin over your left nut.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
Sucking tentatively, you explore the textured surface with your tongue, fighting your gag reflex. The musky flavor and pungent odor flood your senses as you reluctantly worship his most intimate area, hating how it makes your core clench with unwanted excitement.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> tongue hesitantly laps at the wrinkled skin before drawing one of my balls into <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hot little mouth.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Closing your eyes, you extend your tongue and begin lapping tentatively at his taint, trying to ingore the overwhelming flavor. He grinds himself against your face, smearing sweat and pre-cum across your cheeks.
<<else>>
Spit trickles down <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s chin as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> suckles halfheartedly, the lewd slurping sounds echoing in the soace around you.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Trembling with a mix of fear and reluctant arousal, you obey, parting your lips just enough for him to force his musky sack inside. The strong, pungent odor assaults your senses as his heavy balls press against your tongue and palate.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> works over your nuts with mechanical precision. Nursing them with half-hearted enthusiasmas spit dribbles down <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> chin.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Sucking on his sack you slurp and moan around his nuts, encouraging him to a quick finish.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> works over your nuts with dutiful diligence, nursing them with a combination of obligation and growing, unwanted excitement. Spit trickles down <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> chin as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> slurps and moans halfheartedly.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
With an inwward sigh of resigation, you begin nursing his musky ballsl. Your tongue swirls around the sweaty, wrinkled surface.
<<else>>
Drool leaks from the corners of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> slurps and moans halfheartedly on your balls, clearly going through the motions rather than enjoying the act.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
The acrid taste and strong odor of his ripe nuts coat your tongue as you nurse his sack with sloppy enthusiasm.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> begins to suck with hesitant enthusiasm, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue laving the sensitive surface of your sack as spit dribbles messily down <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> chin.
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Opening wide, you wrap your mouth around one testicle, suckling gently as you massage the other with your fingers. His thick cock twitches above you, smearing precum across your cheek.
<<else>>
Opening wide, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> takes one of your swollen testicles into <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> warm, wet mouth, swirling <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> tongue around it reverently.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
You wrap your lips around his nutsack and suck his balls into your mouth.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> swallows both of your nuts as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> begins to bob <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> head, slurping obscenely. The vibrations of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> moans around your aching balls drive you wild with need.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Smiling up at him coyly, you take his heavy balls into your mouth, savoring the musky scent and taste. Using your tongue, you bathe each orb in attention, suckling gently as you cup his sack.
<<else>>
Tangling your fingers in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hair, you guide <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> movements, urging <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to suck harder, faster, until you're certain you'll explode down <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> greedy face just from having your balls sucked.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
Your tongue dances along the wrinkled skin as you savor the rich, musky taste. Sucking hungrily, you roll his balls around on your tongue, enjoying the feeling of them swelling with need.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> traces <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue along the underside of your sack, following the prominent vein, before wrapping <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips around one hefty orb and sucking it between <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
Your tongue swirls around the wrinkled skin, savoring the salty-musk taste. Sucking and licking fervently, you worship his most intimate area, moaning at the overwhelming masculinity flooding your senses.
<<else>>
Opening <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth wide, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> engulf one of your nuts in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth. Spit dribbles down <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> chin as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> moans like a whore around your ball sack.
<</if>>
<</switch>>
<</switch>>
<<case "CockSuck">>
<<switch $oralRx>>
<<case 'Resist'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
You grudgingly wrap your lips around his thick shaft, hating the musky taste already flooding your senses.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> grudgingly wraps <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips around your hard shaft, grimacing the musky taste that floods <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Fighting your gag reflex, take him deeper into your mouth, tears pricking your eyes.
<<else>>
Spit bubbles from the corners of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> stretched lips as you piston in and out of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth, using <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> like a living fleshlight.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
The bitter, salty taste floods your senses, making your stomach churn. But your tongue curls automatically, tracing the pulsing vein along the bottom of his shaft.
<<else>>
Your balls slap against <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s chin as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> gags and chokes around your pistoning shaft.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
He groans as you suck half-heartedly, your tongue avoiding direct contact. Forced to take him deeper, you gag and sputter around his length.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> gag and sputter around your invading shaft, tears springing to <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> chokes on your <<descDick $player>> <<sizeDick $player>>cm cock.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
Gagging slightly, you begin to bob your head, tongue laving the underside half-heartedly. Resentment simmers as you work him, hating how his musky flavor floods your senses and a warmth spreads in your core despite your disgust.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> gags and chokes as your force my way inside <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>. <<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips constrict around around your invading shaft and tears stream down <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face as you press harder.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,3)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
You wrap your lips around the head of his cock, and drag your tongue along the underside with reluctant obedience.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips seal around your cock as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> begins to bob <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> head, but <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> technique is mechanical and unimpassioned. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> doesn't even bother to use <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue, simply moving up and down your length with a minimum of effort, as if fulfilling a chore.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Your movements are mechanical and detached, working his cock with our hot wet mouth without any real sense of genuine desire.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> movements are mechanical and detached, working your cock without any real sense of genuine desire.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
You wrap your mouth around his <<sizeDick _tmpNPC>>cm cock and begin to suck with minimal effort, your tongue barely brushing the sensitive underside.
<<else>>
<<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> wraps <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth around your <<sizeDick $player>>cm cock and begin to suck with minimal effort, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue barely brushing the sensitive underside.
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
You happily suck his <<descDick _tmpNPC>> <<sizeDick _tmpNPC>>cm cock into your mouth.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> happily sucks your <<descDick $player>> cock into <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
The taste of cock floods your mouth as his hard <<sizeDick _tmpNPC>>cm length rubs against your tongue.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> moans around your <<descDick $player>> <<sizeDick $player>> cock as you pump in and out of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
You take his rigid cock into your hungry mouth, savoring the heady taste. Using your tongue and lips skillfully, you work his thick shaft, determined to bring him pleasure.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> takes you into the warm cavern of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips wrapping around your <<descDick $player>> cock as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> begins to bob <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> head.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
You wrap your lips around his hard cock, savoring the taste. Sucking hungrily, you take him deeper, reveling in the feeling of him sliding against your tongue.
<<else>>
Swirling <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue around the swollen head of your <<descDick $player>> cock , <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> looks up at you before opening wide to engulf you in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> warm, wet mouth.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
Your tongue swirls around the swollen head before you start bobbing, suckling him deeply as he fills your senses with his raw masculinity.
<<else>>
Eyes closed in bliss, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> bobs <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> head, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips sealing around your hardness as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> swallows you down inch by glorious inch.
<</if>>
<</switch>>
<</switch>>
<<case 'TongueFuck'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Strong hands grip your hair painfully, pulling your face harder against her even as your tongue pounds in and out of her drippy pussy.
<<else>>
Grabbing a fistful of <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> hair, you yank <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> face right up against your dripping cunt as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> plunges <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> tongue in and out.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Her musky juices smear across your face as squeezes your probing tongue and laughs at your resistance.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> muffled protests and struggles only serve to turn you on more as you force your pussy down onto her tongue>>
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Rough hands seize your hair, jerking your head between her splayed thighs and mashing your face into her sticky folds as you desperately plunge your tongue in and out.
<<else>>
You force <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> head between your legs, holding <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> firmly in place as you grind your dripping cunt against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> probing tongue.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
Keeping your eyes squeezed shut you try to ignore her musky taste as you fuck her pussy with your tongue.
<<else>>
You grab <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> ears and shove <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face between your spread thighs, grinding your soaked cunt against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth until <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> gives in and starts tongue-fucking you.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
She hugs your face tight against her raging hot wet pussy as your tongue probes inside her.
<<else>>
You squeeze your thighs tight around <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> head, holding <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> in place and giving <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> no choice but to shove <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue in and out of your aching pussy.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
With a sigh, you extend your tongue and begin licking her slit in long, slow strokes, tracing her folds. As you reach her entrance, you thrust your tongue inside as far as it will go, probing her wet heat.
<<else>>
<<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> groans into your folds as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> starts lapping at your entrance, probing deeper with each stroke. <<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> thick tongue fills you up so good as it pumps in and out.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Drool runs down your chin as you eat her out with methodical thoroughness, even if the enthusiasm is lacking
<<else>>
<<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> seals his lips around your opening and begins tentatively licking, probing shallowly. <<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> technique is clumsy and hesitant, clearly not something <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> enjoys doing.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Without any real enthusiasm, you seal your lips around her entrance and thrust your tongue inside as far as it will reach. Her velvety walls clench around the invading muscle as you push deeper, probing and exploring her most intimate depths
<<else>>
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
You work your tongue in and out, fucking her hole in a mechanical motion. Your jaw aches from the effort as you maintain the relentless pace
<<else>>
With a sigh of resignation, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> extends <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue fully and starts pumping it in and out of your sopping wet channel. The sensation is intense but <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> keeps an awkward rhythm.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
She grinds against your face, seeking more stimulation, and you comply by thrusting your tongue deeper still, burying your nose against her clit as you urge her to climax and finish
<<else>>
<<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> tongue probes your entrance, pushing inside inch by inch as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> fucks you with his tongue. Each thrust is deliberate and mechanical, lacking any real enthusiasm or skill
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Leaning in, you drag your tongue slowly up her slit, savoring the sweet taste. You smile as she shudders and moans softly at the contact.
<<else>>
<<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> drag the flat of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue along your pussy lips teasingly before delving inside, penetrating you deeply with <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth. Your velvety walls embrace <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> probing tongue as it slides further in.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
You probe her entrance with the tip of your tongue. Inch by inch, you push inside, fucking her with your mouth as you moan in pleasure at her taste. Her velvety walls flutter around your invading muscle, welcoming you in.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> thrusts <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue rapidly in and out, tongue-fucking your cunt with reckless abandon. The obscene slurping sounds fill the air as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> laps at you hungrily, savoring every drop of your sweet nectar.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Gripping her ass, you tilt her hips to grant your tongue even greater access, determined to explore every secret corner of her velvety depths.
<<else>>
<<run capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> strokes your inner walls deliberately, making start to quiver and clench around the intruding muscle.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
You hold her steady, never letting up the relentless pace of your thrusting tongue, eager to make her come apart completely
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pushes the tip of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue past your entrance to probe your hot, silken depths. Inch by inch, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> slides inside, fucking you with <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
Her velvety walls envelop you as you slide deeper, fucking her with your tongue. Your hands grip her thighs, holding her open as you probe and explore every secret recess.
<<else>>
Gripping your hips, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> tilts them up to gain better access, determined to explore every secret corner of your dripping pussy.
<</if>>
<</switch>>
<</switch>>
<<case 'PussyLick'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<switch random(1,3)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Gingerly, you extend your tongue, running it along her slit letting her flavor coat your tastebuds.
<<else>>
Closing <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> extend <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue grudgingly, giving your pussy a single, half-hearted lick before pulling back, making it clear this is against <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> will.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
She yanks your face closer to her dripping cunt, grinding her hips against your mouth insistently as you hold your tongue out.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> forces <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue to extend and begin a perfunctory licking, tracing your folds in a detached halting manner.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Wincing, I bury my face between her thighs, obediently lapping at her slick folds despite my base resistance.
<<else>>
Biting back a grimace, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> extends <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue and drag it up your slit, the humiliation plain on <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,3)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Biting back a sigh of resignation, you lower you head between her legs and extend your tongue, dragging it up her slit in a single, perfunctory swipe.
<<else>>
With a grimace, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> extend <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue and begin to lap at your slick folds, the pungent aroma filling <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> nostrils as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> works <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue against your intimate areas as directed, each stroke a chore rather than an act of pleasure.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Your tongue drags slowly up her slit. The taste causes your nose to wrinkle as you lap mechanically at her folds
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s tongue drags slowly up your slit. The taste causes <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> nose to wrinkle as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> lap mechanically at your folds.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
You avoid eye contact with <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> and think about other things while you mechanically go through the motions of licking her pussy with your tongue.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s mind is clearly not on the task at hand and <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue only gives you a little pleasure.
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Your tongue traces the length of her slit, from her weeping entrance to the swollen bud at its apex. Her honey coats your taste buds, sweet and heady, making you crave more.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> laps at you like a $NPCArray.find(npc => npc.dna == $currDNA).genRef starved, savoring your nectar with relish. Each stroke sends jolts of pleasure shooting through your core, stoking the fire building within.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
You part her nether lips with your thumbs, exposing her glistening pink flesh. Slowly, deliberately, you run the flat of your tongue up one side and down the other, savoring her unique taste and texture. She quivers beneath you, whimpering with pleasure as you map out every sensitive fold and crevice with your oral attentions.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> devotion to pleasuring you is evident in every caress, every hum of appreciation against your sensitized flesh. Lost in ecstasy, you surrender yourself fully to <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> skillful mouth, giving <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> free reign to feast upon your dripping pussy.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Your tongue glides along her silken folds, tasting her essence as you worship her sex with long, slow licks. The velvet softness yields to your caress, growing slicker by the moment. You trace her labia delicately, teasing them apart to expose the tender flesh within
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> explores your depths with reverence, as if you're the most delicious treat $NPCArray.find(npc => npc.dna == $currDNA).firstRef's ever tasted. The tip of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue circles your clit before flicking rapidly over the swollen bud, sending shockwaves of bliss radiating outward.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
As you lap at her quiviner lips with your tongue, a low moan rumbles in your chest, vibrating against her most sensitive areas. The dual sensations of your warm breath and dexterous tongue make her tremble with need.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> tongue swirls and flicks mercilessly, driving you closer to the edge with each movement. Writhing in ecstasy, you fist your hands in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hair, holding <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> exactly where you need <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> most as he feasts upon your weeping sex like a $NPCArray.find(npc => npc.dna == $currDNA).genRef determined to wring every last drop of pleasure from you.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
Your tongue makes her buck against your face, her hands tangling in your hair as a keening cry escapes her throat. The taste of her desire floods your mouth, spurring you on.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> drinks in your essence greedily, lapping at your flowing juices like a $NPCArray.find(npc => npc.dna == $currDNA).genRef possessed. Lost in the throes of passion, you grind yourself shamelessly against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eager mouth, overwhelmed by the intensity of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> ardent ministrations.
<</if>>
<</switch>>
<</switch>>
<<case 'ClitSuck'>>
<<switch $oralRx>>
<<case 'Resist'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Unable to pull away, you surrender to the moment, wrapping your lips around her clit and suckling with forced resignation. She doesn't seem to notice your reluctance and bucks with pleasure at your contact.
<<else>>
Each labored breath and stifled groan reveals <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> internal battle as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> dutifully, if reluctantly, suckles on your clit.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
Reluctantly, you begin to move your muscle, flicking it over the sensitive nub in slow, deliberate strokes. Each touch elicits a choked moan from her lips, and you can't help but notice how her juices begin to flow more freely, coating your chin with her essence.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s expression is a mask of reluctant obedience even as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue flickers over your swollen bud.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
With great reluctance, you part your lips just enough to extend your tongue and brush it against her clit in the barest whisper of a touch. The contact is brief and perfunctory, designed to placate her without truly engaging in the act.
<<else>>
Despite <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> obvious distaste, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> persists, trapped in a cycle of degradation. Each labored breath and stifled groan speaks volumes of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> inner turmoil, a poignant contrast with the pleasure radiating from your hot wet center.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
Knowing you have no choice, you force yourself to open wider, sealing your lips around the throbbing bud. You suck with a minimum of effort, applying just enough pressure to satisfy her without actually enjoying the experience.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips brush against your sex with a grim determination, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> disgust palpable. Tentative licks and sucks follow as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> struggling to come to terms with the current situation..
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
Bracing yourself mentally, you part your lips wider and seal them around the throbbing nub, suckling with a minimum of enthusiasm. The taste of her juices invades your mouth, and you have to concentrate hard not to spit it out even as she throws her head back in ecstasy.
<<else>>
With each labored suck and nibble, you hear the stifled resentment in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> breathing and it spurns you onward to press your dripping pussy against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> grimacing face.
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
With a mix of resignation and obligation, you wrap your lips around her engorged clit, drawing it between them with a deliberate slowness. Your tongue swirls hesitantly, performing the required service without enthusiasm.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> mouth locks on around your sensitive clit, paying lip service to your needs without genuine passion. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> breaths are shallow, each exhale a soft protest against the indignity.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
A part of you rebels against this intimate act. Your mind whispers protests even as your mouth works obediently on her hard nub.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips wrap around your slit with a sense of reluctant dedication. Technically profficient, but lacking in desire and enthusiasm.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Your lips part reluctantly around her clit, the musky flavor of her arousal mingling unpleasantly with your reluctance. Your tongue darts out tentatively, tracing the contours of her sensitive bud, deriving no enjoyment even as her own pleasure is made clear.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips part reluctantly around your clit and <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue darts out tentatively, tracing the contours of your sensitive bud.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
Inner conflict wars within you - the urge to obey warring with revulsion. Each slow, deliberate suck feels like an betrayal to your own sensibilities.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s lips wrap reluctantly around your engorged clit, the suction lacking the fervor and deovtion. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> tongue dances with half-hearted motions, clearly going through the motions rather than savoring the intimacy.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
Even as you focus on pleasuring her, doubts and discontent simmer beneath the surface, making themselves known in your lackluster performance.
<<else>>
Despite the visible reluctance in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> demeanor, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> perseveres, lavishing attention on my most sensitive spot.
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Your mouth descends upon her aching clit, sucking it between your lips to bash it with your tongue as she writhes against you.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> mouth descends upon your aching clit, engulfing the sensitive nub completely. With a deep, guttural moan of pure satisfaction, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> suckles hard, drawing the bud between <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
A deep, appreciative moan rumbles in your chest as you suckle on her clit. Your tongue emerges to flick rapidly over the sensitive surface, alternating between broad strokes and targeted taps against the underside.
<<else>>
One hand grips your thigh, holding you open and exposed to <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> voracious appetite. The obscene sounds of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> sucking on your clit and the vibration of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> groans against your flesh send you hurtling towards the precipice
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
The dual sensations of the hard pull of your lips and the deft movements of your tongue have her thrashing beneath you, lost in a haze of overwhelming pleasure. You alternate between gentle nips and firm suckles, each change in pressure sending fresh waves of ecstasy crashing through her.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips seal around your clit as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> suckles with single-minded intensity, the pressure bordering on painfully perfect.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
Enclosing her clitoris within your eager lips, you apply steady suction, coaxing the sensitive organ to swell even further. Your tongue swirls around the engorged bud in figure-eight motions, each rotation sending jolts of electricity coursing through her veins.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> suckles hard, the suction intense enough to make your toes curl. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> tongue flattens against the swollen bud, flicking rapidly back and forth in a blur of motion.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
You vary the pressure of your tongue as you suck on her clit, alternating between light flicks and firm presses, never allowing her to acclimate to any single sensation. The taste of her arousal is intoxicating, fueling your fervor as you lose yourself in the act of worshipping her most intimate area.
<<else>>
The dual sensations of the hard pull of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> lips and the deft movements of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue have you thrashing beneath <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, lost in a haze of overwhelming pleasure. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> alternates between gentle nips and firm suckles, each change in pressure sending fresh waves of ecstasy crashing through you.
<</if>>
<</switch>>
<</switch>>
<<case "Deepthroat">>
<<switch $oralRx>>
<<case 'Resist'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<</switch>>
<<case 'Willing'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
<<else>>
<</if>>
<</switch>>
<<case 'Happy'>>
<<switch random(1,5)>>
<<case 1>>
<<if $oralDir === 'Giving'>>
Saliva drips down your chin as you bob your head, relishing the taste and texture of his hard cock as it stuffs your throat full. Your nose presses against his pelvis with each descent as you gag and choke on his rod.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> throat constricts around your thick length, massaging you expertly as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> bobs <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> head. Wet, slurping sounds fill the air, evidence of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> dedicated efforts to please you.
<</if>>
<<case 2>>
<<if $oralDir === 'Giving'>>
The girth of his member expands your jaw, challenging your limits. Still, you persist, determined to bring him ultimate pleasure. Your tongue works feverishly, massaging the underside of his shaft as you squeeze him with your throat muscles.
<<else>>
With each thrust, you hit the back of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> throat, causing <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to gag slightly. But <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> doesn't stop, instead spurred on by the challenge. <<print $NPCArray.find(npc => npc.dna == $currDNA).firstref>> relaxes <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> throat, letting you slide in even deeper.
<</if>>
<<case 3>>
<<if $oralDir === 'Giving'>>
Your eyes water and you struggle to breath, but you don't care. All that matters is pleasuring him, feeling his pulsing shaft deep inside you. You swallow around him, milking his cock with your throat muscles.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> takes you balls deep, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> nose pressed against your pubic bone. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> throat convulses around your cock, milking you mercilessly. The tight, wet heat enveloping you is indescribable.
<</if>>
<<case 4>>
<<if $oralDir === 'Giving'>>
Drool escapes the corners of your mouth, dripping onto your heaving breasts. The obscene sounds of your wet sucking fill the room. You glance up at him, meeting his lust-filled gaze, silently begging for more as you relax your throat more to let him in even deeper
<<else>>
Tears stream down <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face, mixing with the drool dripping from <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> chin as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> gags on your <<descDick $player>> cock. Yet, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> never breaks eye contact, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> gaze burning with desire and submission.
<</if>>
<<case 5>>
<<if $oralDir === 'Giving'>>
His strong hands grip your hair, guiding your movements. You surrender control, letting him fuck your face and throat at his desired pace. The raw, primal act consumes you entirely, driving you wild with desire to satisfy him completely.
<<else>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> throat contracts around your cock, gripping you tightly as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> struggles to suppress <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> gag reflex. Each involuntary squeeze sends waves of pleasure through your shaft.
<</if>>
<</switch>>
<</switch>>
<</switch>>
<</if>>
<</widget>>
<<widget "calcOralRx">>
<<if _args[0] === 'Giving'>>
/* calc skill */
<<if $player.sexStats.bj_give >= 35>>
/*Advanced*/
<<set $bjSkill = 3>>
<<elseif $player.sexStats.bj_give >= 15>>
/*Moderate*/
<<set $bjSkill = 2>>
<<else>>
/*Beginner*/
<<set $bjSkill = 1>>
<</if>>
/* calc enthusiasm */
<<if ($player.prefs.gender === 'Female' and $oralType === 'BJ') or ($player.prefs.gender === 'Male' and $oralType === 'Cuni')>>
/*not very enthusiastic */
<<if $player.slutLevel < 3>>
<<set $oralRx = 'Resist'>>
<<else>>
<<set $oralRx = 'Willing'>>
<</if>>
<<else>>
<<if $player.slutLevel < 3>>
<<set $oralRx = 'Willing'>>
<<else>>
<<set $oralRx = 'Happy'>>
<</if>>
<</if>>
<<else>>
<<set $bjSkill = 3>>
<<set $oralRx = 'Happy'>>
<</if>>
<</widget>>
<<widget "oralPowerDown">>
<<unset $oralType>>
<<unset $oralText>>
<<unset $oralType>>
<<unset $oralDir>>
<<unset $sceneDir>>
<<unset $bjSkill>>
<<unset $txtSkill>>
<</widget>><<run $player.statBuffs.femBuff += 2>>
<<set $player.statBuffs.dancing += 2>>
<<set $stripperTimeLimit = ($gameDate.getHours()*60 + $gameDate.getMinutes()) + 10>>
<<genFit $player.outfit.fit>>
<<set $stripperScore = $player.beautyScore/2>>
<<if !$player.isNude>>
<<set $stripperFit = {
top: $clothingObj.stats.top,
btm: $clothingObj.stats.btm,
bra: $player.outfit.bra,
panties: $player.outfit.panties
}
>>
<</if>>
<<if $player.body.tits === 3>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Stage/Show/Self/Start/ZCup/1.webp'>>
<<else>>
<<set _tmpImg = 'Media/Locations/RedLight/BBungalow/Stage/Show/Self/Start/' + random(1,8) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height ="600rem" >
<br><br>
You take your position, waiting for the lights and your selected music to start.
<br><br>
The crowd is hushed and excited as your show begins.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Start the show">>
<<exerciseImpact "Cardio" 1>>
<<set $currAct = 'Dance'>>
<<goto 'StripperStage'>>
<</button>>
</div>
</div><<calcArousal 'strip', 1>>
<div class='sexScene'>
<center>
<<getStripperClips>>
</center>
<br>
<center>
<div id="repCont">
<<getStripperText>>
</div>
</center>
<hr>
<div id="actionsContainer">
<<getStripperActions>>
</div>
</div>
<<timed 0s>>
<<if ($gameDate.getHours()*60 + $gameDate.getMinutes()) >= $stripperTimeLimit>>
<<replace "#repCont">>
<b>The DJ calls the end of your segment and fades the lights down to let you exit the stage</b>
<br><br>
"Everyone give a big round of applause to $player.stripperName!"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Go backstage">>
<<if $isAmateurNight === true>>
<<if $preStripperFit>>
<<set $stripperScore += 2>>
<<else>>
<<genFit $player.outfit.fit>>
<<if calcFitInhib($clothingObj) < 80>>
<<set $stripperScore += 2>>
<<else>>
<<set $stripperScore -= 2>>
<</if>>
<</if>>
<<if $stripperFit.top == 'Off'>>
<<set $stripperScore += 1>>
<</if>>
<<if $stripperFit.btm == 'Off'>>
<<set $stripperScore += 2>>
<</if>>
<<if $player.skills.dancing < 2>>
<<if $player.beautyScore >= 10>>
<<set $stripperScore -= 4>>
<<else>>
<<set $stripperScore = $stripperScore /2>>
<</if>>
<<elseif $player.skills.dancing < 5>>
<<set $stripperScore -= 3>>
<<elseif $player.skills.dancing < 7>>
<<set $stripperScore += 1>>
<<else>>
<<set $stripperScore += 5>>
<</if>>
<<addMins 2>>
<<goto "PostAMNight">>
<<else>>
<<addMins 2>>
<<goto "BBStripperPostStage">>
<</if>>
<</button>>
</div>
<</replace>>
<</if>>
<</timed>><<widget "getStripperClips">>
<<set _tmpVid = 'Media/Locations/RedLight/BBungalow/Stage/Show/Self/'>>
<<if $stripperFit.top != 'Off' and $stripperFit.btm != 'Off'>>
<<switch $currAct>>
<<case 'Dance'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Dance/ZCup/' + '11' + random(1,8) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Dance/' + '11' + random(1,5) + '.mp4'>>
<</if>>
<<case 'Spin'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Spin/ZCup/' + '11' + random(1,5) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Spin/' + '11' + random(1,4) + '.mp4'>>
<</if>>
<<case 'Twerk'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Twerk/ZCup/' + '11' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Twerk/' + '11' + random(1,4) + '.mp4'>>
<</if>>
<</switch>>
<<elseif $stripperFit.top != 'Off' and $stripperFit.btm === 'Off'>>
<<switch $currAct>>
<<case 'Dance'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Dance/ZCup/' + '10' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Dance/' + '10' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Spin'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Spin/ZCup/' + '10' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Spin/' + '10' + random(0,0) + '.mp4'>>
<</if>>
<<case 'Twerk'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Twerk/ZCup/' + '10' + random(1,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Twerk/' + '10' + random(1,3) + '.mp4'>>
<</if>>
<</switch>>
<<elseif $stripperFit.top === 'Off' and $stripperFit.btm != 'Off'>>
<<switch $currAct>>
<<case 'Dance'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Dance/ZCup/' + '01' + random(1,7) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Dance/' + '01' + random(1,9) + '.mp4'>>
<</if>>
<<case 'Spin'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Spin/ZCup/' + '01' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Spin/' + '01' + random(1,2) + '.mp4'>>
<</if>>
<<case 'Twerk'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Twerk/ZCup/' + '01' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Twerk/' + '01' + random(1,3) + '.mp4'>>
<</if>>
<</switch>>
<<elseif $stripperFit.top === 'Off' and $stripperFit.btm === 'Off'>>
<<switch $currAct>>
<<case 'Dance'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Dance/ZCup/' + '00' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Dance/' + '00' + random(1,10) + '.mp4'>>
<</if>>
<<case 'Spin'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Spin/ZCup/' + '00' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Spin/' + '00' + random(1,2) + '.mp4'>>
<</if>>
<<case 'Twerk'>>
<<if $player.body.tits === 13>>
<<set _tmpVid += 'Twerk/ZCup/' + '00' + random(0,0) + '.mp4'>>
<<else>>
<<set _tmpVid += 'Twerk/' + '00' + random(1,2) + '.mp4'>>
<</if>>
<</switch>>
<</if>>
<video @src="_tmpVid" height="450rem" autoplay loop></video>
<</widget>>
<<widget "getStripperText">>
/* player RX */
<<if $player.inhib > 83>>
<<switch random(1,3)>>
<<case 1>>
Your facial expressions range from grimace to pained smile, never quite landing on anything resembling actual enjoyment. It's clear to everyone watching that you'd rather be anywhere else but up on that stage.
<<case 2>>
Shame burns hot on your cheeks as you fumble with your costume, struggling to maintain any semblance of composure. With each article removed, you feel increasingly small and exposed, wishing desperately to disappear.
<<case 3>>
You gyrate your hips stiffly, arms held rigidly at your sides. Each movement feels forced, unnatural. Inside, your mind screams at you to stop, to run offstage and never look back. But your feet keep moving, propelling you forward despite your inner protests.
<<case 4>>
Never in your wildest dreams did you picture yourself stripping for money, reduced to mere eye candy for these salivating perverts. Each sway of your hips and shake of your breasts leaves you feeling dirty, tainted, like you'll never wash off the stain of this experience. All you want is for this nightmare to end.
<</switch>>
<<elseif $player.inhib > 50>>
<<switch random(1,4)>>
<<case 1>>
You force yourself to keep moving, even as every fiber of your being screams at you to stop. Each seductive sway of your hips feels wrong, like you're betraying some fundamental part of yourself. The leering gazes from the audience make you feel conflicted and you turn to face another direction as you gryate and shake your body.
<<case 2>>
The steps flow together more easily than expected, though your technique could use some polishing. You risk a glance at the crowd and are surprised to see smiles instead of sneers. Could it be possible that they actually enjoy watching an amateur like you fumbling her way through? Emboldened, you add a playful wiggle to your walk, earning appreciative chuckles. Maybe this won't be so bad after all.
<<case 3>>
Sweat beads along your brow, dripping into your eyes and blurring your vision. The room spins dizzyingly around you, disorienting and overwhelming. But you keep focused on the dance, pushing through your nerves to try and put on a good show.
<<case 4>>
It's almost as if you're watching yourself from above, detached and clinical. The music thumps distantly in your ears, muffled by the roar of blood rushing through your veins. You can feel your body going through the dance steps, but you don't recall making the decisions.
<</switch>>
<<else>>
<<switch random(1,4)>>
<<case 1>>
You throw yourself into the dance with abandon, letting the rhythm course through your veins. Each sensual movement is calculated to draw maximum admiration, your body a weapon of mass seduction. You revel in the power you hold over these men, basking in their lustful gazes.
<<case 2>>
Catcalls and whistles fill the air, spurring you on to greater heights of daring. You preen and pose, showcasing your assets to maximum effect. The spotlight caresses your skin like a lover's touch, highlighting every curve and contour. Lost in the moment, you let your inhibitions fall away one by one, surrendering completely to the primal allure of exhibitionism.
<<case 3>>
You strut and sway, putting on a show that would make even professional strippers envious. Your hips gyrate hypnotically, casting a spell over the entranced crowd.
<<case 4>>
Lost in the throes of your performance, you surrender completely to the primal rhythm of the music. Your body moves with a life of its own, flowing effortlessly from one sinuous pose to the next as you drink in the attention raining down on you.
<</switch>>
<</if>>
<br><br>
/*player dance skill */
<<if $player.skills.dancing < 2>>
<div class="badText">
<<switch random(1,3)>>
<<case 1>>
You attempt to mimic the fluid, sensual movements of the other dancers, but your own body betrays you at every turn. Instead of smooth rolls and sways, your hips jerk stiffly from side to side like a malfunctioning robot.
<<case 2>>
There's no hiding your utter lack of coordination. Arms akimbo, you stumble through basic turns and spins, looking more like a drunken giraffe than a seductive siren. The only saving grace is that the dim lighting masks the worst of your two-left-footed fumbles.
<<case 3>>
When it comes time for the obligatory booty shake, you bend over and wiggle your rear end with all the finesse of a dog scratching its butt on the carpet. Rather than enticing, it comes across as mildly disturbing.
<</switch>>
</div>
<<elseif $player.skills.dancing < 5>>
<<switch random(1,3)>>
<<case 1>>
Bending over to shake your money maker, you nearly topple headfirst into the lap of some poor schmuck in the front row.
<<case 2>>
You manage to hit most of the marks in your routine, but there's a noticeable lack of fluidity to your movements. Transitions between poses are choppy, like watching a video buffering every few seconds.
<<case 3>>
Your moves aren't horrible, just...unpolished. Like a rough draft of a striptease. There's potential there, buried under layers of self-consciousness and lack of training.
<</switch>>
<<elseif $player.skills.dancing < 7>>
<<switch random(1,3)>>
<<case 1>>
You move with a decent amount of rhythm, hitting most of the beats in the music. While not exactly graceful, your movements are passable. You manage to execute a few impressive spins and dips, earning some appreciative whistles from the crowd.
<<case 2>>
Your dance skills aren't terrible, allowing you to keep up with the tempo of the song. You sway your hips sensually, rolling your body in time with the beat and all eyes are on you.
<<case 3>>
You manage to pull off most of the required moves without too much difficulty, but your pose transitions are sometimes a bit rusty.
<</switch>>
<<else>>
<div class="goodText">
<<switch random(1,3)>>
<<case 1>>
You glide across the stage with the poise and grace of a prima ballerina, every movement fluid and effortless. Your hips sway hypnotically, drawing all eyes to the seductive curve of your waist. With each sensual roll of your body, you radiate raw sexual energy, ensnaring the audience in your web of desire.
<<case 2>>
Like a serpentine goddess, you weave and writhe, your lithe form undulating to the pulsating beat. Each gyration is a masterclass in seduction, designed to inflame the senses and ignite carnal fantasies. You caress your own body with delicate hands, tracing the contours of your breasts and thighs.
<<case 3>>
You command the stage with the authority of a seasoned professional, leaving no doubt that you were born to perform. Every thrust and shake of your body radiates sexuality through the entire room.
<</switch>>
</div>
<</if>>
<</widget>>
<<widget "getStripperActions">>
<div class="buttonContainer">
<<button "Keep going" "StripperStage">>
<<exerciseImpact "Cardio" 1>>
<<if $stripperFit.top === 'Off' and $stripperFit.btm === 'Off'>>
<<set $tipAmount += random(0,1)>>
<<else>>
<<set $tipAmount += random(0,0)>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<if $currAct != 'Dance'>>
<<button 'Dance'>>
<<exerciseImpact "Cardio" 1>>
<<if $stripperFit.top === 'Off' and $stripperFit.btm === 'Off'>>
<<set $tipAmount += random(1,2)>>
<<else>>
<<set $tipAmount += random(0,1)>>
<</if>>
<<set $currAct = 'Dance'>>
<<goto "StripperStage">>
<</button>>
<</if>>
<<if !['Spin','Twerk'].includes($currAct)>>
<<button 'Use the pole'>>
<<exerciseImpact "Cardio" 1>>
<<if $stripperFit.top === 'Off' and $stripperFit.btm === 'Off'>>
<<set $tipAmount += random(1,2)>>
<<else>>
<<set $tipAmount += random(0,1)>>
<</if>>
<<set $currAct = 'Spin'>>
<<goto "StripperStage">>
<</button>>
<</if>>
<<if ['Spin','Twerk'].includes($currAct)>>
<<if $currAct != 'Spin'>>
<<button 'Spin'>>
<<exerciseImpact "Cardio" 1>>
<<if $stripperFit.top === 'Off' and $stripperFit.btm === 'Off'>>
<<set $tipAmount += random(1,2)>>
<<else>>
<<set $tipAmount += random(0,1)>>
<</if>>
<<set $currAct = 'Spin'>>
<<goto "StripperStage">>
<</button>>
<</if>>
<<if $currAct != 'Twerk'>>
<<button 'Twerk'>>
<<if $stripperFit.top === 'Off' and $stripperFit.btm === 'Off'>>
<<set $tipAmount += random(1,2)>>
<<else>>
<<set $tipAmount += random(0,1)>>
<</if>>
<<set $currAct = 'Twerk'>>
<<goto "StripperStage">>
<</button>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<if $stripperFit.top != 'Off'>>
<<button "Take your top off">>
<<if $player.inhib < 83>>
<<run $player.statBuffs.femBuff += 1>>
<<addSecs 30>>
<<set $stripperFit.top = 'Off'>>
<<goto "StripperStage">>
<<else>>
<<replace '#repCont'>>
<div class="badText">You slip your thumbs under the strap of your skimpy top and hesitate - you can't go through with it! You feel a blush forming on your face as you realize you're not ready for this after all</div>
<</replace>>
<</if>>
<</button>>
<</if>>
<<if $stripperFit.btm != 'Off'>>
<<button "Take your bottoms off">>
<<run $player.statBuffs.femBuff += 2>>
<<addSecs 30>>
<<if $player.body.gender != 'Female'>>
<<replace '#repCont'>>
<div class="badText">You can't show them your cock - you'll be disqualified and run out of the place!</div>
<</replace>>
<<else>>
<<if $player.inhib < 80>>
<<addSecs 30>>
<<set $stripperFit.btm = 'Off'>>
<<goto "StripperStage">>
<<else>>
<<replace '#repCont'>>
<div class="badText">You slip your thumbs under the waistband of your slutty outfit and hesitate - you can't go through with it! You feel a blush forming on your face as you realize you're not ready for this after all</div>
<</replace>>
<</if>>
<</if>>
<</button>>
<</if>>
</div>
<</widget>>
<<widget 'endStripShow'>>
<<if $preStripperFit>>
<<set $pickedFit = $preStripperFit>>
<<wearFit $pickedFit 'Auto'>>
<</if>>
<<unset
$stripperTimeLimit
$stripperFit
$stripperScore
$tipAmount
$preStripperFit
>>
<</widget>><<set $tittyFuckAct = 'Intro'>>
<<set $npcCum = 0>>
<<if $tittyFuckDir === 'Giving'>>
<<set $isSub = 0>>
<<set $tfGen = 'M'>>
<<set $arousalFactor = 2>>
<<set
$player.outfit.fit = 0;
$player.outfit.panties = 0;
>>
<<if $player.dom > 30 and ['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender)>>
<<set $femPos = 'OnBot'>>
<<else>>
<<set $femPos = 'OnTop'>>
<</if>>
<<else>>
<<if ['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender)>>
<<set $arousalFactor = 2>>
<<else>>
<<set $arousalFactor = .5>>
<</if>>
<<set $tfGen = $player.presenting[0]>>
<<set
$player.outfit.fit = 0;
$player.outfit.bra = 0;
>>
<<if $isSub or random(1,100) > 50>>
<<set $femPos = 'OnBot'>>
<<else>>
<<set $femPos = 'OnTop'>>
<</if>>
<</if>>
/* calculate happiness of giver */
<<calcTittyFuckRx>>
<<if $tittyFuckRx === 'Resist'>>
<<set $isSub = true>>
<<set $femPos = 'OnTop'>>
<<set $tittyFuckAct = 'Resist'>>
<</if>>
<<goto 'TittyFuckScene'>><div class='sexScene'>
<<getTittyFuckClips>>
<br><br>
<<calcOrgBar $player.dna>>
<<calcOrgBar $currDNA>>
<br>
<div id="cumNotice">
<<getTittyFuckText>>
</div>
</div>
<hr>
<div id="actionsContainer">
<<getTittyFuckActions>>
</div>
<<calcOrgasm $currDNA>>
<<calcOrgasm $player.dna>>
<<timed 0s>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).justCame>>
<<if $tittyFuckDir === 'Getting'>>
<<set $cumDir = 'Getting'>>
<<else>>
<<set $cumDir = 'Giving'>>
<</if>>
<<set $cumAct = 'TittyFuck'>>
<<set $cumDNA = $currDNA>>
<<set $cumRx = $tittyFuckRx>>
<<getCumActions>>
<<elseif $player.justCame>>
<<set $cumDir = $tittyFuckDir>>
<<set $cumAct = 'TittyFuck'>>
<<set $cumDNA = $player.dna>>
<<set $cumRx = $tittyFuckRx>>
<<getCumActions>>
<</if>>
<</timed>><<widget "getTittyFuckActions">>
<<if !(['Intro','Resist','CockSlap'].includes($tittyFuckAct)) or $tittyFuckDir === 'Giving'>>
<div class="buttonContainer">
<<button "Keep going" "TittyFuckScene">>
<<if $tittyFuckDir === 'Giving'>>
<<if random(1,10) > 5 or $tittyFuckAct === 'Intro'>>
<<set _randList = ['Squeeze','Spit','LickTip']>>
<<set $tittyFuckAct = _randList[random(0,_randList.length-1)]>>
<</if>>
<</if>>
<<calcArousal 'tittyFuck' $arousalFactor 2>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<if $tittyFuckDir === 'Getting'>>
<<if ['Resist','CockSlap'].includes($tittyFuckAct)>>
<<button 'Let him continue' 'TittyFuckScene'>>
<<set $tittyFuckAct = 'Resist'>>
<<calcArousal 'tittyFuck' $arousalFactor 2>>
<</button>>
<<if $tittyFuckAct != 'CockSlap'>>
<<button 'Resist' 'TittyFuckScene'>>
<<set $tittyFuckAct = 'CockSlap'>>
<<calcArousal 'tittyFuck' $arousalFactor 2>>
<</button>>
<</if>>
<<else>>
<<if $tittyFuckAct != "Squeeze">>
<<if $tittyFuckDir === 'Getting'>>
<<set _tmpLbl = 'Squeeze your tits'>>
<<else>>
<<set _tmpLbl = 'Pump your hips'>>
<</if>>
<<button '_tmpLbl' 'TittyFuckScene'>>
<<set $tittyFuckAct = 'Squeeze'>>
<<calcArousal 'tittyFuck' $arousalFactor 2>>
<</button>>
<</if>>
<<if $tittyFuckAct != 'Spit'>>
<<if $tittyFuckDir === 'Getting'>>
<<set _tmpLbl = 'Spit down your cleavage'>>
<<else>>
<<set _tmpLbl = 'Tell <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to spit on your cock'>>
<</if>>
<<button '_tmpLbl' 'TittyFuckScene'>>
<<set $tittyFuckAct = 'Spit'>>
<<calcArousal 'tittyFuck' $arousalFactor 2>>
<</button>>
<</if>>
<<if $tittyFuckAct != 'LickTip'>>
<<if $tittyFuckDir === 'Getting'>>
<<set _tmpLbl = 'Use your tongue'>>
<<else>>
<<set _tmpLbl = 'Tell <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to use <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue'>>
<</if>>
<<button '_tmpLbl' 'TittyFuckScene'>>
<<set $tittyFuckAct = 'LickTip'>>
<<calcArousal 'tittyFuck' $arousalFactor 2>>
<</button>>
<</if>>
<</if>>
<</if>>
<<if !['Resist','CockSlap'].includes($tittyFuckAct)>>
<<otherActs>>
<</if>>
</div>
<</widget>>
<<widget "getTittyFuckClips">>
<<switch $tittyFuckAct>>
<<case "Intro">>
<<set _tmpImg = 'Media/Sex/TittyFuck/' + $femPos + '/Intro/'>>
<<if $femPos === 'OnTop'>>
<<set _tmpImg += random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,4) + '.webp'>>
<</if>>
[img[tittyFuckImg|_tmpImg]]
<<case 'Spit'>>
<<set _tmpImg = 'Media/Sex/TittyFuck/' + $femPos + '/Spit/'>>
<<if $femPos === 'OnTop'>>
<<set _tmpImg += random(1,3) + '.mp4'>>
<<else>>
<<set _tmpImg += random(1,2) + '.mp4'>>
<</if>>
<video @src="_tmpImg" autoplay loop></video>
<<case 'Squeeze'>>
<<set _tmpImg = 'Media/Sex/TittyFuck/' + $femPos + '/Squeeze/'>>
<<if $femPos === 'OnTop'>>
<<set _tmpImg += random(1,23) + '.mp4'>>
<<else>>
<<set _tmpImg += random(1,12) + '.mp4'>>
<</if>>
<video @src="_tmpImg" autoplay loop></video>
<<case 'LickTip'>>
<<set _tmpImg = 'Media/Sex/TittyFuck/' + $femPos + '/Lick/'>>
<<if $femPos === 'OnTop'>>
<<set _tmpImg += random(1,6) + '.mp4'>>
<<else>>
<<set _tmpImg += random(1,5) + '.mp4'>>
<</if>>
<video @src="_tmpImg" autoplay loop></video>
<<case 'Resist'>>
<<set _tmpImg = 'Media/Sex/TittyFuck/' + $femPos + '/Resist/' + random(1,11) + '.mp4'>>
<video @src="_tmpImg" autoplay loop></video>
<<case 'CockSlap'>>
<<set _tmpImg = 'Media/Sex/TittyFuck/' + $femPos + '/CockSlap/' + random(1,2) + '.mp4'>>
<video @src="_tmpImg" autoplay loop></video>
<</switch>>
<</widget>>
<<widget "getTittyFuckText">>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == $currDNA)>>
<<switch $tittyFuckAct>>
<<case 'Intro'>>
<<if $tittyFuckDir === 'Getting'>>
<<if $player.slutLevel < 3 and !(['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender))>>
<<if $player.sexStats.tittyfuck_get < 10 or !(['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender))>>
You can't believe you're actually letting this man fuck your tits, but it's better then some of the other options so you decide to just get it over with as fast as possible.
<<elseif $player.sexStats.tittyfuck_get < 20>>
You giggle as you feel the veins and bumps on his rock hard shaft slide over the sensitive skin between your <<descTits $player>> tits. There's something to be said for a good titty fuck after all.
<<else>>
You add a little bounce as you pump your soft silky tits around his shaft, <<if (['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender))>>loving having a cock between your tits and enjoying how much pleasure you can give to another person with just your melons.>><<else>>enjoying how much pleasure you can give to another person, even if it is a guy, with just your melons.<</if>>
<</if>>
<<elseif $aggroTF>>
You stare in helpless shock as he starts pumping his huge cock back and forth between your tits as your body starts to respond despite your resistance!
<<else>>
You close your eyes and let his cock pump between your silky soft tits, there's nothing like having a nice hard cock sliding between your melons and you love every moment of it.
<</if>>
<<else>>
You bite your lower lip as her soft tits wrap around your <<descDick $player>> cock.
<</if>>
<<case 'Resist'>>
<<switch random(1,5)>>
<<case 1>>
<<if $tittyFuckDir === 'Getting'>>
Panic grips you as he roughly forces his cock between your <<sizeTits $player>> tits. The hot, rigid flesh of his <<descDick _tmpNPC>> a cruel contrast to your soft, yielding breasts. Tears well in your eyes at the violation, your mind reeling with horror.
<<else>>
<</if>>
<<case 2>>
<<if $tittyFuckDir === 'Getting'>>
Veins bulge on his shaft as he slams it repeatedly into your cleavage, the brutal motion jostling you painfully. Each thrust is a declaration of dominance, reducing you to nothing more than a fuck toy for his pleasure.
<<else>>
<</if>>
<<case 3>>
<<if $tittyFuckDir === 'Getting'>>
Despair washes over you as his cock spears between your breasts, the unyielding intrusion making you feel broken and used. Each ruthless thrust drives home your powerlessness.
<<else>>
<</if>>
<<case 4>>
<<if $tittyFuckDir === 'Getting'>>
Pain and humiliation sear through you with each violent thrust, his heavy balls smacking your tender skin. He uses you without mercy, a mere plaything for his twisted desires, leaving you broken and shattered in his wake.
<<else>>
<</if>>
<<case 5>>
<<if $tittyFuckDir === 'Getting'>>
His <<sizeDick _tmpNPC>>cm cock plunges between your jiggling <<descTits $player>> tits, veiny ridges scraping against sensitive flesh. Each brutal thrust sends jolts of shame and humiliation through you, his possession all too real.
<<else>>
<</if>>
<</switch>>
<<case 'CockSlap'>>
<<switch random(1,2)>>
<<case 1>>
<<if $tittyFuckDir === 'Getting'>>
He yanks his steel-hard cock out from between your tits and cracks it against your cheek with a resounding thwack. The shock waves ripple through your skull, leaving a stinging impression on tender skin. He slips back between your tits, confident you'll be more obedient.
<<else>>
<</if>>
<<case 2>>
<<if $tittyFuckDir === 'Getting'>>
A gasp escapes your lips as he smacks his <<descDick _tmpNPC>> cock across your face for your disobedience. Without another word he picks back up where he left off between your tits.
<<else>>
<</if>>
<</switch>>
<<case 'Squeeze'>>
<<switch random(1,5)>>
<<case 1>>
<<if $tittyFuckDir === 'Getting'>>
His <<descDick _tmpNPC>> cock pulses to his heartbeat as it glides between your pillowy breasts, the hot steel a stark contrast to your tender flesh as you squeeze your tits tighter around his pistoning rod.
<<else>>
Your rigid cock slides between her <<descTits _tmpNPC>> breasts, veiny flesh rubbing against supple mounds. She looks up you and smiles as she squeezes her tits tighter.
<</if>>
<<case 2>>
<<if $tittyFuckDir === 'Getting'>>
Squeezing your tits tight around his shaft only encourages him. He picks up speed, pistoning in and out of your cleavage with animalistic hunger, reveling in the debauched spectacle of your heaving breasts wrapped around his meaty shaft.
<<else>>
You thrust again and again, buring yourself deeper in her cleavage, balls slapping her belly.
<</if>>
<<case 3>>
<<if $tittyFuckDir === 'Getting'>>
Your hands clamp around your tits, squeezing them tight to envelop his thrusting cock. The head pokes out from between your mounds, mesmerizing you.
<<else>>
Her breasts engulf your pulsing <<sizeDick $player>>cm cock, soft flesh conforming to every ridge and vein. Each glide between her massive mounds sends tingles racing up your spine.
<</if>>
<<case 4>>
<<if $tittyFuckDir === 'Getting'>>
His heavy balls smack your stomach with each stroke. The rhythmic squelch of his dick buried in your cleavage fills the air, punctuated by your ragged breathing.
<<else>>
Lost in the sensation, you piston in and out of her <<descTits _tmpNPC>> breasts. Her moans spur you on, driving you to claim her tits as your fuck toy.
<</if>>
<<case 5>>
<<if $tittyFuckDir === 'Getting'>>
He looms over you, a dominating figure, and you're drawn to the intensity etched on his face. A part of you craves this roughness, the feel of his cock between your tits, and you squeeze your <<descTits $player>> tits around him event tighter.
<<else>>
Her breasts swallow your throbbing cock, velvet softness caressing every inch. Each pass stokes the flames of your desire, your balls drawing up tight.
<</if>>
<</switch>>
<<case 'Spit'>>
<<switch random(1,5)>>
<<case 1>>
<<if $tittyFuckDir === 'Getting'>>
You spit down onto his pistoning cock, slickening the slide between your tits. His veined shaft grinds against your sensitive skin, igniting sparks with each thrust.
<<else>>
Her spit coats your cock as it plunges between her<<descTits _tmpNPC>> breasts, easing the glide through her velvety valleys.
<</if>>
<<case 2>>
<<if $tittyFuckDir === 'Getting'>>
Your spit adds libricationa as he thrusts harder. His cock slips and slides bewtween your slick tits, his balls slapping your belly.
<<else>>
Her big tits swallow your length as she spits betweten them, the veiny shaft disappearing into her plush cleavage and you lose yourself in the filthy pleasure of her spit-slicked velvety tits.
<</if>>
<<case 3>>
<<if $tittyFuckDir === 'Getting'>>
Saliva drips from your lips, pooling in the crevice of your breasts before flowing down to coat his pistoning cock. Easing his passage and allowing him to fuck your cleavage with greater ease.
<<else>>
Spit drenches your cock as she pumps it between her tits, the slimy friction driving you wild.
<</if>>
<<case 4>>
<<if $tittyFuckDir === 'Getting'>>
Spit-slick, his shaft glides between your mounds, veiny ridges evident even through the layer of drool. Each thrust spreads your spit around more, making your shiny and slick.
<<else>>
Lost in the depravity, you piston faster, balls slapping her belly as her spit acts as lubricant to speed up your thrusts.
<</if>>
<<case 5>>
<<if $tittyFuckDir === 'Getting'>>
His <<descDick _tmpNPC>> veined shaft glides effortlessly between your tits, your split making it nice and wet for his pulsing cock.
<<else>>
Her spit on your cock it plunges between her bountiful breasts. The slip-and-slide feeling amplifies your pleasure and you pump that much faster.
<</if>>
<</switch>>
<<case 'LickTip'>>
<<switch random(1,5)>>
<<case 1>>
<<if $tittyFuckDir === 'Getting'>>
As he pistons between your breasts, you dart out to capture the tip of his cock with your tongue, savoring the mix of his precum and your spit. The combination of textures - hard shaft, soft mounds, slick tongue - heightens your arousal.
<<else>>
As your cock breaches her cleavage, her tongue darts out, licking the tip with fervor. The sudden warmth and wetness sends shivers up your spine.
<</if>>
<<case 2>>
<<if $tittyFuckDir === 'Getting'>>
Each time his cock breaches the surface, you lick it clean, your tongue tracing the soft spongey head.
<<else>>
Her tongue eagerly laps and licks at your cockhead as it emerges from beween her soft pillowy tits.
<</if>>
<<case 3>>
<<if $tittyFuckDir === 'Getting'>>
His veined cock glides between your tits, leaving a trail of pre-cum on your skin. When it pokes free, you lick the head, tasting his essence and your sweat.
<<else>>
Her tongue wraps around the tip of your cock as it pokes out, lapping at the pre-cum that coats your crown. The sensation is electric, sending pulses of pleasure up your spine.
<</if>>
<<case 4>>
<<if $tittyFuckDir === 'Getting'>>
His veined cock plunges between your massive breasts, glistening with pre-cum. You catch the tip on your tongue as it breaches the surface, savoring the blend of flavors.
<<else>>
She suckles the head while pumping your shaft between her tits, creating a perfect suction. Balls drawn up tight, you're poised on the precipice, her worship pushing you toward release within the warm embrace of her cleavage.
<</if>>
<<case 5>>
<<if $tittyFuckDir === 'Getting'>>
His thick cock slithers through your <<descTits $player>> cleavage, pre-cum glistening on the prominent veins. When it bursts free, you lap at the engorged head, tongue swirling around the soft skin.
<<else>>
Her tongue flicks across your tip as it surfaces, tasting your essence. The sensation is overwhelming, each lick stoking the fire burning within.
<</if>>
<<case>>
<</switch>>
<</switch>>
<</widget>>
<<widget "calcTittyFuckRx">>
<<if $tittyFuckDir === 'Getting'>>
/* calc enthusiasm */
<<if $player.prefs.gender === 'Female'>>
/*not very enthusiastic */
<<if $player.slutLevel < 3>>
<<set $tittyFuckRx = 'Resist'>>
<<else>>
<<set $tittyFuckRx = 'Willing'>>
<</if>>
<<else>>
<<if $player.slutLevel < 2>>
<<set $tittyFuckRx = 'Willing'>>
<<else>>
<<set $tittyFuckRx = 'Happy'>>
<</if>>
<</if>>
<<else>>
<<set $tittyFuckRx = 'Happy'>>
<</if>>
<</widget>>
<<widget "TittyFuckPowerDown">>
<<unset $tfGen>>
<<unset $femPos>>
<</widget>><<if $cumDir === 'Getting'>>
<<if $cumScene === 'Tits' and ($player.outfit.fit != 0 or $player.outfit.bra != 0)>>
<<addCum 'shirt'>>
<<else>>
<<if !(['CumSwallow','CumSpit'].includes($cumScene))>>
<<if !$protectionUsed>>
<<addCum $cumScene>>
<</if>>
<</if>>
<</if>>
<</if>>
<<goto 'cumScene'>><div class='sexScene'>
<<getCumClips>>
<br>
<<if $NPCArray.find(npc => npc.dna == $currDNA) and $NPCArray.find(npc => npc.dna == $currDNA).justCame>>
<<getOrgasmText $currDNA>>
<<if $player.outfit.relic.idx != 0>>
<<calcRelicImpact>>
<</if>>
<<set
$NPCArray.find(npc => npc.dna == $currDNA).justCame = false;
$NPCArray.find(npc => npc.dna == $currDNA).orgasm = 0;
$NPCArray.find(npc => npc.dna == $currDNA).arousal = 0;
>>
<br>
<<elseif $player.justCame>>
<<getOrgasmText $player.dna>>
<<if $player.body.gender != 'Female'>>
<<set $cumAct = 'Cleanup'>>
<</if>>
<<if $player.outfit.relic.idx != 0>>
<<calcRelicImpact>>
<</if>>
<<set
$player.justCame = false;
$player.orgasm = 0;
$player.arousal = 0;
$player.mood += 10;
>>
<<if $cumScene == 'SelfMast' and $player.traits.includes(5)>>
<<set $player.arousal = 50>>
<</if>>
<br>
<</if>>
<br>
<<getCumText>>
<span id="repCont">
<br>
</span>
</div>
<hr>
<div id="actionsContainer">
<<getCumActions>>
</div><center>
<<if $isSub>>
<<set _tmpImg = 'Media/Sex/Post/' + ($NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'?'f':'m') + 'ZipUp.webp'>>
<<else>>
<<set _tmpImg = 'Media/Sex/Post/' + ($player.presenting === 'Female'?'f':'m') + 'ZipUp.webp'>>
<</if>>
<img @src="_tmpImg" height="450rem">
<br><br>
<<if $isSub>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> zips up <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> pants and smirks at you "Thanks for the fun, sugar. We should do this again!"
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" $sceneLoc>>
<<sexPowerDown>>
<</button>>
</div>
</div><<widget "getCumActions">>
<<timed 0s>>
<<if $cumDNA == $player.dna>>
<<set _tmpCumNPC = $player>>
<<else>>
<<set _tmpCumNPC = $NPCArray.find(npc => npc.dna == $cumDNA)>>
<</if>>
<<if _tmpCumNPC.body.gender === 'Female'>>
<<replace '#cumNotice'>>
<<set
$sceneOrgCount += 1;
_tmpCumNPC.justCame = false;
_tmpCumNPC.orgasm = 0;
_tmpCumNPC.arousal = _tmpCumNPC.arousal/4;
>>
<<if _tmpCumNPC.dna === $player.dna>>
<div class="goodText">
<<getOrgasmText $cumDNA>>
</div>
<<else>>
<b><<getOrgasmText $cumDNA>></b>
<</if>>
<</replace>>
<<if $sceneOrgCount > 3 or ($sceneOrgCount > 2 and random(1,10) > 5 and _tmpCumNPC.dna != $player.dna)>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<if $skipEnding>>
<<sexPowerDown>>
<<goto $sceneLoc>>
<<else>>
<<goto "postCum">>
<</if>>
<</button>>
</div>
<</replace>>
<</if>>
<<else>>
<<replace "#actionsContainer">>
<<switch $cumAct>>
<<case 'OralSex'>>
<<if _tmpCumNPC.dna != $player.dna>>
<div class="buttonContainer">
<<button "Let him do what he wants" "cumEngine">>
<<set $cumOptions = ["Facial","Tits"]>>
<<if $cumRx != 'Resist'>>
<<set $cumOptions.push("Mouth")>>
<</if>>
<<set $cumScene = $cumOptions.random()>>
<<if $cumScene === 'Mouth'>>
<<set $cumAct = 'SpitCheck'>>
<<else>>
<<set $cumAct = 'Cleanup'>>
<</if>>
<</button>>
</div>
<</if>>
<<if ($player.slutLevel > 2 and $player.dom >= _tmpCumNPC.dom) or _tmpCumNPC.dna === $player.dna>>
<<if _tmpCumNPC.dna != $player.dna>>
<<set _targLbl = 'your'>>
<<else>>
<<set _targLbl = $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>
<</if>>
<div class="buttonContainer">
<<button "On _targLbl face" "cumEngine">>
<<set $cumScene = 'Facial'>>
<<set $cumAct = 'Cleanup'>>
<</button>>
<<button "In _targLbl mouth" "cumEngine">>
<<set $cumScene = 'Mouth'>>
<<set $cumAct = 'SpitCheck'>>
<</button>>
<<button "On _targLbl tits" "cumEngine">>
<<set $cumScene = 'Tits'>>
<<set $cumAct = 'Cleanup'>>
<</button>>
</div>
<</if>>
<<case 'GloryHole'>>
<<if $ghAct == 'Mouth' or $ghDir == 'Getting'>>
<div class="buttonContainer">
<<button "Continue" "cumEngine">>
<<if $ghDir == 'Getting'>>
<<set $cumOptions = ["Facial","Mouth"]>>
<<set $cumScene = $cumOptions.random()>>
<<set $cumAct = 'Cleanup'>>
<<else>>
<<set $cumScene = 'Mouth'>>
<<set $cumAct = 'SpitCheck'>>
<</if>>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "On your face" "cumEngine">>
<<set $cumScene = 'Facial'>>
<<set $cumAct = 'Cleanup'>>
<</button>>
<<button "In your mouth" "cumEngine">>
<<set $cumScene = 'Mouth'>>
<<set $cumAct = 'SpitCheck'>>
<</button>>
</div>
<</if>>
<<case 'SelfMast'>>
<div class="buttonContainer">
<<button "Continue" "cumEngine">>
<<set $cumScene = 'SelfMast'>>
<<set $skipEnding = true>>
<<set $cumAct = 'Cleanup'>>
<</button>>
</div>
<<case 'Handjob'>>
<<if _tmpCumNPC.dna != $player.dna>>
<div class="buttonContainer">
<<button "Let him do what he wants" "cumEngine">>
<<set $cumOptions = ["Facial","Tits"]>>
<<if $cumRx != 'Resist'>>
<<set $cumOptions.push("Mouth")>>
<</if>>
<<set $cumScene = $cumOptions.random()>>
<<if $cumScene === 'Mouth'>>
<<set $cumAct = 'SpitCheck'>>
<<else>>
<<set $cumAct = 'Cleanup'>>
<</if>>
<</button>>
</div>
<</if>>
<<if ($player.slutLevel > 2 and $player.dom >= _tmpCumNPC.dom) or _tmpCumNPC.dna == $player.dna>>
<<if _tmpCumNPC.dna != $player.dna>>
<<set _targLbl = 'your'>>
<<else>>
<<set _targLbl = $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>
<</if>>
<div class="buttonContainer">
<<button "On _targLbl face" "cumEngine">>
<<set $cumScene = 'Facial'>>
<<set $cumAct = 'Cleanup'>>
<</button>>
<<button "In _targLbl mouth" "cumEngine">>
<<set $cumScene = 'Mouth'>>
<<set $cumAct = 'SpitCheck'>>
<</button>>
<<button "On _targLbl tits" "cumEngine">>
<<set $cumScene = 'Tits'>>
<<set $cumAct = 'Cleanup'>>
<</button>>
</div>
<</if>>
<<case 'SpitCheck'>>
<div class="buttonContainer">
<<button "Spit it out" "cumEngine">>
<<set $cumScene = 'CumSpit'>>
<<set $cumAct = 'Cleanup'>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Swallow it" "cumEngine">>
<<set $cumScene = 'CumSwallow'>>
<<set $cumAct = 'Cleanup'>>
<</button>>
</div>
<<case 'TittyFuck'>>
<<if _tmpCumNPC.dna != $player.dna>>
<div class="buttonContainer">
<<button "Let him do what he wants" "cumEngine">>
<<set $cumOptions = ["Facial","Tits"]>>
<<if $cumRx != 'Resist'>>
<<set $cumOptions.push("Mouth")>>
<</if>>
<<set $cumScene = $cumOptions.random()>>
<<if $cumScene === 'Mouth'>>
<<set $cumAct = 'SpitCheck'>>
<<else>>
<<set $cumAct = 'Cleanup'>>
<</if>>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<button "On <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face" "cumEngine">>
<<set $cumScene = 'Facial'>>
<<set $cumAct = 'Cleanup'>>
<</button>>
<<button "In <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth" "cumEngine">>
<<set $cumScene = 'Mouth'>>
<<set $cumAct = 'SpitCheck'>>
<</button>>
<<button "On <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tits" "cumEngine">>
<<set $cumScene = 'Tits'>>
<<set $cumAct = 'Cleanup'>>
<</button>>
</div>
<</if>>
<<case 'Intercourse'>>
<<if _tmpCumNPC.dna != $player.dna>>
<div class="buttonContainer">
<<button "Let him do what he wants" "cumEngine">>
<<set $cumOptions = ["Facial","Tits"]>>
<<if $isAnal>>
<<set $cumOptions.push('Ass')>>
<<else>>
<<set $cumOptions.push('Pussy')>>
<</if>>
<<if $cumRx != 'Resist'>>
<<set $cumOptions.push("Mouth")>>
<</if>>
<<if ['Ass','Pussy'].some(value => $cumOptions.includes(value)) and random(0,100) >= 0>>
<<if $cumOptions.includes('Ass') >>
<<set $cumScene = 'Ass'>>
<<else>>
<<set $cumScene = 'Pussy'>>
<</if>>
<<else>>
<<set $cumScene = $cumOptions.random()>>
<</if>>
<<if $cumScene === 'Mouth'>>
<<set $cumAct = 'SpitCheck'>>
<<else>>
<<set $cumAct = 'Cleanup'>>
<</if>>
<</button>>
</div>
<<else>>
<<getCumDumpLocs>>
<</if>>
<<case 'Cleanup'>>
<div class="buttonContainer">
<<button "Finish">>
<<if $skipEnding>>
<<sexPowerDown>>
<<goto $sceneLoc>>
<<else>>
<<goto "postCum">>
<</if>>
<</button>>
</div>
<</switch>>
<</replace>>
<</if>>
<</timed>>
<</widget>>
<<widget "getCumDumpLocs">>
<div class="buttonContainer">
<<set $cumOptions = ["Facial"]>>
<<if (_tmpCumNPC.dna == $player.dna and $player.body.tits > 0) or (_tmpCumNPC.dna != $player.dna and _tmpCumNPC.body.gender == 'Female')>>
<<set $cumOptions.push("Tits")>>
<</if>>
<<if $isAnal>>
<<set $cumOptions.push('Ass')>>
<<else>>
<<set $cumOptions.push('Pussy')>>
<</if>>
<<set $cumOptions.push("Mouth")>>
<<for _coIdx = 0;_coIdx < $cumOptions.length;_coIdx++>>
<<switch $cumOptions[_coIdx]>>
<<case 'Facial'>>
<<button "On <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face" "cumEngine">>
<<set $cumScene = 'Facial'>>
<</button>>
<<case 'Mouth'>>
<<button "In <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth" "cumEngine">>
<<set $cumScene = 'CumSwallow'>>
<</button>>
<<case "Tits">>
<<button "On <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tits" "cumEngine">>
<<set $cumScene = 'Tits'>>
<</button>>
<<case "Ass" "Pussy">>
<<button "Inside <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>" "cumEngine">>
<<if $isCoitus>>
<<set $cumScene = 'Pussy'>>
<<else>>
<<set $cumScene = 'Ass'>>
<</if>>
<</button>>
<</switch>>
<</for>>
</div>
<</widget>>
<<widget "getCumClips">>
<<switch $cumScene>>
<<case 'Facial'>>
<<unset $protectionUsed>>
<<set _tmpImg = 'Media/Sex/Moneyshot/Face/'>>
<<if $cumDir === 'Getting'>>
<<set _tmpGender = $player.presenting[0]>>
<<else>>
<<set _tmpGender = $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<</if>>
<<set _tmpImg += _tmpGender + '/'>>
<<if $sceneAct == 'GloryHoleBJ'>>
<<switch _tmpGender>>
<<case 'F'>>
<<set _tmpImg += 'GloryHole/' + random(1,2) + '.mp4'>>
<<case 'M'>>
<<set _tmpImg += 'GloryHole/' + random(0,0) + '.mp4'>>
<</switch>>
<<else>>
<<switch _tmpGender>>
<<case 'F'>>
<<switch $cumRx>>
<<case 'Resist'>>
<<set _tmpImg += 'Resist/' + random(1,8) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += 'Willing/' + random(1,7) + '.mp4'>>
<<default>>
<<set _tmpImg += 'Happy/' + random(1,8) + '.mp4'>>
<</switch>>
<<case 'M'>>
<<switch $cumRx>>
<<case 'Resist'>>
<<set _tmpImg += 'Resist/' + random(1,1) + '.mp4'>>
<<case 'Willing'>>
<<set _tmpImg += 'Willing/' + random(1,1) + '.mp4'>>
<<default>>
<<set _tmpImg += 'Happy/' + random(1,1) + '.mp4'>>
<</switch>>
<</switch>>
<</if>>
<<case 'Mouth'>>
<<unset $protectionUsed>>
<<set _tmpImg = 'Media/Sex/Moneyshot/Mouth/'>>
<<if $cumDir === 'Getting'>>
<<set _tmpGender = $player.presenting[0]>>
<<else>>
<<set _tmpGender = $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0]>>
<</if>>
<<set _tmpImg += _tmpGender + '/'>>
<<if $sceneAct == 'GloryHoleBJ'>>
<<switch _tmpGender>>
<<case 'F'>>
<<set _tmpImg += 'GloryHole/' + random(1,6) + '.mp4'>>
<<case 'M'>>
<<set _tmpImg += 'GloryHole/' + random(0,0) + '.mp4'>>
<</switch>>
<<else>>
<<switch _tmpGender>>
<<case 'F'>>
<<set _tmpImg += 'Happy/' + random(1,5) + '.mp4'>>
<<case 'M'>>
<<set _tmpImg += 'Happy/' + random(0,0) + '.mp4'>>
<</switch>>
<</if>>
<<case 'CumSpit'>>
<<set _tmpImg = 'Media/Sex/Moneyshot/Mouth/'>>
<<switch $player.presenting>>
<<case 'Female'>>
<<set _tmpImg += 'F/Spit/' + random(1,1) + '.mp4'>>
<<case 'Male'>>
<<set _tmpImg += 'M/Spit/' + random(0,0) + '.mp4'>>
<</switch>>
<<case 'CumSwallow'>>
<<set _tmpImg = 'Media/Sex/Moneyshot/Mouth/'>>
<<if $cumDir === 'Getting'>>
<<set _tmpSource = $player>>
<<else>>
<<set _tmpSource = $NPCArray.find(npc => npc.dna == $currDNA)>>
<</if>>
<<switch _tmpSource.body.gender>>
<<case 'Female'>>
<<set _tmpImg += 'F/Swallow/' + random(1,7) + '.mp4'>>
<<default>>
<<set _tmpImg += 'M/Swallow/' + random(0,0) + '.mp4'>>
<</switch>>
<<case 'Tits'>>
<<unset $protectionUsed>>
<<set _tmpImg = 'Media/Sex/Moneyshot/Body/Tits/'>>
<<if $cumDir === 'Getting'>>
<<if $player.outfit.fit != 0 or $player.outfit.bra != 0>>
<<set _tmpImg += 'Clothes/' + random(1,4) + '.mp4'>>
<<else>>
<<set _tmpImg += 'Skin/' + random(1,8) + '.mp4'>>
<</if>>
<<else>>
<<if $player.outfit.fit != 0 or $player.outfit.bra != 0>>
<<set _tmpImg += 'Clothes/' + random(1,4) + '.mp4'>>
<<else>>
<<set _tmpImg += 'Skin/' + random(1,8) + '.mp4'>>
<</if>>
<</if>>
<<switch _tmpGender>>
<<case 'F'>>
<<set _tmpImg += 'Happy/' + random(1,8) + '.mp4'>>
<<case 'M'>>
<<set _tmpImg += 'Happy/' + random(1,1) + '.mp4'>>
<</switch>>
<<case 'SelfMast'>>
<<set _tmpImg = 'Media/Sex/Moneyshot/POV/Self/'>>
<<if $mastLoc === 'Shower'>>
<<set _tmpImg += 'M/Shower/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpImg += $player.body.gender[0] + '/'>>
<<switch $player.body.gender[0]>>
<<case 'T'>>
<<set _tmpImg += random(1,2) + '.mp4'>>
<<case 'F'>>
<<set _tmpImg += random(1,1) + '.mp4'>>
<<case 'M'>>
<<set _tmpImg += random(1,2) + '.mp4'>>
<</switch>>
<</if>>
<<case 'Pussy' 'Ass'>>
<<if $protectionUsed>>
<<set _tmpImg = 'Media/Sex/Moneyshot/Condom/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg = 'Media/Sex/Moneyshot/CreamPie/'>>
<<if $isAnal>>
<<set _tmpImg += 'Anal/' + random(1,1) + '.mp4'>>
<<else>>
<<set _tmpImg += 'Pussy/' + random(1,10) + '.mp4'>>
<</if>>
<</if>>
<</switch>>
<<if $protectionUsed>>
<img @src="_tmpImg" height="500rem">
<<else>>
<video @src="_tmpImg" height="500rem" autoplay loop></video>
<</if>>
<</widget>>
<<widget 'getCumText'>>
<<switch $cumScene>>
<<case 'Facial'>>
<<if $cumDir === 'Getting'>>
<<switch random(1,3)>>
<<case 1>>
Ropes of hot, thick cum splash across your face - coating your nose, cheeks and chin.
<<case 2>>
His cock jerks and twitches as spurt after spurt of jizz flies out, drenching your forehead and cheeks with his pearly essence.
<<case 3>>
Thick ropes of cum arc through the air and splatter across your face, marking you for all to see.
<</switch>>
<<else>>
<<switch random(1,1)>>
<<case 1>>
Ropes of hot, thick cum splash across <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face - coating <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> nose, cheeks and chin.
<<case 2>>
You drench <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> forehead and cheeks with your pearly essence.
<<case 3>>
Thick ropes of cum arc through the air and splatter across <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face, quickly coating her in your spunk.
<</switch>>
<</if>>
<<case 'Mouth'>>
<<if $cumDir === 'Getting'>>
<<switch random(1,3)>>
<<case 1>>
His warm, salty flood fills your mouth, coating your tongue and swirling around your teeth.
<<case 2>>
Your mouth is flooded with the rich, creamy flavor of <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s release.
<<case 3>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s heavy cream paints your tongue with his tangy-sweet taste.
<</switch>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
Your warm, salty flood fills <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s mouth, coating <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue and swirling around <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> teeth.
<<case 2>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s mouth is flooded with the rich, creamy flavor of your release.
<<case 3>>
Your heavy cream paints <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s tongue with its tangy-sweet taste.
<</switch>>
<</if>>
<<case 'CumSpit'>>
<<if $cumDir === 'Getting'>>
<<switch random(1,2)>>
<<case 1>>
You part your <<descLips $player>> lips and let his hot cum spill out of your mouth so it drips down your chin and splatters against the floor.
<<case 2>>
Your mouth is flooded with his hot, sticky cum - more than you can swallow. On reflex you spit it out, watching it splatter against your <<if $player.body.tits > 0>><<descTits $player>> tits<<else>>chest<</if>>.
<</switch>>
<<else>>
<<switch random(1,2)>>
<<case 1>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> grimaces and turns her head to the side to spit out your cum as the gasps for air.
<<case 2>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> gags and sputters on your cum until she finally spits it out into her hands.
<</switch>>
<</if>>
<<case 'CumSwallow'>>
<<if $cumDir === 'Getting'>>
<<switch random(1,2)>>
<<case 1>>
Keeping your mouth open, you allow the rest of his load to pool on your tongue before tilting your head back and swallowing it down in one smooth motion
<<case 2>>
His cum floods your mouth with jet after jet of hot, sticky seed directly onto the back of your throat. You swallow reflexively, gulping down the thick fluid as fast as you can manage.
<</switch>>
<<else>>
<<switch random(1,2)>>
<<case 1>>
Your cum paints <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> outstretched tongue with rope after rope of hot, thick cum. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> manages to keep <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth open wide, but some still splatters across <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face and chin.
<<case 3>>
Your cock shotos thick ropes of hot cum directly onto <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> extended tongue. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> swallows quickly, working to gulp down every drop as it floods <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth.
<</switch>>
<</if>>
<<case 'Tits'>>
<<if $cumDir === 'Getting'>>
<<if $player.outfit.fit != 0 or $player.outfit.bra != 0>>
<<switch random(1,3)>>
<<case 1>>
Hot spurts of cum land on the thin fabric of your top, soaking through immediately.
<<case 2>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pumps load after load of his hot seed onto your shirt. It spreads out in a large wet patch, clinging obscenely to your curves.
<<case 3>>
Thick globs of cum splatter across your shirt, the warmth and wetness instantly soaking into your skin beneath.
<</switch>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> explodes, firing thick ropes of cum across your soft flesh. It splatters your nipples and pools in your cleavage.
<<case 2>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pumps shot after shot of pearly cream onto your tits, coating them with his slick fluid.
<<case 3>>
His cock jerks and spurts all over your naked tits, marking you with his claim.
<</switch>>
<</if>>
<<else>>
<<switch random(1,3)>>
<<case 1>>
Thick ropes of your cum splash across <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> soft flesh, splattering <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> nipples and pooling in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> cleavage.
<<case 2>>
You coat pearly cream onto your tits, coating them with your slick fluid.
<<case 3>>
Your cock spurts all over your naked tits, marking her with your claim.
<</switch>>
<</if>>
<<case 'Pussy' 'Ass'>>
<<if $cumDir === 'Getting'>>
<<if $protectionUsed>>
His cock throbs and pulses inside you, but the condom keeps his cum safely trapped.
<<else>>
<<if $isCoitus>>
<<set _tmpTxt = 'pussy'>>
<<else>>
<<set _tmpTxt = 'ass'>>
<</if>>
<<switch random(1,5)>>
<<case 1>>
Warmth floods your innermost depths as thick ropes of cum pump deep inside, filling you completely. Your stretched walls pulse around the invading fluid, greedily soaking it up.
<<case 2>>
As his cock throbs and erupts, scorching jets of cum flood your receptive depths. Each pulse fills you further, pushing the viscous fluid deep into your _tmpTxt.
<<case 3>>
Your inner muscles clench around the warm invasion, greedily milking him dry as he pumps you full of his hot cum. The excess spills out in rivulets, running down your thighs as you're left dripping with the evidence of his claim on you.
<<case 4>>
His cock pulses, flooding your cunt with molten heat as he fills your _tmpTxt to brimming.
<<case 5>>
Clutching at your hips, he grinds against you, as his cock pumps your _tmpTxt full of his hot man-seed
<</switch>>
<</if>>
<<else>>
<</if>>
<</switch>>
<</widget>>
<<widget "cumPowerDown">>
<<unset
$cumScene;
$cumDir;
$cumOptions;
$cumAct;
$cumDNA;
>>
<</widget>>
<<widget "addCum">>
<<if $cumDNA == $player.dna>>
<<set _tmpCumNPC = $player>>
<<else>>
<<set _tmpCumNPC = $NPCArray.find(npc => npc.dna == $cumDNA)>>
<</if>>
<<if _args[0] === 'Mouth'>>
<<set $cumBreathFlag = clone($gameDate)>>
<<set $player.body.breath = -1>>
<<elseif _args[0] === 'SelfMast'>>
<<if !$showerInProg and $player.body.gender != 'Female'>>
<<addCum 'Hands'>>
<</if>>
<<else>>
<<set _cumLoc = $player.cumArr.find(obj => obj.loc === _args[0])>>
<<if _cumLoc>>
<<set _cumLoc.volume += _tmpCumNPC.spermPot>>;
<<run _cumLoc.source.push(_tmpCumNPC)>>
<<set
_cumLoc.loads += 1;
_cumLoc.timestamp = $gameDate.getTime();
>>
<<else>>
<<set _cumLoc = {loc:_args[0],source: [_tmpCumNPC.dna],volume: _tmpCumNPC.spermPot,loads: 1, timestamp: $gameDate.getTime(), lastDrip: $gameDate.getTime()}>>
<<set $player.cumArr.push(_cumLoc)>>
<</if>>
<<if _args[0] === 'shirt'>>
<<set $player.wardrobe.items.find(fit => fit.type === 'Fit' and fit.sku === $player.outfit.fit).stats.cumStain = _cumLoc>>
<<elseif _args[0] === 'panties'>>
<<set $player.wardrobe.items.find(fit => fit.type === 'Panties' and fit.sku === $player.outfit.panties).stats..cumStain = _cumLoc>>
<</if>>
<</if>>
<</widget>>
<<widget "removeCum">>
<<set $player.cumArr = $player.cumArr.filter(obj => ! _args[0].includes(obj.loc))>>
<</widget>>
<<widget "cumTracker">>
<<if $cumBreathFlag is not undefined>>
<<if ($gameDate.getTime() - $cumBreathFlag.getTime())/1000 > 7200>>
<<unset $cumBreathFlag>>
<<if $player.body.breath < 0>>
<<set $player.body.breath = 0>>
<</if>>
<</if>>
<</if>>
<<for _i to 0;_i < $player.cumArr.length;_i++>>
/*check for age/dripping/etc - reduce amount over time */
<<set _thisLoad = $player.cumArr[_i]>>
<<switch _thisLoad.loc>>
<<case 'Pussy' 'Ass'>>
<<if ($gameDate.getTime() - _thisLoad.timestamp)/1000/60 >= 120>>
<<set $player.cumArr = $player.cumArr.filter(obj => obj.loc != _thisLoad.loc)>>
<<elseif ($gameDate.getTime() - _thisLoad.lastDrip)/1000/60 >= 10>>
<<set _thisLoad.lastDrip = $gameDate.getTime()>>
<<if $player.outfit.panties != 0>>
<<if $player.cumArr.some(obj => obj.loc === 'Panties')>>
<<set _newObj = $player.cumArr.find(obj => obj.loc === 'Panties')>>
<<set
_newObj.volume += _thisLoad.volume/2;
_newObj.timestamp = $gameDate.getTime();
>>
<<if !_newObj.source.some(npc => npc.dna === _thisLoad.source.dna)>>
<<set
_newObj.source.push(_thisLoad.source);
_newObj.loads += 1;
>>
<</if>>
<<else>>
<<set $player.cumArr.push({loc:'Panties',source: [_thisLoad.source],volume: _thisLoad.volume/2,loads: 1, timestamp: $gameDate.getTime(), lastDrip: $gameDate.getTime()})>>
<</if>>
<<else>>
<<if $player.cumArr.some(obj => obj.loc === 'Thighs')>>
<<set _newObj = $player.cumArr.find(obj => obj.loc === 'Thighs')>>
<<set
_newObj.volume += _thisLoad.volume/2;
_newObj.timestamp = $gameDate.getTime();
>>
<<if !_newObj.source.some(npc => npc.dna === _thisLoad.source.dna)>>
<<set
_newObj.source.push(_thisLoad.source);
_newObj.loads += 1;
>>
<</if>>
<<else>>
<<set $player.cumArr.push({loc:'Thighs',source: [_thisLoad.source],volume: _thisLoad.volume/2,loads: 1, timestamp: $gameDate.getTime(), lastDrip: $gameDate.getTime()})>>
<</if>>
<</if>>
<<set _thisLoad.volume = _thisLoad.volume/2>>
<<if _thisLoad.volume < 10>>
<<set $player.cumArr = $player.cumArr.filter(obj => obj.loc != _thisLoad.loc)>>
<</if>>
<</if>>
<</switch>>
<</for>>
<</widget>>
<<widget "cumCheck">>
<<if $cumBreathFlag is not undefined>>
Your breath smells like cum
<br><br>
<</if>>
<<for _i to 0;_i < $player.cumArr.length;_i++>>
You have
<<if $player.cumArr[_i].loads > 1>>
multiple loads of
<</if>>
<<if ['Pussy','Ass','Panties'].includes($player.cumArr[_i].loc)>>
cum in your
<<else>>
<<if ($gameDate.getTime() - $player.cumArr[_i].timestamp)/1000 < 60*60*10>>
wet
<<else>>
dry and powdery
<</if>>
cum on your
<</if>>
<<if $player.cumArr[_i].loc === 'Facial'>>
face
<<elseif $player.cumArr[_i].loc === 'Thighs'>>
inner thighs
<<else>>
<<print $player.cumArr[_i].loc.toLowerCase()>>
<</if>>
<br><br>
<</for>>
<</widget>>
<<widget "getCumWashOptions">>
<<switch _args[0]>>
<<case 'Basin'>>
/*hair, face */
<div class="buttonContainer">
<<if $player.cumArr.filter(obj => ['Facial','Hair'].includes(obj.loc)).length > 1>>
<<button "Wash the cum from your face and hair">>
<<addMins 1>>
<<set _tmpVal = ['Facial','Hair','Hands']>>
<<removeCum _tmpVal >>
<<refreshCaption>>
<<replace "#repCont">>
<b>You wash the cum from your face and hair.</b>
<</replace>>
<<replace "#actionsContainer">>
<<getBasinActions>>
<</replace>>
<</button>>
<<elseif $player.cumArr.some(obj =>obj.loc === 'Facial') >>
<<button "Wash the cum from your face">>
<<addSecs 30>>
<<set _tmpVal = ['Facial','Hands'] >>
<<removeCum _tmpVal >>
<<refreshCaption>>
<<replace "#repCont">>
<b>You wash the cum from your face.</b>
<</replace>>
<<replace "#actionsContainer">>
<<getBasinActions>>
<</replace>>
<</button>>
<<elseif $player.cumArr.some(obj =>obj.loc === 'hair') >>
<<button "Wash the cum from your hair">>
<<addSecs 30>>
<<set _tmpArr = ['Hair','Hands']>>
<<removeCum _tmpArr>>
<<refreshCaption>>
<<replace "#repCont">>
<b>You wash the cum from your face.</b>
<</replace>>
<<replace "#actionsContainer">>
<<getBasinActions>>
<</replace>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<if $player.cumArr.some(obj =>obj.loc === 'hands') >>
<<button "Wash the cum off your hands">>
<<addSecs 15>>
<<set _tmpArr = ['Hands']>>
<<removeCum _tmpArr>>
<<refreshCaption>>
<<replace "#repCont">>
<b>You wash the cum from your hands.</b>
<</replace>>
<<replace "#actionsContainer">>
<<getBasinActions>>
<</replace>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<if $player.cumArr.some(obj =>obj.loc === 'clothes') >>
<<button "Wash the cum off your clothes">>
<<addSecs 45>>
<<set _tmpArr = ['Clothes','Hands']>>
<<removeCum _tmpArr>>
<<refreshCaption>>
<<replace "#repCont">>
<b>You wash the cum from your clothes, leaving a wet stain that will soon dry.</b>
<</replace>>
<<replace "#actionsContainer">>
<<getBasinActions>>
<</replace>>
<</button>>
<</if>>
</div>
<<case 'Shower'>>
<div class="buttonContainer">
<<if $player.cumArr.some(obj => ['Facial','Hair','Hands','Ass','Thighs','Feet'].includes(obj.loc))>>
<<button "Wash the cum off your body" "Shower">>
<<set _tmpVal = ['Facial','Hair','Hands','Ass','Thighs','Feet']>>
<<removeCum _tmpVal>>
<<set $showerText = 'You rinse all the cum off your body'>>
<</button>>
<</if>>
</div>
<</switch>>
<</widget>>
<<widget 'cumStain'>>
<<switch _args[0]>>
<<case 'hair'>>
<</switch>>
<</widget>><<set $foreplayAct = 'Kiss'>>
<<set $foreplayStart = $gameDate.getTime()>>
<<set $foreplayLimit = 10>>
<<goto 'ForeplayScene'>><<if $pExposed and !$NPCArray.find(npc => npc.dna == $currDNA).knowsPlayerGender and $player.body.gender === "Trans">>
<<set $sexySurpLoc = passage()>>
<<goto "SexySurprise">>
<</if>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).personality > 1 and ($gameDate.getTime() - $foreplayStart)/1000 > $foreplayLimit*60>>
<<if ($player.slutLevel <= 2 or ($player.slutLevel < 5 and [$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender)))>>
<<if random(0,100 > 45) or ($gameDate.getTime() - $foreplayStart)/1000 > 20*60>>
<<goto 'ForcePlay'>>
<<else>>
<<set $foreplayLimit = random(2,5)>>
<</if>>
<</if>>
<</if>>
<div class='sexScene stripScene'>
<center>
<<getForeplayClips>>
<br>
<br>
<div id="repCont">
<<getForeplayText>>
</div>
</center>
</div>
<hr>
<div id="actionsContainer">
<<getForeplayActions>>
</div>
<<if $forceSex and ($gameDate.getTime() - $foreplayStart)/1000/60 > 5>>
<<unset $forceSex>>
<<goto "NPCInitiate">>
<</if>><<set _tmpImg = 'Media/Sex/NPCLead/'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/M/' + random(0,0) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/F/' + random(1,1) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'F/' + random(1,2) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<if $player.body.gender === 'Male'>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> leads you toward a new location where you can have some real fun.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> picks you up in his arms and carries you toward a new location where you can have some real fun.
<</if>>
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> leads you toward a new location where you can have some real fun.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "sexSceneEngine">>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'Intercourse'>>
<<addMins 1>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Social/Flirting/ForcePlay/'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'MF/' + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += 'MM/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'FF/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'FM/' + random(1,3) + '.webp'>>
<</if>>
<</if>>
<center>
<img @src='_tmpImg' height='450rem'>
<br><br>
<span id='repCont'>
Suddenly, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pulls you close against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> body and presses <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> cheek against yours.
<br>
You <<if $player.drunk >=50>> drunkenly<</if>> mumble in protest; your lips still warm and tender from the kissing you just did. That felt pretty good, you have to admit. <<if $player.drunk > 30>>Sober you is just a prude. What was the reason to resist this? You can't seem to think of it right now, but you feel like it was important.<</if>>
<br><br>
<div class="badText">"How about you focus those <<descLips $player>> lips of yours a little lower?"</div> <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> breathy voice rasps into your ear, more a command than a request.
<br><br>
You feel <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hands pushing you down toward your knees.
</span>
</center>
<hr>
<div id="actionsContainer">
<<if $player.dom > 40>>
<div class="buttonContainer">
<<button "Resist" "ResistPlay">>
<<set $playerResist = true>>
<<set $player.statBuffs.dom += 1>>
<<addMins 3>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<if $player.dom > 30>>
<<button "Offer to use your hands">>
<<replace '#repCont'>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pauses as if to think about it and then smiles at you.
<br>
<<if $NPCArray.find(npc => npc.dna == $currDNA).dom > 40 and random(1,100) > 50>>
<<set $sceneAct = 'OralSex'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
Shaking his head he says, "My dick is getting wet -- if not in your <<if $player.presenting === 'Female'>>pussy<<else>>ass<</if>> then it'll be in your mouth."
<<else>>
"No, I need to feel that tongue of yours get to work!" she says, making it clear this isn't a discussion.
<</if>>
<<else>>
<<set $sceneAct = 'Handjob'>>
"Fine, just get to it already." <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> says, impatient for you to start.
<</if>>
<</replace>>
<<replace "#actionsContainer">>
<div class='buttonContainer'>
<<button "Continue" "sexSceneEngine">>
<<set $blockPlayerChoice = true>>
<<set $player.statBuffs.sub += 1>>
<<set $sceneLoc = $fpLoc>>
<<set $sceneDir = 'Giving'>>
<<addMins 1>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Agree to use your mouth" "sexSceneEngine">>
<<set $blockPlayerChoice = true>>
<<set $player.statBuffs.sub += 2>>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'OralSex'>>
<<set $sceneDir = 'Giving'>>
<<addMins 1>>
<</button>>
<</if>>
</div>
</div><<set _tmpImg = 'Media/Sex/BDSM/Intro/'>>
<<if $playerResist>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'MF/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'MM/' + random(0,0) + '.webp'>>
<</if>>
<<else>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'FF/' + random(0,0) + '.webp'>>
<<else>>
<<set _tmpImg += 'FM/' + random(1,3) + '.webp'>>
<</if>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'FM/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'MM/' + random(0,0) + '.webp'>>
<</if>>
<<else>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'FF/' + random(0,0) + '.webp'>>
<<else>>
<<set _tmpImg += 'MF/' + random(0,0) + '.webp'>>
<</if>>
<</if>>
<</if>>
<<unset $playerResist>>
<center>
<img @src='_tmpImg' height='450rem'>
<br><br>
You struggle to fight <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> off but you're just not strong enough and eventually your body sags froms the exertion of your struggle.
<br><br>
Maybe the best way out of this is to just finish it quickly.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Give in and use your mouth" "sexSceneEngine">>
<<set $blockPlayerChoice = true>>
<<set $player.statBuffs.sub += 3>>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'OralSex'>>
<<set $sceneDir = 'Giving'>>
<<addMins 1>>
<</button>>
</div>
</div><<widget "getForeplayActions">>
<<timed 0s>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Kiss" "ForeplayScene">>
<<set $foreplayAct = 'Kiss'>>
<<set $arousalFactor = 2>>
<<calcArousal 'kiss' $arousalFactor 2>>
<</button>>
<<if !$onDate or $locType != 'Outdoors' or $player.slutLevel > 3>>
<<if $player.slutLevel > 3 or ([$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender) and $player.arousal > 20)>>
<<if !$player.isNude and ($player.arousal > 15 or $player.slutLevel > 0) and ($sexFit.top != 'Off' or $sexFit.btm != 'Off' or $sexFit.bra != 0 or $sexFit.panties != 0)>>
<<button "Undress">>
<<set $undressLoc = passage()>>
<<UndressActions>>
<</button>>
<<if $isSub === 0 and $NPCArray.find(npc => npc.dna == $currDNA).isNude === 0>>
<<button "Undress $NPCArray.find(npc => npc.dna == $currDNA).thirdRef" "ForeplayScene">>
<<set $NPCArray.find(npc => npc.dna == $currDNA).isNude = true>>
<<set $foreplayAct = 'Undress'>>
<<calcArousal 'strip' 1 1>>
<</button>>
<</if>>
<</if>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<if $player.slutLevel >= 3 or (([$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender)) and ($NPCArray.find(npc => npc.dna == $currDNA).relationship >= 25 or ($player.arousal > 30 >= $player.inhib)))>>
<<button "Use your mouth" "sexSceneEngine">>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'OralSex'>>
<<set $sceneDir = 'Giving'>>
<<addMins 1>>
<</button>>
<<button "Use your Hands" "sexSceneEngine">>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'Handjob'>>
<<set $sceneDir = 'Giving'>>
<<addMins 1>>
<</button>>
<</if>>
<<if $player.body.tits > 0 and $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male' and ($player.sexStats.hj_give >= 5 or $player.slutLevel >=3) and ($NPCArray.find(npc => npc.dna == $currDNA).relationship >= 25 or ($player.arousal > 30 >= $player.inhib))>>
<<button "Use your Tits" "sexSceneEngine">>
<<if $player.body.tits < 3>>
<<replace '#repCont'>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s mouth twitches up in a smile at your offer "I think your tits are a little small for that," he says. "But I appreciate your hustle."
<</replace>>
<<else>>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'TittyFuck'>>
<<set $sceneDir = 'Getting'>>
<<addMins 1>>
<</if>>
<</button>>
<</if>>
</div>
<<if $isSub === 0>>
<div class="buttonContainer">
<<button "Use <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth" "sexSceneEngine">>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'OralSex'>>
<<set $sceneDir = 'Getting'>>
<<addMins 1>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Use <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hands" "sexSceneEngine">>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'Handjob'>>
<<set $sceneDir = 'Getting'>>
<<addMins 1>>
<</button>>
</div>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.tits > 2>>
<div class="buttonContainer">
<<button "Use <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> Tits" "sexSceneEngine">>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'TittyFucking'>>
<<set $sceneDir = 'Giving'>>
<<addMins 1>>
<</button>>
</div>
<</if>>
<</if>>
<<if !$onDate or $locType != 'Outdoors' or $player.slutLevel > 3>>
<div class="buttonContainer">
<<if $player.slutLevel > 3 or (['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender) and ($player.slutLevel > 2 or $player.arousal > 40 or $NPCArray.find(npc => npc.dna == $currDNA).relationship >= 50))>>
<<button "Have sex" "sexSceneEngine">>
<<set $sceneLoc = $fpLoc>>
<<set $sceneAct = 'Intercourse'>>
<<addMins 1>>
<</button>>
<</if>>
</div>
<</if>>
<<if !$blockStop>>
<div class="buttonContainer">
<<button "Stop">>
<<if $player.traits.includes(28) and ($player.arousal > $player.$pherTrigger or random($player.arousal,100) > $player.$pherTrigger) and ['Bisexual',$player.presenting].includes($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender)>>
<<set $pherLevel = 2>>>
<<goto "NPCPheremone">>
<<else>>
<<addMins 1>>
<<goto $fpLoc>>
<</if>>
<</button>>
</div>
<</if>>
<</replace>>
<</timed>>
<</widget>>
<<widget "getForeplayClips">>
<<switch $foreplayAct>>
<<case 'Kiss'>>
<<set _tmpImg = 'Media/Social/Flirting/Kiss/'>>
<<if $player.presenting === "Female">>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg += 'MF/' + random(1,15) + '.mp4'>>
<<else>>
<<set _tmpImg += 'FF/' + random(1,14) + '.mp4'>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg += 'MM/' + random(1,3) + '.mp4'>>
<<else>>
<<set _tmpImg += 'MF/' + random(1,15) + '.mp4'>>
<</if>>
<</if>>
<video @src="_tmpImg" height="32rem" autoplay loop></video>
<<unset _tmpImg>>
<</switch>>
<</widget>>
<<widget "getForeplayText">>
<<switch $foreplayAct>>
<<case "Kiss">>
<<switch random(1,7)>>
<<case 1>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips mash against yours, as if trying to flatten and destroy your mouth. You hungrily push back, mouth open, tongue pushing past <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> teeth to the moist space within.
<<case 2>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> kisses you like you wanted to be kissed, like no one had ever kissed you, soft and moist and hot and breathy, not trying to win a battle but seeking union and closeness and the sharing of one breath, one sensation, one timeless and passionate moment.
<<case 3>>
You kiss <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>. Once, twice, until you've had a taste and realize you'll never have enough. <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hands are everywhere up your back and over your arms and suddenly <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'s kissing you harder, deeper, with a fervent urgent need you've never known before.
<<case 4>>
You kiss with raw passion. Like your lives depend on it. <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue slips inside your mouth, gentle but demanding, and it's nothing like you've ever experienced, and you suddenly understand why people describe kissing as melting because every square inch of your body dissolves into <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>.
<<case 5>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> grabs your face and pulls you close to <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>. You've never tasted anything quite like this kiss. In the shadows <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face is so close to yours that you can smell <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> skin, and then <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> tongue slips into your mouth.
<<case 6>>
Lips crash against yours in a searing kiss, hungry and demanding. Tongues tangle wildly as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> plunder yours mouth, teeth nipping at your bottom lip.
<<case 7>>
Your eyes flutter shut as soft lips crash against yours hungrily. A questing tongue delves past your parted lips, stroking yours sensually as strong hands grip your hips, crushing you against a hard body.
<</switch>>
<</switch>>
<</widget>><<if !$sexInit>>
<<set
$sexInit = true;
$sexHistory = [];
$sceneOrgCount = 0;
$player.justCame = false;
$NPCArray.find(npc => npc.dna == $currDNA).justCame = false;
$player.orgasm = 0;
>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).arousal < 20>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal = 20>>
<</if>>
<<set $lastSexPartner = $currDNA>>
<<set $sexHistory = []>>
<<set $sexStartTime = $gameDate.getTime()>>
<<if !$preSexFit>>
<<set $preSexFit = clone($player.outfit)>>
<</if>>
<<genFit $player.outfit.fit>>
<<if !$player.isNude>>
<<set $sexFit = {
top: $clothingObj.stats.top,
btm: $clothingObj.stats.top,
bra: $player.outfit.bra,
panties: $player.outfit.panties
}
>>
<</if>>
<<unset $clothingObj>>
<<if $sceneAct != 'Masturbation'>>
<<set _tmpVal = $NPCArray.find(npc => npc.dna == $currDNA).body.gender[0] + 'Pref'>>
<<updateSexHistory _tmpVal>>
<</if>>
<</if>>
<<switch $sceneAct>>
<<case 'OralSex'>>
<<set $oralDir = $sceneDir>>
<<goto 'OralEngine'>>
<<case 'GloryHoleBJ'>>
<<set $ghDir = $sceneDir>>
<<goto 'GloryHoleEngine'>>
<<case 'Masturbation'>>
<<set $mastLoc = $sceneLoc>>
<<if $sceneLoc != 'Bath' and $sceneLoc != 'Shower'>>
<<set $mastType = 'Generic'>>
<<else>>
<<set $mastType = $sceneLoc>>
<</if>>
<<set $mastAct = 'Intro'>>
<<goto 'MasturbationEngine'>>
<<case 'Foreplay'>>
<<set $fpLoc = $sceneLoc>>
<<set $isSub = true>>
<<goto 'ForeplayEngine'>>
<<case 'Handjob'>>
<<set $hjDir = $sceneDir>>
<<goto 'HJEngine'>>
<<case 'TittyFuck'>>
<<set $tittyFuckDir = $sceneDir>>
<<goto 'TittyFuckEngine'>>
<<case 'Intercourse'>>
<<goto 'IntercourseEngine'>>
<<case 'NonCon'>>
<<goto 'NonConEngine'>>
<</switch>><center>
<img @src='$trnsImg' height="600rem">
<br><br>
<<print $trnsTxt>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<unset $trnsTxt>>
<<unset $trnsImg>>
<<switch $newAct>>
<<case 'TittyFuck'>>
<<if $sexFit>>
<<set $sexFit.top === 'Off'>>
<<set $sexFit.bra === 'Off'>>
<</if>>
<<set $sceneAct = 'TittyFuck'>>
<<set $sceneDir = 'Getting'>>
<<addMins 1>>
<<goto "sexSceneEngine">>
<<case 'Doggy Style' 'Missionary' 'Cowgirl'>>
<<if $sexFit>>
<<set $sexFit.top === 'Off'>>
<<set $sexFit.bra === 'Off'>>
<<set $sexFit.panties === 'Off'>>
<</if>>
<<if $sexPosition === 'TittyFuck'>>
<<set $sceneDir = 'Giving'>>
<<else>>
<<set $sceneDir = $sexDir>>
<</if>>
<<set $sexPosition = $newAct>>
<<if !$vagOnly and !$analOnly>>
<<if random(0,100) > 75>>
<<set $holeSwitch = true>>
<<set $isCoitus = $isAnal>>
<<set $isAnal = !$isCoitus>>
<</if>>
<</if>>
<<checkPosition $sceneDir>>
<<goto "IntercourseScene">>
<</switch>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Sex/Surprise/Cock/'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender == 'Male'>>
<<set _tmpImg += 'M/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,12) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
NPC did not expect you to have a cock! Surprise all around.
<br><br>
chance NPC is into it?
<br><Br>
if jerry go to special fight scene?
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "End the scene">>
<<sexPowerDown>>
<<goto $sceneLoc>>
<</button>>
</div>
</div><<widget "calcOrgBar">>
<<if _args[0] !== $player.dna>>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == _args[0])>>
<<else>>
<<set _tmpNPC = $player>>
<</if>>
<<if _tmpNPC.arousal == 0>>
<<set _tmpNPC.arousal = random(1,10)>>
<</if>>
<<if !$arousalFactor or $arousalFactor < 2>>
<<set _tmpFactor = 2>>
<<else>>
<<set _tmpFactor = $arousalFactor>>
<</if>>
<<set _tmpNPC.orgasm = (_tmpNPC.orgasm + Math.min(Math.round((_tmpNPC.arousal/2)*_tmpFactor),20)).clamp(0,100)>>
<<set _divWidth =_tmpNPC.orgasm + '%' >>
<div><<if $args[0] === $player.dna>>You:<<else>><<print _tmpNPC.firstName>>:<</if>> <div style="width:60%; height: 2em; display:inline-block; border: red 1px solid;"><div @style="'width:' + _divWidth + '; height:2em; background-color:red; color:red'"> </div></div></div>
<</widget>>
<<widget "calcArousal">>
<<addMins _args[2]>>
<<if !$sexHistory>>
<<set $sexHistory = []>>
<</if>>
<<switch _args[0]>>
<<case 'bj'>>
<<if $oralDir === 'Giving'>>
<<updateSexHistory 'bj_give'>>
<<set $canOrgasm = 0>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).orgasm += $NPCArray.find(npc => npc.dna == $currDNA).arousal/10>>
/*some sort of additional calculation based on player prefs... */
<<set $player.arousal += 2>>
<<else>>
<<updateSexHistory 'bj_get'>>
<<set $canOrgasm = 1>>
<<set $player.arousal += 2>>
<<set $player.orgasm += $player.arousal/10>>
<</if>>
<<case 'cuni'>>
<<if $oralDir === 'Giving'>>
<<updateSexHistory 'cuni_give'>>
<<set $canOrgasm = 0>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).orgasm += $NPCArray.find(npc => npc.dna == $currDNA).arousal/10>>
/*some sort of additional calculation based on player prefs... */
<<set $player.arousal += 2>>
<<else>>
<<updateSexHistory 'cuni_get'>>
<<set $canOrgasm = 1>>
<<set $player.arousal += 2>>
<<set $player.orgasm += Math.min(random(2,4),$player.arousal/10)>>
<</if>>
<<case 'hj'>>
<<if $hjDir === 'Giving'>>
<<updateSexHistory 'hj_give'>>
<<set $canOrgasm = 0>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).orgasm += $NPCArray.find(npc => npc.dna == $currDNA).arousal/10>>
/*some sort of additional calculation based on player prefs... */
<<set $player.arousal += 2>>
<<else>>
<<updateSexHistory 'hj_get'>>
<<set $canOrgasm = 1>>
<<set $player.arousal += 2>>
<<set $player.orgasm += $player.arousal/10>>
<</if>>
<<case 'mast'>>
<<updateSexHistory 'mast'>>
<<set $canOrgasm = 1>>
<<set $player.arousal += 2>>
<<set $player.orgasm += 1>>
<<case 'kiss'>>
<<updateSexHistory 'kiss'>>
<<set $canOrgasm = 0>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
/*some sort of additional calculation based on player prefs... */
<<set $player.arousal += 2>>
<<case 'strip'>>
<<updateSexHistory 'strip'>>
<<set $canOrgasm = 0>>
/*some sort of additional calculation based on player prefs... */
<<set $player.arousal += 2>>
<<case 'lapdance'>>
<<updateSexHistory 'lapdance'>>
<<set $canOrgasm = 0>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
/*some sort of additional calculation based on player prefs... */
<<set $player.arousal += 2>>
<<case 'tits'>>
<<updateSexHistory 'tits'>>
<<set $canOrgasm = 0>>
<<set $player.arousal += 1*_args[2]>>
<<case 'tittyFuck'>>
<<if $tittyFuckDir === 'Giving'>>
<<updateSexHistory 'tittyFuck_give'>>
<<set $canOrgasm = 1>>
<<set $player.arousal += 2>>
<<set $player.orgasm += 1>>
<<else>>
<<updateSexHistory 'tittyFuck_get'>>
<<set $canOrgasm = 0>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).orgasm += $NPCArray.find(npc => npc.dna == $currDNA).arousal/10>>
/*some sort of additional calculation based on player prefs... */
<<set $player.arousal += 2>>
<</if>>
<<case 'intercourse'>>
<<if $isAnal>>
<<if $sexDir === 'Getting'>>
<<updateSexHistory 'anal_get'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).orgasm += $NPCArray.find(npc => npc.dna == $currDNA).arousal/10>>
<<if $player.kinks.includes(52)>>
<<set _tmpMod = 2>>
<<else>>
<<set _tmpMod = 1>>
<</if>>
<<set $player.arousal += _args[1]*_args[2]*_tmpMod>>
<<set $player.orgasm += ($player.arousal/2)*_tmpMod>>
<<else>>
<<updateSexHistory 'anal_give'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).orgasm += $NPCArray.find(npc => npc.dna == $currDNA).arousal/5>>
<<set $player.arousal += _args[1]*_args[2]>>
<<set $player.orgasm += $player.arousal/10>>
<</if>>
<<else>>
<<if $sexDir === 'Getting'>>
<<updateSexHistory 'vag_get'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).orgasm += $NPCArray.find(npc => npc.dna == $currDNA).arousal/10>>
<<set $player.arousal += _args[1]*_args[2]>>
<<set $player.orgasm += $player.arousal/2>>
<<else>>
<<updateSexHistory 'vag_give'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).arousal += _args[1]*_args[2]>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).orgasm += $NPCArray.find(npc => npc.dna == $currDNA).arousal/5>>
<<set $player.arousal += _args[1]*_args[2]>>
<<set $player.orgasm += $player.arousal/10>>
<</if>>
<</if>>
<</switch>>
<</widget>>
<<widget "calcOrgasm">>
<<timed 0s>>
<<if _args[0] == $player.dna>>
<<set _tmpNPC = $player>>
<<else>>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == _args[0])>>
<</if>>
<<if _tmpNPC.orgasm >= 100>>
<<if _args[0] === $player.dna>>
<<replace "#cumNotice">>
<b>You are about to cum!</b>
<</replace>>
<<else>>
<<replace "#cumNotice">>
<b>_tmpNPC.firstName is about to cum!</b>
<</replace>>
<</if>>
<<set _tmpNPC.justCame = true>>
<</if>>
<</timed>>
<</widget>>
<<widget "updateSexHistory">>
<<if !($sexHistory.includes(_args[0]))>>
<<set $sexHistory.push(_args[0])>>
<</if>>
<</widget>>
<<widget 'getOrgasmText'>>
<<if _args[0] == $player.dna>>
<<if $player.body.gender != 'Female'>>
<<if $player.arousal < 45>>
/* meh */
<<switch random(1,5)>>
<<case 1>>
Weak spurts dribble from your cock as a dissapointing orgasm passes through you.
<<case 2>>
Your cock pulses weakly, a few feeble spurts of cum dribbling out even as the mild orgasm fades.
<<case 3>>
Gentle spurts pulse from your tip as muted pleasure suffuses your groin. The mild orgasm rolls through you, leaving you slightly unsatisfied.
<<case 4>>
Pleasure gently ripples through your cock. With a soft groan, you spill a modest amount of cum, the relief satisfying but brief.
<<case 5>>
Weak spurts pulse from your tip as your cock twitches feebly from the gentle climax.
<</switch>>
<<elseif $player.arousal < 75>>
/* mid */
<<switch random(1,5)>>
<<case 1>>
Your shaft jerks and pulses as streams of cum shoot from your tip. Groaning, you ride out the waves of pleasure radiating from your core.
<<case 2>>
Your cock jerks and spurts as ecstasy surges through you. Groaning, you milk out the last drops, spent and satisfied.
<<case 3>>
Intense contractions milk your cock as your shaft pulses strongly, spitting thick ropes of cum. A guttural moan rumbles in your chest as the pleasurable waves roll through you.
<<case 4>>
Ropes of cum shoot from your cock as it jerks erratically. You revel in the intense pleasure coursing through you.
<<case 5>>
Your cock jerks and throbs, shooting thick ribbons of cum. With a guttural groan, you shudder as the waves of pleasure crash through you.
<</switch>>
<<else>>
<<switch random(1,5)>>
<<case 1>>
Your shaft pulses urgently, spurting powerful streams of cum. Arching off the bed, you bellow in rapture, completely overwhelmed by the sheer intensity.
<<case 2>>
Your cock pulses and jumps, spewing jet after jet of hot seed. Roaring in ecstasy, your body convulses as one of the most intense climax of your life rocks you to the core.
<<case 3>>
Your cock pulses violently, spurting what feels like endless streams of seed. Back bowed, you roar in ecstasy, overcome by the intensity of your peak.
<<case 4>>
Your cock erupts like a geyser, spraying thick jets of cum with powerful force. Writhing and roaring, you surrender to the overwhelming bliss, seeing white behind closed lids.
<<case 5>>
Your cock erupts violently, thick streams of jizz spraying everywhere. Overwhelmed, you convulse and roar, every muscle seized by the power of your peak.
<</switch>>
<</if>>
<<else>>
<<if $player.arousal < 25>>
/* meh */
<<switch random(1,5)>>
<<case 1>>
Your pussy flutters weakly, releasing a small trickle of juice and soft mewls escape your lips as gentle waves of pleasure wash over you.
<<case 2>>
Soft waves of pleasure ripple through your core as your pussy flutters from a gentle climax.
<<case 3>>
Gentle flutters ripple through your pussy as you hit your crescendo, a small moan escaping your lips. You shudder lightly, riding out the modest waves of pleasure as your orgasm eases you into relaxation.
<<case 4>>
With a soft gasp, you hit your peak, a gentle wave of pleasure washing over you. You shudder lightly, riding out the subtle contractions as your mild orgasm drifts through you.
<<case 5>>
Muted contractions ripple through your pussy, sending tingles dancing along your nerves as you hit a soft climax.
<</switch>>
<<elseif $player.arousal < 50>>
/* mid */
<<switch random(1,5)>>
<<case 1>>
Your pussy spasms and gushes as waves of pleasure surge through you. You gasp and moan, riding out your climax.
<<case 2>>
Pleasure surges through your body, hitting a preak that makes you throw your head back. Your pussy clenches and releases as you shudder through the satisfying climax
<<case 3>>
Your pussy spasms pleasantly, juices flowing freely as you gush lightly. A quiet moan escapes you, enjoying the warm, tingly feeling spreading through your core.
<<case 4>>
Strong spasms seize your core, making you gush and moan loudly. The intense pleasure crests before receding gradually, leaving you panting and pleasantly tingling.
<<case 5>>
Your pussy clenches and unclenches rhythmically, a trickle of fluid escaping. Panting softly, you ride out the pleasant waves, a satisfied hum vibrating in your throat.
<</switch>>
<<else>>
<<switch random(1,5)>>
<<case 1>>
Ecstasy detonates within you, radiating out from your core in molten waves. Every nerve ending screams in rapture as your pussy clamps down rhythmically.
<<case 2>>
Your whole body seizes as the climax crashes over you like a tidal wave. Ecstasy radiates from your core in pulsing waves.
<<case 3>>
Rapture seizes you as your orgasm crashes down around you. Rvery muscle tensing as bliss radiates from your core and your pussy spasms erratically.
<<case 4>>
Your cunt clamps down viciously, rippling as you squirt and convulse violently. Back arching, you wail in rapture, completely consumed by the mind-blowing intensity of your peak.
<<case 5>>
Your body writhes and shakes as intense contractions wrack your core. A hoarse scream tears from your lungs, lost in the all-consuming ecstasy of your peak.
<</switch>>
<</if>>
<</if>>
<<else>>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == _args[0])>>
<<if _tmpNPC.body.gender === 'Male'>>
<<if _tmpNPC.$spermPot <= 250>>
<<set _cumVol = 'spews a few small drops of watery cum'>>
<<elseif _tmpNPC.$spermPot <= 350>>
<<set _cumVol = 'sprays a moderate amount of cum from his cock'>>
<<elseif _tmpNPC.$spermPot <= 450>>
<<set _cumVol = 'explodes with a large amount of hot slick cum'>>
<<else>>
<<set _cumVol = 'erupts with an incredible amount of thick wet cum'>>
<</if>>
<<switch random(1,5)>>
<<case 1>>
He lets out a gutteral roar as his cock suddenly jerks and spasms. Thick ropes of hot, sticky cum shoot out of him as he _cumVol.
<<case 2>>
With a muffled shout, he climaxes hard, his cock pulsing as it _cumVol
<<case 3>>
With short and ragged breaths, almost like an exhausted animal, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s body tenses and his cock swells slightly before it starts to throb, and then _cumVol.
<<case 4>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> grunts and thrusts his hips faster for a few seconds before freezing as his entire focus moves inward and he _cumVol
<<case 5>>
His cock throbs in time with his heartbeat as he finally loses control and _cumVol, moaning loudly.
<</switch>>
<<else>>
<<switch random(1,5)>>
<<case 1>>
Her entire body quakes, back arching off the bed, as she peaks and cums hard, her pussy spasming and shaking.
<<case 2>>
With a high-pitched keen she comes apart at the seams and bucks wildly, completely lost in the throes of climax.
<<case 3>>
She throws her head back with a silent scream, her pussy spasming almost violently as she climaxes hard. Every muscle in her body goes taut as the intensity of her orgasm seems to short-circuit her brain, rendering her speechless.
<<case 4>>
Her body goes rigid as an orgasm crashes over her, muscles locking up as electricity zings along every nerve ending.
<<case 5>>
A gush of liquid heat pours out of her, running down her thighs as she creams as she cries out in the throws of her climax.
<</switch>>
<</if>>
<</if>>
<</widget>>
<<widget "calcSexStats">>
<<if $sexHistory>>
<<for _i to 0; _i< $sexHistory.length; _i++>>
<<if ['MPref','FPref'].includes($sexHistory[_i])>>
<<set $player.statBuffs[$sexHistory[_i]] += 1 >>
<<else>>
<<set $player.sexStats[$sexHistory[_i]] += 1>>
<<switch $sexHistory[_i]>>
<<case 'vag_get' 'vag_give' 'anal_get' 'anal_give'>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).sexTimes += 1>>
<</switch>>
<</if>>
<</for>>
<<set $sexHistory = []>>
<</if>>
<</widget>>
<<widget "calcLead">>
<<if !$blockSubSwitch>>
<<if $player.dom < $NPCArray.find(npc => npc.dna == $currDNA).dom - 20>>
<<set _tmpVal = true>>
<<elseif $player.dom > $NPCArray.find(npc => npc.dna == $currDNA).dom + 5>>
<<set _tmpVal = false>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<if $player.presenting === 'Female'>>
<<if random(0,$player.dom) > 75>>
<<set _tmpVal = true>>
<<else>>
<<set _tmpVal = false>>
<</if>>
<<else>>
<<if random(0,$player.dom) > 50>>
<<set _tmpVal = true>>
<<else>>
<<set _tmpVal = false>>
<</if>>
<</if>>
<<else>>
<<if $player.presenting === 'Female'>>
<<if random(0,$player.dom) > $NPCArray.find(npc => npc.dna == $currDNA).dom>>
<<set _tmpVal = true>>
<<else>>
<<set _tmpVal = false>>
<</if>>
<<else>>
<<if random(0,$player.dom) > $NPCArray.find(npc => npc.dna == $currDNA).dom>>
<<set _tmpVal = true>>
<<else>>
<<set _tmpVal = false>>
<</if>>
<</if>>
<</if>>
<</if>>
<<if !(['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender)) and $player.slutLevel < 3>>
<<set _tmpVal = true>>
<</if>>
<<set $isSub = _tmpVal>>
<</if>>
<</widget>>
<<widget "NPCSexInitiave">>
/* NPC decides he/she wants to do something new */
<<if $isSub and $NPCArray.find(npc => npc.dna == $currDNA).personality > 1 and random(0,1000) > 950 and $player.body.tits > 2>>
<<switch passage()>>
<<case "OralScene">>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<if $oralRx === 'Resist'>>
<<set $trnsImg = 'Media/Sex/TittyFuck/OnTop/Intro/Resist/' + random(1,5) + '.webp'>>
<<else>>
<<set $trnsImg = 'Media/Sex/TittyFuck/OnTop/Intro/' + random(1,7) + '.webp'>>
<</if>>
<<set _tmpArr = ['TittyFuck']>>
<<set $newAct = _tmpArr[random(0,_tmpArr.length-1)]>>
<<set $trnsTxt = 'He pulls his cock out of your mouth with a pop and yanks your top down, slapping his still-wet cock between your <<descTits $player>> tits. Instinctively your hands move up to cup your breasts, which only squeezes them harder around his slick cock.'>>
<<goto "SexSceneTransition">>
<</if>>
<<default>>
/* sex */
<<if $isSub and $sexDir === 'Getting'>>
<<if random($NPCArray.find(npc => npc.dna == $currDNA).dom,100) > 80 and ($gameDate.getTime() - $lastPOSSwitch)/1000 > 8*60 >>
<<set $lastPOSSwitch = $gameDate.getTime()>>
<<set $newAct = $sexPositionArray[random(0,$sexPositionArray.length-1)]>>
<<if $newAct and $newAct != $sexPosition>>
<<set $trnsImg = 'Media/Sex/IntroPosition/'>>
<<if $sexType === 'FF' or $sexType === 'TT'>>
<<set $trnsImg += 'FF/'>>
<<elseif $sexType === 'MM'>>
<<set $trnsImg += 'MM/'>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<if $player.dom > $NPCArray.find(npc => npc.dna == $currDNA).dom>>
<<set _tmpPos = 'OnBot'>>
<<set $trnsImg += 'FemOnBot/'>>
<<else>>
<<set _tmpPos = 'OnTop'>>
<<set $trnsImg += 'FemOnTop/'>>
<</if>>
<<else>>
<<if $player.dom > $NPCArray.find(npc => npc.dna == $currDNA).dom>>
<<set _tmpPos = 'OnTop'>>
<<set $trnsImg += 'FemOnTop/'>>
<<else>>
<<set _tmpPos = 'OnBot'>>
<<set $trnsImg += 'FemOnBot/'>>
<</if>>
<</if>>
<</if>>
<<if $sexType === 'FF' or $sexType === 'TT'>>
<<set $trnsImg += random(1,3) + '.webp'>>
<<elseif $sexType === 'MM'>>
<<set $trnsImg += random(1,1) + '.webp'>>
<<else>>
<<if _tmpPos === 'OnTop'>>
<<set $trnsImg += random(1,12) + '.webp'>>
<<else>>
<<set $trnsImg += random(1,6) + '.webp'>>
<</if>>
<</if>>
<<set $trnsTxt = 'Suddenly <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pushes you into a new position'>>
<<goto "SexSceneTransition">>
<</if>>
<</if>>
<</if>>
<</switch>>
<</if>>
<</widget>>
<<widget "otherActs">>
<div class="buttonContainer">
<<if !$blockPlayerChoice>>
<<button "Do something else">>
<<replace "#actionsContainer">>
<<if $sceneAct == 'Intercourse'>>
<div class="buttonContainer">
<<button "Change Position">>
<<replace "#actionsContainer">>
<<getPositionOptions>>
<</replace>>
<</button>>
<<if ['MF','TF','MM','TM'].includes($sexType) and ($player.slutLevel > 2 or $player.kinks.includes(52))>>
<<if !$isAnal>>
<<button "Switch to Anal sex" "sexSceneEngine">>
<<set $isAnal = true>>
<<set $isCoitus = false>>
<<set $sceneAct = 'Intercourse'>>
<<checkPosition $sexDir>>
<<calcArousal "intercourse" $arousalFactor 3>>
<</button>>
<<else>>
<<if !$analOnly and !$player.kinks.includes(52)>>
<<button "Switch to Vaginal sex" "sexSceneEngine">>
<<set $isAnal = false>>
<<set $isCoitus = true>>
<<set $sceneAct = 'Intercourse'>>
<<checkPosition $sexDir>>
<<calcArousal "intercourse" $arousalFactor 3>>
<</button>>
<</if>>
<</if>>
<</if>>
</div>
<</if>>
<div class="buttonContainer">
<<if $sceneAct != 'OralSex'>>
<<button "Switch to Oral sex" "sexSceneEngine">>
<<set $sceneAct = 'OralSex'>>
<</button>>
<</if>>
<<if $sceneAct != 'Handjob'>>
<<button "Switch to handjob" "sexSceneEngine">>
<<if ($sceneAct === 'TittyFuck' and $tittyFuckDir === 'Giving') or ($sceneAct === 'OralSex' and $oralDir === 'Getting') or $sexDir == 'Giving'>>
<<set $sceneDir = 'Getting'>>
<<else>>
<<set $sceneDir = 'Giving'>>
<</if>>
<<set $sceneAct = 'Handjob'>>
<</button>>
<</if>>
<<if $player.slutLevel > 3 or ($player.slutLevel > 2 and ['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender))>>
<<if $sceneAct != 'TittyFuck' and (($player.body.tits > 0 and $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male') or ($player.body.gender != 'Female' and $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'))>>
<<button "Switch to Titty fucking" "sexSceneEngine">>
<<set $sceneAct = 'TittyFuck'>>
<<if $player.body.gender === 'Female' or ($player.body.tits > 2 and $isSub)>>
<<set $sceneDir = 'Getting'>>
<<else>>
<<set $sceneDir = 'Giving'>>
<</if>>
<</button>>
<</if>>
<<if $sceneAct != 'Handjob'>>
<<button "Switch to intercourse" "sexSceneEngine">>
<<set $sceneAct = 'Intercourse'>>
<<if $isSub and $player.body.gender === 'Female'>>
<<set $sceneDir = 'Getting'>>
<<else>>
<<set $sceneDir = 'Giving'>>
<</if>>
<</button>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Go back">>
<<replace "#actionsContainer">>
<<switch $sceneAct>>
<<case 'Intercourse'>>
<<getSexActions>>
<<case 'OralSex'>>
<<getOralActions>>
<<case 'Handjob'>>
<<getHJActions>>
<</switch>>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<</widget>>
<<widget "sexPowerDown">>
<<calcSexStats>>
<<unset $blockStop>>
<<set $player.orgasm = 0>>
<<set $player.justCame>>
<<if $preSexFit and !compareObjects($preSexFit,$player.outfit)>>
<<if $postSexNude>>
<<set $lastWornFit = $preSexFit>>
<<else>>
<<wearFit $preSexFit "Auto">>
<</if>>
<<unset $preSexFit>>
<</if>>
<<unset $forceSex>>
<<unset $postSexNude>>
<<unset $sexFit>>
<<unset $skipEnding>>
<<unset $sexStartTime>>
<<unset $masturbationEvents>>
<<unset $analOnly>>
<<unset $vagOnly>>
<<unset $sexDir>>
<<unset $sexType>>
<<unset $sexPos>>
<<unset $isSub>>
<<unset $isCoitus>>
<<unset $isAnal>>
<<unset $vagOnly>>
<<unset $analOnly>>
<<unset $pExposed>>
<<unset $holeSwitch>>
<<unset $protectionUsed>>
<<unset $blockPlayerChoice>>
<<unset $sexPositionArray>>
<<unset $sexSceneInProg>>
<<unset $sexInit>>
<<unset $skipOpening>>
<<oralPowerDown>>
<<cumPowerDown>>
<<TittyFuckPowerDown>>
<<nonConPowerDown>>
<<gloryholePowerDown>>
<</widget>><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">Lavender Laundromat</font></b>
<br>
<img src="Media/Locations/Laundromat/lMat.webp" height="500rem">
<br><br>
<<if !$hasTokens>>
<div class="badText">You have no laundry tokens</div>
<<else>>
<<if $hasTokens === 1>>
<font color=blue><b>You have 1 laundry token</b></font>
<<else>>
<div class="goodText">You have $hasTokens laundry tokens</div>
<</if>>
<</if>>
/*
if $tokenCount = 0:
'<font color=red><b>You have no laundry tokens</b></font>'
else
if tokenCount = 1:
'<font color=blue><b>You have 1 token</b></font>'
else
'<font color=green><b>You have <<tokenCount>> laundry tokens</b></font>'
end
end
*nl
if laundrySvc = 0 and laundryDay = 0 and home_owned > 1:
'<b>You see a <a href="exec:gt ''Laundromat'',''ServiceFlyer'' ">flyer</a> advertising some sort of personal laundry service.</b>'
*nl
end
*/
<span id="repCont"><br></span>
The room is crammed to capacity with as many washing machines and dryers as possible. The entire place feels thick and damp, as if the very air itself is heavy and wet. Your eyes and nose sting slightly from the astringent cleaning chemicals and fragant dryer sheets.
<br><br>
No matter the time of day outside it always feels like a timeless limbo in here.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Do your laundry">>
<<if !$hasLaundry>>
<<replace "#repCont">>
<div class="badText">You don't have any laundry with you. Go home and get it from your wardrobe</div>
<</replace>>
<<elseif !$hasTokens>>
<<replace "#repCont">>
<div class="badText">You need to buy some laundry tokens first</div>
<</replace>>
<<else>>
<<goto "WashingMachine">>
<</if>>
<</button>>
<<button "Buy some tokens" "TokenATM">>
<<addSecs 15>>
<</button>>
</div>
<div class="buttonContainer">
<<if !$hasLaundry>>
<<button "Back to the bus station" 'BusStation'>>
<<addMins 1>>
<</button>>
<<button "Go outside" $busLoc>>
<<addMins 2>>
<</button>>
<<else>>
<<button "Take your laundry back home">>
<<unset $hasLaundry>>
<<addMins 7>>
<<goto $home.startLoc>>
<</button>>
<</if>>
</div>
</div><<if $hasTokens === 0>>
<<unset $hasTokens>>
<</if>>
<<set _dirtyFits = $player.wardrobe.items.filter(obj => obj.type === 'Fit' and obj.stats.fitSoil > 2 and obj.sku != $player.outfit.fit)>>
<center>
<b><font size="10em">Lavender Laundromat</font></b>
<br>
<img src="Media/Locations/Laundromat/tokens.webp" height="500rem">
<br><br>
It takes 1 token to wash 4 outfits, and each token costs $2
<br><br>
<<set _tmpLaundry = $player.wardrobe.items.filter(fit => fit.type === 'Fit' and fit.stats.fitSoil >= 2 and fit.sku != $player.outfit.fit)>>
You currently have _tmpLaundry.length outfits to wash and <<if $hasTokens>>$hasTokens<<else>>0<</if>> token<<if !$hasTokens or $hasTokens > 1>>s.<<else>>.<</if>>
<br><br>
It will cost you <<print Math.ceil(_dirtyFits.length/4)>> token<<if Math.ceil(_dirtyFits.length/4) > 1>>s<</if>> to wash all of your dirty fits.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Buy tokens">>
<<if !$hasTokens>>
<<set $hasTokens = 0>>
<</if>>
<<script>>
Dialog.setup('Enter amount of tokens to buy');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if !(isNaN(Number($userInput))) and Number($userInput) >= 0 and canPurchase(Number($userInput)*2)>><<set $hasTokens += Number($userInput)>><<set _tokenCost = Number($userInput)*2>><<spendMoney _tokenCost>><</if>><<script>>Dialog.close()<</script>><<goto "TokenATM">><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step back" "Laundromat">>
<<addSecs 10>>
<</button>>
</div>
</div><<set _dirtyFits = $player.wardrobe.items.filter(obj => obj.type === 'Fit' and obj.stats.fitSoil > 2 and obj.sku != $player.outfit.fit)>>
<center>
<b><font size="10em">Lavender Laundromat</font></b>
<br>
<img src="Media/Locations/Laundromat/wMachine.webp" height="600rem">
<br><br>
You have $hasTokens tokens and _dirtyFits.length outfits to wash.
<br><br>
It will cost you <<print Math.ceil(_dirtyFits.length/4)>> token<<if Math.ceil(_dirtyFits.length/4) > 1>>s<</if>> to wash all of your dirty fits.
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<if $hasTokens >= Math.ceil(_dirtyFits.length/4)>>
<<button "Wash all your clothes" "LaundromatWash">>
<<set $fitCount = _dirtyFits.length>>
<<set $hasTokens -= Math.ceil(_dirtyFits.length/4)>>
<</button>>
<<else>>
<<button "Pick number of tokens to use">>
<<script>>
Dialog.setup('Insert tokens into the machine');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if !(isNaN(Number($userInput))) and $userInput >= $hasTokens>><<set $hasTokens -= Number($userInput)>><<set $fitCount = Number($userInput)*4>><<set $hasTokens -= Number($userInput)>><</if>><<script>>Dialog.close()<</script>><<if ! isNaN(Number($fitCount)) and $pfitCounthoneMins > 0>><<goto "LaundromatWash">><</if>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Buy some tokens" "TokenATM">>
<<addSecs 15>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Step back" "Laundromat">>
<<addSecs 5>>
<</button>>
</div>
</div><<if $hasTokens <= 0>>
<<unset $hasTokens>>
<</if>>
<<set _dirtyFits = $player.wardrobe.items.filter(obj => obj.type === 'Fit' and obj.stats.fitSoil > 2 and obj.sku != $player.outfit.fit)>>
<<for _i to 0;_i < $fitCount;_i++>>
<<set _tmpMins = 15*(Math.ceil($fitCount/4))>>
<<addMins _tmpMins>>
<<set _dirtyFits[_i].stats.fitSoil = 0>>
<<if _dirtyFits[_i].stats.cumStain>>
<<run delete _dirtyFits[_i].stats.cumStain>>
<</if>>
<</for>>
<<set _tmpImg = 'Media/Locations/Laundromat/Wash/'>>
<<if $player.presenting === 'Female'>>
<<if $player.womb and $player.womb.showPreg>>
<<set _tmpImg += 'F/Preg/' + random(1,3) + '.webp'>>
<<elseif $player.isBimbo>>
<<set _tmpImg += 'F/Bimbo/' + random(1,9) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,8) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,6) + '.webp'>>
<</if>>
<center>
<b><font size="10em">Lavender Laundromat</font></b>
<br>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
You wash $fitCount fits.
</span>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Continue">>
<<unset $fitCount>>
<<set _tmpImg = 'Media/Misc/Laundry/'>>
<<if $player.body.gender === 'Male'>>
<<set _tmpImg += 'M/1.webp'>>
<<elseif !$player.body.womb or !$player.body.womb.showPreg>>
<<set _tmpImg += 'F/1.webp'>>
<<else>>
<<set _tmpImg += 'F/Preg/1.webp'>>
<</if>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
After an untold eternity of bordome you finally collect your freshly cleaned clothes from the dryer.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Take your laundry back home">>
<<unset $hasLaundry>>
<<addMins 7>>
<<goto $home.startLoc>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<center>
<b><font size="10em">The Crowing Moon Pawn Shop</font></b>
<br>
<img src="Media/Locations/WDistrict/Pawn/lobby.webp" height="450rem">
<br><br>
The air in the shoppe is thick with some kind of unidentifiable incense, coils of which waft through lazy sunbeams that peak through the windows and around the piles of items.
<br><br>
There's no obvious order to the items on display. Fancy items that look like they might cost hundreds of dollars gather dust on the floor while more cheap and mundane items are held behind locked glass.
<br><br>
A small decaying sign near the cash register is barely visible and all you can make are the letters "...ells-R-Us"
<br><br>
<div class="badText">The old man behind the counter angrily snaps at you to get lost "We're not open for the public yet!"</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave the shoppe" "WDistrict">>
<<addSecs 45>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<<if $bankQueue is undefined>>
<<set $bankQueue = random(2,6)>>
<</if>>
<center>
<b><font size="10em">Ellis Bank</font></b>
<br>
<img src="Media/Locations/BDistrict/Bank/lobby.webp" height="450rem">
<br><br>
You can practically smell the money in this place, too bad none of it is yours. A bored guard stands near the door, watching everyone inside the bank with a lazy eye. Tired looking people are lined up waiting to speak to a teller, you can get in line with them or go to the ATM if you already have an account.
</center>
<<genNPCs 'Bank'>>
<<getCurrNPCs 'Bank'>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Get in line" "TellerLine">>
<<addSecs 40>>
<</button>>
<<button "Go to the ATM">>
<<if $bankAccount is undefined>>
<<script>>
Dialog.setup("Error");
Dialog.wiki('<center><font size="5em;"><div class="badText">You don\'t have a bank account so you can\'t use the ATM</div></font></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<<else>>
<<addSecs 15>>
<<set $ATMReturnLoc = passage()>>
<<goto "BankATM">>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Leave the bank" "BDistrict">>
<<unset $bankQueue>>
<<addMins 1>>
<</button>>
</div>
</div><center>
<<set _tmpImg = 'Media/Locations/BDistrict/Bank/wait' + random(1,3) + '.webp'>>
<img @src="_tmpImg" height="450rem">
<br><br>
You step into queue and prepare to wait a while. There are currently $bankQueue people in line in front of you.
</center>
<<genNPCs 'BankLine' 2 2>>
<<alterNPCScene 'BankLine' 'BankLineChat'>>
<<getCurrNPCs 'BankLine'>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Wait your turn" "BankTeller">>
<<set _tmpMins = random(5,10)>>
<<addMins _tmpMins>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Get out of line" "Bank">>
<<addSecs 15>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div>
<<if $player.sub > $player.dom or ($player.mentalFem < 30 and $player.presenting === 'Female')>>
<<set _tmpBlock === 1>>
You tap the shoulder of the $NPCArray.find(npc => npc.dna == $currDNA).genRef in front of you and then draw a blank when <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> turns around and stares at you. You stammer for a moment and then drop your eyes, unsure of what your reason for bothering the person anyway.
<br><br>
You clear your throat uncomfortably and wonder if you would have handled it differently if you were a little more assertive.
<<else>>
You tap the shoulder of the $NPCArray.find(npc => npc.dna == $currDNA).genRef in front of you and feed <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> some story about being in a hurry and that you hope <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> might let you step front of <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>.
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go back" $returnLoc>>
<<addMins 1>>
<</button>>
</div>
</div><center>
<img src="Media/Locations/BDistrict/Bank/teller.webp" height="450rem">
<br><br>
The bank teller smiles at you, waiting for you to state your business
<span id="repCont"></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $bankAccount is undefined>>
<<button "Open an account">>
<<replace "#repCont">>
"Of course, <<if $player.presenting === 'Female'>>miss<<else>>sir<</if>>. The minimum amount you need to deposit to open an account is $50, if you have that all I need to see is an ID." she says in a pracaticed way that lets you know she's said it a thousand times before.
<</replace>>
<<replace '#actionsContainer'>>
<<if $player.money >= 50>>
<div class="buttonContainer">
<<button "Hand her your ID and the $50">>
<<set $bankAccount = new BankAccount()>>
<<run ATMDeposit(50)>>
<<refreshCaption>>
<<replace "#repCont">>
"Very good, all done! Here's your ATM card."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Thank her and leave" "Bank">>
<<run $player.phone.appsList.push(new App('Bank', 'Media/System/Phone/dollar.png','bankingApp'))>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<<else>>
<<replace "#repCont">>
<div class="badText">You don't have that much money</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Thank her and leave" "Bank">>
<<addSecs 15>>
<</button>>
<div>
<</replace>>
<</if>>
<</replace>>
<</button>>
<<else>>
<<if $player.money > 0>>
<<button "Deposit money">>
<<set $returnLoc = 'BankTeller'>>
<<script>>
Dialog.setup('Enter Deposit Amount');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if !(isNaN(Number($userInput))) and $userInput >= 0>><<set $depAmount = Number($userInput)>><</if>><<script>>Dialog.close()<</script>><<if ! isNaN(Number($depAmount)) and $depAmount > 0>><<set $ATMReturnLoc = passage()>><<goto "ATMDeposit">><</if>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
<</if>>
<<if $bankAccount.amount > 0>>
<<button "Withdraw Money">>
<<set $returnLoc = 'BankTeller'>>
<<script>>
Dialog.setup('Enter Withdraw Amount');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if !(isNaN(Number($userInput))) and $userInput >= 0>><<set $rqstAmount = Number($userInput)>><</if>><<script>>Dialog.close()<</script>><<if ! isNaN(Number($rqstAmount)) and $rqstAmount > 0>><<set $ATMReturnLoc = passage()>><<goto "ATMWithdraw">><</if>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
<</if>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Leave the counter" "Bank">>
<<addSecs 30>>
<</button>>
</div>
</div><center>
<<set _tmpImg = 'Media/Locations/BDistrict/Bank/' + ($player.presenting === 'Female'? 'f':'m') + 'ATM.webp'>>
<img @src="_tmpImg" height="450rem">
<br>
<<if $bankAccount is undefined>>
<div class="badText">You don't have a bank account.</div>
<<else>>
You have <b>$<<print $bankAccount.amount>>.00</b> in your account
<br><br>
You can withdraw up to <b>$300.00</b> from your account each day, if you have the funds.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if !($bankAccount is undefined)>>
<div class="buttonContainer">
<<if $player.money > 0>>
<<button "Deposit Money">>
<<set $returnLoc = 'BankATM'>>
<<script>>
Dialog.setup('Enter Deposit Amount');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if !(isNaN(Number($userInput))) and $userInput >= 0>><<set $depAmount = Number($userInput)>><</if>><<script>>Dialog.close()<</script>><<if ! isNaN(Number($depAmount)) and $depAmount > 0>><<goto "ATMDeposit">><</if>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
<</if>>
<<if $bankAccount.amount > 0>>
<<button "Withdraw Money">>
<<set $returnLoc = 'BankATM'>>
<<script>>
Dialog.setup('Enter Withdraw Amount');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if !(isNaN(Number($userInput))) and $userInput >= 0>><<set $rqstAmount = Number($userInput)>><</if>><<script>>Dialog.close()<</script>><<if ! isNaN(Number($rqstAmount)) and $rqstAmount > 0>><<goto "ATMWithdraw">><</if>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
<</if>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Step back" $ATMReturnLoc>>
<<addSecs 15>>
<</button>>
</div>
</div><<if $depAmount > $player.money>>
<<script>>
Dialog.setup("Error");
Dialog.wiki('<center><font size="5em;"><div class="badText">You don\'t have that much money.</div></font></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<<goto $ATMReturnLoc>>
<<else>>
<<run ATMDeposit($depAmount)>>
<<unset $depAmount>>
<<addSecs 45>>
<<goto $ATMReturnLoc>>
<</if>><<if $rqstAmount > $bankAccount.amount>>
<<script>>
Dialog.setup("Error");
Dialog.wiki('<center><font size="5em;"><div class="badText">You don\'t have that much money in your account.</div></font></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<<goto $ATMReturnLoc>>
<<else>>
<<run bankWithdraw($rqstAmount)>>
<<unset $rqstAmount>>
<<addSecs 45>>
<<goto $ATMReturnLoc>>
<</if>><<set $locType = 'Indoors'>>
<<if $currShop == 'Fan'>>
<<set
_id = 'Fan',
_name = 'Fans Discount Shoppe',
_image ='Media/Locations/Shops/Fan/shop1.webp',
_desc = 'You immediately get the sense that this is a bare-bones discount clothing shop with an almost warehouse appearance to it. There are plenty of clothes and accessories on display, but all of them have an undefinable \'worn-down\' feel to them. The handful of people shopping here all look like they\'re used to second-hand clothes and that coming here is a big splurge for them.',
_inventory = {
bras: [1,2,3,4,5,6,7,8,9,10,18,69,70,71,76,77,81,82,83],
panties: [1,2,3,4,5,6,7,8,18,42,43,44,55,56,60],
shoes: [10,11,12,13,14,15,16,17,18,19,20,21,135,136,137,138],
fits: [2,3,4,5,6,7,43,44,45,46,47,48,50,68,69,70,71,72,73,74,75,80,82,84,142,143,144,170,172,173,174,175,647,648,649,650],
coats: [1,2,3,7,9],
accessories: [
[], /*bracelets*/
[1,2,3,4,5,6,7,8], /*earrings*/
[1,2,3,4,5], /*necklaces*/
[1,4,5,6,7,8], /*purses*/
[1,2,3,4] /*rings*/
]
}
>>
<<elseif $currShop == 'TimeToPlay'>>
<<set
_id = 'TimeToPlay',
_name = 'Time To Play',
_image = 'Media/Locations/Shops/TimeToPlay/shop1.webp',
_desc = 'Fast-paced drum and bass music fills the air loud enough to get your blood pumping, but not so loud that it\'s difficult to talk to the staff. Activewear of all shapes and sizes line the wall as far as you can see and the people browsing through them run the gambit from thick and muscular to svelte and trim -- but each one fit and attractive. Anyone who comes in here will either be inspired to work out or sent running home in shame.',
_inventory = {
bras: [11,12],
panties: [9,10],
shoes: [2,3,4,5,7,8,9,33,34,35],
fits: [9,10,11,12,14,15,51,52,53,54,117,118,119,120,121,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,235,619],
coats: [],
accessories: []
}
>>
<<elseif $currShop == 'Slutz'>>
<<set
_id = 'Slutz',
_name = 'Slutz',
_image = 'Media/Locations/Shops/Slutz/shop1.webp',
_desc = 'Fast-paced drum and bass music fills the air loud enough to get your blood pumping, but not so loud that it\'s difficult to talk to the staff. Activewear of all shapes and sizes line the wall as far as you can see and the people browsing through them run the gambit from thick and muscular to svelte and trim -- but each one fit and attractive. Anyone who comes in here will either be inspired to work out or sent running home in shame.',
_inventory = {
bras: [14,15,16,19,20,21,22,23,24,25,78],
panties: [13,14,15,19,20,21,22,23,24,25,57,61,62,63,64,65],
shoes: [22,23,24,25,26,27,28,29,30,31,37],
fits: [16,17,18,19,21,22,23,24,25,26,27,28,30,31,32,33,35,36,37,38,39,40,41,42,58,59,60,61,62,63,81,83,85,86,87,88,90,91,93,94,95,96,97,98,99,100,101,102,104,105,106,110,111,112,113,114,115,116],
coats: [],
accessories: [
[], /*bracelets*/
[9,10,11,12,13], /*earrings*/
[6,7,8,9,10,11], /*necklaces*/
[11,13,89,90], /*purses*/
[] /*rings*/
]
}
>>
<<elseif $currShop == 'FinerThings'>>
<<set
_id = 'FinerThings',
_name = 'Finer Things Club',
_image = 'Media/Locations/Shops/FinerThings/shop1.webp',
_desc = 'Elegant clothing is artfully displayed around this up-scale clothing store. You have the feeling that you shouldn\'t even be in here unless you\'re already dressed up and have tons of money to spend. Even the employees look like they\'re on their way to an elegant dinner party.<br><br>A perfectly coifed woman breezes over to you and lays a hand lightly on your elbow, gently leading you further into the store. "Welcome, my dear, to The Finer Things Club. Come, let\'s see what exquisite styles we have for you. You\'ll find only the best of everything here."',
_inventory = {
bras: [],
panties: [],
shoes: [43,44,45,46,145,146,147,148,149,150,151,152],
fits: [176,177,178,179,180,770,771,772,773,774,775,777],
coats: [8],
accessories: [
[], /*bracelets*/
[], /*earrings*/
[], /*necklaces*/
[14,15,16,17,18,19], /*purses*/
[] /*rings*/
]
}
>>
<<elseif $currShop == 'Tessuti'>>
<<set
_id = 'Tessuti',
_name = 'Tessuti',
_image = 'Media/Locations/Shops/Tessuti/shop1.webp',
_desc = 'Low-key jazz music plays in the store, perfectly accenting the mood of an established well-heeled gentleman\'s clothing store. Suits of any imaginable color and style extend out to the distance, with dress shoes and ties mixed in to break up the flow. Even the \'Casual\' clothes here look like they\'d fit right in at any red-carpet affair, and all of them look like they cost more than some people make in a year. But the money is well justified by the high quality of the clothing offered.',
_inventory = {
bras: [],
panties: [],
shoes: [47,48,49,50],
fits: [20,76,77,78,79],
coats: [],
accessories: [
[], /*bracelets*/
[], /*earrings*/
[], /*necklaces*/
[20,21,22,23], /*purses*/
[] /*rings*/
]
}
>>
<<elseif $currShop == 'MMaternity'>>
<<set
_id = 'MMaternity',
_name = 'Modern Maternity',
_image = 'Media/Locations/Shops/MMaternity/shop1.webp',
_desc = 'As you enter the store you have to pause and look around; it seems like your average clothing store but every single item here is designed for expectant mothers. It looks decidedly grown up for something that caters to pregnant women, the posters and advertisements all seem to be selling the "Yummy Mummy" idea -- just because a woman is pregnant doesn\'t mean she isn\'t sexy and desirable.',
_inventory = {
bras: [],
panties: [],
shoes: [],
fits: [145,146,147,148,149,151,152,591,592,593,594,595,596,597,598,599,601,602,603,604,606,607,608,609,610,631,632,633,634,635,636,637,638,639,640,641],
coats: [],
accessories: []
}
>>
<<elseif $currShop == 'DarkAngel'>>
<<set
_id = 'DarkAngel',
_name = 'Dark Angel',
_image = 'Media/Locations/Shops/DarkAngel/shop1.webp',
_desc = 'You enter into the store, a heavy, cloying scent lingers in the air. Incense perhaps, leather? There\'s a hint of something else as well, smoke or a bit of plum. The store is dark, with winding isles filled with mystery. It almost seems as if the store is larger than it should be on the inside. You\'d think everything in here would be black, but you see accents of color everywhere. Much of it is somber, but there are brighter notes as well.',
_inventory = {
bras: [26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,80],
panties: [26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,59],
shoes: [58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122],
fits: [267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,718,719,720,721,722,723,724,725,726,748,749,750,751,752,753,754,755,756,757],
coats: [],
accessories: [
[], /*bracelets*/
[14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38], /*earrings*/
[13,14,15,16,17,18,19,20,21,22,23,24,25,26], /*necklaces*/
[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88], /*purses*/
[5,6,7,8,9,10] /*rings*/
]
}
>>
<<elseif $currShop == 'Pink'>>
<<set
_id = 'Pink',
_name = 'Pink',
_image = 'Media/Locations/Shops/Pink/shop1.webp',
_desc = '',
_inventory = {
bras: [17,72,73,79],
panties: [17,45,46,58],
shoes: [139,140,141,142,143,144],
fits: [13,49,108,652,653,654,656,657,658,659,660,661,662,663,664,665,666,667,668,669,675,676,679,680,682,687,688,689,690,691,692,743],
coats: [],
accessories: [
[], /*bracelets*/
[39,40,41,42,44,45,46,47,48], /*earrings*/
[27], /*necklaces*/
[2,3,10,91], /*purses*/
[] /*rings*/
]
}
>>
<<elseif $currShop == 'BAT'>>
<<set
_id = 'BAT',
_name = 'B.A.T',
_image = 'Media/Locations/Shops/BAT/shop1.webp',
_desc = '',
_inventory = {
bras: [52,53,54,55,56,57,59,60,61,62,63,64,65,66,67,75],
panties: [17,45,46,58],
purses: [2,3,10,91],
shoes: [],
fits: [182,183,184,185,186,187,188,189,190,191,195,196,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,233,234,236,237,238,239,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,,495,497,498,499,501,502,503,504,505,507,508,509,510,511,512,513,514,515,516,517,518,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,545,546,547,548,549,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,571,572,573,574,575,576,577,578,579,580,5581,582,583,584,585,586,587,588,589,590,744,745,746],
coats: [],
accessories: [
[], /*bracelets*/
[], /*earrings*/
[], /*necklaces*/
[], /*purses*/
[] /*rings*/
]
}
>>
<<elseif $currShop == 'Pectacular'>>
<<set
_id = 'Pectacular',
_name = 'Pectacular',
_image = 'Media/Locations/Shops/Pectacular/shop1.webp',
_desc = '',
_inventory = {
bras: [],
panties: [48,49,50,51,52,53],
purses: [],
shoes: [126,127,128,129,130],
fits: [695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717],
coats: [],
accessories: []
}
>>
<</if>>
<<set $shop = new ClothingStore(_id,_name,_image,_desc,_inventory)>>
/*generic layout of each store */
<center><b><h1><<print $shop.dispName>></h1></b>
<br>
<img @src="$shop.image" height=450rem>
<br>
<<print $shop.description>>
<br>
<span id="repCont"></span>
<br>
<<if $shop.inventory.bras.length > 0>>
<<button "View Bras">>
<<if $player.body.tits === 0 and $player.mentalFem < 30>>
<<replace "#repCont">>
<div class="badText">You have no need to browse <b>those</b> items</div>
<</replace>>
<<else>>
<<set $currItem = 'Bras'>>
<<addSecs 10>>
<<goto "ListStoreClothing">>
<</if>>
<</button>>
<</if>>
<<if $shop.inventory.panties.length > 0>>
<<button "View Panties" "ListStoreClothing">><<set $currItem = 'Panties'>><<addSecs 10>><</button>>
<</if>>
<<if $shop.inventory.fits.length > 0>>
<<button "View Outfits" "ListStoreClothing">><<set $currItem = 'Fits'>><<addSecs 10>><</button>>
<</if>>
<<if $shop.inventory.shoes.length > 0>>
<<button "View Shoes" "ListStoreClothing">><<set $currItem = 'Shoes'>><<addSecs 10>><</button>>
<</if>>
<<if $shop.inventory.coats.length > 0>>
<<button "View Coats" "ListStoreClothing">><<set $currItem = 'Coats'>><<addSecs 10>><</button>>
<</if>>
<<if $shop.inventory.accessories.length > 0>>
<<button "View Accessories" "ListStoreClothing">>
<<set $currItem = 'Accessories'>>
<<set $currMenu = 'Purses'>>
<<addSecs 10>><</button>>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave the store" $retLoc>><<unset $shop>><<addSecs 30>><</button>>
</div>
</div><center><b><h1><<print $shop.dispName>></h1></b></center>
<<if $currMenu is undefined>>
<<set $currMenu = 'Casual'>>
<<if $shop.storeId === 'TimeToPlay'>>
<<set $currMenu = 'Athletic'>>
<<elseif $shop.storeId === 'Tessuti' or $shop.storeId === 'FinerThings'>>
<<set $currMenu = 'Fancy'>>
<</if>>
<</if>>
<<switch $currItem>>
<<case "Bras">>
<<set _tmpItm = $shop.inventory.bras>>
<<case "Panties">>
<<set _tmpItm = $shop.inventory.panties>>
<<case "Fits">>
<<set $storePassage = passage()>>
<<include 'fitTypeTabs'>>
<<set _tmpItm = $shop.inventory.fits>>
<<case "Shoes">>
<<set $storePassage = passage()>>
<<set _tmpItm = $shop.inventory.shoes>>
<<include 'shoeTabs'>>
<<case "Coats">>
<<set _tmpItm = $shop.inventory.coats>>
<<case "Accessories">>
<<set $storePassage = passage()>>
<<include 'AccessoriesTabs'>>
<<switch $currMenu>>
<<case "Bracelets">>
<<set _tmpItm = $shop.inventory.accessories[0]>>
<<case "Earrings">>
<<set _tmpItm = $shop.inventory.accessories[1]>>
<<case "Necklaces">>
<<set _tmpItm = $shop.inventory.accessories[2]>>
<<case "Purses">>
<<set _tmpItm = $shop.inventory.accessories[3]>>
<<case "Rings">>
<<set _tmpItm = $shop.inventory.accessories[4]>>
<</switch>>
<</switch>>
<div class='clothesList'>
<<for _rowIndex to 0; _rowIndex < _tmpItm.length; _rowIndex++>>
<<capture _rowIndex>>
<<if $currItem === 'Accessories'>>
<<genClothing $currMenu _tmpItm[_rowIndex]>>
<<else>>
<<genClothing $currItem _tmpItm[_rowIndex]>>
<</if>>
<<if $clothingObj.style === $currMenu or $currItem != 'Fits'>>
<<canWearIt $clothingObj.sku $clothingObj.type.toLowerCase()>>
<<if (!$ownedFilter or ($ownedFilter and $player.wardrobe.checkWardrobe($clothingObj.type,$clothingObj.sku) === 0)) and (!$wearFilter or ($wearFilter and $canWearFit))>>
<<if $clothingObj.stats.fem === 1>>
<span class="pinkBorder">
[img[clothing|$clothingObj.image][ViewStoreClothing][$tmpSku to _tmpItm[_rowIndex]]]
</span>
<<elseif $clothingObj.stats.masc === 1>>
<span class="blueBorder">
[img[clothing|$clothingObj.image][ViewStoreClothing][$tmpSku to _tmpItm[_rowIndex]]]
</span>
<<else>>
<<if $currItem != 'Shoes' or ($currItem == 'Shoes' and (!$wearFilter or ($wearFilter and $canWearFit)))>>
<span>
[img[clothing|$clothingObj.image][ViewStoreClothing][$tmpSku to _tmpItm[_rowIndex]]]
</span>
<</if>>
<</if>>
<</if>>
<</if>>
<</capture>>
<</for>>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Step back" "clothingStore">>
<<unset $menuTarg>>
<<unset $currMenu>>
<<addSecs 10>>
<</button>>
</div>
</div><center><b><h1><<print $shop.dispName>></h1></b>
<br>
<<if $currItem === 'Accessories'>>
<<genClothing $currMenu $tmpSku>>
<<else>>
<<genClothing $currItem $tmpSku>>
<</if>>
<<if $currItem === 'Fits'>>
<<checkFitInhib $clothingObj>>
<<if $clothingObj.stats.fem === 1>>
<span class="pinkBorder">
<img @src="$clothingObj.image">
</span>
<<elseif $clothingObj.stats.masc === 1>>
<span class="blueBorder">
<img @src="$clothingObj.image">
</span>
<<else>>
<span>
<img @src="$clothingObj.image">
</span>
<</if>>
<<else>>
<span>
<img @src="$clothingObj.image" height="500rem">
</span>
<</if>>
<br>
<<print $clothingObj.desc>>
<br>
<b>Price $<<print $clothingObj.price>>.00</b>
<br><br>
<<if $clothingObj.type === 'Fit'>>
<<playerFitRx $clothingObj>>
<<elseif $clothingObj.type === 'Shoes'>>
<<playerShoeRx $clothingObj>>
<</if>>
<div id="responseDiv"></div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $canWearFit>>
<<button "Buy this item">>
<<if $currItem === 'Accessories'>>
<<genClothing $currMenu $tmpSku>>
<<else>>
<<genClothing $currItem $tmpSku>>
<</if>>
<<if $player.mentalFem <= 30 and $clothingObj.type === 'Purse'>>
<<replace "#responseDiv">>
<div id="responseDiv" class="badText">There's no way you're going to buy a purse!</div>
<</replace>>
<<elseif canPurchase($clothingObj.price) and $player.wardrobe.checkWardrobe($clothingObj.type,$clothingObj.sku) === 0>>
<<unset $canWearFit>>
<<makePurchase 'clothing' $clothingObj.type $clothingObj.sku $clothingObj.price>>
<<addSecs 10>>
<<else>>
<<if $player.wardrobe.checkWardrobe($clothingObj.type,$clothingObj.sku) != 0>>
<<replace "#responseDiv">>
<div id="responseDiv" class="badText">You already have this item</div>
<</replace>>
<<else>>
<<replace "#responseDiv">>
<div id="responseDiv" class="badText">You can't afford this item.</div>
<</replace>>
<</if>>
<</if>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Step back" "ListStoreClothing">>
<<unset $canWearFit>>
<<addSecs 10>>
<</button>>
</div>
</div><<set $locType = 'Indoors'>>
<<switch $currShop>>
<<case 'Safeway'>>
<<set
_id = 'Safeway',
_name = 'Safeway',
_image ='Media/Locations/Shops/Safeway/grocery' + random(1,2) + '.webp',
_desc = 'The neighborhood grocery store is always open and ready to cater to any craving you might have at any time of the day or night. Most times it\'s pretty crowded and noisy but if you want to avoid the crowds you can always shop at night.',
_inventory = ['foodItems','Cosmetics','Housewares','Booze']
>>
<<case 'RiteAid'>>
<<set
_id = 'RiteAid',
_name = 'Rite Aid',
_image ='Media/Locations/Shops/RiteAid/shop1.webp',
_desc = 'The gleaming white floor tiles reflects the over-bright flourescent lighting in an attempt to make the place look more clinical than it really is.',
_inventory = ['Pharmacy']
>>
<<case 'BestBuy'>>
<<set
_id = 'BestBuy',
_name = 'Best Buy',
_image ='Media/Locations/Shops/BestBuy/shop1.webp',
_desc = 'All the marvels and wonders of the modern technological age are arrayed before you. From laptops to Refrigerators, anything that takes electricity can be purchased here. The usual assortment of gaming nerds crowd around the newest game section, while mom-and-pop looking couples browse through the large appliances -- all of it set to the backdrop of some generic non-confrontational music being pumped through hidden speakers. You can almost feel the buzz of so many gadgets being spun up at the same time.',
_inventory = ['Electronics']
>>
<<case 'GameStore'>>
<<set
_id = 'GameStore',
_name = 'Game Store',
_image ='Media/Locations/Shops/GameStore/shop1.webp',
_desc = 'The walls are lined with the latest video games and air is heavy with the smell of plastic wrap and boy-stink.',
_inventory = []
>>
<<case 'Newsstand Kiosk'>>
<<set
_id = 'Newsstand',
_name = 'Newsstand Kiosk',
_image ='Media/Locations/UDistrict/kiosk.webp',
_desc = '',
_inventory = ['Newsstand']
>>
<</switch>>
<<set $shop = new ItemStore(_id,_name,_image,_desc,_inventory)>>
/*generic layout of each store */
<center>
<b><font size="10em"><<print $shop.dispName>></font></b>
<br>
<img @src="$shop.image" height=450rem>
<br>
<<print $shop.description>>
<br>
<<if !($jobArr.some(item => item.employer === 'Safeway')) and $shop.dispName === 'Safeway' and !($safewayJobBlock)>>
<br>
<div class="goodText">Near the door as you enter is a <<link "Help Wanted" "SafewayHelpWanted">><<addMins 2>><</link>> sign.</div>
<br>
<<else>>
<br>
<</if>>
<<if $shop.inventory.includes('foodItems')>>
<<button "Grocery Aisle" "listItems">>
<<set $aisleImg = 'Media/Locations/Shops/Safeway/shop' + random(1,7) + '.webp'>>
<<set $storeItems = []>>
<<set $storeItems.push(new StoreItem('Healthy Food','Healthy Food',1,1,10,-1))>>
<<set $storeItems.push(new StoreItem('Regular Food','Regular Food',1,1,5,-1))>>
<<set $storeItems.push(new StoreItem('Cheap Food','Cheap Food',1,1,2,-1))>>
<<set $specialItems = []>>
<<addSecs 10>>
<</button>>
<</if>>
<<if $shop.inventory.includes('Cosmetics')>>
<<button "Cosmetics Aisle" "listItems">>
<<set $aisleImg = 'Media/Locations/Shops/Safeway/cosmetics'>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<if $player.body.gender === 'Woman'>>
<<set $aisleImg += random(1,10) + '.webp'>>
<<else>>
<<set $aisleImg += '0.webp'>>
<</if>>
<<else>>
<<set $aisleImg += random(11,12) + '.webp'>>
<</if>>
<<set $storeItems = []>>
<<set $storeItems.push(new StoreItem('Nail Trimmer','Nail Trimmer',1,1,12,1))>>
<<set $storeItems.push(new StoreItem('Razor','Disposable Razor (pack of 10)',10,1,12,-1))>>
<<set $storeItems.push(new StoreItem('Shampoo','Shampoo (contains 14 uses)',14,1,8,-1))>>
<<set $storeItems.push(new StoreItem('Lip Balm','Lip Balm (contains 20 uses)',20,1,8,-1))>>
<<set $storeItems.push(new StoreItem('Toothbrush','Toothbrush',1,1,5,1))>>
<<set $storeItems.push(new StoreItem('Toothpaste','Toothpaste (contains 100 uses)',100,1,10,-1))>>
<<set $storeItems.push(new StoreItem('Hair Brush','Hair Brush',1,1,6,1))>>
<<set $storeItems.push(new StoreItem('Cosmetics','Makeup kit (contains 20 uses)',20,1,20,-1))>>
<<set $storeItems.push(new StoreItem('Travel Mouthwash','Travel Mouthwash (contains 12 uses)',12,1,12,-1))>>
<<set $storeItems.push(new StoreItem('Travel Brush','Travel Brush',1,1,4,1))>>
<<set $storeItems.push(new StoreItem('Compact Mirror','Compact Mirror',1,1,8,1))>>
<<set $storeItems.push(new StoreItem('Wet Wipes','Wet wipes (contains 15 wipes)',15,1,10,-1))>>
<<set $storeItems.push(new StoreItem('Hair Scrunchy','Hair scrunchy (pack of 4)',4,1,5,-1))>>
<<set $storeItems.push(new StoreItem('Honeydew Cream','Honeydew Cream (contains 10 uses)',10,1,25,-1))>>
<<set $specialItems = [
{
name: 'Cosmetics',
condition:'$player.mentalFem > 32 or $player.traits.includes(1) or $player.traits.includes(11)',
alert: '<div class="badText"><center>There\'s no way you\'re buying makeup!</center></div>'
},{
name: 'Honeydew Cream',
condition:'$player.mentalFem > 30 or $player.questTracker.some(item => item.idx === "BreastCream") or $player.questTracker.some(item => item.idx === "ItchyNips")',
alert: '<div class="badText"><center>Why would you even consider that?</center></div>'
},
{
name: 'Travel Mouthwash',
condition:'$player.outfit.purse != 0',
alert: '<div class="badText"><center>You need a purse to carry a bottle of mouthwash.</center></div>'
},
{
name: 'Travel Brush',
condition:'$player.outfit.purse != 0',
alert: '<div class="badText"><center>You need a purse to carry a travel brush.</center></div>'
},
{
name: 'Compact Mirror',
condition:'$player.outfit.purse != 0',
alert: '<div class="badText"><center>You need a purse to carry a compact mirror.</center></div>'
},
{
name: 'Wet Wipes',
condition:'$player.outfit.purse != 0',
alert: '<div class="badText"><center>You need a purse to carry a pack of wipes.</center></div>'
},
{
name: 'Hair Scrunchy',
condition:'$player.body.hair.length > 160',
alert: '<div class="badText"><center>You have no need for a hair scruncy.</center></div>'
}
]>>
<<addSecs 10>>
<</button>>
<</if>>
<<if $shop.inventory.includes('Housewares')>>
<<button "Housewares" "listItems">>
<<set $aisleImg = 'Media/Locations/Shops/Safeway/housewares' + random(1,3) + '.webp'>>
<<set $storeItems = []>>
<<set $storeItems.push(new StoreItem('Umbrella','Umbrella',1,1,10,1))>>
<<set $storeItems.push(new StoreItem('Dinner plates','Dinner plates (set of 4)',4,1,8,-1))>>
<<set $storeItems.push(new StoreItem('Cotton bedsheets','Cotton bedsheets',11,1,50,1))>>
<<set $storeItems.push(new StoreItem('Silk bedsheets','Silk bedsheets',1,1,80,1))>>
<<set $specialItems = []>>
<<addSecs 10>>
<</button>>
<</if>>
<<if $shop.inventory.includes('Booze')>>
<<button "Booze Aisle" "listItems">>
<<set $aisleImg = 'Media/Locations/Shops/Safeway/'>>
<<if $player.presenting === "Female">>
<<set $aisleImg += 'fBooze' + random(1,1) + '.webp'>>
<<else>>
<<set $aisleImg += 'mBooze' + random(1,1) + '.webp'>>
<</if>>
<<set $storeItems = []>>
<<set $storeItems.push(new StoreItem('Domestic Beer','6-pack of domestic beer',6,1,15,-1))>>
<<set $storeItems.push(new StoreItem('Imported Beer','6-pack of imported beer',6,1,30,-1))>>
<<set $storeItems.push(new StoreItem('Box of Wine','Box of wine (12 glasses)',12,1,20,-1))>>
<<set $storeItems.push(new StoreItem('Bottle of Wine','Bottle of wine (6 glasses)',6,1,40,-1))>>
<<set $specialItems = []>>
<<addSecs 10>>
<</button>>
<</if>>
<<if $shop.inventory.includes('Pharmacy')>>
<<set $aisleImg = $shop.image>>
<<set $storeItems = []>>
<<set $storeItems.push(new StoreItem('Sleeping Pills','Sleeping Pills (contains 12)',12,1,20,-1))>>
<<set $storeItems.push(new StoreItem('Toothbrush','Toothbrush',1,1,5,1))>>
<<set $storeItems.push(new StoreItem('Toothpaste','Toothpaste (contains 100 uses)',100,1,10,-1))>>
<<set $storeItems.push(new StoreItem('Suntan Lotion','Suntan Lotion (contains 14 uses)',14,1,25,-1))>>
<<set $storeItems.push(new StoreItem('Tampons','Tampons (contains 14)',14,1,25,-1))>>
<<set $storeItems.push(new StoreItem('Sanitary Pads','Sanitary Pads (contains 14)',14,1,25,-1))>>
<<set $storeItems.push(new StoreItem('Birth Control Pills','Birth Control (enough for 1 month)',30,1,50,-1))>>
<<set $storeItems.push(new StoreItem('Pregnancy Test','Pregnancy Test',1,1,20,-1))>>
<<set $storeItems.push(new StoreItem('Condoms','Condoms (12 pack)',12,1,15,-1))>>
<<set $storeItems.push(new StoreItem('Breast Pump','Breast Pump',1,1,20,1))>>
<<set $storeItems.push(new StoreItem('Milk Bottle','Milk Bottles (pack of 4)',4,1,25,-1))>>
<<set $storeItems.push(new StoreItem('Belly Oil','Belly Oil (enough for 15 uses)',15,1,30,-1))>>
<<set $storeItems.push(new StoreItem('Prenatal Vitamins','Prenatal Vitamins (enough for 14 days)',14,1,30,-1))>>
<<set $specialItems = [
{
name: 'Tampons',
condition:'$player.body.gender === "Female" and ($player.mentalFem >= 50 or $player.body.womb.firstMensies <= $gameDate)',
alert: '<div class="badText"><center>There\'s no way you\'re buying tampons!</center></div>'
},
{
name: 'Sanitary Pads',
condition:'$player.body.gender === "Female" and ($player.mentalFem >= 50 or $player.body.womb.firstMensies <= $gameDate)',
alert: '<div class="badText"><center>There\'s no way you\'re buying pads!</center></div>'
},
{
name: 'Birth Control Pills',
condition:'$player.body.gender === "Female" and ($player.mentalFem >= 30 or $player.body.womb.lastMensies > 0)',
alert: '<div class="badText"><center>There\'s no way you\'re buying birth control pills. Why would you even need them?</center></div>'
},
{
name: 'Pregnancy Test',
condition:'($player.body.womb and ($currJulianDate - $player.sexStats.lastSex) < 14) or ($player.questTracker.some(obj => obj.idx === "PregTracker") and $player.questTracker.find(obj => obj.idx === "PregTracker").level == 2) or $player.mentalFem > 50',
alert: '<div class="badText"><center>Only women who might be pregnant need that item.</center></div>'
},
{
name: 'Breast Pump',
condition:'$player.body.gender === "Female" and ((($player.questTracker.some(obj => obj.idx === "PregTracker") and $player.questTracker.find(obj => obj.idx === "PregTracker").level >= 3)) or $player.questTracker.some(obj => obj.idx === "Lactation"))',
alert: '<div class="badText"><center>You have no reason to buy one of those.</center></div>'
},
{
name: 'Milk Bottle',
condition:'$player.body.gender ==="Female" and ((($player.questTracker.some(obj => obj.idx === "PregTracker") and $player.questTracker.find(obj => obj.idx === "PregTracker").level >= 3)) or $player.questTracker.some(obj => obj.idx === "Lactation"))',
alert: '<div class="badText"><center>You have no reason to buy one of those.</center></div>'
},
{
name: 'Belly Oil',
condition:'$player.body.womb and $player.body.womb.showPreg',
alert: '<div class="badText"><center>Only pregnant women need that item.</center></div>'
},
{
name: 'Prenatal Vitamins',
condition:'$player.body.womb and $player.body.womb.isPreg and ($player.questTracker.some(obj => obj.idx === "PregTracker") and $player.questTracker.find(obj => obj.idx === "PregTracker").level >= 3)',
alert: '<div class="badText"><center>Only pregnant women need that item.</center></div>'
}
]>>
<<goto "listItems">>
<</if>>
<<if $shop.inventory.includes('Electronics')>>
<<set $aisleImg = $shop.image>>
<<set $storeItems = []>>
<<set $storeItems.push(new StoreItem('Small TV','Small TV',1,1,100,1))>>
<<set $storeItems.push(new StoreItem('50 inch Flatscreen TV','50 inch Flatscreen TV',1,1,1500,1))>>
<<set $storeItems.push(new StoreItem('Dishwasher','Dishwasher',1,1,600,1))>>
<<set $storeItems.push(new StoreItem('Coffee Maker','Coffee Maker',1,1,75,1))>>
<<set $storeItems.push(new StoreItem('Laptop computer','Laptop computer',1,1,1200,1))>>
<<set $storeItems.push(new StoreItem('Webcam','Webcam',1,1,60,1))>>
<<set $specialItems = []>>
<<goto "listItems">>
<</if>>
<<if $shop.inventory.includes('Newsstand')>>
<<set $aisleImg = $shop.image>>
<<set $storeItems = []>>
<<set $storeItems.push(new StoreItem('Pepper Spray','Pepper Spray (contains 12 uses)',12,1,20,-1))>>
<<set $storeItems.push(new StoreItem('Cigarettes','Cigarettes (contains 20)',20,1,15,-1))>>
<<set $storeItems.push(new StoreItem('Vape Juice','Vape Juice (contains 20mL)',20,1,15,-1))>>
<<set $specialItems = [
{
name: 'Pepper Spray',
condition:'$player.inventory.checkInv("Pepper Spray") + 12 <= 12 or $player.outfit.purse != 0',
alert: '<div class="badText"><center>You can\'t carry anymore without a backback or purse.</center></div>'
},
{
name: 'Cigarettes',
condition:'$player.inventory.checkInv("Cigarettes") + 20 <= 20 or $player.outfit.purse != 0',
alert: '<div class="badText"><center>You can\'t carry anymore without a backback or purse.</center></div>'
},
{
name: 'Vape Juice',
condition:'$player.inventory.checkInv("Vape Juice") + 20 <= 20 or $player.outfit.purse != 0',
alert: '<div class="badText"><center>You can\'t carry anymore without a backback or purse.</center></div>'
}
]>>
<<goto "listItems">>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if $shop.dispName === 'Safeway'>>
<<getJobActions 'Safeway'>>
<</if>>
<div class="buttonContainer">
<<button "Leave the store" $retLoc>><<addMins 1>><</button>>
</div>
</div><center><H1><<print $shop.dispName>></H1>
<br>
<img @src="$aisleImg" >
<<if $storeItems.some(item => item.sku ==='Honeydew Cream')>>
<<if $player.questTracker.some(item => item.idx === "ItchyNips") and $player.questTracker.find(item => item.idx === "ItchyNips").level === 5 and $player.inventory.checkInv('Honeydew Cream') === 0>>
<br>
<div class="goodText">You see and advertisement that Honeydew Cream can help with itchy skin - maybe it's just what you need.</div>
<</if>>
<</if>>
<table class="foodTable" style="width: 100%;">
<tr>
<th>Item</th><th></th><th>Quantity</th><th></th><th>Price</th><th></th>
</tr>
<<for _rowIndex to 0; _rowIndex < $storeItems.length; _rowIndex++>>
<<set _tmpItem = $storeItems[_rowIndex]>>
<<capture _tmpItem>>
<tr>
<td><<print _tmpItem.label>></td>
<<set _canBuy = 0>>
<<set _item = $specialItems.find(item => item.name === _tmpItem.sku)>>
<<if _item>>
<<if Scripting.evalTwineScript(_item.condition)>>
<<set _canBuy = 1>>
<</if>>
<<else>>
<<set _canBuy = 1>>
<</if>>
<td>
<<if _canBuy === 1 and canPurchase(_tmpItem.price + Math.round(_tmpItem.price/_tmpItem.unitSize)) and (_tmpItem.limit < 1 or $player.inventory.checkInv(_tmpItem.sku) + _tmpItem.quantity < _tmpItem.limit)>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/plus.png" height="16rem">'>>
<<link _tmpImg "listItems">>
<<set
_tmpItem.price += Math.round(_tmpItem.price/_tmpItem.unitSize);
_tmpItem.quantity += Math.round(_tmpItem.quantity/_tmpItem.unitSize);
_tmpItem.unitSize += 1;
>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_plus.png" height="16rem">
<</if>>
</td>
<td><<print _tmpItem.unitSize>></td>
<td>
<<if _canBuy === 1 and _tmpItem.unitSize > 1>>
<<set _tmpImg = '<img src="Media/System/MenuIcons/minus.png" height="16rem">'>>
<<link _tmpImg "listItems">>
<<set
_tmpItem.price -= Math.round(_tmpItem.price/_tmpItem.unitSize);
_tmpItem.quantity -= Math.round(_tmpItem.quantity/_tmpItem.unitSize);
_tmpItem.unitSize -= 1;
>>
<</link>>
<<else>>
<img src="Media/System/MenuIcons/grey_minus.png" height="16rem">
<</if>>
</td>
<td>$<<print _tmpItem.price>>.00</td>
<td>
<<if _canBuy === 1>>
<<button "Purchase">>
<<if canPurchase(_tmpItem.price) and _tmpItem.quantity > 0>>
<<if _tmpItem.limit < 1 or $player.inventory.checkInv(_tmpItem.sku) < _tmpItem.limit>>
<<makePurchase 'item' _tmpItem.sku _tmpItem.quantity _tmpItem.price>>
<</if>>
<</if>>
<</button>>
<<else>>
<<capture _item>>
<<button "Purchase">>
<<replace '#responseDiv'>>
<<print _item.alert>>
<</replace>>
<</button>>
<</capture>>
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</table>
<div id="responseDiv"></div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if ['Mall','SecondMall','ThirdMall','UDistrict'].includes($retLoc)>>
<<if $shop.dispName === 'Newsstand Kiosk'>>
<div class="buttonContainer">
<<button "Browse Magazines" "ListKioskMags">>
<<addSecs 15>>
<</button>>
</div>
<</if>>
<<button "Leave the store" $retLoc>><<unset $aisleImg>><<addSecs 30>><</button>>
<<else>>
<<button "Go back" "itemStore">><<unset $aisleImg>><<addSecs 30>><</button>>
<</if>>
</div>
</div><center><H1>$shop.dispName Magazines</H1>
<br>
<div class='clothesList'>
<<for _rowIndex to 0; _rowIndex < $kioskMags.length; _rowIndex++>>
<<capture _rowIndex>>
<<genMag $kioskMags[_rowIndex]>>
[img[magazine|$magObj.image][ViewKioskMag][$currMag to _rowIndex]]
<</capture>>
<</for>>
</div>
</center>
<hr>
<div class="actionsContainer">
<div class="buttonContainer">
<<button "Stop browing magazines" "listItems">>
<<addSecs 15>>
<</button>>
</div>
</div><<genMag $kioskMags[$currMag]>>
<center><H1>$shop.dispName Magazines</H1>
<br>
<img @src="$magObj.image" height='500rem'>
<br><br>
$<<print $magObj.price>>.00 - $magObj.desc
<br>
<span id="repCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Purchase it">>
<<if canPurchase($magObj.price)>>
<<if $player.inventory.checkInv($magObj.sku) > 0>>
<<replace "#repCont">>
<div class="badText">You already have an issue of this magazine.</div>
<</replace>>
<<else>>
<<spendMoney $magObj.price>>
<<run $player.inventory.addItem($magObj.sku,1)>>
<<run $kioskMags.delete($magObj.sku)>>
<<replace "#repCont">>
<div class="badText">You purchased the magazine for $<<print $magObj.price>></div>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Go Back" "ListKioskMags">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</if>>
<<else>>
<<replace "#repCont">>
<div class="badText">You don't have the money to buy this.</div>
<</replace>>
<</if>>
<</button>>
<<button "Put down the magazine" "ListKioskMags">>
<<addSecs 15>>
<</button>>
</div><div class="buttonContainer">
<<button "Stop browing magazines" "listItems">>
<<addSecs 15>>
<</button>>
</div>
</div><<set $retLoc = passage()>>
<center>
<b><font size="10em">Ellis Mall</font></b>
<br>
<table class="mallStores">
<tr>
<td>
[img[FanClothingStore|Media/Locations/Shops/Fan/storefront.webp][clothingStore][$currShop = 'Fan']]
</td>
<td>
<<storeHours "Slutz">>
</td>
<td rowspan="2">
<<storeHours "DarkAngel">>
</td>
</tr>
<tr>
<td>
[img[SportyStore|Media/Locations/Shops/TimeToPlay/storefront.webp][clothingStore][$currShop = 'TimeToPlay']]
</td>
<td>
[img[PregStore|Media/Locations/Shops/MMaternity/storefront.webp][clothingStore][$currShop = 'MMaternity']]
</td>
</tr>
</table>
<br>
The mall is certainly past its prime - and only a handful of stores remain open out of the original dozens - but no amount of online shopping can replace the visceral experience of an in-person market place and even now you can see people mingling about as they idly shop for things they don't need.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go to second floor" "SecondMall">><<addMins 1>><</button>>
</div>
<div class="buttonContainer">
<<button "Leave the mall" "BDistrict">><<addMins 1>><</button>>
</div>
</div><<set $retLoc = passage()>>
<center>
<b><font size="10em">Ellis Mall</font></b>
<br>
<table class="mallStores">
<tr>
<td>
[img[FinerThings|Media/Locations/Shops/FinerThings/storefront.webp][clothingStore][$currShop = 'FinerThings']]
</td>
<td>
[img[Tessuti|Media/Locations/Shops/Tessuti/storefront.webp][clothingStore][$currShop = 'Tessuti']]
</td>
<td rowspan="2">
[img[Pink|Media/Locations/Shops/Pink/storefront.webp][clothingStore][$currShop = 'Pink']]
</td>
</tr>
<tr>
<td>
[img[SStyles|Media/Locations/Shops/SStyles/storefront.webp][SStyles]]
</td>
<td>
[img[StitchTime|Media/Locations/Shops/StitchTime/storefront.webp][StitchTime]]
</td>
</tr>
</table>
<br>
The stores on the second floor are arranged along the outer wall, leaving the center of the floor open so you can view the splendor of the waterfall that doesn't look like it's been functioning in at least a decade.
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<button "Go to third floor" "ThirdMall">><<addMins 1>><</button>>
</div>
<div class="buttonContainer">
<<button "Go back to first floor" "Mall">>
<<addMins 1>>
<</button>>
</div>
</div><<set $retLoc = passage()>>
<center>
<b><font size="10em">Ellis Mall</font></b>
<br>
<table class="mallStores">
<tr>
<td>
[img[RiteAid|Media/Locations/Shops/RiteAid/storefront.webp][itemStore][$currShop = 'RiteAid',$retLoc= 'ThirdMall']]
</td>
<td>
[img[BestBuy|Media/Locations/Shops/BestBuy/storefront.webp][itemStore][$currShop = 'BestBuy',$retLoc= 'ThirdMall']]
</td>
<td rowspan="2">
[img[FoodCourt|Media/Locations/Shops/FoodCourt/storefront.webp][FoodCourt]]
</td>
</tr>
<tr>
<td>
[img[GameStore|Media/Locations/Shops/GameStore/storefront.webp][itemStore][$currShop = 'GameStore']]
</td>
<td>
[img[MallTheater|Media/Locations/Shops/MallTheater/storefront.webp][MallTheater]]
</td>
</tr>
</table>
The top floor holds the mainstay of any American mall - the food court and entertainment services.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go back to second floor" "SecondMall">>
<<addMins 1>>
<</button>>
</div>
</div><<set $stitchFitList = $player.wardrobe.items.filter(item => item.type === 'Fit' and (Math.abs(item.stats.fitCup - $player.body.tits) > 0 or Math.abs(item.stats.fitSize - ($player.body.hips + $player.body.ass + $player.body.weight)) > 0))>>
<<set $stitchBraList = $player.wardrobe.items.filter(item => item.type === 'Bra' and (Math.abs(item.stats.cupSize - $player.body.tits) > 0))>>
<center>
<b><font size="10em">A Stitch in Time</font></b>
<br>
<img src="Media/Locations/Shops/StitchTime/shop1.webp" height=450rem>
<br>
The shop is tiny and packed full of fabric, mannequins, large spools of thread and other odds-and-ends of a clothing alteration business, soft non-offensive muzak plays from hidden speakers. The entire atmosphere of the place seems designed to be as welcoming as can be to as many possible customers.
<br><br>
The woman behind the counter smiles brightly at you and waves you forward to talk.
<br><br>
<span id="repCont">
It will cost you $<<print $stitchFitList.length * 15>> to alter your outfits and $<<print $stitchBraList.length * 5>> to alter your bras
<<if $stitchFitList.length > 0 and $stitchBraList.length > 0>>, or $<<print 15*$stitchFitList.length + 5*$stitchBraList.length>> to alter everything at once<</if>>.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $stitchFitList.length > 0 and canPurchase(15*$stitchFitList.length)>>
<<button "Alter your outfits">>
<<replace "#repCont">>
<<for _stitchIdx to 0; _stitchIdx < $stitchFitList.length; _stitchIdx++>>
<<set _item = $stitchFitList[_stitchIdx]>>
<<set
_item.stats.fitCup = $player.body.tits;
_item.stats.fitSize = $player.body.hips + $player.body.ass + $player.body.weight;
>>
<</for>>
<<set _tmpMoney = 15*$stitchFitList.length>>
<<spendMoney _tmpMoney>>
<<set _tmpMins = 2*$stitchFitList.length>>
<<addMins _tmpMins>>
<<refreshCaption>>
<div class="goodText">Your outfits have been altered to fit your current body measurements.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "StitchTime">>
<<unset $stitchFitList>>
<<unset $stitchBraList>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<if $stitchBraList.length > 0 and canPurchase(5*$stitchBraList.length)>>
<<button "Alter your bras">>
<<replace "#repCont">>
<<for _i to 0; _i < $stitchBraList.length; _i++>>
<<set $stitchBraList[_i].stats.cupSize = $player.body.tits>>
<</for>>
<<set _tmpMoney = 5*$stitchBraList.length>>
<<spendMoney _tmpMoney>>
<<set _tmpMins = $stitchBraList.length>>
<<addMins _tmpMins>>
<<refreshCaption>>
<div class="goodText">Your bras have been altered to fit your current bust size.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "StitchTime">>
<<unset $stitchFitList>>
<<unset $stitchBraList>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<if $stitchFitList.length > 0 and $stitchBraList.length > 0 and canPurchase(15*$stitchFitList.length + 5*$stitchBraList.length)>>
<<button "Alter everything">>
<<replace "#repCont">>
<<for _i to 0; _i < $stitchFitList.length; _i++>>
<<set _item = $stitchFitList[_i]>>
<<set
_item.stats.fitCup = $player.body.tits;
_item.stats.fitSize = $player.body.hips + $player.body.ass + $player.body.weight;
>>
<</for>>
<<set _tmpMoney = 15*$stitchFitList.length>>
<<spendMoney _tmpMoney>>
<<set _tmpMins = 2*$stitchFitList.length>>
<<addMins _tmpMins>>
<<for _i to 0; _i < $stitchBraList.length; _i++>>
<<set $stitchBraList[_i].stats.cupSize = $player.body.tits>>
<</for>>
<<set _tmpMoney = 5*$stitchBraList.length>>
<<spendMoney _tmpMoney>>
<<set _tmpMins = $stitchBraList.length>>
<<addMins _tmpMins>>
<<refreshCaption>>
<div class="goodText">Your bras and outfits have been altered to fit your current measurements.</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "StitchTime">>
<<unset $stitchFitList>>
<<unset $stitchBraList>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Leave the store" $retLoc>>
<<unset $stitchFitList>>
<<unset $stitchBraList>>
<<addSecs 30>>
<</button>>
</div>
</div><center>
<b><font size="10em">Salacious Styles</font></b>
<br>
<img src="Media/Locations/Shops/SStyles/shop1.webp" height=450rem>
<br>
The smell of hair dyes and makeup products fills your nose as you enter the salon, and you can hear the soft murmurs of other customers being tended to by the salon staff. A small line of people are sitting in chairs waiting to be called up to their appointment across from a wall that is completely covered in more beauty-related products than you even knew existed. The receptionist looks up and smiles at you, beckoning you forward to decide what sort of service you want today.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContianer">
<<button "Get a haircut" "SStylesGuide">>
<<addMins 1>>
<</button>>
<<button "Look at beauty treatments">>
<</button>>
<<button "Look at home care products" "SSProducts">>
<<addSecs 45>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Leave the store" $retLoc>><<addSecs 30>><</button>>
</div>
</div><center>
<b><font size="10em">Ellis Mall Movie Theater</font></b>
<br>
<img src="Media/Locations/Shops/MallTheater/ticketBooth.webp" height="450rem" >
<br><br>
<b>All movies are $12.00 per ticket</b>
<table class="foodTable">
<tr>
<th>
Movie Genre
</th>
</tr>
<tr>
<td>
Action
</td>
</tr>
<tr>
<td>
Comedy
</td>
</tr>
<tr>
<td>
Drama
</td>
</tr>
<tr>
<td>
Horror
</td>
</tr>
</table>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go back to the mall" $retLoc>><<addSecs 30>><</button>>
</div>
</div><<set _tmpImg = 'Media/Locations/Shops/SStyles/' + ($player.presenting === 'F'?'f':'m') + 'poster.webp'>>
<center>
<b><font size="10em">Salacious Styles</font></b>
<br>
<img @src="_tmpImg" height="550rem">
<br><br>
You take a few moments to scan the style guide before picking out the length you want them to match.
<br><br>
<span id='repCont'>A sign posted near the cashier states all haircuts are $15.</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.body.hair.length > 360>>
<<if $player.mentalFem < 40>>
<<set _tmpLbl = 'Just below shoulderblades'>>
<<else>>
<<set _tmpLbl = 'Bra strap length'>>
<</if>>
<<button _tmpLbl>>
<<if canPurchase(15)>>
<<spendMoney 15>>
<<set $player.body.hair.length = 261>>
<<goto 'SSHairCut'>>
<<else>>
<<replace "#repCont">>
<div class='badText'>You don't have $15.00</div>
<</replace>>
<</if>>
<</button>>
<</if>>
<<if $player.body.hair.length > 260>>
<<button "Shoulder length">>
<<if canPurchase(15)>>
<<spendMoney 15>>
<<set $player.body.hair.length = 161>>
<<goto 'SSHairCut'>>
<<else>>
<<replace "#repCont">>
<div class='badText'>You don't have $15.00</div>
<</replace>>
<</if>>
<</button>>
<</if>>
<<if $player.body.hair.length > 160>>
<<button "Chin length">>
<<if canPurchase(15)>>
<<spendMoney 15>>
<<set $player.body.hair.length = 81>>
<<goto 'SSHairCut'>>
<<else>>
<<replace "#repCont">>
<div class='badText'>You don't have $15.00</div>
<</replace>>
<</if>>
<</button>>
<</if>>
<<if $player.body.hair.length > 80>>
<<button "Ear length">>
<<if canPurchase(15)>>
<<spendMoney 15>>
<<set $player.body.hair.length = 31>>
<<goto 'SSHairCut'>>
<<else>>
<<replace "#repCont">>
<div class='badText'>You don't have $15.00</div>
<</replace>>
<</if>>
<</button>>
<</if>>
<<if $player.body.hair.length > 30>>
<<button "Very short">>
<<if canPurchase(15)>>
<<spendMoney 15>>
<<set $player.body.hair.length = 15>>
<<goto 'SSHairCut'>>
<<else>>
<<replace "#repCont">>
<div class='badText'>You don't have $15.00</div>
<</replace>>
<</if>>
<</button>>
<</if>>
<<if $player.body.hair.length > 0>>
<<button "Buzz Cut">>
<<if canPurchase(15)>>
<<spendMoney 15>>
<<set $player.body.hair.length = 0>>
<<goto 'SSHairCut'>>
<<else>>
<<replace "#repCont">>
<div class='badText'>You don't have $15.00</div>
<</replace>>
<</if>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Change your mind" "SStyles">><<addSecs 30>><</button>>
</div>
</div><<addMins 10>>
<<set $player.body.hair.styled = true>>
<<set _tmpImg = 'Media/Locations/Shops/SStyles/cut' + random(1,4) + '.webp'>>
<center>
<b><font size="10em">Salacious Styles</font></b>
<br>
<span id="repCont">
<img @src='_tmpImg' height='550rem'>
<br><br>
The stylist makes short work of your haircut and before you know it they yank the blanket off of you and spin you around to check out your new 'do.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContianer">
<<button "Look at your reflection">>
<<replace "#repCont">>
<div class="profileContainer">
<div>
<<reflection>>
</div>
<div>
<<calcHair $player>>
</div>
</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Get out of the chair" "SStyles">>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><center>
<b><font size="10em">Salacious Styles</font></b>
<br>
<div class="clothesList">
[img[homeProduct|'Media/Locations/Shops/SStyles/Products/groveda.webp'][viewSSProduct][$ssProduct = 'Hair Oil']]
[img[homeProduct|'Media/Locations/Shops/SStyles/Products/skinCream.webp'][viewSSProduct][$ssProduct = 'Skin Cream']]
</div>
<br><br>
You browse the shelves of offered products.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go back" "SStyles">>
<<addSecs 15>>
<</button>>
</div>
</div><center>
<<switch $ssProduct>>
<<case 'Hair Oil'>>
<img src='Media/Locations/Shops/SStyles/Products/groveda.webp' height='250rem'>
<br><br>
A simple and easy to use oil that claims to increase hair growth speed. Simply use it each morning in the shower instead of regular shampoo and you'll notice your hair is longer within 2 weeks with regular use. There's enough here to last for 1 month, which seems like a steal at $25.00 per bottle. If it could do what it claims you'd expect the price to be higher.
<<case 'Skin Cream'>>
<img src='Media/Locations/Shops/SStyles/Products/skinCream.webp' height='250rem'>
<br><br>
Leaves skin feeling moisturized for 24 hours with no greasy after-feel. Promises to smooth and improve your skin with prolonged use. One bottle is enough to last for 1 month and costs $25.00
<</switch>>
<br>
<span id="responseDiv"><br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Buy it" >>
<<if canPurchase(25)>>
<<makePurchase 'item' $ssProduct 30 25>>
<<refreshCaption>>
<<else>>
<<replace "#responseDiv">>
<div class="badText">You don't have $25</div>
<</replace>>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Back to products" "SSProducts">>
<<addSecs 15>>
<</button>>
</div>
</div><<widget "storeHours">>
<<if _args[0] === 'Hooters'>>
<<if ($gameDate.getHours() gte 2) and ($gameDate.getHours() lt 8) >>
<<set _output to '<<link "Hooters" "Downtown">><<closedPopUp "Hooters is open from 8:00am to 2:00am">><</link>>'>>
<<else>>
<<set _output to '<<link "Hooters" $args[0]>><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'KellysPub'>>
<<if ($gameDate.getHours() gte 2) and ($gameDate.getHours() lt 10) >>
<<set _output to '<<link "Kelly\'s Pub" "Downtown">><<closedPopUp "Kelly\'s Pub is open from 10:00am to 2:00am">><</link>>'>>
<<else>>
<<set _output to '<<link "Kelly\'s Pub" $args[0]>><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'Mall'>>
<<if ($gameDate.getHours() < 8) or ($gameDate.getHours() >= 22) >>
<<set _output to '<<link "Ellis Mall">><<closedPopUp "The mall is open from 8:00am to 10:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Ellis Mall" $args[0]>><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'Safeway'>>
<<set _output to '<<link "Safeway" "itemStore">><<set $currShop = "Safeway">><<set $retLoc = "Downtown">><<addMins 1>><</link>>'>>
<<elseif _args[0] === 'AMI'>>
<<if ($gameDate.getHours() < 8) or ($gameDate.getHours() >= 22) >>
<<set _output to '<<link "American Medical Institute">><<closedPopUp "American Medical Institute is open from 8:00am to 10:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "American Medical Institute" $args[0]>><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'DirtyDicks'>>
<<if $gameDate.getHours() >= 2 and $gameDate.getHours() < 11>>
<<set _output to '<<link "Dirty Dick\'s">><<closedPopUp "Dirty Dick\'s is open from 11:00am to 2:00am">><</link>>'>>
<<else>>
<<set _output to '<<link "Dirty Dick\'s" $args[0]>><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'Slutz'>>
<<if $player.traits.includes(2) or $player.inhib <= 75 or $player.slutLevel >= 4>>
<<set _output to '[img[SlutzStore|Media/Locations/Shops/Slutz/storefront.webp][clothingStore][$currShop = \'Slutz\']]'>>
<<else>>
<<set _output to '<<link "<img src=\'Media/Locations/Shops/Slutz/storefront.webp\'>">><<closedPopUp "You have no reason to enter that kind of store">><</link>>'>>
<</if>>
<<elseif _args[0] === 'DarkAngel'>>
<<if $player.traits.includes(2) or $player.inhib <= 90 or $player.slutLevel >= 1>>
<<set _output to '[img[GothStore|Media/Locations/Shops/DarkAngel/storefront.webp][clothingStore][$currShop = \'DarkAngel\']]'>>
<<else>>
<<set _output to '<<link "<img src=\'Media/Locations/Shops/DarkAngel/storefront.webp\'>">><<closedPopUp "That store seems a little..extreme. Best to avoid it.">><</link>>'>>
<</if>>
<<elseif _args[0] === 'Community Center'>>
<<if ($gameDate.getHours() gte 23) or ($gameDate.getHours() lt 8) >>
<<set _output to '<<link "Community Center">><<closedPopUp "The Community Center is open from 8:00am to 11:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Community Center" "ComCenter">><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'Ellis Bank'>>
<<if ($gameDate.getHours() gte 17) or ($gameDate.getHours() lt 8) >>
<<set _output to '<<link "Ellis Bank">><<closedPopUp "Ellis Bank is open from 8:00am to 5:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Ellis Bank" "Bank">><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'DwightsGym'>>
<<if ($gameDate.getHours() gte 23) or ($gameDate.getHours() lt 5) >>
<<set _output to '<<link "Dwight\'s Gym for Muscles">><<closedPopUp "The gym is open from 5:00am to 11:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Dwight\'s Gym for Muscles" "DwightsGym">><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'AnsersonBuilding'>>
<<if ($gameDate.getHours() gte 18) or ($gameDate.getHours() lt 8) >>
<<set _output to '<<link "Anderson Building">><<closedPopUp "The lobby is open from 8:00am to 6:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Anderson Building" "AndersonLobby">><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'Newsstand Kiosk'>>
<<if ($gameDate.getHours() gte 22) or ($gameDate.getHours() lt 6) >>
<<set _output to '<<link "Newsstand Kiosk">><<closedPopUp "The kiosk is open from 6:00am to 10:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Newsstand Kiosk" "itemStore">><<set $currShop = "Newsstand Kiosk">><<set $retLoc = "UDistrict">><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'BeachGym'>>
<<if ($gameDate.getHours() gte 22) or ($gameDate.getHours() lt 5) >>
<<set _output to '<<link "Muscle Beach Gym">><<closedPopUp "The gym is open from 5:00am to 10:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Muscle Beach Gym" "BeachGym">><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'Crowing Moon'>>
<<if ($gameDate.getHours() gte 22) or ($gameDate.getHours() lt 5) >>
<<set _output to '<<link "Crowing Moon">><<closedPopUp "The Crowing Moon is open from 5:00am to 10:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Crowing Moon" "PawnShop">><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'Boobie Bungalow'>>
<<if ($gameDate.getHours() gte 4) and ($gameDate.getHours() lt 9) >>
<<set _output to '<<link "Boobie Bungalow">><<closedPopUp "The Boobie Bungalow is open from 9:00am to 4:00am">><</link>>'>>
<<else>>
<<set _output to '<<link "Boobie Bungalow" "BBungalow">><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'Crowing Moon'>>
<<if ($gameDate.getHours() gte 23) or ($gameDate.getHours() lt 10) >>
<<set _output to '<<link "Crowing Moon">><<closedPopUp "The Crowing Moon is open from 10:00am to 11:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Crowing Moon" "PawnShop">><<addMins 1>><</link>>'>>
<</if>>
<<elseif _args[0] === 'OBClinic'>>
<<if ($gameDate.getHours() gte 18) or ($gameDate.getHours() lt 9) >>
<<set _output to '<<link "Women\'s Clinic">><<closedPopUp "The Clinic is open from 9:00am to 6:00pm">><</link>>'>>
<<else>>
<<set _output to '<<link "Women\'s Clinic" "OBClinic">><<addMins 1>><</link>>'>>
<</if>>
<</if>>
_output
<</widget>>
<<widget 'makePurchase'>>
<<if _args[0] == 'item'>>
<<run $player.inventory.addItem(_args[1],_args[2])>>
<<set _tmpTxt = 'You bought <<print _args[2]>> <<print _args[1]>>'>>
<<elseif _args[0] == 'clothing'>>
<<genClothing _args[1] _args[2]>>
<<run $player.wardrobe.addItem($clothingObj)>>
<<set _tmpTxt = 'You bought the <<print _args[1]>> for $<<print _args[3]>>.00'>>
<</if>>
<<spendMoney _args[3]>>
<<replace "#responseDiv">>
<div id="responseDiv" class="goodText"><<print _tmpTxt>></div>
<</replace>>
<<refreshCaption>>
<</widget>>
<<widget "closedPopUp">>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<div class="badText">_args[0]</div>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</widget>><<if $gameDate.getHours() < 20>>
<<set _tmpMins = 60 - $gameDate.getMinutes()>>
<<addMins _tmpMins>>
<</if>>
<<set _currDate = $player.phone.calendar.items.find(date => date.julianDate === $currJulianDate and date.type === 'GirlsNight' and date.with.dna === $npc_2.dna)>>
<<set _currDateIdx = $player.phone.calendar.items.indexOf(_currDate)>>
<<set $foodPassage = "GirlsNightHUB">>
<<cleanDate _currDateIdx>>
<<set _tmpImg = 'Media/GirlsNight/Intro/' + random(1,3) + '.webp'>>
<center>
<img @src='_tmpImg' height='600rem'>
<br><br>
$npc_2.firstName and the other girls smile in greeting when you see each other in the bar.
<br><br>
<<if !$barDrinks>>
"Come on! You need to catch up!" $npc_2.firstName says as she flags down a server.
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if !$barDrinks>>
<<button "Order a drink" "drinkMenu">>
<<addMins 2>>
<</button>>
<<else>>
<<button "Join them" "GirlsNightHUB">>
<<addSecs 10>>
<</button>>
<</if>>
</div>
</div><<if !$gnAct>><<set $gnAct = 'Drink'>><</if>>
<<set _tmpImg = 'Media/GirlsNight/Drinks/' + random(1,7) + '.webp'>>
<center>
<img @src='_tmpImg' height='600rem'>
<br><br>
<span id="repCont">
<<getGNText $gnAct>>
</span>
<<if $drinkMsg != undefined>>
<br>
<<print $drinkMsg>>
<<unset $drinkMsg>>
<br>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<<if ($gameDate.getHours() < 2 or $gameDate.getHours() >= 10)>>
<<if $barDrinks>>
<<set _tmpPassage = passage()>>
<<drinkActs $barDrinks _tmpPassage>>
<<else>>
<div class="buttonContainer">
<<button "Order a drink" "drinkMenu">>
<<addSecs 10>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Chat" "GirlsNightHUB">>
<<set $gnAct = 'Chat'>>
<<addMins 15>>
<</button>>
<<if ($player.drunk > 35 or $player.exhib > 20) and $player.stamina > 30>>
<<button "Do some dancing" "GirlsNightDancing">>
<<addMins 20>>
<<exerciseImpact 'Cardio' 20>>
<<set $player.statBuffs.femBuff += 1>>
<<set $player.statBuffs.exhib += 1>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Call it a night" "Downtown">>
<<purgeNPC $npc_2.dna>>
<<addMins 5>>
<<GNPowerDown>>
<</button>>
</div>
<<else>>
<div class="buttonContainer">
<<timed 0s>>
<<replace "#repCont">>
<div class="badText"> The bar is closing down and your little group is ushered out into the street for your final goodbyes before everyone goes their own way.</div>
<</replace>>
<</timed>>
<<button "Say goodnight" "Downtown">>
<<purgeNPC $npc_2.dna>>
<<addMins 5>>
<<GNPowerDown>>
<</button>>
</div>
<</if>>
</div>
<<timed 0s>>
<<if (!$lastMelDay or $lastMelDay < $currJulianDate and random(0,100) > 45) and ($gameDate.getHours() > 20 or $gameDate.getMinutes() > 25)>>
<<set $lastMelDay = clone($currJulianDate)>>
/*
<<set _melTopics = ['BreastCream','SkinCream','GymInvite','MakeoverParty','DateContest','GenderChat','RoomieChat','WaitressQuest']>>
*/
<<set _melTopics = ['BreastCream','SkinCream','GymInvite']>>
<<for _i = 0; _i < _melTopics.length; _i ++>>
<<set _tmpTopic = _melTopics[random(0,_melTopics.length-1)]>>
<<switch _tmpTopic>>
<<case 'BreastCream'>>
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'BreastCream')>>
<<if !_tmpCheck >>
/* new quest */
<<goto "MelBCreamIntro">>
<<elseif _tmpCheck.level <= 4>>
<<goto "MelBCreamReminder">>
<</if>>
<<run _melTopics.delete('BreastCream')>>
<<set _i -= 1>>
<<case 'SkinCream'>>
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'SkinCream')>>
<<if (!_tmpCheck or _tmpCheck.level < 3) and $player.body.skin < 40>>
<<goto "MelSkinCream">>
<<elseif $player.body.skin >= 40 and _tmpCheck>>
<<set _tmpCheck.level = 3>>
<</if>>
<<run _melTopics.delete('SkinCream')>>
<<set _i -= 1>>
<<case 'GymInvite'>>
<<if !$player.questTracker.some(item => item.idx === 'WorkoutBuddy')>>
<<goto "MelGymInvite">>
<<else>>
<<run _melTopics.delete('GymInvite')>>
<<set _i -= 1>>
<</if>>
<</switch>>
<</for>>
<</if>>
<</timed>><<set _tmpImg = 'Media/GirlsNight/Dance/' + random(1,3) + '.webp'>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
<<getGNText "Dancing">>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.stamina > 30 and ($gameDate.getHours() < 2 and $gameDate.getHours() >= 10)>>
<<button "Keep dancing" "GirlsNightDancing">>
<<addMins 15>>
<<exerciseImpact 'Cardio' 15>>
<<set $player.statBuffs.femBuff += 1>>
<<set $player.statBuffs.exhib += 1>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Stop dancing" "GirlsNightHUB">>
<<addSecs 45>>
<</button>>
</div>
</div><<widget "getGNText">>
<<switch _args[0]>>
<<case 'Drink'>>
<<switch random(1,5)>>
<<case 1>>
Laughter bubbles up as you and the girls swap stories over your favorite drinks.
<<case 2>>
Between sips and giggles, you all chat about everything from work drama to wild dreams.
<<case 3>>
With heels kicked off and drinks in hand, the night becomes a swirl of secrets, sass, and sisterhood.
<<case 4>>
The drinks flow as easily as the conversation, each of you sharing laughs, memories, and a little heart.
<<case 5>>
The vibe is bubbly and bold—just like your cocktails and conversations.
<</switch>>
<<case "Chat">>
<<switch random(1,6)>>
<<case 1>>
The music hums low, just enough to let your stories flow. You're swapping secrets, teasing each other about old crushes, and clinking glasses every time someone says something outrageous
<<case 2>>
You lean over the high-top table, trying not to spill your drink as you burst out laughing. One of your friends just did a dramatic reenactment of her worst date, and you're all in stitches.
<<case 3>>
<<if $player.drunk > 40>>
You're perched on a barstool, swirling your drink as your friend nudges you toward the cute guy across the room. You roll your eyes, but you're smiling. The group's hyping you up, throwing out pickup lines like confetti. You're all giggling, plotting, and pretending not to stare — it's harmless, electric, and exactly the kind of night you needed.
<<else>>
You're watching your friend try to explain a movie plot and completely lose track halfway through. You're all giggling, not because it's wild, but because it's so her. You're sipping slowly, chiming in with your own half-remembered scenes, and the whole moment feels cozy and familiar.
<</if>>
<<case 4>>
You're sipping a neon-colored drink with a tiny umbrella when someone shouts, “Who's most likely to marry rich and disappear?” You all point at the same friend and burst into laughter. The game spirals from wholesome to scandalous in seconds, and you're crying from laughing so hard.
<<case 5>>
<<if $player.drunk > 40>>
You're not even at a karaoke bar but you're all belting out the chorus to a throwback hit like it's your Grammy moment. You're using straws as microphones, harmonizing terribly, and the table next to you starts casting glances your way but none of you even care.
<<else>>
You're leaning in with your drink, listening as your friend shares a quiet update about her week. You nod, smile, and chime in with your own stories. The conversation flows easily, with gentle teasing and warm laughter. You're not rushing anywhere — just soaking in the comfort of familiar faces and easy company.
<</if>>
<</switch>>
<<case "Dancing">>
<<switch random(1,5)>>
<<case 1>>
Fueled by laughter and cocktails, you all leap up and turn the lounge into your personal dance floor
<<case 2>>
One song drops and suddenly you're all up, dancing like nobody's watching—and loving every second.
<<case 3>>
The drinks are flowing, the music's bumping, and you and the girls are showing off moves that deserve their own highlight reel.
<<case 4>>
Between twirls, dramatic hair flips, and impromptu choreography, the night officially levels up.
<<case 5>>
You all go shake your money makers on the dance floor, and despite yourself you actually have a good time with these girls.
<<if $player.mentalFem < 50>>
If someone had told you a couple of years ago that you'd be part of a "Girls' Night" outing and actually having fun you'd have said they were crazy...yet here you are.
<</if>>
<</switch>>
<</switch>>
<</widget>>
<<widget "GNPowerDown">>
<<unset $foodPassage>>
<<unset $barDrinks>>
<<unset $gnAct>>
<</widget>><center>
<div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div class="flex-item" id="repCont">
<<longIntro $currDNA>>
<br><br>
"Hi," <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> says. "My name's <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>."
</div>
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $returnLoc == 'DirtyDicksPool'>>
<<button "Ask if <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> wants to play some pool">>
<<replace "#repCont">>
"Sure thing. Just a friendly game though, for now. We can maybe place bets later on"
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Rack the balls" "PoolGameInit">>
<<addMins 2>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<<button "Chat with <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>">>
<<set _tmpArr = ['FairhavenCommons','FairhavenHall']>>
<<if $NPCList.filter(obj => _tmpArr.includes(obj.location)).some(obj => obj.dna === $currDNA)>>
<<goto "FHGirlTalk">>
<<else>>
<<goto "ChitChat">>
<</if>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Leave" $returnLoc>><<addMins 1>><</button>>
</div>
</div><center>
<div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div class="flex-item">
<span id='repContainer'>
<<longIntro $currDNA>>
<br><br>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> eyes crawl over you ever inch of your exposed skin.
<<if $NPCArray.find(npc => npc.dna == $currDNA).height > $player.height>><<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> steps closer, forcing you to tilt your head back to look up at <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> face.<</if>>
<br><br>
"Well hello sugar, my name's <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>. <<genPickUpLine>>"
</span>
</div>
</div>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<if $player.slutLevel < 5 and ($player.arousal < 90 and $player.drunk < 30) and ($player.drunk < 20 and !([$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender)))>>
<<button "Refuse">>
<<if $player.traits.includes(28) and ($player.arousal > $player.$pherTrigger or random($player.arousal,100) > $player.$pherTrigger) and ['Bisexual',$player.presenting].includes($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender)>>
<<set $pherLevel = 1>>
<<goto "NPCPheremone">>
<<else>>
<<replace "#repContainer">>
<<if [$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender)>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> waits for your response, but you're not some common bar trash that openly flirts with the first rando who smiles at you!
<<else>>
Your face wrinkles in disgust when you realize what's happening. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> is hitting on you! <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>>'s not even being that sly about it, so <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'s clearly just hoping for a quick easy fuck.
<br><br>
You just can't deal with that right now.
<</if>>
<br><br>
You turn away from <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> and focus on anything else; hoping that <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'ll take the hint and leave you alone.
<br><br>
After a few more failed attempts to get you to talk to <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> finally gives up and leaves the bar.
<</replace>>
<</if>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<purgeNPC $currDNA>>
<<unset $currDNA>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Smile at <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>">>
<<set $forceFlirt = true>>
<<replace "#repContainer">>
<<switch random(1,4)>>
<<case 1>>
You flash a welcoming smile and tilt your head slightly, signaling for <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to come closer and chat.
<<case 2>>
With a welcoming grin, you gesture subtly with a nod, inviting <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to step nearer and join the conversation.
<<case 3>>
You offer a teasing smile and cock your head toward <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, coaxing <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to close the distance between you.
<<case 4>>
You flash a bold smile and tilt your head with purpose, drawing <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> closer to speak further.
<</switch>>
<br><br>
<<flirtRx>>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<getFlirtActions>>
</div>
<</replace>>
<</button>>
<<if $player.dom > 50>>
<<button "Shake your head">>
<<replace "#repContainer">>
<b>You give one polite but firm shake of your head, cutting off any futher advances.</b>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<purgeNPC $currDNA>>
<<unset $currDNA>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Ignore <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>">>
<<replace "#repContainer">>
You turn away from <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> and focus on something else, hoping that <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'ll take the hint and leave you alone.
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<purgeNPC $currDNA>>
<<unset $currDNA>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<</if>>
</div>
</div><center>
<div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div class="flex-item">
<span id='repContainer'>
<<genPickUpLine>>
</span>
</div>
</div>
</center>
<hr>
<div id='actionsContainer'>
<div class="buttonContainer">
<<if $player.slutLevel < 5 and ($player.arousal < 90 and $player.drunk < 30) and ($player.drunk < 20 and !([$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender)))>>
<<button "Refuse">>
<<if $player.traits.includes(28) and ($player.arousal > $player.$pherTrigger or random($player.arousal,100) > $player.$pherTrigger) and ['Bisexual',$player.presenting].includes($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender)>>
<<set $pherLevel = 1>>
<<goto "NPCPheremone">>
<<else>>
<<replace "#repContainer">>
<<if [$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender)>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> waits for your response, but you're not some common bar trash that openly flirts with the first rando who smiles at you!
<<else>>
Your face wrinkles in disgust when you realize what's happening. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> is hitting on you! <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>>'s not even being that sly about it, so <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'s clearly just hoping for a quick easy fuck.
<br><br>
You just can't deal with that right now.
<</if>>
<br><br>
You turn away from <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> and focus on anything else; hoping that <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'ll take the hint and leave you alone.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $returnLoc>>
<<purgeNPC $currDNA>>
<<unset $currDNA>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
<<else>>
<<button "Smile at <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>">>
<<set $forceFlirt = true>>
<<replace "#repContainer">>
<<switch random(1,4)>>
<<case 1>>
You flash a welcoming smile and tilt your head slightly, signaling for <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to come closer and chat.
<<case 2>>
With a welcoming grin, you gesture subtly with a nod, inviting <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to step nearer and join the conversation.
<<case 3>>
You offer a teasing smile and cock your head toward <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, coaxing <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> to close the distance between you.
<<case 4>>
You flash a bold smile and tilt your head with purpose, drawing <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> closer to speak further.
<</switch>>
<br><br>
<<flirtRx>>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<getFlirtActions>>
</div>
<</replace>>
<</button>>
<<if $player.dom > 50>>
<<button "Shake your head">>
<<replace "#repContainer">>
<b>You give one polite but firm shake of your head, cutting off any futher advances.</b>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 5>>
<<if $pherRx and random(0,$player.beautyScore*10) > 50>>
<<goto "NPCPheremone">>
<<else>>
<<purgeNPC $NPCArray.find(npc => npc.dna == $currDNA)>>
<<unset $currDNA>>
<<goto $returnLoc>>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
<<else>>
<<button "Ignore <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>">>
<<replace "#repContainer">>
You turn away from <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> and focus on something else, hoping that <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'ll take the hint and leave you alone.
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 5>>
<<if $player.traits.includes(28) and ($player.arousal > $player.$pherTrigger or random($player.arousal,100) > $player.$pherTrigger) and ['Bisexual',$player.presenting].includes($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender)>>
<<set $pherLevel = 1>>
<<goto "NPCPheremone">>
<<else>>
<<purgeNPC $NPCArray.find(npc => npc.dna == $currDNA)>>
<<unset $currDNA>>
<<goto $returnLoc>>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
<</if>>
<</if>>
</div>
</div><<if $pherLevel === 1>>
<<set $player.arousal += Math.max(5,$player.arousal/10)>>
<center>
<<set _tmpImg = 'Media/Social/Flirting/Seduce/'>>
<<if $player.presenting === 'Female'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg += 'MF/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'FF/' + random(0,0) + '.webp'>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg ++ 'MM/' + random(0,0) + '.webp'>>
<<else>>
<<set _tmpImg += 'MF/' + random(1,4) + '.webp'>>
<</if>>
<</if>>
<img @src='_tmpImg' height="500rem">
<br><br>
<<switch random(1,4)>>
<<case 1>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> swiftly moves behind you, pulling you close against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> chest. "I understand 'no' sometimes means 'try harder'," <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> murmurs in your ear, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> warm breath sending a shiver down your spine. "Let's have some real fun, sweetheart."
<<case 2>>
Smirking, he pulls you flush against his body, fingers trailing tantalizingly down your sides. "Don't be so hasty to throw away something thrilling," he purrs, voice dripping with seduction. "Leave the ordinary behind and indulge a little."
<<case 3>>
Hands pull your body against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>, "Give in to the urge, lovely," <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> coaxes, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> words dripping with promise. "We could have a night neither of us will soon forget... if you dare to take the leap."
<<case 4>>
Confident hands caress your body, hinting at the sensual delights that await. "Indulge in something extraordinary tonight," <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> suggests, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> breath hot against your skin.
<</switch>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.slutLevel > 3 or (['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender) and ($player.slutLevel > 2 or $player.arousal > 40 or $NPCArray.find(npc => npc.dna == $currDNA).relationship >= 50))>>
<<button "Give in" "SneakScene">>
<<set $player.statBuffs.sub += 1>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Pull away">>
<<if random($player.arousal,100 > $player.pherTrigger) and $NPCArray.find(npc => npc.dna == $currDNA).personality === 3 and $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set $pherLevel = 2>>
<<goto 'NPCPheremone'>>
<<else>>
<<unset $pherLevel>>
<<unset $currDNA>>
<<goto $returnLoc>>
<</if>>
<</button>>
</div>
</div>
<<elseif $pherLevel === 2>>
<center>
<<set _tmpImg = 'Media/Social/Flirting/ForcePlay/'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'MF/' + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += 'MM/' + random(1,2) + '.webp'>>
<</if>>
<<else>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'FF/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'FM/' + random(1,3) + '.webp'>>
<</if>>
<</if>>
<img @src='_tmpImg' height="500rem">
<br><br>
<span id="repCont">
<<switch random(1,4)>>
<<case 1>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pins you against a nearby wall and growls into your ear.
<br><br>
"You little cock tease bitch. You're just going to flaunt it and run? I think you owe me a little something, don't you?"
<<case 2>>
Infuriated by your perceived games, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> seizes your wrist in a painful grip, yanking you against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> chest. "Enough of this fucking cat and mouse!" <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> snarls, eyes blazing with barely contained rage.
<<case 3>>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> other hand roams your body possessively, almost aggressively, as if staking claim. "You've led me on long enough, slut," <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> growls, voice thick with lust and ire. "Now it's time to pay the price for teasing me." <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> words are a warning, a threat, yet you sense a darker desire lurking beneath the surface.
<<case 4>>
Aggressive fingers dig into your curves, asserting dominance. "Time to reap what you've sown, tease," <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> warns, voice heavy with lust and simmering wrath.
<</switch>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $player.slutLevel > 3 or (['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender) and ($player.slutLevel > 2 or $player.arousal > 40 or $NPCArray.find(npc => npc.dna == $currDNA).relationship >= 50))>>
<<button "Give in">>
<<set $player.statBuffs.sub += 1>>
<<replace "#repCont">>
"Oh - we're well beyond a little make out session. But since you're being so agreeable now I'll give you a choice."
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Use your mouth" "sexSceneEngine">>
<<set $player.statBuffs.sub += 2>>
<<set $sceneLoc = $returnLoc>>
<<set $sceneAct = 'OralSex'>>
<<set $sceneDir = 'Giving'>>
<<unset $pherLevel>>
<</button>>
<<button "Use your hands" "sexSceneEngine">>
<<set $player.statBuffs.sub += 1>>
<<set $sceneLoc = $returnLoc>>
<<set $sceneAct = 'Handjob'>>
<<set $sceneDir = 'Giving'>>
<<unset $pherLevel>>
<</button>>
<<if $player.body.tits > 2>>
<<button "Use your tits">>
<<set $player.statBuffs.sub += 3>>
<<set $sceneLoc = $returnLoc>>
<<set $sceneAct = 'TittyFucking'>>
<<set $sceneDir = 'Getting'>>
<<unset $pherLevel>>
<</button>>
<</if>>
</div>
<</replace>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<button "Fight <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> off" "sexSceneEngine">>
<<if random($player.arousal,100 > 60) and $NPCArray.find(npc => npc.dna == $currDNA).personality === 3>>
<<set $player.statBuffs.dom += 1>>
<<set $sceneLoc = $returnLoc>>
<<set $sceneAct = 'NonCon'>>
<<set $sceneDir = 'Getting'>>
<<unset $pherLevel>>
<<addMins 2>>
<<else>>
<<unset $pherLevel>>
<<unset $currDNA>>
<<goto $returnLoc>>
<</if>>
<</button>>
</div>
</div>
<</if>><<widget "genPickUpLine">>
<<if $player.body.womb and $player.body.womb.showPreg and random(0,1) > 0>>
<<set _rando = random(32,36)>>
<<else>>
<<set _rando = random(1,31)>>
<</if>>
<<switch _rando>>
<<case 1>>
Are you a magician? Because whenever I look at you, everyone else disappears!
<<case 2>>
What can I call you in the morning?
<<case 3>>
I'm not a photographer, but I can picture me and you together.
<<case 4>>
They say Disneyland is the happiest place on earth. Well apparently, no one has ever been standing next to you.
<<case 5>>
For some reason, I was feeling a little off today. But when you came along, you definitely turned me on.
<<case 6>>
Are you religious? Because you're the answer to all my prayers.
<<case 7>>
I seem to have lost my phone number. Can I have yours?
<<case 8>>
I'm lost. Can you give me directions to your panties?
<<case 9>>
Are you a parking ticket? 'Cause you've got fine written all over you.
<<case 10>>
Are you sure you're not tired? You've been running through my mind all day.
<<case 11>>
Was your dad a boxer? Because damn, you're a knockout!
<<case 12>>
Would you grab my <<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>cock<<else>>pussy<</if>>, so I can tell my friends I've been touched by an angel?
<<case 13>>
Aside from being sexy, what do you do for a living?
<<case 14>>
How was heaven when you left it?
<<case 15>>
Is your dad a terrorist? Cause you're the bomb.
<<case 16>>
Did you just smile at me, or did the sun come out?
<<case 17>>
Kiss me if I'm wrong, but dinosaurs still exist, right?
<<case 18>>
Can I follow you home? Cause my parents always told me to follow my dreams.
<<case 19>>
Is your name Google? Because you have everything I've been searching for.
<<case 20>>
Are you from Tennessee? Because you're the only ten I see!'
<<case 21>>
I may not be a genie, but I can make your dreams come true.
<<case 22>>
There must be something wrong with my eyes because I can't take them off you.
<<case 23>>
Can I have your picture so I can show Santa what I want for Christmas?
<<case 24>>
If I had a star for every time you brightened my day, I'd have a galaxy in my hand.
<<case 25>>
Now what's on the menu? Me-n-u.
<<case 26>>
Excuse me miss, can I have the time? I'd check my watch but I can't take my eyes off you.
<<case 27>>
I'm no photographer, but I can picture us together.
<<case 28>>
Dont stop! I don't usually get to see beauty in motion.
<<case 29>>
If I could rearrange the alphabet, I'd put 'U' and 'I' together.
<<case 30>>
You're so beautiful you made me forget my pick up line.
<<case 31>>
Are you a Nice girl or Good girl? NICE girls blush when they watch porn, GOOD girls smile cause they know they can do better.
<<case 32>>
Damn girl, how could you not be pregnant? You're smoking hot, who wouldn't wanna knock that up.
<<case 33>>
Don't worry, it won't hurt the baby.
<<case 34>>
Is that a bun in your oven or are you just happy to see me?
<<case 35>>
Is the baby kicking? Because your body is.
<<case 36>>
I'm a little jealous of that baby...I would love to spend 9 months inside of you.
<</switch>>
<</widget>>
<<widget "genVulgarComment">>
<<switch random(1,7)>>
<<case 1>>
<<if passage() === 'HootersTableFlirt'>>
I'd tap that booty faster than you can say 'free wings Wednesday'.
<<else>>
I bet you squeal like a pig in heat whenever some dude rams his cock deep inside your sloppy wet snatch.
<</if>>
<<case 2>>
<<if passage() === 'HootersTableFlirt'>>
Bet you spread those legs like a cheap whore the second someone flashes a fat tip.
<<else>>
I wonder how many guys have sucked on those pink nipples. Hope I get lucky number 500 tonight!
<</if>>
<<case 3>>
That juicy ass of yours must attract a lot of hungry appetites. Mine's the biggest though - bet you can barely handle it!
<<case 4>>
I bet your pussy tastes like cotton candy and sunshine.
<<case 5>>
Sweetheart, your body's like a playground for horny deviants like me to explore and claim as our own personal toy box.
<<case 6>>
That round ass of yours makes me wanna drop to my knees and bury my face in it, like a dirty dog sniffing a warm patch.
<<case 7>>
Those tits would look amazing bouncing around on top of me.
<</switch>>
<</widget>><<set _blockChat = 0>>
<div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div>
<<if $player.traits.includes(28) and ($player.arousal > 40 or random($player.arousal,50) > 40) and ['Bisexual',$player.presenting].includes($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender)>>
<<set _pherOverride = true>>
<</if>>
<<if $player.beautyScore < 0 and !_pherOverride>>
<<set _blockChat = 1>>
<<set $player.mood -= 2>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> looks you up and down and then shakes <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> head "Yeah - sorry. I just realized I need to be somewhere else."
<br><br>
<div class="badText">You fidget with the hem of your outfit, wondering if you need to do something about your appearance</div>
<<else>>
<<if calcAttraction($NPCArray.find(npc => npc.dna == $currDNA),$player) and ($NPCArray.find(npc => npc.dna == $currDNA).personality === 3 or ($NPCArray.find(npc => npc.dna == $currDNA).personality === 2 and $NPCArray.find(npc => npc.dna == $currDNA).arousal > 50))>>
<<goto "AlphaIntro">>
<<else>>
<<switch random(1,1)>>
<<case 1>>
Your banter is light — something about music, the weather. Not probing each other's souls; just filling the silence.
<</switch>>
<</if>>
<</if>>
<<if _pherOverride>>
<br><br>
<b><<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> takes a step closer as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> nostrils flare slightly, as if picking up a new scent, and the smile that spreads across <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> makes it clear where <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> thoughts are going...</b>
<</if>>
</div>
</div>
<hr>
<div id ='actionsContainer'>
<<if _blockChat != 1>>
<<if !_pherOverride>>
<<getChatActions>>
<<else>>
<div class="buttonContainer">
<<button "Continue" "NPCSeduce">>
<<set $pherRx = true>>
<<addSecs 5>>
<</button>>
</div>
<</if>>
<</if>>
</div><div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += 1>>
<<switch random(1,2)>>
<<case 1>>
You fill the air between you with trivial observations, one-liner jokes you each hope comes across as witty, and any other non-offensive topics you can come up with.
<<case 2>>
Each joke lands with a polite chuckle, more about keeping the rhythm than being genuinely funny.
<<case 3>>
Your conversation skips across topics like stones on a pond — weather, weekend plans, and how <<$NPCArray.find(npc => npc.dna == $currDNA).firstName>> once tried to make sourdough during lockdown.
<</switch>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Do something else">>
<<addSecs 4>>
<<replace "#actionsContainer">>
<<getChatActions>>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "End the conversation" $returnLoc>>
<<addMins 1>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship > 15 or ($player.beautyScore >= 5 and ($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender === $player.presenting or $NPCArray.find(npc => npc.dna == $currDNA).prefs.gender == 'Bisexual'))>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship < 16>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship = 16>>
<</if>>
<<set $player.phone.contacts.push($currDNA)>>
<<set $player.phone.inbox.push({txtNPC: $currDNA, log: [], new: false, code: ''})>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> smiles and pulls out <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> phone, bumping it against yours to transfer both your sets of contact information.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> makes a show of patting <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> pockets.
<br><br>
"Sorry, I don't have my phone with me right now. Maybe next time, yeah?"
<br><br>
Before you have a chance to respond <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> turns and walks away.
<<purgeNPC $currDNA>>
<<unset $currDNA>>
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if !$currDNA>>
<<button "Continue" $returnLoc>>
<<addSecs 20>>
<</button>>
<<else>>
<<button "Continue" $retLoc>>
<<addSecs 20>>
<</button>>
<</if>>
</div>
</div><<widget "getChatActions">>
<div class="buttonContainer">
<<button "Make small talk" "SmallTalk">>
<<if $onDate>>
<<goto "DateSmallTalk">>
<<addMins 10>>
<<else>>
<<addMins 5>>
<</if>>
<</button>>
<<if $onDate>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship < 24>>
<<button "Get to know <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>" "DateSideBar">>
<<addMins 2>>
<</button>>
<</if>>
<</if>>
<<if (['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender) and ($player.slutLevel > 1 or $NPCArray.find(npc => npc.dna == $currDNA).relationship >= 25)) or $player.traits.includes(8)>>
<<button "Flirt with <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>">>
<<replace "#actionsContainer">>
<<getFlirtActions>>
<</replace>>
<</button>>
<</if>>
<<if !$player.phone.contacts.includes($currDNA)>>
<<button "Ask for <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> number" "ContactUpdate">>
<<set $retLoc = passage()>>
<<addSecs 10>>
<</button>>
<</if>>
</div>
<div class="buttonContainer">
<<if !$onDate>>
<<button "Leave" $returnLoc>>
<<unset $specialChatActions>>
<<unset $currDNA>>
<<addMins 1>>
<</button>>
<</if>>
</div>
<</widget>><<set
$thisDate = $player.phone.calendar.items.find(date => date.julianDate === $currJulianDate and (date.startTime.getTime() - $gameDate.getTime())/1000 <= 900 and date.location === $dateLoc);
$currDNA = $thisDate.with;
$preDateRel = $NPCArray.find(npc => npc.dna == $currDNA).relationship;
_tmpImg = 'Media/Social/DateNight/Intro/';
>>
<<if calcAttraction($NPCArray.find(npc => npc.dna == $currDNA),$player) or $NPCArray.find(npc => npc.dna == $currDNA).relationship > 25>>
<<set $romLevel = 'Romantic'>>
<<else>>
<<set $romLevel = 'Platonic'>>
<</if>>
<<if $player.presenting === 'Female'>>
<<set $dateType = 'F'>>
<<else>>
<<set $dateType = 'M'>>
<</if>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<set $dateType += 'F'>>
<<else>>
<<set $dateType += 'M'>>
<</if>>
<<if $dateType === 'FM'>><<set $dateType = 'MF'>><</if>>
<<set _tmpImg += $dateType + '/'>>
<<switch $dateType>>
<<case 'MF'>>
<<if $romLevel == 'Romantic'>>
<<set _tmpImg += 'Hug/' + random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += 'Greet/' + random(1,7) + '.webp'>>
<</if>>
<<case 'FF'>>
<<if $romLevel == 'Romantic' or $NPCArray.find(npc => npc.dna == $currDNA).relationship > 20>>
<<set _tmpImg += 'Hug/' + random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += 'Greet/' + random(1,6) + '.webp'>>
<</if>>
<<case 'MM'>>
<<if $romLevel == 'Romantic'>>
<<set _tmpImg += 'Hug/' + random(1,2) + '.webp'>>
<<else>>
<<set _tmpImg += 'Greet/' + random(1,2) + '.webp'>>
<</if>>
<</switch>>
<<set
$dateStart = $gameDate.getTime();
$dateLimit = 200;
>>
<center>
<span id="repCont">
<img @src='_tmpImg' height='600rem'>
<br><br>
You and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> greet each other.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<set
$onDate = true;
>>
<<cleanDate $player.phone.calendar.items.indexOf($thisDate)>>
<<switch $thisDate.location>>
<<case "KellysPub">>
<<unset $barDrinks>>
<<set $dateHUB = 'BarDate'>>
<<addMins 2>>
<<goto 'BarDate'>>
<<case "CityPark">>
<<set $dateHUB = 'ParkDate'>>
<<addMins 2>>
<<set $dateAct = 'Walk'>>
<<goto 'ParkDate'>>
<<default>>
<</switch>>
<</button>>
</div>
</div><<trackDateImpacts>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel < -10>>
<<goto "NPCEndsDate">>
<</if>>
<center>
<span id="repCont">
<<getDateImage>>
<br><br>
<<if $romLevel === 'Romantic'>>
<<switch random(1,5)>>
<<case 1>>
You sit across from <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> in the bar, the glow of the neon lights painting <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> smile in soft colors. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> elbow rests casually on the counter, and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> leans toward you just enough to make the space between you feel smaller.
<<if $barDrinks>>
You swirl the straw in your drink, noticing how <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes linger on yours a moment longer than necessary.
<</if>>
<<case 2>>
You catch <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eye over the rim of y$NPCArray.find(npc => npc.dna == $currDNA).secondRefour glass, and the corner of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> mouth curves upward. You don't say anything, but the grin you return feels like its own conversation. The silence hums with possibility, light and easy, like the pause before laughter.
<<case 3>>
You shift slightly closer, your shoulder brushing <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> as you move to let someone slide past. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> doesn't move away, and the small contact lingers, warm and unspoken.
<<case 4>>
You rest your fingers on the bar, drumming lightly, and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> mirrors the motion with <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> own. Neither of you speaks, but the shared gesture feels like a secret game. When your eyes meet, you both laugh softly, breaking the silence without needing words.
<<case 5>>
<<if $barDrinks>>
You lift your glass at the same time <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> does, and the synchronized motion makes you both smile. For a second, you just sit there, sipping in unison, amused by the coincidence.
<<else>>
You glance sideways at <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, catching the way <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'s already looking at you. The moment stretches, then you both look away at the same time, laughing softly at the awkward choreography.
<</if>>
<</switch>>
<<else>>
<<switch random(1,5)>>
<<case 1>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship > 30>>
You lean forward over the sticky tabletop, daring <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> with a raised eyebrow. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>>'s halfway through a joke, and you interrupt just to see <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> roll <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes.
<<else>>
The cracked leather of the bar seat scratches at to your legs and table smells faintly of spilled beer and lemon cleaner, sticky under your fingertips. Neon light from the bar sign paints <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> grin in shifting colors as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> talks, and you catch the low thrum of bass from the jukebox vibrating through the floor.
<</if>>
<<case 2>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship > 30>>
You perch on the tall stool, elbows brushing <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> as you shout over the music. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> leans in, laughing, and you nearly spill your drink when you laugh back. The bar is alive with clinking glasses and bursts of chatter, but you feel like you're part of the current, carried along together.
<<else>>
The jukebox blares, too loud for the thin thread of conversation you're trying to keep alive. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> laugh comes a beat late, yours a little too sharp, and the smell of fried onions clings to the air between you. You sip your drink just to have something to do, wishing the table gave you more distance.
<</if>>
<<case 3>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship > 30>>
You rest your chin in your hand, watching <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> gesture with <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> glass as if the story needs props. The bar hums around you, but you're tuned to the cadence of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> words, the way <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> smile flickers when <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'s amused.
<<else>>
The jukebox rattles the glasses behind the bar, and you raise your voice to answer, though you're not sure <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> heard. The are between you go cold, untouched, and the greasy smell of the bar hangs heavy. You sip your drink, glance at <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>, and realize you're both waiting for the other to say something worth saying.
<</if>>
<<case 4>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship > 30>>
You lean forward over the sticky tabletop, the faint scent of fried food clinging to the air. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> voice competes with the jukebox, tinny guitar riffs rattling the glasses stacked behind the bar. You interrupt <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> joke just to see <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> roll <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes, and the sharp citrus bite of your drink lingers on your tongue as you laugh.
<<else>>
You keep your eyes fixed on the condensation sliding down your glass. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> says something, you nod, but the pause that follows stretches too long. The hum of the bar presses in, filling the silence you can't seem to break.
<</if>>
<<case 5>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship > 30>>
The warmth of the room presses against your skin, alive with chatter and clinking glass, but you're caught in the rhythm of the conversation; the game of banter bouncing back and forth.
<<else>>
The sharp scent of beer and citrus wedges cuts through the air, and laughter from another table makes you wish you were somewhere else. You smile when you should, but it feels like a mask slipping every time you hold it too long. <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> glances at <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> phone more than a few times as if hoping for a call.
<</if>>
<</switch>>
<</if>>
<<if $drinkMsg>>
<br><br>
$drinkMsg
<<unset $drinkMsg>>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<<drinkActions>>
<<dateChatActions>>
<<endDateActions>>
</div><<trackDateImpacts>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel < -10>>
<<goto "NPCEndsDate">>
<</if>>
<center>
<span id="repCont">
<<getDateImage>>
<br><br>
<<if $dateAct == 'Walk'>>
<<switch $romLevel>>
<<case 'Romantic'>>
<<switch random(1,5)>>
<<case 1>>
As you walk arm in arm with $NPCArray.find(npc => npc.dna == $currDNA).firstName, you feel the warmth of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> body against yours. The park around you seems to glow with a special kind of magic, enhanced by the closeness you share. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> hand rests gently on your waist, guiding you along the path as if leading you in a dance.
<<case 2>>
Every step you take feels like floating, your hearts beating in sync with the rhythm of nature surrounding you. The scent of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> cologne mingles with the fragrance of blooming flowers, creating a heady aroma that makes you dizzy with happiness
<<case 3>>
Walking closely entwined, your bodies sway gently in unison, fitting together like puzzle pieces. The sun bathes you both in golden light, casting a dreamlike quality over your romantic interlude.
<<case 4>>
Lost in the moment, you lean into <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s touch, relishing the intimate contact. Surrounded by nature's splendor, it feels as though you've stepped into a fairytale where only the two of you exist.
<<case 5>>
As you saunter along the park path, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pulls you closer, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> arm secure around your waist. The simple pleasure of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> nearness sends tingles through your body, making your heart flutter with delight.
<</switch>>
<<default>>
<<switch random(1,5)>>
<<case 1>>
You and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> stroll along the park path, the sun warming your skin and birds chirping cheerfully around you. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> smiles softly, glancing at you every so often as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> points out various flowerbeds and birds in the park.
<<case 2>>
The tranquil atmosphere of the park envelops you and your date as you meander through its winding paths. Your pace is slow enough to allow easy conversation.
<<case 3>>
With the sun high in the sky and a light breeze caressing your cheeks, you and your date enjoy a leisurely walk through the picturesque park. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> seems relaxed, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> shoulders loose and <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> stride easy, as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> takes in the beauty surrounding you both.
<<case 4>>
As you walk alongside $NPCArray.find(npc => npc.dna == $currDNA).firstName, you feel the warmth of the sun on your face and hear the distant laughter of children playing nearby.
<<case 5>>
The park stretches out before you, a tapestry of green grass, colorful flowers, and towering trees. You breathe in the fresh air, letting the serene environment wash over you.
<</switch>>
<</switch>>
<<else>>
<<switch $romLevel>>
<<case 'Romantic'>>
<<switch random(1,5)>>
<<case 1>>
<<case 2>>
<<case 3>>
<<case 4>>
<<case 5>>
<</switch>>
<<default>>
<<switch random(1,5)>>
<<case 1>>
<<case 2>>
<<case 3>>
<<case 4>>
<<case 5>>
<</switch>>
<</switch>>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<<parkActions>>
<<dateChatActions>>
<<endDateActions>>
</div><center>
<<getDateImage>>
<br><br>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += random(-1,1)>>
<span id="repCont">
<<switch $dateHUB>>
<<case 'BarDate'>>
<<switch random(1,5)>>
<<case 1>>
You lean toward <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, the bar's low hum wrapping around your words as you trade light observations. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> hand gestures casually as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> responds, and you find yourself smiling at the rhythm of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> voice. The conversation drifts from one harmless topic to another, punctuated by laughter and the clink of glasses.
<<case 2>>
You sit angled toward <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, resting your elbow on the counter as you let the conversation wander. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> nods thoughtfully, then tilts <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> head, inviting you to continue. The exchange feels effortless, like tossing pebbles into a stream—small, simple remarks that ripple into easy connection.
<<case 3>>
<<if $barDrinks>>
You swirl your drink, listening as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> tosses back a comment that makes you grin. The two of you volley remarks, light and teasing, with pauses that feel more like anticipation than silence. The bartender passes by, unnoticed, as you stay caught in the rhythm of your own little world.
<<else>>
The amber light from the bar lamps catch the curve of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> jaw and the low murmur of voices around you blends with the clink of glasses, but <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> attention feels like a spotlight. You tilt your head, smiling as you toss out a casual remark, and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> answers with a grin that makes the air between you feel lighter.
<</if>>
<<case 4>>
The hum of music vibrating faintly through the wood beneath your elbow. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> eyes flicker with amusement as you trade small observations, each one met with a quick smile or raised brow. Your back-and-forth feels like its own little game, punctuated by laughter that rises just above the din.
<<case 5>>
You rest your hand lightly on the bar, tracing the condensation ring left by your glass. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> leans closer, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> voice low enough that you have to bend toward $NPCArray.find(npc => npc.dna == $currDNA).secondRef, and the proximity makes the chatter of the room fade. The conversation is simple—bits of small talk, nothing remarkable—but the way <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> gaze lingers between sentences makes each pause feel charged. You find yourself smiling at nothing in particular, enjoying the quiet pull of connection.
<</switch>>
<<case 'ParkDate'>>
<<switch $dateAct>>
<<case "Walk">>
<<switch random(1,5)>>
<<case 1>>
As you walk along the path, your date points out various landmarks within the park, sharing tidbits of information about each one. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> enthusiasm is infectious, drawing you further into the conversation.
<<case 2>>
<<if $player.skills.charm > 25>>
You and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> fall into an easy rhythm, discussing your favorite books and movies. The words flow naturally between you, punctuated by occasional laughter and shared insights.
<<else>>
You and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> fall into an awkward stillted conversation. Full stuccato bursts of questions-and-answers followed by long periods of silence. This is going really well.
<</if>>
<<case 3>>
The sun casts a warm glow over everything, adding to the pleasant ambiance of your stroll. $scenePC.firstName asks about your interests, genuinely curious to learn more about you. You reciprocate, eager to discover common ground.
<<case 4>>
As you meander through the park, your conversation shifts from one topic to another seamlessly. You find yourself enjoying the back-and-forth banter, appreciating <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> quick wit and engaging mannerisms.
<<case 5>>
<<if $player.skills.charm > 25>>
You and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> exchange playful banter as you follow the winding path, laughing at each other's quips and clever remarks. The easy camaraderie puts you at ease, allowing you to relax and simply enjoy the company.
<<else>>
You make a few jokes that don't really land, but <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> laughs politely anyway.
<</if>>
<</switch>>
<<case "Sit">>
<<switch $romLevel>>
<<case 'Romantic'>>
<<switch random(1,4)>>
<<case 1>>
Sitting close together on the park bench, your legs brush against each other. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> leans in, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> voice low and teasing as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> whispers something playful in your ear, sending a shiver of excitement through you.
<<case 2>>
You feel the heat radiating from <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> body as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> sits next to you, $NPCArray.find(npc => npc.dna == $currDNA).secondRe arm draped casually across the back of the bench. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> grins at you, $NPCArray.find(npc => npc.dna == $currDNA).secondRe eyes twinkling with mischief as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> compliments your outfit, making you blush.
<<case 3>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> reaches out and gently brushes a strand of hair from your face, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> fingers lingering for a moment longer than necessary. The tender gesture makes your heart skip a beat, and you find yourself leaning into <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> touch.
<<case 4>>
As you sit together, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> places <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hand on your knee, squeezing it lightly in a flirtatious manner sending tingles up your spine. You meet <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> gaze, seeing the desire reflected in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes.
<</switch>>
<<default>>
<<switch random(1,4)>>
<<case 1>>
You sit comfortably on the park bench, enjoying the warm afternoon sun and the gentle chatter of <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> beside you. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> tells you about <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> latest project at work, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hands animated as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> speaks, conveying <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> enthusiasm.
<<case 2>>
Resting on the bench you note the way <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s eyes crinkle at the corners when <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> smiles. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> asks about your weekend plans, either out of genuine curiosity or a desire to spend more time with you.
<<case 3>>
Seated side by side, you and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> engage in easy conversation, the topics ranging from favorite restaurants to upcoming concerts. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> leans forward, elbows resting on <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> knees, fully engaged in the discussion.
<<case 4>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> mentions a book <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> recently finished, describing the plot with such excitement that you find yourself wanting to read it too.
<</switch>>
<</switch>>
<</switch>>
<</switch>>
</span>
</center>
<hr>
<div id="actionsContainer">
<<if $dateHUB === 'BarDate'>>
<<drinkActions>>
<<elseif $dateHUB === 'ParkDate'>>
<<parkActions>>
<</if>>
<<dateChatActions>>
<<endDateActions>>
</div><center>
<<getDateImage>>
<br><br>
<<if random(0,100) > 50>>
<<if calcAttraction($NPCArray.find(npc => npc.dna == $currDNA),$player)>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += 2>>
<<switch random(1,3)>>
<<case 1>>
You lean closer, the bar's chatter fading into a distant hum as <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> words take on weight. The playful banter slows, replaced by thoughtful pauses, and you find yourself revealing pieces of yourself you don't usually share. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> gaze doesn't waver, steady and attentive, and the warmth in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> expression makes the dim light feel softer. The air between you carries a quiet gravity, as if the world outside the bar has slipped away.
<<case 2>>
You trace the rim of your glass, speaking slowly, choosing words that matter. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> listens, not just with his ears but with the tilt of $NPCArray.find(npc => npc.dna == $currDNA).secndRef head, the way <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> shoulders angle toward you. The conversation drifts into deeper waters — hopes, fears, the things that shape you — and you feel the spark of recognition in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> smile. The background noise of laughter and clinking glasses becomes a backdrop to something more intimate, a rhythm that belongs only to the two of you.
<<case 3>>
You pause after sharing something personal, waiting for <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> reaction. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> doesn't rush to fill the silence; instead, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> lets it breathe, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes holding yours with quiet understanding. The bar's neon glow flickers across <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face, and you realize how natural it feels to sit here, speaking about the things that matter. Each exchange feels less like small talk and more like a thread weaving you closer together, the kind of conversation that lingers long after the night ends.
<</switch>>
<<else>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship -=1>>
<<switch random(1,3)>>
<<case 1>>
You sit angled toward <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>, but <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> body drifts away, shoulders turned slightly toward the room instead of you. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> eyes wander past your face, scanning the bottles lined up behind the bar, and when <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> answers, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> words are clipped, almost mechanical. The pauses stretch too long, filled not with anticipation but with the dull weight of disinterest.
<<case 2>>
You lean closer, hoping to catch <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> attention, but <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> sighs softly, eyes flicking toward the door as if measuring the time. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> smile is faint, forced, and it fades almost as quickly as it appears.
<<case 3>>
You trying to keep the conversation alive, but <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> gaze is fixed on the television above the bar. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> nods occasionally, though it feels more like habit than engagement. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> fingers drum against the counter, restless, and the silence between your sentences grows heavier, pressing against the space you share.
<</switch>>
<</if>>
<<else>>
<<goto "dateFactoid">>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" $dateHUB>>
<<addSecs 15>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div>
<<switch random(1,6)>>
<<case 1>>
"When I was 10, I tried to impress my classmates by doing a backflip off the monkey bars. I landed flat on my face and chipped my front tooth. My mom still has the dentist’s bill framed as a joke."
<<case 2>>
"I once showed up to a wedding thinking it was casual, so I wore khakis and a polo shirt. Turns out it was black tie. I was the only one not in a suit, and the photographer kept avoiding me in group shots."
<<case 3>>
"I have this weird habit of talking to myself when I cook. Like, full-on commentary — 'Okay, now we're chopping the onions, great job!' My roommate caught me once and thought I was filming a cooking show."
<<case 4>>
"I'm kind of the office ping-pong champion. Nobody's beaten me in months. I keep telling them I should get a trophy, but apparently HR doesn't hand those out."
<<case 5>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
"Later I'll tell you the story about how I saved a baby from a lion"
<<else>>
"Last year I led a project that saved my company over a million dollars. Honestly though, the best part was realizing I could take someone amazing like you out without worrying about the bill."
<</if>>
<<case 6>>
"I throw the best barbecues in my neighborhood. People actually RSVP weeks in advance because they know I'll have the best ribs and playlists."
<<case 7>>
"I'm not really a great singer, but I did win karaoke night three weeks in a row. People kept asking if I was a professional, which was hilarious."
<</switch>>
<br>
<span id="repCont"><br></span>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "React positively">>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship < 25>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += 1>>
<</if>>
<<replace "#repCont">>
<br>
You nod and smile in an encouraging way.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $dateHUB>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<div class="buttonContainer">
<<button "React negatively">>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship -= 1>>
<<replace "#repCont">>
<br>
Your expression shows your thoughts on that matter and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> drops the topic.
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" $dateHUB>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div>
<<if $dateHub = 'BarDate'>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> finally puts <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> on the table and pushes <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> chair back.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> finally turns to you and stops whatever it was you were saying.
<</if>>
<br><br>
"You know what?" <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> says, with feigned shock. "I just remember I have somewhere I need to be. Thanks for this it's been..." but <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> trails off and then walks away.
<br><br>
Guess that means this date is over.
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 15>>
<<set _tmpLoc = $thisDate.location>>
<<datePowerDown>>
<<goto _tmpLoc>>
<</button>>
</div>
</div><center>
<<getDateImage>>
<br><br>
You both notice the time at the same moment and the mood breaks. It's time to call it a night.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Wrap it up" "EndDate">>
<<addSecs 15>>
<</button>>
</div>
</div><<set $dateEnd = true>>
<<set _tmpImg = 'Media/Social/DateNight/Outro/'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel >= 5>>
/* great date */
<<set _dateRx = 'Good'>>
<<set _tmpImg += 'Good/' + $dateType + '/'>>
<<switch $dateType>>
<<case 'MF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'FF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'MM'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</switch>>
<<set _tmpTxt = 'You share easy banter as you walk back toward your meeting point, both of you enjoying each others company.'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel > 0>>
/* meh date */
<<set _dateRx = 'Meh'>>
<<set _tmpImg += 'Meh/' + $dateType + '/'>>
<<switch $dateType>>
<<case 'MF'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<<case 'FF'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<<case 'MM'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<</switch>>
<<set _tmpTxt = 'You and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> walk back toward the entrance in a comfortable silence.'>>
<<else>>
/* bad Date */
<<set _dateRx = 'Bad'>>
<<set _tmpImg += 'Bad/' + $dateType + '/'>>
<<switch $dateType>>
<<case 'MF'>>
<<set _tmpImg += random(1,4) + '.webp'>>
<<case 'FF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'MM'>>
<<set _tmpImg += random(1,2) + '.webp'>>
<</switch>>
<<set _tmpTxt = 'You can barely contain your annoyance at <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> and start to wonder why you\'re even spending time with <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>.'>>
<</if>>
<center>
<span id ="repCont">
<img @src='_tmpImg' height='600rem'>
<br><br>
_tmpTxt
</span>
</center>
<hr>
<div id="actionsContainer">
<<if $player.slutLevel > 3 or (['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender) and $NPCArray.find(npc => npc.dna == $currDNA).relationship >= 25)>>
<div class="buttonContainer">
<<button "Kiss goodbye">>
<<if calcAttraction($NPCArray.find(npc => npc.dna == $currDNA),$player)>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += 5>>
<<set _tmpImg = 'Media/Social/DateNight/Post/Kiss/' + $dateType + '/'>>
<<switch $dateType>>
<<case 'MF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'FF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'MM'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</switch>>
<<replace "#repCont">>
<img @src="_tmpImg" height="600rem">
<br><br>
You lean in for a goodnight kiss, pressing your lips against <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s and stepping closer.
<</replace>>
<<else>>
<<if $onDate>>
<<goto "FriendZone">>
<<else>>
<<goto "FlirtFailure">>
<</if>>
<</if>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<dateReturn>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<<if _dateRx == 'Meh'>>
<div class="buttonContainer">
<<button "Hug goodbye">>
<<set _tmpImg = 'Media/Social/DateNight/Post/Hug/' + $dateType + '/'>>
<<switch $dateType>>
<<case 'MF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'FF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'MM'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</switch>>
<<replace "#repCont">>
<img @src='_tmpImg' height='600rem'>
<br><br>
You say goodnight with a friendly hug and agree to get together again later.
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue">>
<<switch $thisDate.location>>
<<case "KellysPub">>
<<set _tmpLoc = 'Downtown'>>
<<case "CityPark">>
<<set _tmpLoc = 'MarketSquare'>>
<</switch>>
<<datePowerDown>>
<<goto _tmpLoc>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Goodbye">>
<<switch $thisDate.location>>
<<case "KellysPub">>
<<set _tmpLoc = 'Downtown'>>
<<case "CityPark">>
<<set _tmpLoc = 'MarketSquare'>>
<</switch>>
<<datePowerDown>>
<<goto _tmpLoc>>
<</button>>
</div>
</div><<set $romLevel = 'Romantic'>>
<<set _tmpImg = 'Media/Social/DateNight/Post/Kiss/' + $dateType + '/'>>
<<switch $dateType>>
<<case 'MF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'FF'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<case 'MM'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</switch>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You lean in for a kiss, pressing your lips against <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s and stepping closer.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Keep kissing" "sexSceneEngine">>
<<set $sceneAct = 'Foreplay'>>
<<set $sceneLoc = $dateHUB>>
<<set $foreplayAct = 'Kiss'>>
<<set $arousalFactor = 2>>
<<calcArousal 'kiss' $arousalFactor 2>>
<</button>>
</div>
<div class="buttonContainer">
<<button "Stop kissing">>
<<goto $dateHUB>>
<</button>>
</div>
</div><<widget "trackDateImpacts">>
/* if going poorly, reduce time limit for date */
<<if $preDateRel > $NPCArray.find(npc => npc.dna == $currDNA).relationship>>
<<set $dateLimit -= 5>>
<</if>>
/* limit progress to 8 points per date */
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel > 8>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship = $preDateRel + 8>>
<</if>>
<</widget>>
<<widget "getDateImage">>
<<switch $dateHUB>>
<<case 'BarDate'>>
<<set _tmpImg = 'Media/Social/DateNight/Bar/'>>
<<if $player.presenting === 'Female'>>
<<set $dateType = 'F'>>
<<else>>
<<set $dateType = 'M'>>
<</if>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<set $dateType += 'F'>>
<<else>>
<<set $dateType += 'M'>>
<</if>>
<<if $dateType === 'FM'>><<set $dateType = 'MF'>><</if>>
<<set _tmpImg += $dateType + '/' + $romLevel + '/'>>
<<switch $dateType>>
<<case 'MF'>>
<<if $romLevel === 'Platonic'>>
<<set _tmpImg += random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,12) + '.webp'>>
<</if>>
<<case 'FF'>>
<<if $romLevel === 'Platonic'>>
<<set _tmpImg += random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,4) + '.webp'>>
<</if>>
<<case 'MM'>>
<<if $romLevel === 'Platonic'>>
<<set _tmpImg += random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,2) + '.webp'>>
<</if>>
<</switch>>
<<case "ParkDate">>
<<set _tmpImg = 'Media/Social/DateNight/Park/'>>
<<if $player.presenting === 'Female'>>
<<set $dateType = 'F'>>
<<else>>
<<set $dateType = 'M'>>
<</if>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<set $dateType += 'F'>>
<<else>>
<<set $dateType += 'M'>>
<</if>>
<<if $dateType === 'FM'>><<set $dateType = 'MF'>><</if>>
<<set _tmpImg += $dateType + '/' + $dateAct + '/'>>
<<switch $dateType>>
<<case 'MF'>>
<<switch $dateAct>>
<<case "Walk">>
<<if $subAct != 'HoldingHands'>>
<<set _tmpImg += $romLevel + '/'>>
<<if $romLevel === 'Platonic'>>
<<set _tmpImg += random(1,11) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,5) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += "Hands/" + random(1,9) + '.webp'>>
<</if>>
<<case "Sit">>
<<set _tmpImg += $romLevel + '/'>>
<<if $romLevel === 'Platonic'>>
<<set _tmpImg += random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,12) + '.webp'>>
<</if>>
<</switch>>
<<case 'FF'>>
<<switch $dateAct>>
<<case "Walk">>
<<if $subAct != 'HoldingHands'>>
<<set _tmpImg += $romLevel + '/'>>
<<if $romLevel === 'Platonic'>>
<<set _tmpImg += random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,9) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += "Hands/" + random(1,7) + '.webp'>>
<</if>>
<<case "Sit">>
<<set _tmpImg += $romLevel + '/'>>
<<if $romLevel === 'Platonic'>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,12) + '.webp'>>
<</if>>
<</switch>>
<<case 'MM'>>
<<switch $dateAct>>
<<case "Walk">>
<<if $subAct != 'HoldingHands'>>
<<set _tmpImg += $romLevel + '/'>>
<<if $romLevel === 'Platonic'>>
<<set _tmpImg += random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,3) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += "Hands/" + random(1,5) + '.webp'>>
<</if>>
<<case "Sit">>
<<set _tmpImg += $romLevel + '/'>>
<<if $romLevel === 'Platonic'>>
<<set _tmpImg += random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += random(1,1) + '.webp'>>
<</if>>
<</switch>>
<</switch>>
<</switch>>
<img @src='_tmpImg' height='600rem'>
<</widget>>
<<widget "drinkActions">>
<div class="buttonContainer">
<<if !$barDrinks>>
<<button "Order a drink" "drinkMenu">>
<<set $foodPassage to "BarDate">>
<<addSecs 10>>
<</button>>
<<else>>
<<set _tmpPassage = passage()>>
<<drinkActs $barDrinks _tmpPassage>>
<</if>>
</div>
<</widget>>
<<widget "parkActions">>
<div class="buttonContainer">
<<if $dateAct != 'Walk'>>
<<button "Walk around" $dateHUB>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel < 3>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += 1>>
<</if>>
<<if $subAct == 'HoldingHands'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel < 6>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += 1>>
<</if>>
<</if>>
<<set $dateAct = 'Walk'>>
<<addMins 10>>
<</button>>
<<else>>
<<button "Keep walking" $dateHUB>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel < 3>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += 1>>
<</if>>
<<if $subAct == 'HoldingHands'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel < 6>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += 1>>
<</if>>
<</if>>
<<addMins 10>>
<</button>>
<<if $subAct != 'HoldingHands'>>
<<if ($NPCArray.find(npc => npc.dna == $currDNA).relationship > 20 and $dateType == 'FF') or (['Bisexual',$NPCArray.find(npc => npc.dna == $currDNA).body.gender].includes($player.prefs.gender) and $player.exhib > 20) or $NPCArray.find(npc => npc.dna == $currDNA).relationship >= 24>>
<<button "Hold hands" $dateHUB>>
<<set $subAct = 'HoldingHands'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship - $preDateRel < 6>>
<<set $NPCArray.find(npc => npc.dna == $currDNA).relationship += 1>>
<</if>>
<<addMins 10>>
<</button>>
<</if>>
<<else>>
<<button "Stop holding hands" $dateHUB>>
<<unset $subAct>>
<<addMins 10>>
<</button>>
<</if>>
<</if>>
<<if $dateAct != 'Sit'>>
<<button "Find a place to sit down" $dateHUB>>
<<unset $subAct>>
<<set $dateAct = 'Sit'>>
<<addMins 2>>
<</button>>
<</if>>
</div>
<</widget>>
<<widget "dateChatActions">>
<<set $returnLoc = passage()>>
<<getChatActions>>
<</widget>>
<<widget 'endDateActions'>>
<div class="buttonContainer">
<<button "End the date">>
<<replace "#repCont">>
You come up with some sort of excuse for why you have to leave:
<br><br>
random excuse generator here
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "EndDate">>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</widget>>
<<widget "dateCheck">>
<<set _tmpLoc = _args[0]>>
<<set _tmpDates = $player.phone.calendar.items.filter(date => date.julianDate === $currJulianDate and (date.startTime.getTime() - $gameDate.getTime())/1000 <= 900 and date.location === _tmpLoc)>>
<<if _tmpDates.length > 0>>
<br>
<<for _i to 0; _i < _tmpDates.length; _i++>>
<<switch _tmpDates[_i].type>>
<<case "GirlsNight">>
<<set _tmpPassage = 'GirlsNightIntro'>>
<<case "ParkPhotoQuest">>
<<set _tmpPassage = 'JulesTalk'>>
<<default>>
<<set $dateLoc = passage()>>
<<set _tmpPassage =_tmpDates[_i].passage>>
<</switch>>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == _tmpDates[_i].with)>>
<<addNPC _tmpNPC _tmpLoc _tmpPassage>>
<</for>>
<</if>>
<</widget>>
<<widget "dateTimeCheck">>
/* checks time since start of date and if long enough, ends the date */
<<if !$dateOver>>
<<if (($gameDate.getTime() - $dateStart)/1000)/60 > $dateLimit>>
<<set $dateOver = true>>
<<goto 'DateOver'>>
<</if>>
<</if>>
<</widget>>
<<widget "datePowerDown">>
<<unset $onDate>>
<<unset $dateStart>>
<<purgeNPC $currDNA>>
<<unset $currDNA>>
<<unset $thisDate>>
<<unset $dateHUB>>
<<unset $dateType>>
<<unset $romLevel>>
<<unset $barDrinks>>
<<unset $dateLimit>>
<<unset $dateOver>>
<<unset $dateEnd>>
<</widget>>
<<widget "cleanDate">>
<<set _targDate = $player.phone.calendar.items[_args[0]]>>
<<if _targDate.repeat>>
<<set _newDate = clone(_targDate)>>
<<set _tmpStartTime = _targDate.startTime>>
<<run _tmpStartTime.setUTCHours(_tmpStartTime.getUTCHours() + (_targDate.repeat * 24))>>
<<set _tmpEndTime = _newDate.endTime>>
<<run _tmpEndTime.setUTCHours(_tmpEndTime.getUTCHours() + (_targDate.repeat * 24))>>
<<set
_newDate.julianDate += _targDate.repeat;
_newDate.startTime = _tmpStartTime;
_newDate.endTime = _tmpEndTime;
>>
<<run $player.phone.calendar.addDate(_newDate)>>
<</if>>
<<purgeDate _args[0]>>
<</widget>>
<<widget "purgeDate">>
<<set _tmpDate = $player.phone.calendar.items[_args[0]]>>
<<set $player.phone.calendar.items = $player.phone.calendar.items.filter(date => date !== _tmpDate)>>
<</widget>>
<<widget "dateReturn">>
<<switch $thisDate.location>>
<<case "KellysPub">>
<<set _tmpLoc = 'Downtown'>>
<<case "CityPark">>
<<set _tmpLoc = 'MarketSquare'>>
<</switch>>
<<datePowerDown>>
<<goto _tmpLoc>>
<</widget>><<calcFlirtSuccess "FlirtSuccess">>
<center>
<<getFlirtClips>>
<br>
<<print $flirtText>>
</center>
<hr>
<div id="actionsContainer">
<<getFlirtActions>>
</div>/* redirect for plot-specific scenes */
<<if $sceneSpecialLoc>>
<<set _tmpLoc = $sceneSpecialLoc>>
<<unset $sceneSpecialLoc>>
<<goto _tmpLoc>>
<</if>>
<div style="width: 100%; display: table;">
<div style="position: relative; top: 0; left: 0; width: 25%">
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div style="width: 75%; display: table-cell; vertical-align: middle; padding: 100px">
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> leans in close enough for <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> warm breath to wash against your cheek and whispers "What do you say we get out of here? Find some place quiet where we can....get to know each other."
<br><br>
<<if ($player.slutLevel > 1 and ([$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender))) or $player.slutLevel >= 5 or $player.drunk > 50>>
<<set _willing = true>>
<<if $player.drunk > 50>>
You're so drunk you almost take other people's suggestions as your own thoughts. And right now at this moment, this idea sounds like as good an idea as any others.
<<elseif $player.drunk > 25>>
<br><br>The drunk part of you instantly agrees, but that part is always up for some fun regardless of the situation. The sober part of you wants you to think through what you're agreeing to. Which voice is the one to follow?
<<elseif ($player.traits.includes(33))>>
<br><br><b><font color=red>You don't know why you do this sometimes but you have to fight the impulse to just go with it. Consequences be damned.</font></b>
<<else>>
<br><br>You bite your lip, thinking about what you and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> can do together.
<</if>>
<<else>>
<br><br><div class="badText">No way! You couldn't possibly do that!</div>
<br>
<<if [$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender)>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> might be cute, but you're not some common bar trash that will go home with the first rando who smiles at you!
<<else>>
You shudder internally as your mind is filled with images of you and <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> together...in <b>that</b> way.
<</if>>
<br><br>
This has gone way too far and it's way past time you bail and get out of here.
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if _willing>>
<<button "Agree" "SneakScene">>
<<addMins 2>>
<</button>>
<</if>>
<<if !(_willing) or ($player.arousal < 60 and $player.drunk <= 50)>>
<<button "Decline" $returnLoc>>
<<sexPowerDown>>
<<addSecs 5>>
<</button>>
<</if>>
</div>
</div><div style="width: 100%; display: table;">
<div style="position: relative; top: 0; left: 0; width: 25%">
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div style="width: 75%; display: table-cell; vertical-align: middle; padding: 100px">
<<switch random(1,3)>>
<<case 1>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
Her eyes scan you up and down and then her lips twist into a subtle grimace, the kind that says "Nope." Without a word, she pivots on her heel and strides away, her expression returning to neutral as she disappears into the crowd.
<<else>>
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>>'s expression tells you all you need to know before <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> turns and walks away.
<</if>>
<<case 2>>
As <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> eyes take in your appearance <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face subtly shifts. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips press together, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> nose wrinkles just slightly, and <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> brows draw inward in a fleeting grimace. It's not overtly cruel, but unmistakably clear.
<br><br>
Without a word, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> turns and walks away with brisk, deliberate steps.
<<case 3>>
For a moment, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> says nothing. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> gaze flicks down, then back up to take you in. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef)>> lips tighten, <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> jaw shifts, and a subtle grimace flickers across <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> face—brief but unmistakable.
<br><br>
Without a word, <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>> turns and walks away with brisk, deliberate steps.
<</switch>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Leave" $returnLoc>>
<<purgeNPC $currDNA>>
<<unset $currDNA>>
<<unset $sceneSpecialLoc>>
<<addSecs 20>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/Social/Flirting/SneakAway/'>>
<<if $player.presenting === "Female">>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg += 'MF/' + random(1,8) + '.webp'>>
<<else>>
<<set _tmpImg += 'FF/' + random(1,5) + '.webp'>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg += 'MM/' + random(1,4) + '.webp'>>
<<else>>
<<set _tmpImg += 'MF/' + random(1,8) + '.webp'>>
<</if>>
<</if>>
<center>
<img @src="_tmpImg"/>
<br><br>
<<switch random(1,3)>>
<<case 1>>
As soon as you are in a more private setting <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> pulls you close against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> body and runs <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> hands over you.
<<case 2>>
You feel the heat between you rising, not just from proximity but from the way your breath catches when their fingers graze your wrist. Your chest tightens, your lips part slightly, and the space between you feels charged—like gravity itself is bending to pull you closer
<<case 3>>
Your pulse drums in your ears as you lean in, unsure if it's <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> breath or yours that's trembling with need. Your stomach flips, your skin tingles, and every inch of you feels hyper-aware
<</switch>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" "sexSceneEngine">>
<<if ['KellysPub','KellyStool'].includes($returnLoc)>>
<<set $sceneLoc = 'Bathroom'>>
<<set $bathLoc = 'KellysPub'>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female' and $player.presenting === 'Female'>>
<<set $bathImg = 'Media/Locations/Downtown/KellysPub/menBath1.webp'>>
<<else>>
<<set $bathImg = 'Media/Locations/Downtown/KellysPub/womBath1.webp'>>
<</if>>
<<set $sinkImg = 'Media/Locations/Downtown/Fairhaven/sharedSink1.webp'>>
<<set $bathDesc = 'Pretty much the exact kind of bathroom you\'d expect in a pub like this one.'>>
<<else>>
<<set $sceneLoc = $returnLoc>>
<</if>>
<<set $sceneAct = 'Foreplay'>>
<</button>>
</div>
</div><div style="width: 100%; display: table;">
<div style="position: relative; top: 0; left: 0; width: 25%">
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div style="width: 75%; display: table-cell; vertical-align: middle; padding: 100px">
<<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> smiles politely but distances <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>self from you.
<br>
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship > 5 or $onDate>>
"$player.firstName - you know I'm into <<if $player.presenting === 'Female'>>guys<<else>>women<</if>>, right? Stop being weird."
<<else>>
"Sorry, you're not really my type. Better luck next time, ok?"
<</if>>
</div>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if $NPCArray.find(npc => npc.dna == $currDNA).relationship > 5 or $onDate>>
<<button "Continue">>
<<addSecs 20>>
<<if $onDate>>
<<goto $dateHUB>>
<<else>>
<<goto "ChitChat">>
<</if>>
<</button>>
<<else>>
<<button "Leave" $returnLoc>>
<<purgeNPC $NPCArray.find(npc => npc.dna == $currDNA)>>
<<unset $currDNA>>
<<addSecs 20>>
<</button>>
<</if>>
</div>
</div><div class="profileContainer">
<div>
<img @src="$NPCArray.find(npc => npc.dna == $currDNA).image" height="450rem">
</div>
<div>
"I really do think you're great - really. But we make better friends, don't you agree?"
</div>
</div>
<center><div class="badText"><<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>>'s just not that into you.</div></center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<if !$dateEnd>>
<<button "Continue" $dateHUB>>
<<addSecs 50>>
<<goto $dateHUB>>
<</button>>
<<else>>
<<button "Continue">>
<<dateReturn>>
<</button>>
<</if>>
</div>
</div><<widget "getFlirtActions">>
<<timed 0s>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<if ($player.slutLevel > 0 and $player.expoLevel > 0 and [$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender)) or $player.slutLevel > 5>>
<<button "Touch <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>" "Flirting">>
<<set $flirtAct = 'Touch'>>
<<switch random(1,4)>>
<<case 1>>
<<set $flirtText = 'Your fingers brush against <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> forearm, grazing the fabric of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> shirt with a feather-light touch. A small smile playing at the corners of your mouth.'>>
<<case 2>>
<<set $flirtText = 'Your slender fingers trail lightly up <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> forearm, nails grazing <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> skin through the fabric of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> shirt'>>
<<case 3>>
<<set $flirtText = capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).secondRef) + ' arm feels warm and solid under your fingertips as you let your hand drift higher, grazing the sleeve of <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> shirt.'>>
<<case 4>>
<<set $flirtText = 'Your fingers skim along <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> thigh as your pretend to adjust yourself on the couch beside <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>>, brushing higher each time. '>>
<</switch>>
<<addSecs 5>>
<</button>>
<</if>>
<<button "Touch your lips" "Flirting">>
<<set $flirtAct = 'Lips'>>
<<switch random(1,4)>>
<<case 1>>
<<set $flirtText = 'You trace a finger along your <<descLips $player>> lower lip, biting down gently before releasing it slowly. Your tongue darts out to wet them, eyes locked onto your target. '>>
<<case 2>>
<<set $flirtText = 'You slowly drag your fingertip along the seam of your parted <<descLips $player>> lips, before your tongue peeks out to wet them, the pink tip grazing their <<descLips $player>> surface.'>>
<<case 3>>
<<set $flirtText = 'You cup your cheek and lean into your palm, tilting your chin up ever so slightly anddraw a line down the center of your lips with my pinky finger before pressing down and pulling it away slowly.'>>
<<case 4>>
<<set $flirtText = 'You slowly circle your lips with the pad of your thumb before dragging your lower lip down between your teeth. You bite it softly before letting it slip free.'>>
<</switch>>
<<addSecs 5>>
<</button>>
<<button "Laugh at <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> jokes" "Flirting">>
<<set $flirtAct = 'Laugh'>>
<<switch random(1,4)>>
<<case 1>>
<<set $flirtText = 'You toss your head back in laughter, your eyes sparkling with mirth.'>>
<<case 2>>
<<set $flirtText = 'A melodious laugh spills from her <<descLips $player>> lips as he cracks another joke'>>
<<case 3>>
<<set $flirtText = 'You laugh softly, notcing how as <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> gaze flickers to your lips'>>
<<case 4>>
<<set $flirtText = 'You laugh with a playful tilt of your head, biting your lip as if trying to suppress a grin'>>
<</switch>>
<<addSecs 5>>
<</button>>
<<if $player.body.hair.length > 30>>
<<button "Play with your hair" "Flirting">>
<<set $flirtAct = 'Hair'>>
<<set $flirtText = 'You run your hands through your hair and smile as <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> takes the chance to check out your body.'>>
<<addSecs 10>>
<</button>>
<</if>>
<<if $player.slutLevel > 0 and $player.expoLevel > 0>>
<<button "Show some skin" "Flirting">>
<<set $flirtAct = 'Skin'>>
<<set $flirtText = 'You shift your position in just the right way to let <<print $NPCArray.find(npc => npc.dna == $currDNA).firstName>> see a little extra skin.'>>
<<addSecs 15>>
<</button>>
<</if>>
</div>
<<if $onDate and ($NPCArray.find(npc => npc.dna == $currDNA).relationship >= 25 or $player.slutLevel > 2)>>
<div class="buttonContainer">
<<button "Go for a kiss">>
<<calcFlirtSuccess "DateMakeoutIntro">>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Stop flirting">>
<<if $player.traits.includes(28) and ($player.arousal > $player.$pherTrigger or random($player.arousal,100) > $player.$pherTrigger) and ['Bisexual',$player.presenting].includes($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender)>>
<<set $pherLevel = 2>>
<<goto "NPCPheremone">>
<<else>>
<<if $onDate>>
<<goto $dateHUB>>
<<else>>
<<goto "ChitChat">>
<</if>>
<</if>>
<</button>>
</div>
<</replace>>
<</timed>>
<</widget>>
<<widget "getFlirtClips">>
<<switch $flirtAct>>
<<case 'Touch'>>
<<set _tmpImg = "Media/Social/Flirting/Touch/">>
<<if $player.presenting === "Female">>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg += "FM/" + random(1,2) + '.webp'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<set _tmpImg += "FF/" + random(0,0) + '.webp'>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg += "MM/" + random(0,0) + '.webp'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<set _tmpImg += "MF/" + random(1,3)+ '.webp'>>
<</if>>
<</if>>
<<case 'Laugh'>>
<<set _tmpImg = "Media/Social/Flirting/Laugh/">>
<<if $player.presenting === "Female">>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg += "MF/" + random(1,9) + '.webp'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<set _tmpImg += "FF/" + random(1,4) + '.webp'>>
<</if>>
<<else>>
<<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>
<<set _tmpImg += "MM/" + random(1,5) + '.webp'>>
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Female'>>
<<set _tmpImg += "MF/" + random(1,9) + '.webp'>>
<</if>>
<</if>>
<<case 'Lips'>>
<<set _tmpImg = "Media/Social/Flirting/Lips/">>
<<if $player.presenting === "Female">>
<<set _tmpImg += "F/" + random(1,5) + '.webp'>>
<<else>>
<<set _tmpImg += "M/" + random(1,3) + '.webp'>>
<</if>>
<<case 'Skin'>>
<<set _tmpImg = "Media/Social/Flirting/Skin/">>
<<if $player.presenting === "Female">>
<<switch random(1,2)>>
<<case 1>>
<<set _tmpImg += "Upper/F/" + random(1,23) + '.webp'>>
<<case 2>>
<<set _tmpImg += "Lower/F/" + random(1,10) + '.webp'>>
<</switch>>
<<else>>
<<set _tmpImg += "Upper/M/" + random(1,3) + '.webp'>>
<</if>>
<</switch>>
[img[flirtImg| _tmpImg]]
<</widget>>
<<widget "calcFlirtSuccess">>
<<timed 0s>>
<<if $forceFlirt or $phereLevel>>
<<unset $forceFlirt>>
<<set _flirtSuccess = true>>
<<else>>
<<set _flirtSuccess = false>>
<</if>>
<<if ([$player.presenting,'Bisexual']).includes($NPCArray.find(npc => npc.dna == $currDNA).prefs.gender)>>
<<if calcAttraction($NPCArray.find(npc => npc.dna == $currDNA),$player)>>
<<goto _args[0]>>
<<else>>
<<if $onDate>>
<<goto "FriendZone">>
<<else>>
<<goto "FlirtFailure">>
<</if>>
<</if>>
<<else>>
/*player is wrong gender */
<<goto 'CrotchBlocked'>>
<</if>>
<</timed>>
<</widget>>
<<widget "flirtRx">>
<<if (!($player.traits.includes(8)) and !([$NPCArray.find(npc => npc.dna == $currDNA).body.gender,'Bisexual'].includes($player.prefs.gender)) and $player.slutLevel < 4) or $player.slutLevel < 1>>
/* something is wrong with flirting */
<<if $player.mentalFem < 35>>
You lick your lips and tell yourself it doesn't actually mean anything -- you're just trying to get some company for a little bit, no harm in that. And you'll definitely keep it from getting too far. But just for a few minutes, it'd be nice to relax and have a chat with a friendly face. And who knows? Maybe you'll actually make a friend in all of this.
<<if $player.drunk > 50>>
<br><br>You barely register these thoughts before they're swept away in a wave of booze. You blink and focus on the person in front of you, an action which looks alot like you just batted your <<descLashes $player>> eyelashes. Your mind doesn't seem to want to grasp what's happening and you end up letting <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>> lead the conversation as you struggle to follow along.
<<elseif $player.drunk > 20>>
<br><br>Somewhere in the back of your mind there's a small voice yelling at you to not do this. But your smaller body is more sensitive to alcohol than you're used to and you're already having a hard time remembering why this might be bad. All you know is that you'd like to have a chat with someone for a while, and you might as well play the part they expect for a few minutes. Right? Maybe you can even learn to get free drinks like you've seen other women do at bars.
<<elseif $player.drunk > 60>>
<br><br>You have butterflys in your stomach as you feel the body heat of another person near you. You have to fight the urge to bit your lip and squirm in your seat as you think of being touched and pleasured. You're in such a worked up state that thoughts of sex keep flashing through your mind, often with the people who are immediately around you. But this has nothing to do with wanting to talk with this guy -- how could it?
<</if>>
<<elseif $player.mentalFem < 40>>
It really wasn't that long ago that you'd have laughed if someone said you'd ever find yourself in the very situation you're in right now. A lot has changed since then though.
<<if $player.drunk > 0>>
<br><br>All the booze you've been drinking probably helps you adjust to your new situation. That may, or may not, be a good thing.
<</if>>
<<else>>
You mentally shrug your shoulders and decide to roll with things. You've learned not to judge a book by it's cover, and you can find beautiful and amazing experiences in the oddest locations.
Sure, if you could have your pick you might not choose the way things are playing out -- but that doesn't mean you want out of the game.
<</if>>
<<else>>
/* this is natural */
<<if $player.arousal > 60>>
Your stomach muscles clench in anticipation of you finally scratching that itch that's been building between your legs.<<if $player.presenting === 'Female'>>It's all you can do to not start rubbing your thighs together right then and there.<<else>> Your <<descDick $player>> cock swells and starts to throb in time to your accelerating heartbeat.<</if>>
<<elseif $player.arousal > 50>>
You smile, both in greeting and in excitement - you were starting to think you'd have to take care of your urges on your own. Looks like now that might not be a problem.
<<elseif $player.arousal > 30>>
Your <<descLips $player>> lips part slightly as you let your eyes travel along <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> body. Your skin starts to flush as naughty thoughts flash through your mind.
<<else>>
A little company is never a bad idea, and being a little friendly with a stranger never hurt anyone. You smile brightly and move a little closer to <<print $NPCArray.find(npc => npc.dna == $currDNA).thirdRef>>.
<</if>>
/* npc_apprnc[$NPCGenerated] > 32: hot -- > 20: OK -- else: ugly*/
<<if $NPCArray.find(npc => npc.dna == $currDNA).beautyScore > 7>>
<<set $player.arousal += 5>>
You suppress a small whimper as you take in <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> appearance. It's not often you see a $NPCArray.find(npc => npc.dna == $currDNA).genRef who is so good looking.
<<elseif $NPCArray.find(npc => npc.dna == $currDNA).beautyScore > 5>>
<<set $player.arousal += 1>>
You mentally shrug your shoulders as you consider <<print $NPCArray.find(npc => npc.dna == $currDNA).secondRef>> appearance. <<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == $currDNA).firstRef)>> won't be breaking any mirrors -- but <<print $NPCArray.find(npc => npc.dna == $currDNA).firstRef>>'s not exactly brag worthy.
<<else>>
You sigh and try to keep your inner cringe off your expression. Any port in the storm, as they say -- but you're really scrapping the bottom of the ugly barrel with this one. But as long as <<if $NPCArray.find(npc => npc.dna == $currDNA).body.gender === 'Male'>>he's got a nice hard cock<<else>>she has a pussy and a tongue<</if>> then your requirements are met.
<</if>>
<<if $player.drunk > 50>>
<br><br>
The booze in your bloodstream has you riding pretty high, you'd agree to pretty much anything if it was phrased the right way.
<<elseif $player.drunk > 20>>
<br><br>
It takes your brain a little extra time to catch up to what's happening, but you're at that right level of drunk that you feel pretty invincible.
<</if>>
<</if>>
<</widget>><<widget "genderType">>
<<switch _args[0]>>
<<case 'Male'>>
<<print 'man'>>
<<default>>
<<print 'woman'>>
<</switch>>
<</widget>>
<<widget "genNPCs">>
<<set _tmpCount = $NPCList.filter(obj => obj.location === _args[0]).length>>
<<switch _args[0]>>
<<case 'KellysPub'>>
<<if ($lastBarHour + 120*60) <= $gameDate.getTime()/1000>>
<<set $lastBarHour = $gameDate.getTime()/1000>>
<<for _i to random(2,5); _i > 0; _i-->>
<<set _tmpNPC = new Person(random(21,45),'Random')>>
<<set _tmpLimit = random(30,90)>>
<<if $gameDate.getHours() > 18>>
<<set _tmpNPC.personality = 3>>
<<if _tmpNPC.prefs.gender != 'Bisexual' and random(0,1) > 0>>
<<set _tmpNPC.prefs.gender = 'Bisexual'>>
<</if>>
<<set _tmpNPC.drunk = random(10,40) + $gameDate.getHours()>>
<</if>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</for>>
<</if>>
<<case 'KellyStool'>>
<<set _rando = random(1,2)>>
<<if _tmpCount + _rando <= 2>>
<<for _i to _rando; _i > 0; _i-->>
<<set _tmpNPC = new Person(random(21,45),'Random')>>
<<set _tmpLimit = random(2,5)>>
<<if $gameDate.getHours() > 18 or $gameDate.getHours() < 3>>
<<set _tmpNPC.personality = 3>>
<<if _tmpNPC.prefs.gender != 'Bisexual' and random(0,1) > 0>>
<<set _tmpNPC.prefs.gender = 'Bisexual'>>
<</if>>
<<set _tmpNPC.drunk = random(10,60) + $gameDate.getHours()>>
<</if>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</for>>
<</if>>
<<case 'DirtyDicks','DirtyDicksPool'>>
<<set _rando = random(2,5)>>
<<if _args[0] == 'DirtyDicksPool' and $poolWaiting>>
<<set _rando = random(0,1)>>
<</if>>
<<if _tmpCount + _rando <= 5>>
<<for _i to _rando; _i > 0; _i-->>
<<if random(0,100) > 30>>
<<set _tmpNPC = new Person(random(21,60),'Male')>>
<<else>>
<<set _tmpNPC = new Person(random(21,60),'Female')>>
<</if>>
<<set _tmpLimit = random(2,5)>>
<<if random(0,100) > 40>>
<<set _tmpNPC.personality = 3>>
<<if _tmpNPC.prefs.gender != 'Bisexual' and random(0,1) > 0>>
<<set _tmpNPC.prefs.gender = 'Bisexual'>>
<</if>>
<</if>>
<<set _tmpNPC.drunk = random(10,60) + $gameDate.getHours()>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</for>>
<</if>>
<<case 'BBBar'>>
<<set _rando = random(1,2)>>
<<if _tmpCount + _rando <= 2>>
<<for _i to _rando; _i > 0; _i-->>
<<set _tmpNPC = new Person(random(21,45),'Male')>>
<<set _tmpLimit = random(2,5)>>
<<if $gameDate.getHours() > 18 or $gameDate.getHours() < 3>>
<<set _tmpNPC.personality = 3>>
<<if _tmpNPC.prefs.gender != 'Bisexual' and random(0,1) > 0>>
<<set _tmpNPC.prefs.gender = 'Bisexual'>>
<</if>>
<<set _tmpNPC.drunk = random(10,60) + $gameDate.getHours()>>
<</if>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</for>>
<</if>>
<<case "BBStripperMingle">>
<<set _rando = random(1,5)>>
<<if _tmpCount + _rando <= 5>>
<<for _i to _rando; _i > 0; _i-->>
<<set _tmpNPC = new Person(random(21,45),'Male')>>
<<set _tmpLimit = random(2,5)>>
<<set _tmpNPC.prefs.gender = 'Female'>>
<<if $gameDate.getHours() > 18 or $gameDate.getHours() < 3>>
<<set _tmpNPC.personality = 3>>
<<if random(0,1) > 0>>
<<set _tmpNPC.prefs.gender = 'Bisexual'>>
<</if>>
<<set _tmpNPC.drunk = random(10,60) + $gameDate.getHours()>>
<</if>>
<<set _tmpNPC.arousal = random(50,60)>>
<<addNPC _tmpNPC _args[0] 'BBClientChat' _tmpLimit>>
<</for>>
<</if>>
<<case 'MSquare'>>
<<if $gameDate.getHours() >= 6 and $gameDate.getHours() <= 21>>
<<if $dayStage === 2>>
<<set $NPCList = $NPCList.filter(obj => obj.location != _args[0])>>
<<set _rando = random(5,7)>>
<<elseif $dayStage === 3>>
<<set _rando = random(2,3)>>
<<else>>
<<set _rando = random(0,1)>>
<</if>>
<<for _i to _rando; _i > 0; _i-->>
<<set _tmpNPC = new Person(random(21,45),'Random')>>
<<set _tmpLimit = random(2,3)>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</for>>
<</if>>
<<case 'DGLocker'>>
<<set _rando = random(1,2)>>
<<if _tmpCount + _rando <= 2>>
<<for _i to _rando; _i > 0; _i-->>
<<if $DGLockerType === 'Fem'>>
<<set _tmpNPC = new Person(random(21,45),'Female')>>
<<else>>
<<set _tmpNPC = new Person(random(21,45),'Male')>>
<</if>>
<<set _tmpLimit = random(2,3)>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</for>>
<</if>>
<<case "BeachGym">>
<<set _rando = random(0,4)>>
<<if _rando > 0>>
<<for _i to _rando; _i > 0; _i-->>
<<set _tmpNPC = new Person(random(18,65),'Random','athletic')>>
<<set _tmpLimit = random(5,10)>>
<<if _tmpCount + _i <= 4>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</if>>
<</for>>
<</if>>
<<case "WetTShirtContest">>
<<set _rando = random(3,5)>>
<<for _i to _rando; _i > 0; _i-->>
<<set _tmpNPC = new Person(random(18,65),'Random')>>
<<set _tmpLimit = random(5,10)>>
<<if _tmpCount + _i <= _rando>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</if>>
<</for>>
<<case 'ComCenter' 'FairhavenHall' 'FairhavenCommons'>>
<<set _rando = random(1,2)>>
<<if _tmpCount + _rando <= 2>>
<<for _i to _rando; _i > 0; _i-->>
<<if ['FairhavenHall','FairhavenCommons','DGFemLocker'].includes(_args[0])>>
<<set _tmpNPC = new Person(random(18,28),'Female')>>
<<else>>
<<set _tmpNPC = new Person(random(21,45),'Random')>>
<</if>>
<<set _tmpLimit = random(2,3)>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</for>>
<</if>>
<<default>>
<<if ($dayStage > 4 or $dayStage < 2)>>
<<set $NPCList = $NPCList.filter(obj => obj.location != _args[0])>>
<<set _tmpCount = 0>>
<<if _args[1] is undefined>>
<<set _maxRando = 2>>
<<set _rando = random(0,_maxRando)>>
<<else>>
<<set _rando = random(_args[1],_args[2])>>
<</if>>
<<else>>
<<if _args[1] is undefined>>
<<set _maxRando = Math.max(0,5-_tmpCount)>>
<<set _rando = random(0,_maxRando)>>
<<else>>
<<set _maxRando = _args[2]>>
<<set _rando = random(_args[1],_maxRando)>>
<</if>>
<</if>>
<<if _rando > 0>>
<<for _i to _rando; _i > 0; _i-->>
<<set _tmpNPC = new Person(random(18,65),'Random')>>
<<set _tmpLimit = random(5,10)>>
<<if _tmpCount + _i <= _maxRando>>
<<addNPC _tmpNPC _args[0] 'GenericIntro' _tmpLimit>>
<</if>>
<</for>>
<</if>>
<</switch>>
<</widget>>
<<widget "addNPC">>
/* add to dynamic NPC array */
<<if !$NPCArray.some(obj => obj.dna === _args[0].dna)>>
<<set $NPCArray.push(_args[0])>>
<</if>>
<<if !$NPCList.some(obj => obj.dna === _args[0].dna)>>
<<set _tmpTime = clone($gameDate)>>
<<if _args[3] is undefined>>
<<set _tmpLimit = 240>>
<<else>>
<<set _tmpLimit = _args[3]>>
<</if>>
<<if !isNaN(_tmpTime.getTime())>>
<<run _tmpTime.setUTCMinutes(_tmpTime.getUTCMinutes() + _tmpLimit)>>
<<else>>
<<set _tmpTime = new Date(Date.now() + _tmpLimit * 60000)>>
<</if>>
<<set $NPCList.push({dna: _args[0].dna, location: _args[1], initScene: _args[2], timeLimit:_tmpTime})>>
<<else>>
<<set _tmpNPC = $NPCList.find(obj => obj.dna === _args[0].dna)>>
<<set _tmpNPC.location = _args[1]>>
<<if _args[2]>>
<<set _tmpNPC.initScene = _args[2]>>
<</if>>
<</if>>
<</widget>>
<<widget "purgeNPC">>
<<set $NPCList = $NPCList.filter(item => item.dna != _args[0])>>
<<if _args[0] != $currDNA and !$player.phone.contacts.includes(_args[0])>>
<<if $staticNPCList.some(npc => npc.dna == _args[0]) and $NPCArray.some(npc => npc.dna == _args[0])>>
<<set
_tmpStatic = $staticNPCList.find(npc => npc.dna == _args[0]);
_tmpArray = $NPCArray.find(npc => npc.dna == _args[0])
>>
<<set _tmpStatic = _tmpArray>>
<</if>>
<<set $NPCArray = $NPCArray.filter(item => item.dna != _args[0])>>
<</if>>
<</widget>>
<<widget "purgeNPCLocation">>
/* purge each NPC froom the array */
<<set $purgeList = $NPCList.filter(item => item.location != _args[0])>>
<<for _killIdx = 0; _killIdx < $purgeList.length;_killIdx++>>
<<purgeNPC $purgeList[_killIdx].dna>>
<</for>>
<</widget>>
<<widget "getCurrNPCs">>
<hr>
<div class="idContainer">
<<for _i = 0; _i < $NPCList.length;_i++>>
<<capture _i>>
<<if $NPCList[_i].location.includes(_args[0])>>
<<if tags().includes("NoNPCLink") or $NPCList[_i].initScene === ''>>
<<getIDCard $NPCList[_i].dna>>
<<else>>
<<set _tmpDates = $player.phone.calendar.items.filter(date => date.julianDate === $currJulianDate and (date.startTime.getTime() - $gameDate.getTime())/1000 <= 900)>>
<<if _tmpDates.some(date => date.with == $NPCList[_i].dna)>>
<div style="border: 2px blue solid;">
<<link "<<getIDCard $NPCList[_i].dna>>">>
<<set $currDNA = $NPCList[_i].dna>>
<<set $returnLoc = passage()>>
<<goto $NPCList[_i].initScene>>
<</link>>
</div>
<<else>>
<<link "<<getIDCard $NPCList[_i].dna>>">>
<<set $currDNA = $NPCList[_i].dna>>
<<set $returnLoc = passage()>>
<<goto $NPCList[_i].initScene>>
<</link>>
<</if>>
<</if>>
<</if>>
<</capture>>
<</for>>
</div>
<</widget>>
<<widget "shortIntro">>
You see a <<descHeight _args[0]>> <<print _args[0].race>> [[_args[0].genRef|GenericIntro][$currDNA = _args[0],$returnLoc = passage()]] with <<print _args[0].hair.color>> hair and <<descBody _args[0].body.bodyType>> body.
<</widget>>
<<widget "getIDCard">>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == _args[0])>>
<div class="card">
<img @src="_tmpNPC.image" height="450rem">
<b>_tmpNPC.firstName</b>
</div>
<</widget>>
<<widget "longIntro">>
<<print capitalizeFirstLetter($NPCArray.find(npc => npc.dna == _args[0]).firstRef)>> looks to be around <<print $NPCArray.find(npc => npc.dna == _args[0]).age>> years old.
<br><br>
<<descLooks _args[0]>>
<br><br>
<<switch $NPCArray.find(npc => npc.dna == _args[0]).finance>>
<<case 1>>
<<if $NPCArray.find(npc => npc.dna == _args[0]).body.gender === 'Male'>>
His tailored suit, polished shoes, and luxury watch suggest he's no stranger to spening money when it's needed.
<<else>>
Her silk blouse, designer handbag, and subtle diamond studs whisper wealth without ever needing to shout it.
<</if>>
<<case 2>>
<<if $NPCArray.find(npc => npc.dna == _args[0]).body.gender === 'Male'>>
With worn-out sneakers, a faded hoodie, and a backpack patched at the seams, he looks like someone who knows how to stretch every dollar.
<<else>>
<<set $rando = random(1,2)>>
<<switch $rando>>
<<case 1>>
She is wearing a thrifted coat with frayed cuffs and carries a reusable grocery bag.
<<case 2>>
Her outfit is a masterclass in illusion—fast fashion styled like haute couture, suggesting her budget might not include much for new clothes.
<</switch>>
<</if>>
<<default>>
<<if $NPCArray.find(npc => npc.dna == _args[0]).body.gender === 'Male'>>
With worn-out sneakers, a faded hoodie, and a backpack patched at the seams, he looks like someone who knows how to stretch every dollar.
<<else>>
<<set $rando = random(1,2)>>
<<switch $rando>>
<<case 1>>
Her thin coat with frayed cuffs covers a random mix-match of styles for her outit - clearly she shops at thrift stores and second-hand bins.
<<case 2>>
Her shoes are scuffed and uneven, her hands calloused, and her clothes are threadbare and worn - all signs of someone on the edge of poverty.
<</switch>>
<</if>>
<</switch>>
<</widget>>
<<widget "randomFlirt">>
<<set _flirtArr = $NPCList.filter(obj => obj.location === _args[0])>>
<<for _i to 0; _i < _flirtArr.length;_i++>>
<<capture _i>>
<<if $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).personality > 1 and ($NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).prefs.gender === $player.presenting or $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).prefs.gender === 'Bisexual') and ($NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).dom > 50 or $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).drunk > 40) and ($player.beautyScore >= 3 or $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).drunk > random(30,55))>>
<br>
<<set $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).prefs = {
gender: $player.presenting,
beauty: $player.beautyScore,
tits: $player.body.tits,
bodyType: $player.body.bodyType,
style: 'Unknown',
hairLength: $player.body.hair.length,
hairColor: $player.body.hair.color
}
>>
<b>The [[$NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).genRef|AlphaIntro][$currDNA = _flirtArr[_i].dna,$returnLoc = _args[0]]] on your <<if random(0,1) > 0>>right<<else>>left<</if>> turns to you with a
<<if $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).drunk <= 50>>
slightly drunk
<<elseif $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).drunk <= 65>>
fairly tossed
<<elseif $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).drunk <= 70>>
n extremely drunk
<<elseif $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).drunk > 70>>
blind drunk
<</if>>
smile and a predatory gleam in <<print $NPCArray.find(npc => npc.dna == _flirtArr[_i].dna).secondRef>> eye.</b>
<<set _i = _flirtArr.length>>
<br>
<</if>>
<</capture>>
<</for>>
<</widget>>
<<widget "alterNPCScene">>
<<set _npcArr = $NPCList.filter(obj => obj.location === _args[0])>>
<<for _npc range _npcArr>>
<<set _npc.initScene = _args[1]>>
<</for>>
<</widget>><<if ! tags().includes("NoCaption")>>
<<getWeatherImage>>
<br>
<<if $currTemp < 50>>
<<set _tmpColor = 'blue'>>
<<elseif $currTemp < 80>>
<<set _tmpColor = 'green'>>
<<elseif $currTemp < 90>>
<<set _tmpColor = 'orange'>>
<<else>>
<<set _tmpColor = 'red'>>
<</if>>
<font @color=_tmpColor><<print $currTemp>>°F</font>
<br>
Date: <<date>>
<br>
Time: <<time12hr>>
<br>
You have $<<print $player.money>> in your pocket
<br>
<<if $player.presenting === "Male">>
<<set $iconImg = 'Media/System/MenuIcons/m_icon.webp'>>
<<else>>
<<set $iconImg = 'Media/System/MenuIcons/'>>
<<if $player.isBimbo === 1>>
<<set $iconImg += 'b_icon.webp'>>
<<else>>
<<set $iconImg += 'f_icon.webp'>>
<</if>>
<</if>>
<table style="width: 100%;"><tr style="background-color: lightblue;">
<<if tags().includes("noMenu")>>
<td>
[img[silhouette|$iconImg]]
</td>
<td>
<<if $newQuests.length != 0 or $player.phone.inbox.some(text => text.new === true)>>
[img[phone|"Media/System/MenuIcons/phone_iconM.webp"]]
<<else>>
[img[phone|"Media/System/MenuIcons/phone_icon.webp"]]
<</if>>
</td>
<td>
<<if $player.outfit.purse > 0>>
[img[phone|"Media/System/MenuIcons/purse_icon.webp"]]
<</if>>
</td>
<<elseif !(tags().includes("menuPage"))>>
<td>
[img[silhouette|$iconImg][profilePage][$menuPassage = passage()]]
</td>
<td>
<<if $newQuests.length != 0 or $player.phone.inbox.some(text => text.new === true)>>
[img[phone|"Media/System/MenuIcons/phone_iconM.webp"][PhoneMenu][$menuPassage = passage()]]
<<else>>
[img[phone|"Media/System/MenuIcons/phone_icon.webp"][PhoneMenu][$menuPassage = passage()]]
<</if>>
</td>
<td>
<<if $player.outfit.purse > 0>>
[img[phone|"Media/System/MenuIcons/purse_icon.webp"][PurseMenu][$menuPassage = passage()]]
<</if>>
</td>
<<else>>
<td>
[img[silhouette|$iconImg][profilePage]]
</td>
<td>
<<if $newQuests.length != 0 or $player.phone.inbox.some(text => text.new === true)>>
[img[phone|"Media/System/MenuIcons/phone_iconM.webp"][PhoneMenu]]
<<else>>
[img[phone|"Media/System/MenuIcons/phone_icon.webp"][PhoneMenu]]
<</if>>
</td>
<td>
<<if $player.outfit.purse > 0>>
[img[phone|"Media/System/MenuIcons/purse_icon.webp"][PurseMenu]]
<</if>>
</td>
<</if>>
</tr>
</table>
<br>
<<if $player.isSmoker>>
<<if $player.nicLevel < $player.minNicotine*.75>>
<div class="badText">You really need a cigarette.</div>
<<elseif $player.nicLevel < $player.minNicotine*.8>>
<b>You have an itch to smoke</b>
<<elseif $player.nicLevel < $player.minNicotine*.9>>
<div class="goodText">You should probably have a smoke soon</div>
<</if>>
<</if>>
<<set _tmpDates = $player.phone.calendar.items.filter(date => date.julianDate === $currJulianDate)>>
<<if _tmpDates.length > 0>>
<br>
<<if _tmpDates.some(date => (date.startTime.getTime() - $gameDate.getTime())/1000 <= 3600)>>
<div class="badText">You have a date today</div>
<<else>>
<div class="goodText">You have a date today</div>
<</if>>
<</if>>
<<calcSweat>>
<<calcFitSoil>>
<<breathCheck>>
<<periodCheck>>
<<calcDrunk>>
<<if $DispNotes.length > 0>>
<<for _j = 0; _j < $DispNotes.length;_j++>>
$DispNotes[_j]
<<run $DispNotes = $DispNotes.filter(obj => obj != $DispNotes[_j])>>
<<set _j -= 1>>
<</for>>
<</if>>
<<if $home.name === 'Studio'>>
<<set _calcDays = (new Date($gameDate.getYear(),$gameDate.getMonth(),-1, 15,0)).getDate()>>
<<if (_calcDays - $gameDate.getDate()) < 0>>
<div class="badText">Your rent is late</div>
<<elseif (_calcDays - $gameDate.getDate()) === 0>>
<div class="badText">Your rent is due today.</div>
<<elseif (_calcDays - $gameDate.getDate()) <= 3>>
<div class="goodText">Your rent will be due soon</div>
<</if>>
<</if>>
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'SkinTrial')>>
<<if $player.outfit.fit != 0 and _tmpCheck and (_tmpCheck.level >= 4 or $player.traits.includes(2))>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.stats.topSkin < 3 or $clothingObj.stats.btmSkin < 3>>
<div class="badText">Your clothes are incredibly itchy and uncomfortable</div>
<br>
<</if>>
<</if>>
<</if>>
<<if $player.traits.includes(6) and $player.outfit.shoes != 0>>
<<genShoes $player.outfit.shoes>>
<<if $clothingObj.style != 'Heel' or $clothingObj.stats.heels < 1>>
<div class="badText">Your footwear is making your feet and legs ache painfully</div>
<br>
<</if>>
<</if>>
<div id="hornyBar"></div>
<div id="healthBar"></div>
<div id="staminaBar"></div>
<div id="moodBar"></div>
<div id="hungerBar"></div>
<div id="thirstBar"></div>
<div id="sleepBar"></div>
<<run shrinkBar($player.arousal, 100, "hornyBar","Arousal")>>
<<run growBar($player.health, 1000, "healthBar","Health")>>
<<run growBar($player.stamina, $player.stamMax, "staminaBar","Stamina")>>
<<run growBar($player.mood, $player.moodMax, "moodBar","Mood")>>
<<run growBar($player.hunger, 100, "hungerBar","Hunger")>>
<<run growBar($player.thirst, $player.thirstMax, "thirstBar","Thirst")>>
<<run growBar($player.energy, 100, "sleepBar","Sleep")>>
<br>
<<cumCheck>>
<<link "Dynamic Commands">>
<<script>>
Dialog.setup("Enter Sugarcube macro Command");
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">>$userInput<<script>>Dialog.close()<</script>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<</link>>
<br>
[[Emergency Escape|Downtown]]
<</if>><<switch $changeRx>>
<<case 'Tits'>>
<<set $breastGrowthDay = clone($currJulianDate)>>
<<if $titGrowth > 0>>
<<set $changeDir = 1>>
<<set $player.body.tits = ($player.body.tits +1).clamp(0,13)>>
/*
!check for potions
if arrpos('$potionPart','Tits_<<$presentsAs>>') ! -1:
pIdx = arrpos('$potionPart','Tits_<<$presentsAs>>')
potionSize[pIdx] += 5
killvar 'pIdx'
end
*/
<<else>>
<<set $changeDir = 0>>
<<set $player.body.tits = ($player.body.tits -1).clamp(0,13)>>
/*
if arrpos('$potionPart','Tits_<<$presentsAs>>') ! -1:
pIdx = arrpos('$potionPart','Tits_<<$presentsAs>>')
potionSize[pIdx] -= 5
killvar 'pIdx'
end
!check for body forms
idx = 0
:formLoop
if idx < arrsize('wornForms'):
gs 'GenerateBodyForms',wornForms[idx]
baseBreastSize = form_size
if $form_type = 'BreastForm':
killvar 'owned_forms',arrpos('owned_forms',wornForms[idx])
killvar 'wornForms',idx
end
idx += 1
jump 'formLoop'
pinochTits = 1
end
*/
<</if>>
<<unset $titGrowth>>
<<unset $changeRx>>
<center>
<<set _tmpImg = 'Media/Transformation/Tits/Wake/' + random(1,6) + '.webp'>>
<img @src="_tmpImg" height="450rem" >
<br>
<<if $player.body.tits === 0>>
<<switch random(1,1)>>
<<case 1>>
You stretch your body and almost instantly notice a change - there's no weight or shifting in your chest...You're completely flat!
<</switch>>
<<elseif $player.body.tits ===1 and $changeDir === 1>>
<<switch random(1,3)>>
<<case 1>>
For the first few seconds after you wake up you feet great, but it doesn't take long for reality to crash down in and ruin your happy thoughts. Somehow during the night you grew tits! You toss the covers back and grab on to them, as if they'd just pop right off like a pair of fake suction-cup tits. But nope, you can feel that tugging on your chest and it's clear these babies aren't going anywhere.
<<case 2>>
You blink. Once. Twice. Trying to place what's different. The sheets feel different against your chest—soft, unfamiliar pressure. You sit up fast, heart thudding, and your hands fly instinctively to the source. Skin. Curve. Warmth. Your breath catches. Your breasts have grown in size!
<<case 3>>
Your hand brushes your chest and lands on a new softness that shouldn't be there. You freeze. No breath. No blink. Just the sound of your own pulse roaring in your ears as your brain scrambles with the new reality that you're breasts have increased in size!
<</switch>>
<<else>>
As you wake up and start to stretch you feel the weight on your chest shift in an unfamiliar way, and you instantly <<if $player.body.tits < 2>>feel your heart beat quicken<<else>> know why<</if>>. Your tits have <<if $changeDir === 1>>grown<<else>>shrunk<</if>> while you slept! You reach your hands up and cup them, lifting them and testing their new weight in your hands.
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Go to the nearest Mirror" "TitsRx">>
<<set $runRoutine = true>>
<<addSecs 15>>
<</button>>
</td>
</tr>
</table>
<<case 'Ass'>>
<<if $assGrowth > 0>>
<<set $changeDir = 1>>
<<set _tmpDir = 'more'>>
<<set $player.body.ass = ($player.body.ass +1).clamp(8,$sizeLimits.ass)>>
/*
!check for potions
if arrpos('$potionPart','Tits_<<$presentsAs>>') ! -1:
pIdx = arrpos('$potionPart','Tits_<<$presentsAs>>')
potionSize[pIdx] += 5
killvar 'pIdx'
end
*/
<<else>>
<<set $changeDir = 0>>
<<set _tmpDir = 'less'>>
<<set $player.body.ass = ($player.body.tits -1).clamp(8,$sizeLimits.ass)>>
/*
if arrpos('$potionPart','Tits_<<$presentsAs>>') ! -1:
pIdx = arrpos('$potionPart','Tits_<<$presentsAs>>')
potionSize[pIdx] -= 5
killvar 'pIdx'
end
!check for body forms
idx = 0
:formLoop
if idx < arrsize('wornForms'):
gs 'GenerateBodyForms',wornForms[idx]
baseBreastSize = form_size
if $form_type = 'BreastForm':
killvar 'owned_forms',arrpos('owned_forms',wornForms[idx])
killvar 'wornForms',idx
end
idx += 1
jump 'formLoop'
pinochTits = 1
end
*/
<</if>>
<<unset $assGrowth>>
<<unset $changeRx>>
<<set _tmpImg = 'Media/Transformation/Ass/Wake/'>>
<<if $player.presenting === 'Female'>>
<<if $player.outfit.panties > 0>>
<<set _tmpImg += 'F/Clothed/' + random(1,3) + '.webp'>>
<<else>>
<<if $player.body.cock > 0>>
<<set _tmpImg += 'F/Nude/2.webp'>>
<<else>>
<<set _tmpImg += 'F/Nude/1.webp'>>
<</if>>
<</if>>
<<else>>
<<set _tmpImg += 'M/Clothed/' + random(1,1) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height='450rem'>
<br><br>
When you wake up you instantly realize something is wrong and your hands fly down to your ass.
<br>
<div class="badText"><b>Your ass feels _tmpDir pronounced -- your body has definitely changed while you slept!</b></div>
</center>
<hr>
<table>
<tr>
<td>
<<button "Go to the nearest Mirror" "AssRx">>
<<addSecs 15>>
<<set $runRoutine = true>>
<</button>>
</td>
</tr>
</table>
<<case 'Hips'>>
<<if $hipGrowth > 0>>
<<set $changeDir = 1>>
<<set _tmpDir = 'more'>>
<<set $player.body.hips = ($player.body.hips +1).clamp(60,$sizeLimits.hips)>>
/*
!check for potions
if arrpos('$potionPart','Tits_<<$presentsAs>>') ! -1:
pIdx = arrpos('$potionPart','Tits_<<$presentsAs>>')
potionSize[pIdx] += 5
killvar 'pIdx'
end
*/
<<else>>
<<set $changeDir = 0>>
<<set _tmpDir = 'less'>>
<<set $player.body.ass = ($player.body.hips - 1 ).clamp(60,$sizeLimits.ass)>>
<</if>>
<<unset $hipGrowth>>
<<unset $changeRx>>
<<set _tmpImg = 'Media/Transformation/Hips/Wake/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/Clothed/' + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/Clothed/' + random(1,1) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height='450rem'>
<br><br>
When you wake up you instantly realize something is wrong and your hands fly down to your <<descHips $player>> hips.
<br>
<div class="badText"><b>Your hips feel _tmpDir pronounced -- your body has definitely changed while you slept!</b></div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Go to the nearest Mirror" "HipsRx">>
<<set $runRoutine = true>>
<<addSecs 15>>
<</button>>
</div>
</div>
<<case 'Lips'>>
<<if $lipGrowth > 0>>
<<set $changeDir = 1>>
<<set _tmpDir = 'puffier'>>
<<set $player.body.lips += 1>>
/*
!check for potions
if arrpos('$potionPart','Tits_<<$presentsAs>>') ! -1:
pIdx = arrpos('$potionPart','Tits_<<$presentsAs>>')
potionSize[pIdx] += 5
killvar 'pIdx'
end
*/
<<else>>
<<set $changeDir = 0>>
<<set _tmpDir = 'smaller'>>
<<set $player.body.lips -= 1>>
<</if>>
<<unset $lipGrowth>>
<<unset $lipRx>>
<<unset $changeRx>>
<<set _tmpImg = 'Media/Transformation/Lips/Wake/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,6) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height='450rem'>
<br><br>
<div class="badText">Your lips feel noticeably _tmpDir than they were yesterday! You can't recall any specific thing that might have caused this, you'll have to be more careful going forward.</div>
<span id="repCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 15>>
<<checkRoutine "Morning">>
<</button>>
</div>
</div>
<<case 'Groin'>>
<<if $player.body.gender === 'Female'>>
/* new pussy */
<<set _tmpImg = 'Media/Transformation/Pussy/Wake/'>>
<<if $player.isNude>>
<<set _tmpImg += random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += 'Panties/' + random(1,5) + '.webp'>>
<</if>>
<<else>>
/* new cock */
<<set _tmpImg = 'Media/Transformation/Cock/Wake/'>>
<<if $player.body.gender === 'Trans'>>
<<set _tmpImg += 'T/' + random(1,1) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<</if>>
<center>
<img @src="_tmpImg" height='450rem'>
<br><br>
<span id="repCont">
<<if $prefDir === 1>>
<<if $player.body.gender === 'Female'>>
/* yay */
<<switch random(1,3)>>
<<case 1>>
<div class="goodText">Your eyes fly open, filled with excitement and anticipation. Throwing back the covers, you reach down and find a smooth expanse where your cock once was. Joy surges through you as you marvel at your new female anatomy, a dream finally realized.</div>
<<case 2>>
<div class="goodText">Waking with a start, you immediately notice something different about your body. Eagerly, you spread your legs apart, revealing your beautiful new vulva. A thrill runs through you as you gently explore this new terrain, feeling a sense of belonging and rightness.</div>
<<case 3>>
<div class="goodText">Dazed but elated, you sit up in bed, an exciting feeling prompting you to look below the waist. With held breath you look down between your legs and are greeted by the sight of your beautiful new pussy, complete with delicate folds and a sensitive clitoris. Overwhelmed with happiness, you trace the contours of your new genitals, savoring the fulfillment of your long-held desire.</div>
<</switch>>
<<else>>
/* boo */
<div class="badText">You have a cock!</div>
<</if>>
<<else>>
<<if $player.body.gender === 'Female'>>
/* yay */
<<switch random(1,3)>>
<<case 1>>
<div class="badText">Your eyes snap open and you instantly know what's happened. You throw back the covers and reach down, only to find a smooth expanse where your cock once was. You gasp, struggling to comprehend the reality of your new female anatomy.</div>
<<case 2>>
<div class="badText">Confusion and alarm flood your mind as you wake to discover that something is drastically different about your body. Panicked, you pull down your underwear, revealing the smooth expanse of your new mons pubis where your male genitalia used to be!</div>
<<case 3>>
<div class="badText">Dazed and bewildered, you sit up in bed, an unsettling feeling prompting you to investigate below the waist. Looking down to investigate the strange absence you're greeted by the sight of a pussy, complete with labia and a clitoris. Shock renders you momentarily speechless as you grapple with the implications of this sudden transformation.</div>
<</switch>>
<<else>>
/* boo */
<div class="goodText">You have a cock!</div>
<</if>>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 15>>
<<checkRoutine "Morning">>
<</button>>
</div>
</div>
<<case "Nanobotics">>
<<set $player.questLog.addQuest('NanoRx','You\'re having some kind of reaction those nanobots. You should check in at AMI')>>
<<if $player.questTracker.find(obj => obj.idx == 'Nanobotics').level === 1>>
<<set _tmpImg = 'Media/Shared/Bed/Horny/' + ($player.presenting === "Female"?'F/' + random(1,1):'M/' + random(1,1)) + '.webp'>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
You let out a soft moan as the intensity of your aroual hits you - you're hornier than you've ever been before in your life!
<div class="badText">
Something tells you that your current level of arousal isn't normal. That nano injection seems to have caused a side effect! Better report this to the lab guys!
<br><br>
But first maybe take care of this need...
</div>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<addSecs 15>>
<<checkRoutine "Morning">>
<</button>>
</div>
</div>
<<elseif $player.questTracker.find(obj => obj.idx == 'Nanobotics').level === 3>>
<<addTrait 7>>
<<if $player.body.tits < 5>>
<<set $player.body.tits = 5>>
<</if>>
<<set
$titGrowth = 1;
$changeRx = 'Tits';
$player.questTracker.find(obj => obj.idx == 'Nanobotics').level === 4;
>>
<<goto "OverNightReaction">>
<</if>>
<</switch>><<set _tmpVid = 'Media/Transformation/Tits/Rx/'>>
<<if ($prefDir === 1 and $changeDir === 1) or ($prefDir === -1 and $changeDir === 0)>>
<<set _tmpVal= 'Good/'>>
<<set _tmpRx = 'Happy'>>
<<if $player.body.tits > 0>>
<<set _tmpText = 'You giggle happily as you cup and massage your new <<descTits $player>> tits, checking out their'>>
<<if $changeDir === 1>>
<<set _tmpText += ' enlarged'>>
<<else>>
<<set _tmpText += ' reduced'>>
<</if>>
<<set _tmpText += ' size and testing their weight.'>>
<<else>>
<<set _tmpText = 'You place your palms against your flat chest and breath a sigh of relief.'>>
<</if>>
<<elseif ($prefDir === -1 and $changeDir === 1) or ($prefDir === 1 and $changeDir === 0)>>
<<set _tmpVal = 'Bad/'>>
<<set _tmpRx = 'bad'>>
<<if $player.body.tits > 0>>
<<set _tmpText = 'Your heart sinks as you take in your reflection. One hand slowly moves up to cup one of your new '>>
<<if $changeDir === 1>>
<<set _tmpText += 'larger '>>
<<else>>
<<set _tmpText += 'smaller '>>
<</if>>
<<set _tmpText += 'breasts. This is definitely going to take some effort to get used to. Your only hope is to try and stop, if not reverse, this trend.'>>
<<else>>
<<set _tmpText = 'You place your palms against your flat chest and have a bittersweet feeling of loss, of somehow being lesser than you were. But it\'s fleeting and vanishes in moments.'>>
<</if>>
<<elseif $prefDir == 0>>
<<set _tmpVal = 'Meh/'>>
<<set _tmpRx = 'meh'>>
<<if $player.body.tits > 0>>
<<set _tmpText = 'You let out a soft sigh as you check our your new '>>
<<if $changeDir === 1>>
<<set _tmpText += 'larger '>>
<<else>>
<<set _tmpText += 'smaller '>>
<</if>>
<<set _tmpText += 'breasts. Things could be worse, over all. So this isn\'t too bad.'>>
<<else>>
<<set _tmpText = 'You place your palms against your flat chest and have a bittersweet feeling of loss, of somehow being lesser than you were. But it\'s fleeting and vanishes in moments.'>>
<</if>>
<</if>>
<<if $player.body.tits === 0>>
<<set _tmpText += '<br><br>Your chest is as flat as any man\'s!'>>
<<elseif $player.body.tits <= 2>>
<<set _tmpVid += 'Small/' + _tmpVal>>
<<set _tmpRx += 'SmallTits'>>
<<if $changeDir === 1>>
<<set _tmpText += '<br><br>They\'re bigger now but'>>
<<else>>
<<set _tmpText += '<br><br>They\'re so small now,'>>
<</if>>
<<set _tmpText += ' people probably won\'t even see them through your clothes.'>>
<<elseif $player.body.tits <= 4>>
<<set _tmpVid += 'Medium/' + _tmpVal>>
<<set _tmpRx += 'MidTits'>>
<<if $changeDir === 1>>
<<set _tmpText += '<br><br>They\'re a nice healthy size now'>>
<<else>>
<<set _tmpText += '<br><br>They\'re more manageable now, but'>>
<</if>>
<<set _tmpText += ' no one will mistake these puppies for anything other than breasts.'>>
<<elseif $player.body.tits <= 6>>
<<set _tmpText = '<br><br>They\'re '>>
<<set _tmpVid += 'Big/' + _tmpVal>>
<<set _tmpRx += 'BigTits'>>
<<if $changeDir === 1>>
<<set _tmpText += 'now '>>
<<else>>
<<set _tmpText += 'still '>>
<</if>>
<<set _tmpText += 'larger than most women\'s and you adjust the different weight against your back.'>>
<<else>>
<<set _tmpVid += 'Huge/' + _tmpVal>>
<<set _tmpRx += 'HugeTits'>>
<<set _tmpText = ' Your tits are simply huge, there\'s nothing you can do to hide these suckers -- you\'re going to be the center of attention no matter what you do.'>>
<</if>>
<<switch _tmpRx>>
<<case 'badNoTits'>>
<<set _tmpVid += random(0,0) + '.mp4'>>
<<case 'badSmallTits'>>
<<set _tmpVid += random(1,12) + '.mp4'>>
<<case 'badMidTits'>>
<<set _tmpVid += random(1,11) + '.mp4'>>
<<case 'badBigTits'>>
<<set _tmpVid += random(1,11) + '.mp4'>>
<<case 'badHugeTits'>>
<<set _tmpVid += random(1,4) + '.mp4'>>
<<case 'mehNoTits'>>
<<set _tmpVid += random(0,0) + '.mp4'>>
<<case 'mehSmallTits'>>
<<set _tmpVid += random(1,9) + '.mp4'>>
<<case 'mehMidTits'>>
<<set _tmpVid += random(1,20) + '.mp4'>>
<<case 'mehBigTits'>>
<<set _tmpVid += random(1,13) + '.mp4'>>
<<case 'mehHugeTits'>>
<<set _tmpVid += random(1,2) + '.mp4'>>
<<case 'happyNoTits'>>
<<set _tmpVid += random(0,0) + '.mp4'>>
<<case 'happySmallTits'>>
<<set _tmpVid += random(1,9) + '.mp4'>>
<<case 'happyMidTits'>>
<<set _tmpVid += random(1,17) + '.mp4'>>
<<case 'happyBigTits'>>
<<set _tmpVid += random(1,14) + '.mp4'>>
<<case 'happyHugeTits'>>
<<set _tmpVid += random(1,3) + '.mp4'>>
<</switch>>
<center>
<video @src="_tmpVid" width="640" height="600rem" autoplay loop></video>
<br><br>
<<print _tmpText>>
<br>
<span id="repCont">
<<if $player.questTracker.some(obj => obj.idx == 'Nanobotics') and $player.questTracker.find(obj => obj.idx == 'Nanobotics').level === 4>>
<<set $player.questTracker.find(obj => obj.idx == 'Nanobotics').level === 5>>
Something about your new tits seems a little off -- like they're too perfect or artificial. Suddenly it snaps into place and you realize this has to be because of that damned medical trial! <<if $player.mentalFem > 55>>You have to admit though, they do look amazing.<<else>> Why did you ever agree to do that stupid study?<</if>>
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<unset $changeDir>>
<<addSecs 15>>
<<if $runRoutine>>
<<unset $runRoutine>>
<<checkRoutine "Morning">>
<<else>>
<<goto $bedLoc>>
<</if>>
<</button>>
</div>
</div><<if $changeDir === 1>>
<<set $player.body.ass += 1>>
/*
if arrsize('wornForms')> 0: gs 'Wardrobe','PurgeForm','AssForm'
:assLoop
if mc_ass > 13:
baseButtSize -= 1
gs 'body'
jump 'assLoop'
end
*/
<<else>>
<<set $player.body.ass -= 1>>
<</if>>
<<set _tmpVid = 'Media/Transformation/Ass/Rx/'>>
<<if ($prefDir === 1 and $changeDir === 1) or ($prefDir === -1 and $changeDir === 0)>>
<<set _tmpVid += 'Good/' + random(1,5) + '.mp4'>>
<<set _tmpText = 'You smile to yourself as you check out your new'>>
<<if $changeDir === 1>>
<<set _tmpText += ' enlarged '>>
<<else>>
<<set _tmpText += ' reduced '>>
<</if>>
<<set _tmpText += 'ass. This is definitely the direction you want to be going!'>>
<<elseif ($prefDir === -1 and $changeDir === 1) or ($prefDir === 1 and $changeDir === 0)>>
<<set _tmpVid += 'Bad/' + random(1,7) + '.mp4'>>
<<set _tmpText = 'You stare in disbelief at your'>>
<<if $changeDir === 1>>
<<set _tmpText += ' enlarged '>>
<<else>>
<<set _tmpText += ' reduced '>>
<</if>>
<<set _tmpText += 'ass. This is not an improvement!'>>
<<else>>
<<set _tmpVid += 'Meh/' + random(1,6) + '.mp4'>>
<<set _tmpText = 'You stare in resignation at your'>>
<<if $changeDir === 1>>
<<set _tmpText += ' enlarged '>>
<<else>>
<<set _tmpText += ' reduced '>>
<</if>>
<<set _tmpText += 'ass. It would be nice to stay the same for a while!'>>
<</if>>
<center>
<video @src="_tmpVid" width="640" height="480" autoplay loop></video>
<br><br>
<<print _tmpText>>
<br>
<span id="repCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<if $runRoutine>>
<<unset $runRoutine>>
<<checkRoutine "Morning">>
<<else>>
<<goto $bedLoc>>
<</if>>
<</button>>
</div>
</div><<set _tmpVid = 'Media/Transformation/Hips/Rx/'>>
<<if ($prefDir === 1 and $changeDir === 1) or ($prefDir === -1 and $changeDir === 0)>>
<<set _tmpVid += 'Happy/' + random(1,15) + '.mp4'>>
<<set _tmpText = 'You happily slide your hands along the new sexier curves of your hips; these new features will definitely make you look way hotter!'>>
<<elseif ($prefDir === -1 and $changeDir === 1) or ($prefDir === 1 and $changeDir === 0)>>
<<set _tmpVid += 'Bad/' + random(1,7) + '.mp4'>>
<<set _tmpText = 'You stare in disbelief at your new more pronounced hips. You definitely have a more girlish figure to watch out for now....but that\'s not an improvement!'>>
<<else>>
<<set _tmpVid += 'Meh/' + random(1,7) + '.mp4'>>
<<set _tmpText = 'You cock your head to the side and take in the new dimensions of your hips -- all in all there could be worse changes to experience.'>>
<</if>>
<center>
<video @src="_tmpVid" width="640" height="480" autoplay loop></video>
<br><br>
<<print _tmpText>>
<br>
<span id="repCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<if $runRoutine>>
<<unset $runRoutine>>
<<checkRoutine "Morning">>
<<else>>
<<goto $bedLoc>>
<</if>>
<</button>>
</div>
</div><<set $player.body.height += $heightGrowth>>
<<set _tmpImg = 'Media/Transformation/Height/Rx/'>>
<<if $player.presenting === 'Female'>>
<<set _tmpImg += 'F/' + random(1,3) + '.webp'>>
<<else>>
<<set _tmpImg += 'M/' + random(1,1) + '.webp'>>
<</if>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
A quick check with a measuring tape confirms it -- you're now <<print $player.body.height>>cm tall!
<br>
<span id="repCont"><br></span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<unset $heightGrowth>>
<<unset $changeRx>>
<<if $runRoutine>>
<<unset $runRoutine>>
<<checkRoutine "Morning">>
<<else>>
<<goto $bedLoc>>
<</if>>
<</button>>
</div>
</div><<set $player.body.eyes += $eyeGrowth>>
<div style="width: 100%; display: flex; align-items: center;">
<div style="position: relative; top: 0; left: 0; width: 25%; vertical-align: middle;">
<center><<reflection>></center>
</div>
<div style="width: 75%; display: table-cell; vertical-align: middle; padding: 100px">
<<if $eyeGrowth === 1>>
Your eyes are definitely bigger!
<br><br>
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'EyeDrops')>>
<<if _tmpCheck and _tmpCheck.level === 3>>
<div class="badText">This must be related to those eye drops you took as part of that trial! You should talk to the doctors at AMI about this.</div>
<<else>>
<div class="badText">You have no idea what could have caused such a change. You'll just have to be more diligent in the future.</div>
<</if>>
<<else>>
It's subtle, but your eyes are definitely smaller than they used to be.
<br><br>
You turn your head this way and that, studying your reflection and trying to figure out what could have caused this change. You can't think of anything specific, so you'll just have to be more careful going forward.
<</if>>
</div>
</div>
<br>
<center><span id="repCont"><br></span></center>
<hr>
<div id="actionsContainer">
<div class='buttonContainer'>
<<button "Continue">>
<<unset $eyeGrowth>>
<<unset $changeRx>>
<<addSecs 15>>
<<if $runRoutine>>
<<unset $runRoutine>>
<<checkRoutine "Morning">>
<<else>>
<<goto $bedLoc>>
<</if>>
<</button>>
</div>
</div><<set _tmpImg = "Media/Misc/" + ($player.presenting === 'Female'?'fRash1.webp':'mRash1.webp')>>
<center>
<span id="repCont">
<img @src='_tmpImg' height="600rem">
<br><br>
<<if !$player.traits.includes(2)>>
Your clothes feel like sandpaper on your sensitive skin. Even just walking across the room is an uncomfortable experience. This must be from the skin cream trial! You should go to AMI and talk to the doctors about it.
<<else>>
You simply cannot stand to feel so itchy and irritable all day long. Even the original outfit you started with is too much to wear. On an irritation-filled impulse you grab a pair of scrissors and try to make alterations to the outfit so it's more comfortable.
<</if>>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<if !$player.traits.includes(2)>>
<<run $player.questLog.addQuest('SkinTrial','The skin trial you did has made your skin hyper-sesnsitive. You need to talk to the doctors at AMI about a reverse treatement.')>>
<<if $runRoutine>>
<<unset $runRoutine>>
<<checkRoutine "Morning">>
<<else>>
<<goto $bedLoc>>
<</if>>
<<else>>
<<replace "#repCont">>
<<set $alteredFit = true>>
<<genFit 1>>
<img @src="$clothingObj.image" height='500rem'>
<br><br>
You do what you can with the outfit but in your current state of distraction and general uncomfortability you can only manage so much.
<br><br>
Still - it should be more comfortable to wear now...
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Get Dressed">>
<<set $pickedFit = clone($player.outfit)>>
<<set $pickedFit.fit = 1>>
<<set $wardLoc = $home.startLoc>>
<<wearFit $pickedFit>>
<</button>>
</div>
<</replace>>
<</if>>
<</button>>
</div>
</div><<set _tmpVid = 'Media/Transformation/Bodies/'>>
<<if $player.body.gender === 'Male'>>
<<if $sourceForm.form.body.gender !== 'Male'>>
/*M2F */
<<set _tmpVid += 'M2F/' + random(1,9) + '.mp4'>>
<<else>>
/*M2M */
<</if>>
<<else>>
<<if $sourceForm.form.body.gender !== 'Male'>>
/*F2F */
<<else>>
/*F2M*/
<<set _tmpVid += 'F2M/' + random(1,9) + '.mp4'>>
<</if>>
<</if>>
<<set _skipKeys = ['orientation','virgin','outfit']>>
<<run bodyMorph($sourceForm.form,$player,_skipKeys)>>
<center>
<video @src="_tmpVid" autoplay loop></video>
<br><br>
<<if $NPCList.some(item => item.location === $morphLoc)>>
You feel a tingle spread across you skin and you just manage to stumble to an out-of-the-way location out of sight from the people nearby.
<br><br>
<</if>>
A wave of transformation washes over you as your physiology shifts like clay. Muscles melt and redistribute, bones realign, new forms emerge as you alter form one gender to another in an instant.
<br><br>
Did anyone see that?
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue" $morphLoc>>
<<addSecs 15>>
<</button>>
</div>
</div><<widget "calcGenderDysphoria">>
<<switch $player.presenting>>
<<case 'Female'>>
<<if $player.mentalFem <= 30>>
<<set $prefDir = -1>>
Your current body feels foreign and wrong, your inner identity still very much male.
<<elseif $player.mentalFem <= 50>>
<<set $prefDir = 0>>
While still self-identifying as masculine, your current body might have its moments.
<<elseif $player.mentalFem <= 70>>
<<set $prefDir = 1>>
You self-identify as feminine, and your body more or less matches how you feel.
<<elseif $player.mentalFem <= 90>>
<<set $prefDir = 1>>
Your feel comfortable in your body but you still have moments where you feel like you're wearing a costume.
<<elseif $player.mentalFem <= 100>>
<<set $prefDir = 1>>
You feel like a woman and you love looking like a woman.
<</if>>
<<case 'Male'>>
<<if $player.mentalFem <= 30>>
<<set $prefDir = -1>>
You self-identify as male and your current body fits you well.
<<elseif $player.mentalFem <= 50>>
<<set $prefDir = 0>>
You self-identify as masculine and are mostly ok with your current body.
<<elseif $player.mentalFem <= 70>>
<<set $prefDir = 1>>
You feel disconnected from your current body, but still resist being thought of as a woman.
<<elseif $player.mentalFem <= 90>>
<<set $prefDir = 1>>
You self-identify as feminine and your current body is uncomfortable and foreign.
<<elseif $player.mentalFem <= 100>>
<<set $prefDir = 1>>
You feel like a woman and you want to look like a woman, your current body is a source of discomfort and anxiety.
<</if>>
<</switch>>
<</widget>>
<<widget "calcGender">>
/*get current outfit gender stats */
<<set _femImage = 'Male'>>
<<if $player.body.tits < 4>>
<<if $player.body.womb>>
<<if $player.body.womb.isPreg>>
<<set _femImage = 'Female'>>
<</if>>
<</if>>
<<if $player.body.nails > 4 and ($player.body.hair.length > 160 or ($player.body.hair.length > 80 and $player.body.legHair <= 0))>>
<<set _femImage = 'Female'>>
<</if>>
<<if $player.body.ass >= 12 and ($player.body.hair.length > 80 or $player.body.makeup != 0)>>
<<set _femImage = 'Female'>>
<</if>>
<<if $player.body.ass >= 11 and $player.body.hips >= 63 and $player.body.tits > 0>>
<<set _femImage = 'Female'>>
<</if>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.stats.fem === 1 and ($player.body.tits > 0 and (($player.mentalFem > 35 and $player.body.hair.length > 30) or $player.body.makeup != 0))>>
<<set _femImage = 'Female'>>
<</if>>
<<if $clothingObj.stats.fem === 1 and ($player.body.tits > 0 or $player.body.hips >= 60 or $player.body.ass > 9) and $player.body.hair.length > 100 and $player.body.makeup != 0>>
<<set _femImage = 'Female'>>
<</if>>
<<if $player.body.tits > 1 and $player.body.hips >= 62>>
<<set _femImage = 'Female'>>
<</if>>
<<if $player.body.hair.length > 100 and $player.body.tits >= 2 and ($clothingObj.stats.manFit === 0 or $player.body.makeup != 0)>>
<<set _femImage = 'Female'>>
<</if>>
<<if $player.body.hair.length > 200 and $player.body.tits > 0 and $player.body.makeup != 0 and $clothingObj.stats.manFit === 0>>
<<set _femImage = 'Female'>>
<</if>>
<<if ($player.mentalFem > 40 or $player.body.hair.length > 30) and $player.body.ass > 8 and $player.body.tits > 1>>
<<set _femImage = 'Female'>>
<</if>>
<<else>>
<<set _femImage = 'Female'>>
<</if>>
<<if $player.body.gender === 'Female' and $player.isNude>>
<<set _femImage = 'Female'>>
<</if>>
<<if $forceFem is not undefined>>
<<set _femImage = 'Female'>>
<</if>>
<<set $player.presenting = _femImage>>
<<if _femImage === 'Female' and $player.body.cock > 0>>
<<set $player.body.gender = 'Trans'>>
<<elseif $player.body.cock === 0>>
<<set $player.body.gender = 'Female'>>
<<if !$player.body.womb>>
<<set $player.body.womb = {
isPreg: 0,
showPreg: 0,
pregChem: 0,
pregChemMax: 0,
cycle: 0, 0,
follicPhase: random(10,12),
lutealPhase: 0,
unfertEggs: 0,
fertEgg: {}
lastMensies: 0,
periodDuration: 0
}>>
<</if>>
<<else>>
<<set $player.body.gender = 'Male'>>
<</if>>
<<if $player.body.gender !== 'Female' and $player.body.womb>>
<<run delete $player.body.womb>>
<<run $player.questLog.removeQuest('PregQuest')>>
<<run $player.questTracker = $player.questTracker.filter(idx => idx !== 'PregTracker')>>
<</if>>
<<if $player.mentalFem > 70>>
<<if $player.body.tits > 0 and $player.body.gender === 'Female'>>
<<set $genderIDX = 'a woman,'>>
<<else>>
<<set $genderIDX = 'a gender non-conforming woman,'>>
<</if>>
<<elseif $player.mentalFem> 30>>
<<switch random(0,1)>>
<<case 0>>
<<set $genderIDX = 'a non-binary person,'>>
<<case 1>>
<<set $genderIDX = 'a genderqueer person,'>>
<</switch>>
<<else>>
<<if $player.body.tits === 0 and $player.body.gender === 'Male'>>
<<set $genderIDX = 'a man,'>>
<<else>>
<<set $genderIDX = 'a gender non-conforming man,'>>
<</if>>
<</if>>
<<if $player.presenting === 'Female'>>
<<set $genderIDX += ' who most people see as a woman,'>>
<<elseif $player.body.tits > 2>>
<<set $genderIDX += ' who most people see as a trans woman,'>>
<<elseif $player.strength > 25>>
<<set $genderIDX += ' who some still see as a man,'>>
<<else>>
<<set $genderIDX += ' who appears fairly androgynous,'>>
<</if>>
/*
if $orbNPC = \' and mc_isTrans = 0:
if bodyMorph = 1 and mc_isFem = 1: mc_femImage = 1
if bodyMorph = 1 and mc_isFem = 0: mc_femImage = 0
if $player.body.tits > 2 and bExposed = 1:
if pExposed = 0 or mc_isFem = 1: mc_femImage = 1
end
killvar 'mc_isBimbo'
if mc_femImage = 1: gs 'CalcSelfImage','BimboImage'
*/
<</widget>>
<<widget "calcAttributes">>
<<timed 0s>>
/* Mental Fem */
<<if $player.statBuffs.femBuff >= 10>>
<<set $tfPool += $player.statBuffs.femBuff - 10>>
<<if $player.body.tits === 0 and !$dreamsArr.includes('Titty TF')>>
<<set $player.statBuffs.tits = 10>>
<<set $player.statBuffs.femBuff = 0>>
<<calcAttributes>>
<<else>>
<<if $player.mentalFem < 100>>
<<set $player.mentalFem = ($player.mentalFem + 1).clamp(1,100)>>
<<else>>
/*apply leftover to some generic feminine pool? */
<</if>>
<<if $player.body.gender != 'Female' and !$fullTFBlock and $player.mentalFem > 50 and (!$lastDreamOffer or $lastDreamOffer < $currJulianDate)>>
<<set $dreamsArr.push('Gender TF')>>
<</if>>
<<set $player.statBuffs.femBuff = 0>>
<</if>>
<</if>>
/* Lips */
<<if $player.statBuffs.lips >= 10>>
<<set $tfPool += $player.statBuffs.lips - 10>>
<<if $player.body.tits === 0 and !$dreamsArr.includes('Titty TF')>>
<<set $player.statBuffs.tits += 10>>
<<calcAttributes>>
<<set $player.statBuffs.lips = 0>>
<<else>>
<<if $player.body.lips < 5 and $lipBlock != 3>>
<<set $dreamsArr.push('Lips TF')>>
<<else>>
<<set $tfPool += 10>>
<</if>>
<<set $player.statBuffs.lips = 0>>
<</if>>
<</if>>
/* Tits */
<<if $player.statBuffs.tits >= 10>>
<<set $tfPool += $player.statBuffs.tits - 10>>
<<if $player.body.tits < $sizeLimits.tits>>
<<set $dreamsArr.push('Titty TF')>>
<<else>>
<<set $tfPool += 10>>
<</if>>
<<set $player.statBuffs.tits = 0>>
<<elseif $player.statBuffs.tits <= -10>>
<<if $player.body.tits > 0>>
<<set $titGrowth = -1>>
<<else>>
<<set $player.statBuffs.mascBuff += 1>>
<</if>>
<<set $player.statBuffs.tits = 0>>
<</if>>
/* Hips */
<<if $player.statBuffs.hips >= 10>>
<<set $tfPool += $player.statBuffs.hips - 10>>
<<if $player.body.tits === 0 and !$dreamsArr.includes('Titty TF')>>
<<set $player.statBuffs.tits += 10>>
<<set $player.statBuffs.hips = 0>>
<<calcAttributes>>
<<else>>
<<if $player.body.hips < $sizeLimits.hips>>
<<set $dreamsArr.push('Hips TF')>>
<<else>>
<<set $tfPool += 10>>
<</if>>
<<set $player.statBuffs.hips = 0>>
<</if>>
<</if>>
/* Ass */
<<if $player.statBuffs.ass >= 10>>
<<set $tfPool += $player.statBuffs.ass - 10>>
<<if $player.body.tits === 0 and !$dreamsArr.includes('Titty TF')>>
<<set $player.statBuffs.tits += 10>>
<<set $player.statBuffs.ass = 0>>
<<calcAttributes>>
<<else>>
<<if $player.body.ass < $sizeLimits.ass>>
<<set $dreamsArr.push('Ass TF')>>
<<else>>
<<set $tfPool += 10>>
<</if>>
<<set $player.statBuffs.ass = 0>>
<</if>>
<<elseif $player.statBuffs.ass <= -10>>
<<set $tfPool += Math.abs($player.statBuffs.ass + 10)>>
<<if $player.body.ass > 8>>
<<set $player.body.ass -= 1>>
<<set $assGrowth = -1>>
<</if>>
<</if>>
/* height */
<<if $player.statBuffs.height >= 10>>
<<set $tfPool += $player.statBuffs.height - 10>>
<<if $player.body.tits === 0 and !$dreamsArr.includes('Titty TF')>>
<<set $player.statBuffs.tits += 10>>
<<set $player.statBuffs.height = 0>>
<<calcAttributes>>
<<else>>
<<if $player.body.height > $sizeLimits.height>>
<<set $dreamsArr.push('Height TF')>>
<<else>>
<<set $tfPool += 10>>
<</if>>
<<set $player.statBuffs.height = 0>>
<</if>>
<</if>>
/* inhibition */
<<if $player.statBuffs.inhib >= 10>>
<<if $player.inhib < 100>>
<<set $player.inhib += 1>>
<<set $player.exhib = 100 - $player.inhib>>
<</if>>
<<set $player.statBuffs.inhib = 0>>
<</if>>
/* Exhibition */
<<if $player.statBuffs.exhib >= 10>>
<<if $player.exhib < 100>>
<<set $player.exhib += 1>>
<<set $player.inhib = 100 - $player.exhib>>
<</if>>
<<set $player.statBuffs.exhib = 0>>
<</if>>
/* Dominance */
<<if $player.statBuffs.dom >= 10>>
<<if $player.dom < 100>>
<<set $player.dom += 1>>
<<set $player.sub = 100 - $player.dom>>
<</if>>
<<set $player.statBuffs.dom = 0>>
<</if>>
/* Sub */
<<if $player.statBuffs.sub >= 10>>
<<if $player.sub < 100>>
<<set $player.sub += 1>>
<<set $player.dom = 100 - $player.sub>>
<</if>>
<<set $player.statBuffs.sub = 0>>
<</if>>
/*eyes */
<<if $player.statBuffs.eyes >= 10>>
<<if $player.body.eyes < 3>>
<<set $eyeGrowth = 1>>
<</if>>
<<set $player.statBuffs.eyes = 0>>
<</if>>
/*skin trial*/
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'SkinTrial')>>
<<if _tmpCheck and !$dailyLimit.includes('skinTrialCheck')>>
<<run $dailyLimit.push('skinTrialCheck')>>
<<if _tmpCheck.level === 1>>
<<set _tmpCheck.level = 2>>
<<elseif _tmpCheck.level === 2>>
<<set _tmpCheck.level = 3>>
<<set $skinRx = true>>
<<elseif _tmpCheck.level === 3>>
<<set _tmpCheck.level = 4>>
<<set $skinRx = true>>
<<elseif _tmpCheck.level === 4>>
<<set _tmpCheck.level = 5>>
<<set $skinRx = true>>
<</if>>
<</if>>
/* Skin Buff */
<<if $player.statBuffs.skin >= 5>>
<<set $player.body.skin += 10>>
<<if $player.body.skin > 100>>
<<set $player.body.skin = 100>>
<</if>>
<<set $player.statBuffs.skin = 0>>
<</if>>
/* gender pref */
<<if $player.statBuffs.MPref >= 10>>
<<set $player.statBuffs.MPref = 0>>
<<set $player.statBuffs.FPref = 0>>
<<if !$dreamsArr.includes('MPrefDream')>>
<<run $dreamsArr.push('MPrefDream')>>
<</if>>
<<elseif $player.statBuffs.FPref >= 10>>
<<set $player.statBuffs.MPref = 0>>
<<set $player.statBuffs.FPref = 0>>
<<if !$dreamsArr.includes('FPrefDream')>>
<<run $dreamsArr.push('FPrefDream')>>
<</if>>
<</if>>
/*Generic Pool */
<<if $tfPool >= 10>>
<<if !$player.questTracker.some(item => item.idx === 'ArousalTF')>>
<<set $player.questTracker.push({idx: 'ArousalTF',level:1})>>
<</if>>
<<set $tfPool = 0>>
<<set _randoList = ['tits','ass','lips','skin','eyes','height']>>
<<set $player.statBuffs[_randoList[random(0,_randoList.length - 1)]] = 10>>
<<calcAttributes>>
<</if>>
<</timed>>
<</widget>>
<<widget "calcSkills">>
/* cleaning */
<<if $player.statBuffs.cleaning >= 10>>
<<if $player.skills.cleaning < 100>>
<<set $player.skills.cleaning += 1>>
<</if>>
<<set $player.statBuffs.cleaning = 0>>
<</if>>
/* charm */
<<if $player.statBuffs.charm >= 10>>
<<if $player.skills.charm < 100>>
<<set $player.skills.charm += 1>>
<</if>>
<<set $player.statBuffs.charm = 0>>
<</if>>
/* cooking */
<<if $player.statBuffs.cooking >= 10>>
<<if $player.skills.cooking < 100>>
<<set $player.skills.cooking += 1>>
<</if>>
<<set $player.statBuffs.cooking = 0>>
<</if>>
/* fitness */
<<if $player.statBuffs.fitness >= 10>>
<<if $player.skills.fitness < 10>>
<<set $player.skills.fitness += 1>>
<</if>>
<<set $player.statBuffs.fitness = 0>>
<</if>>
/* strength */
<<if $player.statBuffs.strength >= 10>>
<<if $player.strength < 15>>
<<set $player.strength += 10>>
<<else>>
<<set $player.strength += 5>>
<</if>>
<<set $player.statBuffs.strength = 0>>
/* tit reduction if strength boosting */
<<if !$strTicker>>
<<set $strTicker = 0>>
<</if>>
<<set $strTicker += 1>>
<<if $strTicker > 2>>
<<unset $strTicker>>
<<if $player.strength > 25 and $player.body.tits > 1 and !$titGrowth>>
<<set $titGrowth = -1>>
<</if>>
<</if>>
<</if>>
/* gamer */
<<if $player.statBuffs.gamer >= 10>>
<<if $player.skills.gamer < 100>>
<<set $player.skills.gamer += 1>>
<</if>>
<<set $player.statBuffs.gamer = 0>>
<</if>>
/* Heels */
<<if $player.statBuffs.heels >= 10>>
<<if $player.skills.heels < 10>>
<<set $player.skills.heels += 1>>
<</if>>
<<set $player.statBuffs.heels = 0>>
<</if>>
/* makeup */
<<if $player.statBuffs.makeup >= 10>>
<<if $player.skills.makeup < 10>>
<<set $player.skills.makeup += 1>>
<</if>>
<<set $player.statBuffs.makeup = 0>>
<</if>>
/* self defense */
<<if $player.statBuffs.fighting >= 10>>
<<if $player.skills.fighting < 100>>
<<set $player.skills.fighting += 1>>
<</if>>
<<set $player.statBuffs.fighting = 0>>
<</if>>
/* sewing */
<<if $player.statBuffs.sewing >= 10>>
<<if $player.skills.sewing < 10>>
<<set $player.skills.sewing += 1>>
<</if>>
<<set $player.statBuffs.sewing = 0>>
<</if>>
/* singing */
<<if $player.statBuffs.singing >= 10>>
<<if $player.skills.singing < 10>>
<<set $player.skills.singing += 1>>
<</if>>
<<set $player.statBuffs.singing = 0>>
<</if>>
/* dancing */
<<if $player.statBuffs.dancing >= 10>>
<<if $player.skills.dancing < 10>>
<<set $player.skills.dancing += 1>>
<</if>>
<<set $player.statBuffs.dancing = 0>>
<</if>>
/* maid */
<<if $player.statBuffs.maid >= 10>>
<<set $player.skills.maid += 1>>
<<if $player.skills.maid > 10>>
<<set $player.skills.maid == 10>>
<</if>>
<<set $player.statBuffs.maid = 0>>
<</if>>
<</widget>>
<<widget "checkChanges">>
<<if $player.questTracker.some(obj => obj.idx === 'Nanobotics')>>
<<if $player.questTracker.find(obj => obj.idx === 'Nanobotics').level == 1 and !($player.traits.includes(5))>>
<<set $player.arousal = 100>>
<<addTrait 5>>
<<set $changeRx = 'Nanobotics'>>
<<goto "OverNightReaction">>
<<elseif $player.questTracker.find(obj => obj.idx === 'Nanobotics').level === 3 and !($player.traits.includes(7))>>
<<addTrait 7>>
<<set $changeRx = 'Nanobotics'>>
<<goto "OverNightReaction">>
<</if>>
<<elseif $groinRx>>
<<unset $groinRx>>
<<set $changeRx = 'Groin'>>
<<goto "OverNightReaction">>
<<elseif $titGrowth>>
<<set $changeRx = 'Tits'>>
<<goto "OverNightReaction">>
<<elseif $assGrowth>>
<<set $changeRx = 'Ass'>>
<<goto "OverNightReaction">>
<<elseif $hipGrowth>>
<<set $changeRx = 'Hips'>>
<<goto "OverNightReaction">>
<<elseif $lipRx>>
<<set $changeRx = 'Lips'>>
<<goto "OverNightReaction">>
<<elseif $heightGrowth>>
<<set $changeRx = 'Height'>>
<<timed 0s>>
<<append "#repCont">>
<div class='badText'>It takes a few moments but eventually you notice something is off about your height!</div>
<</append>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "HeightRx">>
<<set $runRoutine = true>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</timed>>
<<elseif $eyeGrowth>>
<<set $changeRx = 'Eyes'>>
<<timed 0s>>
<<append "#repCont">>
<div class='badText'>The quality of the light around you seems different and then you realize your eyes feel different - <<if $eyeGrowth === 1>>larger<<else>>smaller<</if>> somehow.</div>
<</append>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue" "EyeRx">>
<<set $runRoutine = true>>
<<addSecs 15>>
<</button>>
</div>
<</replace>>
<</timed>>
<</if>>
<<if $skinRx>>
<<timed 0s>>
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'SkinTrial')>>
<<if _tmpCheck>>
<<if _tmpCheck.level === 3>>
<<append "#repCont">>
<<if $player.body.skin < 30>>
<<set $player.body.skin = 30>>
<<else>>
<<set $player.body.skin += 10>>
<</if>>
<div class='badText'>Your skin feels extra smooth, and maybe a bit more sensitive than it usually does.</div>
<</append>>
<<elseif _tmpCheck.level === 4>>
<<append "#repCont">>
<<if $player.body.skin < 60>>
<<set $player.body.skin = 60>>
<<else>>
<<set $player.body.skin += 15>>
<</if>>
<div class='badText'>Your skin feels incredibly sensitive, even the lightest touch seems to send a not-unpleasant electric shock through your body.</div>
<</append>>
<<elseif _tmpCheck.level === 5>>
<<append "#repCont">>
<<if $player.body.skin < 80>>
<<set $player.body.skin = 80>>
<<else>>
<<set $player.body.skin += 15>>
<</if>>
<<set _tmpCheck.level = 6>>
<div class='badText'>Your skin feels almost like a raw nerve and even your bedsheets seem to irritate you now.</div>
<<addTrait 2>>
<</append>>
<</if>>
<</if>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<unset $skinRx>>
<<unset $changeRx>>
<<addSecs 15>>
<<if _tmpCheck and _tmpCheck.level <= 3>>
<<checkRoutine "Morning">>
<<else>>
<<set $runRoutine = true>>
<<goto "SkinTrialRx">>
<</if>>
<</button>>
</div>
<</replace>>
<</timed>>
<</if>>
<</widget>>
<<widget 'morphMonitor'>>
<<if $morphStack>>
<<unset $sourceForm>>
<<for _i to 0;_i < $morphStack.length;_i++>>
<<set _tmpMorph = $morphStack[_i]>>
<<if _tmpMorph.ticker < $gameDate.getTime()/1000>>
<<set $sourceForm = _tmpMorph>>
<<set $morphStack = $morphStack.filter(morph => morph.source != _tmpMorph.source)>>
<<set _i = $morphStack.length>>
<</if>>
<</for>>
<<if $morphStack.length === 0>>
<<unset $morphStack>>
<</if>>
<<if $sourceForm>>
<<goto "RevertMorph">>
<</if>>
<</if>>
<</widget>>
<<widget "randomTF">>
/* applies one instant random TF to player mind/body
apply change and go instantly to reaction scene
*/
<</widget>><<addMins 3>>
<<set $channelList = ['Public Access']>>
<<set $tvImg = "Media/Shared/TV/Set/1.webp">>
<<set $retLoc = 'FairhavenCommons'>>
<center>
<img @src="$tvImg" height="600rem">
<br><br>
It takes a good 3 minutes and a noticeable buildup of static electricity for the TV to power on. The giant dial-spinner on the front of the TV spins freely - some inner mechanism having broke a long time ago.
<br><br>
The fact that it even turns on is probably a miracle - but you only have the one channel to watch.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<getTVChannels>>
</div>
<div class="buttonContainer">
<<button "Step back" $retLoc>>
<<unset $tvImg>>
<<unset $channelList>>
<<unset $currChannel>>
<<addSecs 15>>
<</button>>
</div>
</div><<set $player.mood += 10>>
<center>
<img @src="$tvImg" height="600rem">
<br><br>
You burn some time watching whatever $currChannel has to offer. You think to yourself that you could produce a better TV show than most of what's on here.
</center>
<hr>
<div id="actionsContainer">
<<getTVActions>>
</div><<widget "getTVActions">>
<div class="buttonContainer">
<<button "Watch for a while">>
<<set $tvMins = 0>>
<<script>>
Dialog.setup('Enter time in minutes');
Dialog.wiki('<<textbox "$userInput" "">><br><<button "Submit">><<if !(isNaN(Number($userInput))) and $userInput >= 0>><<set $tvMins = Number($userInput)>><</if>><<script>>Dialog.close()<</script>><<if ! isNaN(Number($tvMins)) and $tvMins > 0>><<addMins $tvMins>><<goto "WatchTV">><</if>><</button>>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</button>>
<<button "Zone out" "WatchTV">>
<<addMins 60>>
<</button>>
</div>
<<if $channelList.length > 1>>
<div class="buttonContainer">
<<button "Change the channel">>
<</button>>
</div>
<</if>>
<div class="buttonContainer">
<<button "Stop watching TV" $retLoc>>
<<unset $tvImg>>
<<unset $channelList>>
<<unset $currChannel>>
<<addSecs 15>>
<</button>>
</div>
<</widget>>
<<widget "getTVChannels">>
<<for _i to 0; _i < $channelList.length; _i++>>
<<button $channelList[_i]>>
<<set $currChannel = $channelList[_i]>>
<<replace "#actionsContainer">>
<<getTVActions>>
<</replace>>
<</button>>
<</for>>
<</widget>><<set _tmpImg = 'Media/Misc/Sickness/F/' + ($player.body.womb.showPreg?'Preg/' + random(1,3):random(1,2)) + '.webp'>>
<center>
<span id='sickRepCont'>
<img @src='_tmpImg' heigh='600rem'>
<br><br>
Your stomach suddenly does a particularly aggressive summersault and you clamp your hand over your mouth. You take a deep breath to calm your stomach but it heaves again, forcing you to retch.
<br><br>
<div class="badText">Oh no...</div>
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Run to the bathroom">>
<<addMins 10>>
<<set
$player.mood -= 10;
$player.body.breath = 0;
>>
<<refreshCaption>>
<<set _tmpImg = 'Media/Shared/Bathroom/MorningSick/' + (!$player.body.womb.showPreg?random(1,5):random(6,10)) + '.webp'>>
<<replace "#sickRepCont">>
<img @src="_tmpImg" height ="600rem">
<br><br>
<span id="repCont">
You barely make it before you throw up everything you have in you. Eventually your heaving stomach calms down and you slump against the wall, sweaty and shaking.
<br><br>
<<set _tmpObj = $player.questTracker.find(obj => obj.idx === "PregTracker")>>
<<if !_tmpObj or _tmpObj.level < 2>>
<div class="badText">Jeebus, what the hell was that about?</div>
<<elseif _tmpObj.level == 2>>
<div class="badText">You can't shake the feeling that you might be pregnant.</div>
<<else>>
<div class="badText">You can't wait till this part of your pregnancy is over.</div>
<</if>>
</span>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<if $player.phone.habitList.morning.length > 0>>
<<checkRoutine 'Morning'>>
<<else>>
<<addSecs 5>>
<<homeBathroom>>
<</if>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/ChildBirth/Labor/Init/' + random(1,1) + '.webp'>>
<center>
<span id="repCont">
<img @src='_tmpImg' height="600rem">
<br><br>
You fumble with your phone as a contraction hits, but you manage to call emergency services and an ambulance is on its way.
<br><br>
Within a few minutes you can hear the sirens blaring down the street toward you.
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Continue">>
<<set _tmpImg = 'Media/ChildBirth/Ambulance/' + random(1,1) + '.webp'>>
<<replace "#repCont">>
<img @src='_tmpImg' height="600rem">
<br><br>
The ride to the hospital is a blur of pain and cramps and before you know it they're wheeling you into the Labor and Delivery room.
<br><br>
<div class="badText">This is happening; NOW!</div>
<</replace>>
<<replace "#actionsContainer">>
<div class="buttonContainer">
<<button "Continue">>
<<addMins 30>>
<<goto "LaborRoom">>
<</button>>
</div>
<</replace>>
<</button>>
</div>
</div><<set _tmpImg = 'Media/ChildBirth/Labor/' + random(1,4) + '.webp'>>
<center>
<span id="repCont">
<img @src="_tmpImg" height="600rem">
<br><br>
Impossibly strong cramps and contractions wrack your body and someone is screaming "PUSH, $player.firstName. PUSH!" in your ear. But you feel a prick as someone else injects you with something.
<br><br>
Your contractions intensify rapidly but the pain and the urgency seem so distant now. Besides, it sounds like there are other people around who can handle whatever is happening. You're just going to check out for a minute...
</span>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContiner">
<<button "One Eternity Later">>
<<addMins 120>>
<<run $player.questLog.removeQuest('PregQuest')>>
<<set
$preBirthVag = $player.body.vag;
$player.body.vag = 6;
$player.body.womb.isPreg = false;
$player.body.womb.showPreg = false;
_tmpTime = clone($gameDate);
>>
<<if $player.questTracker.some(qst => qst.idx === 'Lactation')>>
<<set
$player.questTracker.find(qst => qst.idx === 'Lactation').active = true;
$player.questTracker.find(qst => qst.idx === 'Lactation').rate = 250;
$player.questTracker.find(qst => qst.idx === 'Lactation').vol = 0;
$player.questTracker.find(qst => qst.idx === 'Lactation').maxVol = rand(80,100)*$player.body.tits;
$player.questTracker.find(qst => qst.idx === 'Lactation').maxDate = $currJulianDate + random(17,20);
>>
<</if>>
<<run _tmpTime.setUTCHours(_tmpTime.getUTCHours() + random(6,10))*7*24>>
<<set $player.body.womb.recovery = _tmpTime>>
<<set $player.body.womb.cycle = 6>>
<<run delete $player.body.womb.fertEgg>>
<<goto "RecoveryRoom">>
<</button>>
</div>
</div><<set _tmpImg = 'Media/ChildBirth/PostBirth/' + random(1,2) + '.webp'>>
<center>
<img @src="_tmpImg" height="600rem">
<br><br>
<<if random(0,1) > 0>>
<<set $babyGender = 'boy'>>
<<else>>
<<set $babyGender = 'girl'>>
<</if>>
They clean up your baby and then bring it to you and you meet your new baby $babyGender for the first time.
<br><br>
You sit there with the life you created in your arms, words fail to describe your current state of mind. Nothing in your life can prepare you for this moment, and it's all you can do to sit there amazed that you experienced it.
<br><br>
Just as you are starting to come to terms with the monumental change that has just occurred in your life, a nurse comes in to take the baby away for its first round of tests and measurements.
<br><br>
<i>This will do nicely, Lost One</i> a voice says in your head.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContiner">
<<button "Continue">>
<<set $player.questLog.removeQuest('PregQuest')>>
<<addMins 120>>
<<goto "FTKidnap">>
<</button>>
</div>
</div><center>
<img src="Media/Characters/Static/FTeller/nurse.webp" height="600rem">
<br><br>
You look up in shock at the nurse, you're certain you've never seen her before but -- what did she call you? There's a sense of something familiar about her and a pit forms in your stomach as you realize it's the Fortune Teller in one of her disguises!
<br><br>
<i>Oh, I'm just here to claim what's mine. You are still in my debt, Lost one.<br>Oh but you did well with this one, <<if $babyGender === 'boy'>>he<<else>>she<</if>> will do perfectly.</i>
<br><br>
With an empty smile that chills your soul she turns a knob on your IV and suddenly your eyes get drowsy and your head collpases back to the pillow. You struggle to call for help but the black void of sleep sucks you back under.
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContiner">
<<button "Continue" "OBPostBirth">>
<<unset $babyGender>>
<<addHours 2>>
<</button>>
</div>
</div><<widget 'femCycle'>>
<<if !$player.body.womb>>
<<set $player.body.womb = {
isPreg: 0,
showPreg: 0,
cycle: 0,
follicPhase: random(10,12),
lutealPhase: 0,
unfertEggs: 0,
fertEgg: {},
lastMensies: 0,
periodDuration: 0
}>>
<</if>>
/* Lactation buildup */
<<set _tmpLactation = $player.questTracker.find(qst => qst.idx === 'Lactation')>>
<<if _tmpLactation and _tmpLactation.active>>
<<if _tmpLactation.maxDate > $currJulianDate>>
<<set _tmpLactation.rate += 42>>
<<elseif $currJulianDate - _tmpLactation.lastMilkDate > 3>>
<<if _tmpLactation.rate > 250>>
<<set _tmpLactation.rate = _tmpLactation.rate/2>>
<<else>>
/* no more lactation */
<<if _tmpLactation.growth >= 5>>
<<if $player.body.tits > 2>>
<<set $player.body.tits -= Math.floor(_tmpLactation.growth / 5)>>
<</if>>
<</if>>
<<set $player.questTracker = $player.questTracker.filter(obj => obj.idx != 'Lactation')>>
<</if>>
<</if>>
<</if>>
/* fertility cycle */
<<switch $player.body.womb.cycle>>
<<case 0>>
<<set
$player.body.womb.cycle = 1;
$player.body.womb.lutealPhase = random(12,15);
>>
<<case 1>>
/* follicular phase - building the egg */
<<if $player.body.womb.follicPhase > 0>>
<<set $player.body.womb.follicPhase -= 1>>
<<else>>
<<set $player.body.womb.cycle = 2>>
<</if>>
<<case 2>>
/* ovulatory phase - releasing the egg */
<<if $player.body.womb.lastMensies > 0>>
<<set $player.body.womb.unfertEggs += 1>>
<<if random(1,2) > 1 or $player.body.womb.unfertEggs > 3>>
<<set $player.body.womb.cycle = 3>>
<</if>>
<<else>>
<<set $player.body.womb.cycle = 3>>
<</if>>
<<case 3>>
/* Luteal phase - wait for pregnancy */
<<if $player.body.womb.lutealPhase > 0>>
<<set $player.body.womb.lutealPhase -= 1>>
<<else>>
<<if !$player.body.womb.firstMensies>>
<<set $firstBlood = true>>
<<set $player.body.womb.firstMensies = clone($currJulianDate)>>
<</if>>
<<set $player.body.womb.lastMensies = clone($currJulianDate)>>
<<set $player.body.womb.periodDuration = random(5,7)>>
<<set $player.body.womb.cycle = 4>>
<<set $player.body.womb.follicPhase = random(14,17)>>
<<set $player.body.womb.unfertEggs = 0>>
<</if>>
<<case 4>>
/* Period - flush out unused eggs and restart follicular build up*/
<<if $player.body.womb.periodDuration > 0>>
<<set $player.body.womb.periodDuration -= 1>>
<<set $player.body.womb.follicPhase -= 1>>
<<else>>
<<set
$player.body.womb.cycle = 1;
$player.body.womb.lutealPhase = random(12,15)
>>
<</if>>
<<case 5>>
/* pregnancy progression */
<<set _pregDuration = ($player.body.womb.dueDate - $player.body.womb.fertEgg.implant)>>
<<set _pregTime = ($currJulianDate - $player.body.womb.fertEgg.implant)>>
<<if _pregTime/_pregDuration <= .33>>
<<set $player.body.womb.term = 'first'>>
<<elseif _pregTime/_pregDuration <= .66>>
<<if _pregTime/_pregDuration >= random(.32,.38) and $player.body.womb.showPreg != 1>>
<<set $player.body.womb.showPreg = true>>
<</if>>
<<set $player.body.womb.term = 'second'>>
<<else>>
<<set $player.body.womb.term = 'third'>>
<</if>>
<<if $player.body.womb.dueDate == $currJulianDate and $player.questTracker.find(obj => obj.idx === "PregTracker").level < 5>>
<<set $player.questTracker.find(obj => obj.idx === "PregTracker").level = 6>>
<<run $player.questLog.addQuest('PregQuest','It\'s your due date today! Be prepared for labor at any time.')>>
<<elseif $player.body.womb.dueDate - $currJulianDate <= 7 and $player.questTracker.find(obj => obj.idx === "PregTracker").level < 4>>
<<set $player.questTracker.find(obj => obj.idx === "PregTracker").level = 5>>
<<set $birthHour = random($gameDate.getHours(),24)>>
<<run $player.questLog.addQuest('PregQuest','Your due date is approaching fast! Watch for early labor signs.')>>
<</if>>
<<case 6>>
/* post preg recovery */
<<if $gameDate >= $player.body.womb.recovery>>
<<run delete $player.womb.recovery>>
<<set $player.womb.cycle = 0>>
<</if>>
<</switch>>
<</widget>>
<<widget 'checkImpregnation'>>
<<set _cumLoad = $player.cumArr.find(obj => obj.loc === 'Pussy')>>
<<if _cumLoad>>
/*based on volume and # of eggs - the heigher either values is the higher the chance of impregnation */
<<for _i to 0; _i < _cumLoad.source.length;_i++>>
/* chance egg is fertilized per source load */
<<set _fertThresh = random(_cumLoad.source.length*$player.body.womb.unfertEggs,30)>>
<<if _fertThresh > 20>>
<<set
$player.body.womb.fertEgg = {
implant: clone($currJulianDate),
daddy: _cumLoad.source[_i]
};
$player.body.womb.unfertEggs = 0;
$player.body.womb.isPreg = true;
$player.body.womb.cycle = 5;
$player.body.womb.term = 'first';
$player.body.womb.dueDate = $currJulianDate + random(259,280);
$player.questTracker.push({idx: 'PregTracker',level: 1})
>>
<<if $player.body.womb.lastMensies === 0>>
<<set $player.body.womb.lastMensies == $currJulianDate - random(0,15)>>
<</if>>
<</if>>
<</for>>
<</if>>
<</widget>>
<<widget 'periodCheck'>>
<<if $player.body.womb>>
<<if $player.body.womb.cycle === 4>>
<b>You are on your period
<<if !$player.body.womb.sanitation>>
<<if $player.outfit.panties === 0>>
and blood is trickling down your inner thigh.
<<else>>
and blood is soaking into your panties.
<</if>>
<</if>>
</b>
<<elseif $player.body.womb.cycle === 5 and $player.questTracker.some(obj => obj.idx === 'PregTracker')>>
/*is pregnant */
<<set _pregDuration = ($player.body.womb.dueDate - $player.body.womb.fertEgg.implant)>>
<<set _pregTime = ($currJulianDate - $player.body.womb.fertEgg.implant)>>
<<set _tmpDiff = _pregTime/_pregDuration>>
<<if _tmpDiff > .8 and random(0,100) > 55>>
<<switch random(1,2)>>
<<case 1>>
<<set $DispNotes.push('<br>Your swollen stomach bulges sligthtly as your baby moves inside of you.')>>
<<case 2>>
<<set $DispNotes.push('<br>You wince as your baby delivers a vicious kick to your insides.')>>
<<case 3>>
<<set $DispNotes.push('<br>You can\'t help but let out a small sigh as your baby nestles into a more comfortable position.')>>
<</switch>>
<</if>>
<<lactationBuildUp _tmpDiff>>
<<if _tmpDiff > .15 and _tmpDiff < .28>>
<div class="badText">You feel sick to your stomach most of the time</div>
<<elseif _tmpDiff > .1>>
<div class="badText">You have an odd feeling of butterflies in your stomach.</div>
<</if>>
<<if $player.questTracker.find(obj => obj.idx === 'PregTracker').level <= 2>>
<<set _tmpDiff = $currJulianDate - $player.body.womb.lastMensies>>
<<if _tmpDiff > 28 and _tmpDiff <= 35>>
<b>Your period is a little late this month.<b/>
<<elseif _tmpDiff > 45 and _tmpDiff < 42>>
<div class="badText">Your period is late by more than a week!</div>
<<else>>
<div class="badText">Your period is very late!</div>
<<if $player.questTracker.find(obj => obj.idx === 'PregTracker').level < 2>>
<<set $player.questTracker.find(obj => obj.idx === 'PregTracker').level = 2>>
<<run $player.questLog.addQuest('PregQuest','You have to consider the possibility that you\'re pregnant. Taking a pregnancy test or seeing a doctor will confirm this.')>>
<</if>>
<</if>>
<</if>>
<</if>>
<</if>>
<</widget>>
<<widget "checkMorningSickness">>
<<set _pregDuration = ($player.body.womb.dueDate - $player.body.womb.fertEgg.implant)>>
<<set _pregTime = ($currJulianDate - $player.body.womb.fertEgg.implant)>>
<<set _tmpDiff = _pregTime/_pregDuration>>
<<if _tmpDiff > .18 and _tmpDiff < .35 and random(1,100) > 50>>
<<goto "MorningSickness">>
<<else>>
<<if $player.phone.habitList.morning.length > 0>>
<<checkRoutine 'Morning'>>
<<else>>
<<addSecs 5>>
<<goto $bedLoc>>
<</if>>
<</if>>
<</widget>>
<<widget "lactationBuildUp">>
/* during pregnancy breasts can grow up to two sizes */
<<if !$player.questTracker.some(qst => qst.idx === 'Lactation')>>
<<run $player.questTracker.push({idx: 'Lactation',active: false, rate: 0, growth: 1,vol:0,maxVol: 0})>>
<</if>>
<<set _tmpQuest = $player.questTracker.find(qst => qst.idx === 'Lactation')>>
<<if _tmpQuest.growth % 5 != 0>>
<<if rand(0,100) < _args[0]*10 or (_args[0]*10 > 50 and _tmpQuest.growth < 10)>>
<<set _tmpQuest.growth += 1>>
<<if _tmpQuest.growth % 5 > 3>>
<<set $DispNotes.push('<br> <div class="badText"Your breasts feel tender and swollen.</div>')>>
<</if>>
<<if $player.body.tits < 12 and tmpQuest.growth % 5 == 0>>
<<set $player.body.tits += 1>>
<</if>>
<</if>>
<</if>>
<</widget>>
<<widget "lactationCycle">>
<<set _tmpQuest = $player.questTracker.find(qst => qst.idx === 'Lactation')>>
<<if _tmpQuest>>
<<if _tmpQuest.vol <= _tmpQuest.maxVol>>
<<set _tmpQuest.vol += _tmpQuest.rate>>
<</if>>
<</if>>
<<if _tmpQuest.vol > _tmpQuest.maxVol*.9>>
<<set $DispNotes.push('<br><b>Your breasts are firm and full with milk.</b>')>>
<<elseif _tmpQuest.vol > _tmpQuest.maxVol/2>>
<<set $DispNotes.push('<br><b>Your breasts are heavy and tender.</b>')>>
<<elseif _tmpQuest.vol > _tmpQuest.maxVol/4>>
<<set $DispNotes.push('<br><b>Your breasts feel slightly heavy.</b>')>>
<<elseif _tmpQuest.vol > _tmpQuest.maxVol/8>>
<<set $DispNotes.push('<br><b>Your feel an easy pressure in your breasts from your milk.</b>')>>
<</if>>
<</widget>><<widget 'genTrait'>>
<<switch _args[0]>>
<<case 1>>
<<set _traitTitle = 'All Dolled Up'>>
<<set _traitDesc = 'You feel the pressing need to always wear makeup and have your hair styled when you leave the house, even for a short trip to the store. You feel more confident and brave if you take care of your appearance, but you feel scared and vulnerable if you ignore this desire.'>>
<<set _traitType = 'Mental'>>
<<case 2>>
<<set _traitTitle = 'Sensitive Skin'>>
<<set _traitDesc = 'Your skin is so incredibly sensitive in areas that you can\'t stand to have clothing rub against it. This means most of the outfits you can wear are required to show off a lot of skin on your torso and limbs, whether you like it or not.'>>
<<set _traitType = 'Physical'>>
<<case 5>>
<<set _traitTitle = 'Nympho'>>
<<set _traitDesc = 'You\'re not exactly addicted to sex, but you definitely have an overactive sex drive. You need release at least once per day to feel normal; masturbation only relieves 50% of the pressure.'>>
<<set _traitType = 'Mental'>>
<<case 6>>
<<set _traitTitle = 'All Heels'>>
<<set _traitDesc = 'The shortened tendons in your legs makes it difficult for you to wear flat shoes or go barefoot without standing on your toes. You\'re now most comfortable wearing high heels as they fit the new natural position of your legs and feet.'>>
<<set _traitType = 'Physical'>>
<<case 7>>
<<set _traitTitle = 'NanoBra'>>
<<set _traitDesc = 'The nanobots in your system act as an internal-bra, making you look as if you\'ve had breast work done without any of the scars or silicone.'>>
<<set _traitType = 'Physical'>>
<<case 8>>
<<set _traitTitle = 'Constant Flirt'>>
<<set _traitDesc = 'You love flirting - with anyone and everyone. You just can\'t help yourself when the occasion arises to make a dirty innuendo or subtle sexual reference.'>>
<<set _traitType = 'Mental'>>
<<case 22>>
<<set _traitTitle = 'Gym Bunny'>>
<<set _traitDesc = 'You just don\'t feel as happy if you skip the gym for too many days. A good workout is needed to brighten your smile.'>>
<<set _traitType = 'Mental'>>
<<case 23>>
<<set _traitTitle = 'Baby Crazy'>>
<<set _traitDesc = 'You just <b>LOVE</b> babies and pregnancies! Nothing would make you happier than carrying one of your very own to term.'>>
<<set _traitType = 'Mental'>>
<<case 28>>
<<set _traitTitle = 'Chemical Attraction'>>
<<set _traitDesc = 'When aroused your body emits highly potent pheromones to attract a potential mate. So potent, in fact, that people will find you aggressively irresistible.'>>
<<set _traitType = 'Physical'>>
<<case 30>>
<<set _traitTitle = 'Long Lockes'>>
<<set _traitDesc = 'You feel a deep-seated desire to have long gorgeous hair. Longer hair just makes you feel prettier, what\'s wrong with that?'>>
<<set _traitType = 'Mental'>>
<<case 47>>
<<set _traitTitle = 'Itty Bitty Committee'>>
<<set _traitDesc = 'You just love the look of small perky breasts -- particularly on yourself!'>>
<<set _traitType = 'Mental'>>
<<case 52>>
<<set _traitTitle = 'Backdoor Whore'>>
<<if $player.body.gender === 'Female' or $player.dom <= $player.sub>>
<<set _traitDesc = 'Your ass is a hugely sensitive erogenous zone and even gently rubbing it can quickly boost your arousal to dangerous levels.'>>
<<else>>
<<set _traitDesc = 'You\'re an "Ass Man" through-and-through, nothing turns you on more then having a nice sexy ass in front of you.'>>
<</if>>
<<set _traitType = 'Physical'>>
<<case 53>>
<<set _traitTitle = 'Carry-On Baggage'>>
<<set _traitDesc = 'You compulsively take a bag of some kind with you everyhwere you go. Always having a way to carry your things is just ingrained into your psyche.'>>
<<set _traitType = 'Mental'>>
<</switch>>
<<set $traitObj = new Trait(_args[0],_traitTitle,_traitDesc,_traitType)>>
<</widget>>
<<widget 'addTrait'>>
<<if !$player.traits.includes(_args[0])>>
<<genTrait _args[0]>>
<<if _args[0] === 1>>
<<if !($player.knownStyles.includes('Natural'))>>
<<set $player.knownStyles.push('Natural')>>
<</if>>
<</if>>
<<set $player.traits.push(_args[0])>>
<<script>>
Dialog.setup("New Trait Acquired");
Dialog.wiki('<center><font size="5em;">You\'ve earned the trait <b>$traitObj.title</b>. To learn more; access your profile card.</font></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</widget>>
<<widget 'addKink'>>
<<genTrait _args[0]>>
<<set $player.kinks.push(_args[0])>>
<<script>>
Dialog.setup("New Kink Acquired");
Dialog.wiki('<center><font size="5em;">You\'ve earned the kink <b>$traitObj.title</b>. To learn more; access your profile card.</font></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</widget>><<widget "getPits">>
<<set _tmpImg = 'Media/Self/Body/Pits/'>>
<<if $player.body.pitHair <=0>>
<<set _tmpImg += 'pits_0.webp'>>
<<set _tmpDesc = 'Your armpits are clean and smooth.'>>
<<elseif $player.body.pitHair < 6>>
<<set _tmpImg += 'pits_2.webp'>>
<<if $player.body.pitHair <= 3>>
<<set _tmpDesc = 'You can\'t see any hair, but your arm pits feel rough to the touch.'>>
<<else>>
<<set _tmpDesc = 'Your armpits have light and just barely visible hair.'>>
<</if>>
<<elseif $player.body.pitHair >= 6>>
<<set _tmpImg += 'pits_4.webp'>>
<<set _tmpDesc = 'Your arm pits are hairy.'>>
<</if>>
[img[_tmpImg]]
<br>
<<print _tmpDesc>>
<</widget>>
<<widget "getLegHair">>
<<set _tmpImg = 'Media/Self/Body/Legs/'>>
<<if $player.body.legHair <=0>>
<<set _tmpImg += '0.webp'>>
<<set _tmpDesc = 'Your legs are clean and smooth.'>>
<<elseif $player.body.legHair < 6>>
<<set _tmpImg += '1.webp'>>
<<if $player.body.legHair <= 3>>
<<set _tmpDesc = 'You can\'t see any hair, but your legs feel rough to the touch.'>>
<<else>>
<<set _tmpDesc = 'Your legs have light and just barely visible hair.'>>
<</if>>
<<elseif $player.body.legHair >= 6>>
<<set _tmpImg += '2.webp'>>
<<set _tmpDesc = 'Your legs are hairy.'>>
<</if>>
[img[_tmpImg]]
<br>
<<print _tmpDesc>>
<</widget>>
<<widget "getTits">>
<<genBra 0>>
<<if $player.body.tits > 0>>
<<set _tmpDesc = 'Your breasts would be considered a <<descTits $player>> <<sizeTits $player>>'>>
<<if $player.traits.includes(7)>>
<<set _tmpDesc += ' and you look like you\'ve had breast work done'>>
<</if>>
<<else>>
<<set _tmpDesc = 'You are flat chested.'>>
<</if>>
<img @src="$clothingObj.image" height="250px"/>
<br>
<<print _tmpDesc>>
<<unset clothingImg>>
<</widget>>
<<widget "getArms">>
<<set _tmpImg = 'Media/Self/Body/Arms/'>>
<<set _tmpImg += $player.presenting[0] + '/'>>
<<if $player.strength <= 15>>
<<set _tmpImg += '1.webp'>>
<<set _tmpDesc = 'You are very weak'>>
<<elseif $player.strength <= 25>>
<<set _tmpImg += '2.webp'>>
<<set _tmpDesc = 'You have some strength and muscle'>>
<<elseif $player.strength <= 50>>
<<set _tmpImg += '3.webp'>>
<<set _tmpDesc = 'You are fairly strong'>>
<<elseif $player.strength < 100>>
<<set _tmpImg += '4.webp'>>
<<set _tmpDesc = 'You definitely lift weights...alot'>>
<<else>>
<<set _tmpImg += '5.webp'>>
<<set _tmpDesc = 'You have immense strength'>>
<</if>>
[img[_tmpImg]]
<br>
<<print _tmpDesc>>
<</widget>>
<<widget "getNails">>
<<set _tmpImg = 'Media/Self/Body/Nails/'>>
<<set _style = 'unpainted'>>
<<if $player.body.nails <= 2>>
<<set _tmpImg += 'nails_' + _style + '_0.webp'>>
<<elseif $player.body.nails <= 4>>
<<if $nailBroken === 1>>
<<set _tmpImg += 'nails_broken_' + _style + '_1.webp'>>
<<else>>
<<set _tmpImg += 'nails_' + _style + '_1.webp'>>
<</if>>
<<elseif $player.body.nails > 4>>
<<if $nailBroken === 1>>
<<set _tmpImg += 'nails_broken_' + _style + '_2.webp'>>
<<else>>
<<set _tmpImg += 'nails_' + _style + '_2.webp'>>
<</if>>
<</if>>
<<if $player.body.nails <= 2>>
<<set _tmpDesc = 'stubby and short'>>
<<elseif $player.body.nails > 2 and $player.body.nails <=4>>
<<set _tmpDesc = 'average length'>>
<<elseif $player.body.nails > 4>>
<<set _tmpDesc = 'long'>>
<</if>>
<img @src=" _tmpImg" height="250px"/>
<br>
Your fingernails are <<print _tmpDesc>>
<<unset clothingImg>>
<</widget>>
<<widget "getHips">>
<<set _tmpImg ="Media/Self/Body/Hips/hips_">>
<<if $player.body.hips <= 61>>
<<set _tmpImg += '0.webp'>>
<<elseif $player.body.hips === 62>>
<<set _tmpImg += '1.webp'>>
<<elseif $player.body.hips === 63>>
<<set _tmpImg += '2.webp'>>
<<elseif $player.body.hips === 64>>
<<set _tmpImg += '3.webp'>>
<<elseif $player.body.hips === 65>>
<<set _tmpImg += '4.webp'>>
<<else>>
<<set _tmpImg += '5.webp'>>
<</if>>
<img @src="_tmpImg" height="250px"/>
<br>
Your hips are <<descHips>>
<</widget>>
<<widget "getWaist">>
<<set _tmpImg = 'Media/Self/Body/Waist/'>>
<<if !($player.body.womb) or !$player.body.womb.showPreg>>
<<set _bmi = calcBMI($player)>>
<<if _bmi <=16>>
<<set _tmpImg += 'waist_0.webp'>>
<<elseif _bmi >= 16 and _bmi < 19>>
<<set _tmpImg += 'waist_1.webp'>>
<<elseif _bmi >= 19 and _bmi < 24>>
<<set _tmpImg += 'waist_2.webp'>>
<<elseif _bmi >= 24 and _bmi < 30>>
<<set _tmpImg += 'waist_3.webp'>>
<<elseif _bmi >= 30 and _bmi < 35>>
<<set _tmpImg += 'waist_4.webp'>>
<<elseif _bmi >= 35 and _bmi < 40>>
<<set _tmpImg += 'waist_5.webp'>>
<<else>>
<<set _tmpImg += 'waist_6.webp'>>
<</if>>
<<else>>
<<set _pregDuration = ($player.body.womb.dueDate - $player.body.womb.fertEgg.implant)>>
<<set _pregTime = ($currJulianDate - $player.body.womb.fertEgg.implant)>>
<<set _tmpDiff = _pregTime/_pregDuration>>
<<if _tmpDiff < .5>>
<<set _tmpImg += 'week10.webp'>>
<<elseif _tmpDiff <= .75>>
<<set _tmpImg += 'week20.webp'>>
<<else>>
<<set _tmpImg += 'week30.webp'>>
<</if>>
<</if>>
<img @src="_tmpImg" height="250px"/>
<br>
<<descBMI>>
<<unset clothingImg>>
<</widget>>
<<widget "getAss">>
<<set _tmpImg ="Media/Self/Body/Ass/">>
<<if $player.body.ass <= 8>>
<<set _tmpImg += '0.webp'>>
<<elseif $player.body.ass === 9>>
<<set _tmpImg += '1.webp'>>
<<elseif $player.body.ass === 10>>
<<set _tmpImg += '2.webp'>>
<<elseif $player.body.ass === 11>>
<<set _tmpImg += '3.webp'>>
<<elseif $player.body.ass === 12>>
<<set _tmpImg += '4.webp'>>
<<else>>
<<set _tmpImg += '5.webp'>>
<</if>>
<img @src="_tmpImg" height="250px"/>
<br>
Your ass is <<descAss>>
<</widget>>
<<widget "getPubes">>
<<genPanties 0>>
<img @src="$clothingObj.image" height="250px"/>
<br>
<<if $player.body.gender != 'Female'>>
You have a <<descPubes>> <<descDick $player>> <<sizeDick $player>>cm dick
<<else>>
Your have a <<descPubes>> <<descPussy $player>> pussy
<</if>>
<<unset clothingImg>>
<</widget>>
<<widget "descPubes">>
<<if $player.body.pubes <= 3>>
<<set _tmpVals = ['silky smooth','hairless','smooth-shaven']>>
<<elseif $player.body.pubes <= 10>>
<<set _tmpVals = ['stubbly','scratchy','roughly-stubbled']>>
<<elseif $player.body.pubes <= 15>>
<<set _tmpVals = ['almost bare','well-kept','groomed']>>
<<elseif $player.body.pubes <= 20>>
<<set _tmpVals = ['lightly-furred','slightly unkempt','hairy']>>
<<elseif $player.body.pubes <= 25>>
<<set _tmpVals = ['almost-bushy','furry','unkempt']>>
<<elseif $player.body.pubes <= 30>>
<<set _tmpVals = ['furred','bushy','thick']>>
<<elseif $player.body.pubes >= 31>>
<<set _tmpVals = ['very thickly furred','very hairy','wild-maned']>>
<</if>>
<<print _tmpVals[random(0,_tmpVals.length-1)]>>
<</widget>>
<<widget "descAss">>
<<if $player.body.ass <= 8>>
non-existent
<<elseif $player.body.ass === 9>>
barely-there
<<elseif $player.body.ass === 10>>
mid-sized
<<elseif $player.body.ass === 11>>
noticeable
<<elseif $player.body.ass === 12>>
heart-shaped
<<else>>
a perfectly-crafted bubble butt
<</if>>
<</widget>>
<<widget "descBMI">>
<<if !($player.body.womb) or !$player.body.womb.showPreg>>
<<set _bmi = calcBMI($player)>>
<<if _bmi < 16>>
You are severely underweight.
<<elseif _bmi >= 16 and _bmi < 19>>
You are underweight
<<elseif _bmi >= 19 and _bmi < 24>>
You have a normal, healthy weight.
<<elseif _bmi >= 24 and _bmi < 30>>
You are overweight.
<<elseif _bmi >= 30 and _bmi < 35>>
You are moderately obese.
<<elseif _bmi >= 35 and _bmi < 40>>
You are severely obese.
<<elseif _bmi >= 40 and _bmi < 45>>
You are very severely obese.
<<elseif _bmi >= 45>>
You are morbidly obese.
<</if>>
<<else>>
<<set _pregDuration = ($player.body.womb.dueDate - $player.body.womb.fertEgg.implant)>>
<<set _pregTime = ($currJulianDate - $player.body.womb.fertEgg.implant)>>
<<set _tmpDiff = _pregTime/_pregDuration>>
<<if _tmpDiff < .5>>
You have a slight baby-bump.
<<elseif _tmpDiff <= .75>>
You look to be about 20 weeks pregnant.
<<else>>
You're well into your third trimester.
<</if>>
<</if>>
<</widget>>
<<widget "descHips">>
<<if $player.body.hips === 60>>
straight and narrow
<<elseif $player.body.hips === 61>>
narrow
<<elseif $player.body.hips === 62>>
average
<<elseif $player.body.hips === 63>>
slightly curvy
<<elseif $player.body.hips === 64>>
perfectly curved with a noticeable thigh-gap
<<elseif $player.body.hips === 65>>
ridiculously curved
<<elseif $player.body.hips === 66>>
overly-exaggerated
<</if>>
<</widget>>
<<widget "descHeight">>
<<switch _args[0].body.gender>>
<<case "Male">>
<<if (_args[0].height < 180)>>
short
<<elseif (_args[0].height < 190)>>
mid-height
<<else>>
tall
<</if>>
<<case "Female">>
<<if (_args[0].height < 170)>>
short
<<elseif (_args[0].height < 180)>>
mid-height
<<else>>
tall
<</if>>
<</switch>>
<</widget>>
<<widget "descHair">>
<<if _args[0].body.hair.length === 0>>
clean shaven
<<elseif _args[0].body.hair.length <= 30>>
short, and altogether rather boyish,
<<elseif _args[0].body.hair.length <= 80>>
short pixie-cut
<<elseif _args[0].body.hair.length <= 160>>
average length
<<elseif _args[0].body.hair.length <= 260>>
shoulder-length
<<elseif _args[0].body.hair.length <= 360>>
long, past the shoulders
<<elseif _args[0].body.hair.length <= 400>>
impressively lengthy
<</if>>
<</widget>>
<<widget 'descBody'>>
<<switch _args[0]>>
<<case 'athletic'>>
<<print 'an ' + _args[0]>>
<<default>>
<<print 'a ' + _args[0]>>
<</switch>>
<</widget>>
<<widget 'descLooks'>>
<<set _tmpNPC = $NPCArray.find(npc => npc.dna == _args[0])>>
<<if _tmpNPC.beautyScore < 2>>
<<if _tmpNPC.body.gender == 'Male'>>
<<set $rando = random(1,3)>>
<<switch $rando>>
<<case 1>>
His features are haggard and asymmetrical, with deep lines etched across his face like a map of hard-lived years, giving him a look that's more weathered than refined.
<<case 2>>
He has a hunched posture, uneven skin tone, and greasy unwashed hair.
<<case 3>>
With a crooked nose, thinning hair, and a complexion dulled by time, he carries a kind of invisibility that makes people glance past him without meaning to.
<</switch>>
<<else>>
<<set $rando = random(1,3)>>
<<switch $rando>>
<<case 1>>
She has a broad nose, a heavy jawline, and a complexion mottled by time and weather.
<<case 2>>
Her features clash rather than harmonize. An overly prominent nose, a weak chin, and empty vacant eyes that give her an imbecilic slack-jawed expression.
<<case 3>>
She has a wide, flat nose, a jaw that jutts forward, and skin that looks perpetually tired; features that did not soften under light but seem to absorb it, giving her a shadowed, almost ghostlike presence.
<</switch>>
<</if>>
<<elseif _tmpNPC.beautyScore < 5>>
/* plain */
<<if _tmpNPC.gender == 'Male'>>
<<set $rando = random(1,3)>>
<<switch $rando>>
<<case 1>>
He has a soft jawline, thin lips, and a slightly uneven complexion. His hair is short, flat, and lacks any noticeable style.
<<case 2>>
His nose is broad, his eyes are small and close together, and his eyebrows are sparse. Really quite unremarkably average.
<<case 3>>
He has a soft, undefined jawline, close-set eyes, and thin lips. His hair is short, slightly patchy, and lacks any noticeable style.
<</switch>>
<<else>>
<<set $rando = random(1,3)>>
<<switch $rando>>
<<case 1>>
She has a round face, thin lips, and a slightly uneven skin tone. Her hair is straight, limp, and lacks volume.
<<case 2>>
Her posture is slouched, her complexion dull, and her overall look is forgettable—neither striking nor unusual, just quietly ordinary.
<<case 3>>
She has a flat face with little definition, thin lips, and dull brown eyes that don't stand out. Her hair is straight, limp, and cut without much shape.
<</switch>>
<</if>>
<<elseif _tmpNPC.beautyScore < 8>>
/* attractive */
<<if _tmpNPC.gender == 'Male'>>
<<set $rando = random(1,3)>>
<<switch $rando>>
<<case 1>>
He has a clean-cut look with a strong jawline, decent build, and expressive eyes that add charm to his otherwise average features.
<<case 2>>
His smile is warm but slightly uneven, and while his style isn't flashy, he carries himself with a quiet confidence that makes him more appealing.
<<case 3>>
Not model material, but his well-groomed hair, clear skin, and relaxed posture give him a solid, approachable kind of good looks.
<</switch>>
<<else>>
<<set $rando = random(1,3)>>
<<switch $rando>>
<<case 1>>
She has a pleasant face with soft features, clear skin, and expressive eyes that add warmth to her overall look—even if she doesn't turn every head in the room.
<<case 2>>
She's attractive in a way that feels familiar — neat hair, expressive eyes, and a warm presence that makes people feel comfortable around her, even if she's not the most striking person in the room.
<<case 3>>
She's not striking, but her bright smile, healthy glow, and the way she carries herself give her a charm that's hard to ignore.
<</switch>>
<</if>>
<<else>>
/*super hot */
<<if _tmpNPC.gender == 'Male'>>
<<set $rando = random(1,3)>>
<<switch $rando>>
<<case 1>>
His jawline is sharp enough to challenge geometry, and with broad shoulders and a lean frame, he looks like he'd been carved out of ambition and discipline.
<<case 2>>
He has the kind of smoldering gaze that makes eye contact feel like a dare, paired with tousled hair and a smile that could melt steel.
<<case 3>>
With a sculpted physique, sun-bronzed skin, and a smile that could disarm a room, he looks like the embodiment of every summer romance novel.
<</switch>>
<<else>>
<<set $rando = random(1,3)>>
<<switch $rando>>
<<case 1>>
Every curve, every angle of her body seems designed to mesmerize. She moves with the kind of allure that makes even silence feel seductive.
<<case 2>>
Her features are striking—high cheekbones, full lips, and eyes so vividly colored they seem almost unreal, like nature had taken its time sculpting her face.
<<case 3>>
Her beauty is magnetic, not just in the symmetry of her features, but in the way her lips curl up in a smile and her eyes sparkle with stories you want to hear.
<</switch>>
<</if>>
<</if>>
<</widget>>
<<widget "calcSlutLevel">>
<<set _slutLevel = $player.skills.baseSlut>>
<<if $player.drunk >= 30 or $player.mentalFem > 35 or $player.arousal >=60>>
<<set _slutLevel += 1>>
<<if $player.drunk > 50>>
<<set _slutLevel += 1>>
<</if>>
<</if>>
/*pleasing others */
<<if ($player.sexStats.bj_give + $player.sexStats.cuni_give + $player.sexStats.hj_give + $player.sexStats.vag_fing_give + $player.sexStats.tittyFuck_get) >= 10 or (($player.sexStats.bj_give + $player.sexStats.cuni_give + $player.sexStats.hj_give + $player.sexStats.vag_fing_give + $player.sexStats.tittyFuck_give) >=1 and $player.drunk >= 50)>>
<<set _slutLevel += 1>>
<</if>>
/*getting pleased */
<<if ($player.sexStats.bj_get + $player.sexStats.cuni_get + $player.sexStats.hj_get + $player.sexStats.vag_fing_get + $player.sexStats.tittyFuck_get) > 15 or (($player.sexStats.bj_get + $player.sexStats.cuni_get + $player.sexStats.hj_get + $player.sexStats.vag_fing_get + $player.sexStats.tittyFuck_get) > 10 and $player.drunk >= 50)>>
<<set _slutLevel += 1>>
<</if>>
/* pitching and catching */
<<if $player.arousal > 60 and (($player.sexStats.anal_get + $player.sexStats.anal_give) > 1 or ($player.sexStats.masc_coitus + $player.sexStats.fem_coitus) > 5)>>
<<set _slutLevel += 1>>
<</if>>
/* showing off or getting groped */
<<if $player.sexStats.flash > 10 or $player.sexStats.groped > 10 or ($player.sexStats.flash > 10 + $player.sexStats.groped > 10) and ($player.arousal > 40 or $player.drunk > 35)>>
<<set _slutLevel += 1>>
<</if>>
/* self-love */
<<if $player.sexStats.masturbation > 20>>
<<set _slutLevel += 1>>
<</if>>
/* Strippers and whores */
<<if $player.sexStats.lapdance > 5 or $player.sexStats.prostitution > 0>>
<<set _slutLevel += 1>>
<</if>>
/* dry spell */
<<if ($currJulianDate - $player.sexStats.lastSexDate) > 7 and $player.sexStats.lastSexDate > 0>>
<<set _slutLevel += 1>>
<</if>>
/*limits and reductions */
<<if $player.virgin and _slutLevel > 3>>
<<set _slutLevel = 3>>
<</if>>
<<set $player.slutLevel = _slutLevel.clamp(0,5)>>
<</widget>>
<<widget "calcExpoLevel">>
/*
! _expLevel = 0: nothing is OK
! _expLevel = 1: showing underwear on cam OK
! _expLevel = 2: showing T&A on cam OK
! _expLevel = 3: flashing IRL OK
! _expLevel = 4: dressing slutty IRL
! _expLevel = 5: nude in public OK
*/
<<set _expLevel = $player.slutLevel*.50 + ($player.exhib/10)*.4 + ($player.dom/10)*.10>>
<<set $player.expo = Math.floor(_expLevel).clamp(0,5)>>
<</widget>>
<<widget "descLashes">>
<</widget>>
<<widget "descLips">>
<<switch _args[0].body.lips>>
<<case 0>>
<<set _tmpVals = ['pencil-thin','narrow','slender']>>
<<case 1>>
<<set _tmpVals = ['normal','average','mid-sized']>>
<<case 2>>
<<set _tmpVals = ['plump','full','inviting']>>
<<case 3>>
<<set _tmpVals = ['thick','big','pouty']>>
<<case 4>>
<<set _tmpVals = ['kissable','plush','overly-plump']>>
<<default>>
<<set _tmpVals = ['enlarged','pillowy','swollen']>>
<</switch>>
<<print _tmpVals[random(0,_tmpVals.length-1)]>>
<</widget>>
<<widget "descTits">>
<<if _args[0].body.tits === 0>>
<<set _tmpVals = ['flat chested']>>
<<elseif _args[0].body.tits <= 2>>
<<set _tmpVals = ['tiny','barely-there','boyish','petite','small','pert']>>
<<elseif _args[0].body.tits <= 3>>
<<set _tmpVals = ['sporty','perky','pixie-ish','dainty']>>
<<elseif _args[0].body.tits === 4>>
<<set _tmpVals = ['ordinary','mid-sized','regular']>>
<<elseif _args[0].body.tits <= 6>>
<<set _tmpVals = ['full','hefty','plentiful','copious']>>
<<elseif _args[0].body.tits <= 9>>
<<set _tmpVals = ['voluptuous','overly-generous','prominent','bountiful']>>
<<elseif _args[0].body.tits <= 12>>
<<set _tmpVals = ['top-heavy','aboslutley massive','colassal','titanic','mamoth','monumentally huge']>>
<<elseif _args[0].body.tits === 13>>
<</if>>
<<print _tmpVals[random(0,_tmpVals.length-1)]>>
<</widget>>
<<widget "sizeTits">>
<<switch _args[0].body.tits>>
<<case 0>>
<<print 'flast chested'>>
<<case 1>>
<<print 'AA Cup'>>
<<case 2>>
<<print 'A Cup'>>
<<case 3>>
<<print 'B Cup'>>
<<case 4>>
<<print 'C Cup'>>
<<case 5>>
<<print 'D Cup'>>
<<case 6>>
<<print 'E Cup'>>
<<case 7>>
<<print 'F Cup'>>
<<case 8>>
<<print 'G Cup'>>
<<case 9>>
<<print 'H Cup'>>
<<case 10>>
<<print 'I Cup'>>
<<case 11>>
<<print 'J Cup'>>
<<case 12>>
<<print 'L Cup'>>
<<case 13>>
<<print 'Z Cup'>>
<</switch>>
<</widget>>
<<widget "descDick">>
<<switch _args[0].body.cock>>
<<case 0>>
<<set _tmpVals = ['ken doll-like flat crotch']>>
<<case 1>>
<<set _tmpVals = ['laughable','microscopic','teeny-tiny','nearly-invisible']>>
<<case 2>>
<<set _tmpVals = ['tiny','small','puny','little']>>
<<case 3>>
<<set _tmpVals = ['smallish','dissapointing','runty','stubby']>>
<<case 4>>
<<set _tmpVals = ['mid-sized','average','regular','standard']>>
<<case 5>>
<<set _tmpVals = ['impressive','long','note-worthy']>>
<</switch>>
<<print _tmpVals[random(0,_tmpVals.length-1)]>>
<</widget>>
<<widget "sizeDick">>
<<switch _args[0].body.cock>>
<<case 0>>
<<print '0'>>
<<case 1>>
<<print '2'>>
<<case 2>>
<<print '4'>>
<<case 3>>
<<print '8'>>
<<case 4>>
<<print '16'>>
<<case 5>>
<<print '23'>>
<</switch>>
<</widget>>
<<widget "descPussy">>
<<switch _args[0].body.vag>>
<<case 0>>
<<set _tmpVals = ['virgin']>>
<<case 1>>
<<set _tmpVals = ['incredibly tight','barely-stretched','very youthful']>>
<<case 2>>
<<set _tmpVals = ['narrow','vice-like','tight','youthful']>>
<<case 3>>
<<set _tmpVals = ['snug','tight','light']>>
<<case 4>>
<<set _tmpVals = ['pliable','experienced','accomodating']>>
<<case 5>>
<<set _tmpVals = ['amply-practiced','very experienced','loose']>>
<<case 6>>
<<set _tmpVals = ['wide-open','gaping','stretched']>>
<</switch>>
<<print _tmpVals[random(0,_tmpVals.length-1)]>>
<</widget>>
<<widget "reflection">>
<<set _tmpImg = 'Media/Self/Reflection/'>>
<<set _tmpImg += $player.presenting[0] + '/'>>
/*race */
<<set _tmpImg += $player.race + '/'>>
<<set _tmpImg += $player.body.hair.color.toUpperFirst() + '/'>>
/*hair length */
<<if $player.body.hair.pony == 1>>
<<set _tmpImg += 'Pony/'>>
<<elseif $player.body.hair.length > 260>>
<<set _tmpImg += 'Long/'>>
<<elseif $player.body.hair.length > 160>>
<<set _tmpImg += 'MedLo/'>>
<<elseif $player.body.hair.length > 80>>
<<set _tmpImg += 'Medium/'>>
<<elseif $player.body.hair.length > 30>>
<<set _tmpImg += 'Short/'>>
<<elseif $player.body.hair.length > 0>>
<<set _tmpImg += 'VShort/'>>
<<elseif $player.body.hair.length == 0>>
<<set _tmpImg += 'Buzz/'>>
<</if>>
/*makeup */
<<if $player.body.makeup != 0>>
<<set _tmpImg += '2'>>
<<else>>
<<set _tmpImg += '1'>>
<</if>>
/*hair brushed */
<<if $player.body.hair.styled>>
<<set _tmpImg += '2'>>
<<else>>
<<set _tmpImg += '1'>>
<</if>>
<<set _tmpImg += '.webp'>>
<<print '<img src="' + _tmpImg + '" height="450rem"/>'>>
<</widget>>
<<widget "calcHair">>
/* returns a formed sentance on person Hair */
<<if _args[0].body.hair.styled or $player.body.hair.length < 30>>
<<set _hairStyle = 'neatly styled'>>
<<else>>
<<set _hairStyle = 'messy'>>
<</if>>
<<if _args[0].body.hair.length === 0>>
Your head is shaven almost clean, with just a few stubbly _args[0].body.hair.color spikes covering your scalp.'
<<elseif _args[0].body.hair.length <= 30>>
You have very short _args[0].body.hair.color hair. Currently your hair is _hairStyle.
<<elseif _args[0].body.hair.length > 30 & _args[0].body.hair.length <= 80>>
You have _args[0].body.hair.color hair that just covers your ears to their lobes. It's a modern, classy hairstyle. Currently your hair is _hairStyle.
<<elseif _args[0].body.hair.length > 80 & _args[0].body.hair.length <= 160>>
You have _args[0].body.hair.color hair. Your hair goes down to your chin line and can be considered of a medium length. Your hair is _hairStyle
<<elseif _args[0].body.hair.length > 160 & _args[0].body.hair.length <= 260>>
You have _args[0].body.hair.color hair which reaches your shoulders with several strands going just beyond. Currently your hair is _hairStyle
<<elseif _args[0].body.hair.length > 260 & _args[0].body.hair.length <= 360>>
You have _args[0].body.hair.color hair. As your hair reaches past your bra line, which is a rather long style. Your hair is _hairStyle
<<else>>
Your _args[0].body.hair.color hair is extremely long and reaches past your ass when you let it down. Your hair is _hairStyle
<</if>>
<</widget>>
<<widget "calcFace">>
/* returns a formed sentance on person's Face (makeup, eyes, skin, lips) */
Your $player.body.skinTone skin is
<<if $player.body.skin < 20>>
rough and covered with pimples and moles.
<<elseif $player.body.skin < 40>>
rough and has a few pimples.
<<elseif $player.body.skin < 60>>
clear of acne but still slightly rough.
<<elseif $player.body.skin < 80>>
smooth and well-groomed.
<<else>>
very smooth and almost feels like silk to the touch.
<</if>>
<<switch $player.body.eyes>>
<<case 0>>
You have small and beady $player.body.eyeColor eyes with
<<case 1>>
You have mid-sized $player.body.eyeColor eyes with
<<case 2>>
You have large $player.body.eyeColor eyes with
<<case 3>>
You have overly-large almost doll-like $player.body.eyeColor eyes with
<</switch>>
<<switch $player.body.lashes>>
<<case 1>>
short, barely-noticeable eyelashes
<<case 2>>
average eyelashes
<<case 3>>
long and luxorious eyelashes
<</switch>>
<<switch $player.body.lips>>
<<case 0>>
and your lips are very thin and uninviting.
<<case 1>>
and you have mid-sized average lips.
<<case 2>>
and you have full plump lips.
<<case 3>>
and your lips are thick and pouty.
<<case 4>>
and you have plush lips, often described as kissable.
<<case 5>>
and your lips are large and pillowy.
<</switch>>
<br><br>
<<switch $player.body.makeup>>
<<case -1>>
<b>Your makeup is smeared all over your face</b>
<<case 0>>
You are not wearing any makeup
<<default>>
<<if $player.skills.makeup <= 2>>
Your makeup, which looks like a child applied it,
<<elseif $player.skills.makeup <= 4>>
Your makeup is not very well done and looks a little cartoonish, but it
<<elseif $player.skills.makeup <= 6>>
Your makeup, which is passingly done, it
<<elseif $player.skills.makeup <= 9>>
Your makeup is applied with some skill; it
<<elseif $player.skills.makeup >= 10>>
Your makeup is expertly applied and it
<</if>>
consists of <<print $makeupStyles[$player.body.makeup].desc>>.
<</switch>>
<</widget>>
<<widget "calcDrunk">>
<<if $player.drunk > 80>>
<b><font color="red">You are completely hammered.</font></b><BR>
<<elseif $player.drunk > 50>>
<b><font color="orange">You are pretty drunk.</font></b><BR>
<<elseif $player.drunk > 35>>
<b><font color="orange">You are a bit tipsy.</font></b><BR>
<<elseif $player.drunk> 15>>
<b><font color="orange">You are a little buzzed.</font></b><BR>
<</if>>
<</widget>>
<<widget "calcSweat">>
<<set _tmpTime = (($gameDate.getTime() - $sweatTimer)/1000)*60>>
<<if $player.body.sweat > 80>>
<<if _tmpTime > 30>>
<b><font color="red">You smell like an and old dirty gym sock.</font></b><BR>
<<else>>
<b><font color="red">You are drenched in sweat.</font></b><BR>
<</if>>
<<elseif $player.body.sweat > 50>>
<<if _tmpTime > 30>>
<b><font color="orange">You really stink of stale dried sweat</font></b><BR>
<<else>>
<b><font color="orange">You are covered in sweat.</font></b><BR>
<</if>>
<<elseif $player.body.sweat > 35>>
<<if _tmpTime > 30>>
<b><font color="orange">You have a film of dried sweat coating your skin</font></b><BR>
<<else>>
<b><font color="orange">You are pretty sweaty.</font></b><BR>
<</if>>
<<elseif $player.body.sweat> 15>>
<<if _tmpTime > 30>>
<b><font color="orange">You have a sheen of dried sweat on your skin.</font></b><BR>
<<else>>
<b><font color="orange">You are a bit sweaty.</font></b><BR>
<</if>>
<</if>>
<</widget>>
<<widget "breathCheck">>
<<if $player.body.breath >= 0>>
<<if $player.body.breath === 0>>
<b><font color="red">Your breath is absolutely foul</font></b><BR>
<<elseif $player.body.breath < 3>>
<b><font color="red">Your breath really stinks</font></b><BR>
<<elseif $player.body.breath < 5>>
<b><font color="orange">You have bad breath</font></b><BR>
<</if>>
<</if>>
<</widget>>/*
gatekeeper code to check if player can leave "current room"
*/
<<widget "preFlightCheck">>
<<set $gateKeeper = {check: 'Exit',message:''}>>
<<switch _args[1]>>
<<case "Downtown" "FairhavenLobby">>
<<set _tmpVals = ['Nude','Undies','Sleepwear','Swimwear','Shoes']>>
<<if $player.traits.includes(53)>>
<<set _tmpVals.push('Purse')>>
<</if>>
<<if checkFit(_tmpVals)>>
<<addMins _args[2]>>
<<goto _args[1]>>
<</if>>
<<case "FairhavenHall">>
<<set _tmpVals = []>>
<<if $player.traits.includes(53)>>
<<set _tmpVals.push('Purse')>>
<</if>>
<<if $player.inhib > 50 or $player.body.gender != 'Female' or $player.slutLevel < 2>>
<<run _tmpVals.push('Nude')>>
<</if>>
<<if $player.inhib > 70>>
<<run _tmpVals.push('Swimwear')>>
<</if>>
<<if $player.inhib > 80>>
<<run _tmpVals.push('Sleepwear')>>
<</if>>
<<if checkFit(_tmpVals)>>
<<addMins _args[2]>>
<<goto _args[1]>>
<</if>>
<<case "GymHUB" "DuoGymHUB">>
<<set _tmpVals = ['Nude','Undies']>>
<<if $player.traits.includes(53)>>
<<set _tmpVals.push('Purse')>>
<</if>>
<<if checkFit('Nude','Undies')>>
<<genFit $player.outfit.fit>>
<<set _tmpFit = $clothingObj>>
<<genShoes $player.outfit.shoes>>
<<set _tmpShoes = $clothingObj>>
<<if _tmpFit.style === 'Athletic' and _tmpShoes.style === 'Athletic' and $player.stamina >= 20>>
<<addMins _args[2]>>
<<goto _args[1]>>
<<else>>
<<set $gateKeeper.message = '<center><div class="badText">You need to wear an Athletic outfit and Athetlic shoes.</div></center>'>>
<</if>>
<</if>>
<<case 'Beach'>>
<<set _tmpVals = ['Sleepwear']>>
<<if $player.traits.includes(53)>>
<<set _tmpVals.push('Purse')>>
<</if>>
<<if $player.inhib > 50 or ($player.body.gender != 'Male' and $player.mentalFem < 40) or $player.slutLevel > 2>>
<<run _tmpVals.push('Nude')>>
<</if>>
<<if checkFit(_tmpVals)>>
<<addMins _args[2]>>
<<goto _args[1]>>
<</if>>
<<default>>
<<set _tmpVals = ['Nude','Undies','Sleepwear','Swimwear','Shoes']>>
<<if $player.traits.includes(53)>>
<<set _tmpVals.push('Purse')>>
<</if>>
<<if checkFit(_tmpVals)>>
<<addMins _args[2]>>
<<goto _args[1]>>
<</if>>
<</switch>>
<<if $gateKeeper.message !== ''>>
<<script>>
Dialog.setup("Message:");
Dialog.wiki('<font size="5rem">$gateKeeper.message</font>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);;
<</script>>
<</if>>
<</widget>><<widget "refreshCaption">>
<<calcStats>>
<<replace "#story-caption">><<include "StoryCaption">><</replace>>
<<run shrinkBar($player.arousal, 100, "hornyBar","Arousal")>>
<<run growBar($player.health, 1000, "healthBar","Health")>>
<<run growBar($player.stamina, $player.stamMax, "staminaBar","Stamina")>>
<<run growBar($player.mood, $player.moodMax, "moodBar","Mood")>>
<<run growBar($player.hunger, 100, "hungerBar","Hunger")>>
<<run growBar($player.thirst, $player.thirstMax, "thirstBar","Thirst")>>
<<run growBar($player.energy, 100, "sleepBar","Sleep")>>
<</widget>>
<<widget "cityBench">>
<div class="buttonContainer">
<<button "Sit on a bench" "BenchSit">>
<<set $returnLoc = _args[0]>>
<<addSecs 15>>
<</button>>
</div>
<</widget>>
<<widget "questTracker">>
<<for _i to 0; _i < $player.questTracker.length;_i++>>
<<set _tmpQuest = $player.questTracker[_i]>>
<<switch _tmpQuest.idx>>
<<case 'MainQuest'>>
<<switch _tmpQuest.level>>
<<case 1>>
<<if $home.name != 'Homeless' and $jobArr.length > 0>>
<<set _tmpQuest.level = 2>>
<<unset $blockQuestUpdate>>
<<run $player.questLog.addQuest('MainQuest','You\'ve taken care of the basics - food and shelter; now you can focus on what\'s happening to you!')>>
<<elseif $home.name != 'Homeless' and !($blockQuestUpdate)>>
<<set $blockQuestUpdate = true>>
<<run $player.questLog.addQuest('MainQuest','You\'ve got a place to sleep and put your things, now find a way to earn some money.')>>
<<elseif $jobArr.length > 0 and !($blockQuestUpdate)>>
<<set $blockQuestUpdate = true>>
<<run $player.questLog.addQuest('MainQuest','You\'ve found a way to earn some cash, but you still need a safe place to sleep. Remember; the Fortune Teller said you could stay at Fairhaven in the Downtown area.')>>
<</if>>
<</switch>>
<<case "BreastCream">>
<<switch _tmpQuest.level>>
<<case 1>>
<<if $player.inventory.checkInv('Honeydew Cream') > 0>>
<<set _tmpQuest.level = 2>>
<<run $player.questLog.removeQuest('BreastCream')>>
<</if>>
<</switch>>
<<case "ItchyNips">>
<<set _questLog = $player.questLog>>
<<if _tmpQuest.lastItch != $currJulianDate>>
<<set
_tmpQuest.level += 1;
_tmpQuest.lastItch = clone($currJulianDate);
>>
<</if>>
<<case "BinQuest">>
<<if !$player.wardrobe.items.some(obj => obj.type === 'Fit' and obj.stats.fitStyle === 'Sleepwear')>>
<<run $player.questLog.removeQuest('BinQuest')>>
<</if>>
<<case "MoreFits">>
<<if $player.wardrobe.items.filter(obj => obj.type === 'Fit' and obj.stats.fitStyle === 'Casual').length >= 2>>
<<run $player.questLog.removeQuest('MoreFits')>>
<</if>>
<<case 'FHMaid'>>
<<if $home.name !='Fairhaven'>>
<<set $player.questTracker = $player.questTracker.filter(qst => qst.idx != 'FHMaid')>>
<<set $jobArr = $jobArr.filter(job => job.employer != 'Fairhaven')>>
<<set _i -= 1>>
<</if>>
<</switch>>
<</for>>
<</widget>>
<<widget "spendMoney">>
<<if $prefPay === 'Card'>>
<<if $bankAccount.amount >= _args[0]>>
<<set $bankAccount.amount -= _args[0]>>
<<run $bankAccount.txLog.push({date: State.variables.gameDate.getMonth() + '/' + State.variables.gameDate.getDate() + '/' + State.variables.gameDate.getFullYear(), type: 'Point of Sale',amount: _args[0]})>>
<<else>>
<<set $player.money -= _args[0]>>
<</if>>
<<else>>
<<if $player.money >= _args[0]>>
<<set $player.money -= _args[0]>>
<<refreshCaption>>
<<elseif $bankAccount>>
<<set $bankAccount.amount -= _args[0]>>
<<run $bankAccount.txLog.push({date: State.variables.gameDate.getMonth() + '/' + State.variables.gameDate.getDate() + '/' + State.variables.gameDate.getFullYear(), type: 'Point of Sale',amount: _args[0]})>>
<</if>>
<</if>>
<</widget>>
<<widget "checkBills">>
/* rent */
<<switch $home.name>>
<<case "Fairhaven">>
<<case "Studio">>
/*calc discount */
<<set $rentDue = $home.rent>>
<<if $home.autoDeduct>>
<<if canPurchase($rentDue)>>
<<spendMoney $rentDue>>
<<unset $rentDue>>
<</if>>
<</if>>
<</switch>>
/*Dwights Gym */
<<if $gymMembership>>
<<if $bankAccount.amount >= 60 and !$lastGymMonth>>
<<set $bankAccount.amount -= 60>>
<<run $bankAccount.txLog.push({date: State.variables.gameDate.getMonth() + '/' + State.variables.gameDate.getDate() + '/' + State.variables.gameDate.getFullYear(), type: 'Automated Deduction: Dwight\'s Gym',amount: _args[0]})>>
<<else>>
<<unset $gymMembership>>
<<unset $lastGymMonth>>
<<set $DispNotes.push('<br><div class="badText">Your gym membership has been cancelled</div>')>>
<</if>>
<</if>>
<</widget>>
<<widget "MoodManager">>
<<set _moodCap = $player.moodMax>>
/* gym trait */
<<if $player.traits.includes(22) and ($currJulianDate - $lastGymDate) > 1>>
<<set _moodCap -= _moodCap/10>>
<</if>>
/*nympho trait */
<<if $player.traits.includes(5) and ($currJulianDate - $player.sexStats.lastSexDate) > 1>>
<<set _moodCap -= _moodCap/5>>
<</if>>
<<set $player.mood = $player.mood.clamp(0,_moodCap)>>
<</widget>><<widget "hourSlider">>
<<set $alarmHour = _args[0]>>
<div class="slider">
<div class="row">
<label>Hour</label>
/*(this.value > 12 ? this.value - 12 : (this.value == 0?12:this.value)) + (this.value >= 12 ? ' PM' : ' AM') */
<input type="range" min="1" max="24" step="1" @value="$alarmHour" data-var="$alarmHour" id="hourSlider" oninput="SugarCubeInput(this);">
</div>
</div>
<</widget>>
<<widget "limitedHourSlider">>
<<set $alarmHour = _args[0]>>
<div class="slider">
<div class="row">
<label>Hour</label>
/*(this.value > 12 ? this.value - 12 : (this.value == 0?12:this.value)) + (this.value >= 12 ? ' PM' : ' AM') */
<input type="range" min="10" max="16" step="1" @value="$alarmHour" data-var="$alarmHour" id="hourSlider" oninput="SugarCubeInput(this);">
</div>
</div>
<</widget>>
<<widget "minuteSlider">>
<<set $alarmMinute = _args[0]>>
<div class="slider">
<div class="row">
<label>Minute</label>
<input type="range" min="0" max="59" step="1" @value="$alarmMinute" data-var="$alarmMinute" id="minuteSlider" oninput="SugarCubeInput(this);">
</div>
</div>
<</widget>>
<<widget "openAlarmDialog">>
<style>
.alarm-modal { position: fixed; left:0; top:0; width:100%; height:100%; display:none; align-items:center; justify-content:center; background: rgba(0,0,0,0.6); z-index:9999; }
.alarm-modal .panel { background: #fff; padding:1rem 1.25rem; border-radius:8px; max-width:640px; width:92%; box-shadow:0 6px 18px rgba(0,0,0,0.3); }
.alarm-modal .panel h3 { margin:0 0 .5rem 0; }
.alarm-modal .close { float:right; cursor:pointer; font-weight:700; font-size:1.1rem; }
.alarm-modal .controls { display:flex; gap:.5rem; margin-top:1rem; }
</style>
<<script>>
Dialog.setup("Set Alarm");
Dialog.wiki('<<alarmDialog $thisAlarm>>');
Dialog.open({top: "calc(50vh - 51px)",width: "400rem"}, setup.done);
<</script>>
<</widget>>
<<widget "alarmDialog">>
<div id="alarmModal" class="alarm-modal">
<div class="panel">
<div class="widgetInner">
<<set _tmpHrs = Math.floor(_args[0].alarmTime/60)>>
<<hourSlider _tmpHrs>>
<<set _tmpMins = _args[0].alarmTime % 60>>
<<minuteSlider _tmpMins>>
</div>
<div class="controls">
<<button "Set Alarm">>
<<script>>
State.temporary.args[0].alarmTime = Number(document.getElementById('hourSlider').value) * 60 + Number(document.getElementById('minuteSlider').value);
Dialog.close();
<</script>>
<<goto "SetAlarmClock">>
<</button>>
<<button "Cancel">>
<<script>>Dialog.close();<</script>>
<</button>>
</div>
</div>
</div>
<</widget>><!-- DATE AND TIME -->
/*
Date & Time Printing Widget Definitions
*/
/* Prints the current date ("{weekday} {month} {day}, {year}"). */
<<widget "date">>
<<print String.format("{0} {1} {2}, {3}",
GameDays[$gameDate.getDay()],
GameMonths[$gameDate.getMonth()],
$gameDate.getDate(),
$gameDate.getFullYear()
)>>
<</widget>>
/*
Date & Time Advancement Widget Definitions
*/
/* Adds the specified number of seconds. */
<<widget "addSecs">>
<<run $gameDate.setUTCSeconds($gameDate.getUTCSeconds() + _args[0])>>
<</widget>>
/* Adds the specified number of minutes. */
<<widget "addMins">>
<<run $gameDate.setUTCMinutes($gameDate.getUTCMinutes() + _args[0])>>
<</widget>>
/* Adds the specified number of hours. */
<<widget "addHours">>
<<run $gameDate.setUTCHours($gameDate.getUTCHours() + _args[0])>>
<</widget>>
/* Adds the specified number of days. */
<<widget "addDays">>
<<run $gameDate.setUTCHours($gameDate.getUTCHours() + _args[0] * 24)>>
<</widget>>
/* Prints the current time (12H). */
<<widget "time12hr">>
<<if $gameDate.getHours() gt 12>>\
<<set _currTime = $gameDate.getHours() - 12 + ':'>>
<<elseif $gameDate.getHours() eq 24 or $gameDate.getHours() eq 0>>
<<set _currTime = '12:'>>
<<else>>
<<set _currTime = $gameDate.getHours() + ':'>>
<</if>>
<<if $gameDate.getMinutes() lt 10>><<set _currTime += '0'>><</if>>
<<set _currTime += $gameDate.getMinutes() + ' '>>
<<if $gameDate.getHours() gte 12>><<set _currTime += 'PM'>><<else>><<set _currTime += 'AM'>><</if>>
<<print _currTime>>
<</widget>>
<<widget "get12hr">>
<<if $gameDate.getHours() gt 12>>\
<<set _currTime = $gameDate.getHours() - 12 + ':'>>
<<elseif $gameDate.getHours() eq 24 or $gameDate.getHours() eq 0>>
<<set _currTime = '12:'>>
<<else>>
<<set _currTime = $gameDate.getHours() + ':'>>
<</if>>
<<if $gameDate.getMinutes() lt 10>><<set _currTime += '0'>><</if>>
<<set _currTime += $gameDate.getMinutes() + ' '>>
<<if $gameDate.getHours() gte 12>><<set _currTime += 'PM'>><<else>><<set _currTime += 'AM'>><</if>>
<</widget>>
/* Prints the current time (24H). */
<<widget "time24hr">>
<<if $gameDate.getHours() lt 10>>0<</if>><<print $gameDate.getHours()>>:
<<if $gameDate.getMinutes() lt 10>>0<</if>><<print $gameDate.getMinutes()>>
<</widget>>
/* Prints the current date and time (12H). */
<<widget "datetime">><<date>> <<time12hr>> (<<time24hr>>)<</widget>>
<<widget "cycleGameDay">>
<<set $currJulianDate = calcJulianDay($gameDate)>>
<<set $moon.lunarDay += 1>>
<<if $moon.lunarDay % 4 === 0 or $moon.lunarCycle[0] === 5>>
<<set $moon.lunarCycle.push($moon.lunarCycle[0] + 1)>>
<</if>>
<<if $moon.lunarCycle[1] === 9>>
<<set $moon.lunarCycle.push(1)>>
<</if>>
<<calcDaylightHours>>
/*clear gatekeep values based on current day just to keep memory clear */
<<unset $bBoardJobs>>
<<set $dailyLimit = []>>
/* Max. Hair length 600mm, or 60cm, which should be somewhere in the lower back area.
Hair grows 1mm each day, it takes 20 months (1 month = 30 days) to regrow the hair from 0.
*/
<<if $player.body.hair.length < 500>>
<<if $hgBoost >= 7>>
<<unset $hgBoost>>
<<if $player.body.hair.length = 0>>
<<set $player.body.hair.length += 1>>
<<elseif $player.body.hair.length > 0 and mc_hair_length <= 30>>
<<set $player.body.hair.length = 31>>
<<elseif $player.body.hair.length >= 30 and mc_hair_length <= 80>>
<<set $player.body.hair.length = 81>>
<<elseif $player.body.hair.length >= 80 and mc_hair_length <= 160>>
<<set $player.body.hair.length = 161>>
<<elseif $player.body.hair.length >= 160 and mc_hair_length <= 260>>
<<set $player.body.hair.length = 261>>
<<elseif $player.body.hair.length >= 260 and mc_hair_length <= 400>>
<<set $player.body.hair.length = 401>>
<<else>>
<<set $player.body.hair.length = 500>>
<</if>>
<<else>>
<<set $player.body.hair.length += 1>>
<</if>>
<</if>>
/* Pit Hair */
<<if !$pitHairRemove and !$hairBlock>>
<<if $player.body.pitHair < 12>>
<<set $player.body.pitHair += 1>>
<</if>>
<</if>>
/*Leg hair*/
<<if !$legHairRemove and !$hairBlock>>
<<if $player.body.legHair < 12>>
<<set $player.body.legHair += 1>>
<</if>>
<</if>>
/*pube hair*/
<<if !$pubeHairRemove and !$hairBlock>>
<<if $player.body.pubes < 30>>
<<set $player.body.pubes = 1>>
<</if>>
<</if>>
/* nails grows 1cm every 2 weeks. 0 is almost down to the quick, 10 is crazy dragon lady nails */
<<if $currJulianDate - $lastNailGrowth >= 14>>
<<set $lastNailGrowth = clone($currJulianDate)>>
<<if $player.body.nails < 10>>
<<set $player.body.nails += 1>>
<</if>>
<</if>>
/* rundown of different events that force a fem look */
<<if !($forceFem is undefined)>>
<<for _i to 0; _i < $forceFem.length;_i++>>
<<if $currJulianDate >= $forceFem[_i].end>>
<<set $genderSwitchBack = $forceFem[_i].source>>
<<set $forceFem = $forceFem.filter(item => item !== $forceFem[_i])>>
<<set _i -= 1>>
<</if>>
<</for>>
<<if $forceFem.length === 0>>
<<unset $forceFem>>
<</if>>
<</if>>
<<if $gameDate.getDate() >= 15>>
<<calcJobPay>>
<</if>>
<<if $player.hasPass and $gameDate.getDate() === 1>>
<<set $player.hasPass = false>>
<</if>>
/* Monday resets */
<<if $gameDate.getDay() == 1>>
<<set $kioskMags = ['magazine_7','magazine_8','magazine_9','magazine_10','magazine_11','magazine_12','magazine_13','magazine_14','magazine_15','magazine_16','magazine_17','magazine_18','magazine_19','magazine_20']>>
<</if>>
/* WEIGHT MANAGEMENT ALGORITHM */
/* Calculate daily weight changes based on calories and body fat */
<<set _baseMetabolicRate = 1500>> /* Baseline calories burned per day */
<<set _calorieBalance = $player.calories - _baseMetabolicRate>>
/* Convert calorie surplus/deficit to body fat change (1 lb of fat = ~3500 calories) */
<<set _bodyFatChange = _calorieBalance / 3500>>
/* Apply the change to body fat percentage */
<<set $player.body.bodyFat += _bodyFatChange>>
/* Recalculate weight based on new body fat */
<<set $player.body.weight = calcWeight($player)>>
/* Reset daily calories */
<<set $player.calories = 0>>
/*body builder strength decreases over time if not actively working out*/
<<if $player.strength > 25 and !$muscleBoost>>
<<set $player.strength -= $player.strength/10>>
<<if $player.strength < 25>>
<<set $player.strength = 25>>
<</if>>
<</if>>
<<unset $muscleBoost>>
/* check female reproductive cycle */
<<if $player.body.gender === 'Female'>>
<<femCycle>>
<</if>>
/* eye drop TF */
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'EyeDrops')>>
<<if _tmpCheck>>
<<if _tmpCheck.level === 1>>
<<set _tmpCheck.level = 2>>
<<elseif _tmpCheck.level === 2>>
<<set _tmpCheck.level = 3>>
<<set $player.statBuffs.eyes = 10>>
<</if>>
<</if>>
/* nicotine */
<<if $currJulianDate - $lastDayCigs > 7>>
<<unset $lastDayCigs>>
<<run delete $player.isSmoker>>
<<run delete $player.nicLevel>>
<<run delete $player.minNicotine>>
<</if>>
/* mental fem boost for stayin at women's shelter */
<<if $home.name === 'Fairhaven'>>
<<if $player.mentalFem < 60>>
<<set $player.statBuffs.femBuff += 4>>
<</if>>
<</if>>
/* hair boost */
<<if $hairBoost and $hairBoost >= 7>>
<<unset $hairBoost>>
<<if $player.body.hair.length > 360>>
/* do nothing */
<<elseif $player.body.hair.length > 260>>
<<set $player.body.hair.length = 361>>
<<elseif $player.body.hair.length > 160>>
<<set $player.body.hair.length = 261>>
<<elseif $player.body.hair.length > 80>>
<<set $player.body.hair.length = 161>>
<<elseif $player.body.hair.length > 30>>
<<set $player.body.hair.length = 81>>
<<else>>
<<set $player.body.hair.length = 31>>
<</if>>
<</if>>
/* check for bills */
<<if $gameDate.getDate() === 1>>
<<checkBills>>
<</if>>
/* patch for weekend Office training course
update last class date so you don't get kicked out.
*/
<<if $player.comCourses>>
<<if $player.comCourses.some(course => course.title == 'Office Skills Training')>>
<<if $gameDate.getDay() > 5>>
<<set $player.comCourses.find(course => course.title == 'Office Skills Training').prevClass = $currJulianDate>>
<</if>>
<</if>>
<</if>>
<</widget>>
<<widget 'calcDaylightHours'>>
<<set _jDay = getJulianDate($gameDate)>>
/*difference from current day to/from solstice on June 20th (Jday 171)*/
<<set _solisticeCount = Math.abs(_jDay-171)>>
<<set $daylightMinutes = Math.floor(540-((240)/182)*_solisticeCount)>>
<</widget>><<set _tmpLoc = $knownLocs.find(loc => loc[1] == $travelTarget)[0]>>
<center>
<img @src='$travelImg' height="600rem">
<br><br>
It's quite a walk to cross to the <<print _tmpLoc>> <<if $travelTarget == 'Downtown'>>District<</if>>
<<timed 1000ms>>.<</timed>>
<<timed 1250ms>>.<</timed>>
<<timed 1500ms>>.<</timed>>
<<timed 1750ms>>
<br><br>
But eventually arrive at your destination.
<</timed>>
</center>
<hr>
<<timed 2500ms>>
<<set _tmpLoc = $travelTarget>>
<<unset $travelTarget>>
<<goto _tmpLoc>>
<</timed>><<widget "Walking">>
<<set $travelImg = "Media/Travel/Walking/">>
<<if $dayStage < 4>>
<<set $travelImg += 'Day/'>>
<<if $player.presenting === 'Female' or ($player.isNude and $player.body.gender === 'Trans')>>
<<set $travelImg += 'F/'>>
<<if $cumWalk>>
/* cum walk videos */
<<elseif $player.body.womb and $player.body.womb.showPreg>>
/* preg */
<<if $player.isNude>>
/* Nude */
<<set $travelImg += 'Nude/' + random(1,5) + '.webp'>>
<<else>>
/* reg */
<<set $travelImg += random(1,9) + '.webp'>>
<</if>>
<<elseif $player.body.tits === 13>>
/* ZCup */
<<set $travelImg += random(1,3) + '.webp'>>
<<elseif $player.isNude>>
/* Nude */
<<if $player.body.gender != 'Female'>>
<<set $travelImg += 'Media/Travel/Walking/Day/T/Nude/' + random(1,2) + '.webp'>>
<<else>>
<<set $travelImg += 'Nude/' + random(1,11) + '.webp'>>
<</if>>
<<elseif $isBimbo>>
/* bimbo pics */
<<else>>
/* reg */
<<set $travelImg += random(1,5) + '.webp'>>
<</if>>
<<else>>
<<set $travelImg += 'M/'>>
<<if $player.isNude>>
/* Nude */
<<set $travelImg += 'Nude/' + random(1,2) + '.webp'>>
<<else>>
/* reg */
<<set $travelImg += random(1,5) + '.webp'>>
<</if>>
<</if>>
<<else>>
<<set $travelImg += 'Night/'>>
<<if $player.presenting === 'Female' or ($player.isNude and $player.body.gender === 'Trans')>>
<<set $travelImg += 'F/'>>
<<if $cumWalk>>
/* cum walk videos */
<<elseif $player.body.womb and $player.body.womb.showPreg>>
/* preg */
<<if $player.isNude>>
/* Nude */
<<set $travelImg += 'Nude/' + random(0,0) + '.webp'>>
<<else>>
/* reg */
<<set $travelImg += random(1,3) + '.webp'>>
<</if>>
<<elseif $player.body.tits === 13>>
/* ZCup */
<<set $travelImg += random(0,0) + '.webp'>>
<<elseif $player.isNude>>
/* Nude */
<<if $player.body.gender != 'Female'>>
<<set $travelImg += 'Media/Travel/Walking/Day/T/Nude/' + random(1,2) + '.webp'>>
<<else>>
<<set $travelImg += 'Nude/' + random(1,4) + '.webp'>>
<</if>>
<<elseif $isBimbo>>
/* bimbo pics */
<<else>>
/* reg */
<<set $travelImg += random(1,5) + '.webp'>>
<</if>>
<<else>>
<<set $travelImg += 'M/'>>
<<if $player.isNude>>
/* Nude */
<<set $travelImg += 'Nude/' + random(0,0) + '.webp'>>
<<else>>
/* reg */
<<set $travelImg += random(1,3) + '.webp'>>
<</if>>
<</if>>
<</if>>
<<addHours 1>>
<<set $travelTarget = _args[0]>>
<<goto "TravelDisplay">>
<</widget>>/*
1 - dawn
2 - midday
3 - sunset
4 - the beginning of the night
5 - night
6 - the end of the night
*/
<<widget 'calcWeather'>>
/*!Lunar phase update at sunup*/
/*
<<if $dayStage != 5>>
/*if wereDay ! currDay: killvar 'wereDay'
<<if $moon.lunarCycle.length > 1>>
<<set $moon.lunarCycle.shift()>>
<</if>>
<</if>>
*/
/*time since midnight */
<<set _currSunTime = $gameDate.getHours()*60 + $gameDate.getMinutes()>>
<<if _currSunTime >= 720>>
<<set _currSunTime = 720 - _currSunTime>>
<<else>>
<<set _currSunTime = -(780-_currSunTime)>>
<</if>>
<<set $dayStage=5>>
<<if _currSunTime >= -($daylightMinutes-60) and _currSunTime <= ($daylightMinutes-60)>>
<<set $dayStage=2>>
<<elseif _currSunTime >= -$daylightMinutes and _currSunTime <= -($daylightMinutes-60)>>
<<set $dayStage=1>>
<<elseif _currSunTime >= ($daylightMinutes-60) and _currSunTime <= $daylightMinutes>>
<<set $dayStage=3>>
<<elseif _currSunTime >= $daylightMinutes and _currSunTime <= $daylightMinutes+60>>
<<set $dayStage=4>>
<<elseif _currSunTime >= -($daylightMinutes+60) and _currSunTime <= -$daylightMinutes>>
<<set $dayStage=6>>
<</if>>
/* set base values at start of day, then do micro-changes by hour */
<<if $lastWxDay != $currJulianDate>>
<<set $baseTemp = random(baseMonthTemp[$gameDate.getMonth()] - 5, baseMonthTemp[$gameDate.getMonth()]+5)>>
<<if !$currTemp>><<set $currTemp = $baseTemp>><</if>>
<<set $baseRainChance = random(baseMonthRain[$gameDate.getMonth()]-5, baseMonthRain[$gameDate.getMonth()]+5)>>
<<set $lastWxDay = clone($currJulianDate)>>
<</if>>
/* micro changes during day */
<<if $dayStage >= 3>>
/*night - cooler*/
<<if random(0,100) > 50 and $currTemp > $baseTemp-10>>
<<set $currTemp = Math.floor($currTemp - random(1,2)*_args[0]/10000)>>
<</if>>
<<else>>
/* day - warmer*/
<<if random(0,100) > 50 and $currTemp < $baseTemp+10>>
<<set $currTemp = Math.floor($currTemp +random(1,2)*_args[0]/10000)>>
<</if>>
<</if>>
<<if !$rainyDay>>
<<if $baseRainChance < 60 >>
<<set $weatherImage = '1'>>
<<else>>
<<set $weatherImage = '2'>>
<<if random(0,100) > 50>>
<<set $rainyDay = true>>
<<set $rainTimer= $gameDate.getTime()/1000 + random($baseRainChance,$baseRainChance*3)*60>>
<<set $weatherImage = '3'>>
<</if>>
<</if>>
<<else>>
<<if $rainTimer < $gameDate.getTime()/1000>>
<<unset $rainyDay>>
<<unset $rainTimer>>
<</if>>
<</if>>
<</widget>>
<<widget "getWeatherImage">>
<<set _tmpImg = "Media/System/Weather/weather" + $dayStage + $weatherImage + '1'>>
<<if $dayStage === 5>>
<<set _tmpImg += $moon.lunarCycle[0]>>
<</if>>
<<set _tmpImg += '.png'>>
<img @src = " _tmpImg" height="200rem">
<</widget>>undo:off<table style="width:100%;"><tr><td style="text-align:center;"><center><img src="Media/System/introGraphic.webp" height="450rem"></center></td></tr>
<tr><td style="text-align:center;"><font color="Blue" size="10">Clean Slate</font></td></tr>
<tr><td style="text-align:center;"><b>Version $version</b></td></tr>
<tr><td style="text-align:center;"><font color="red"><b>Children under 18 years are strictly forbidden to play</b></font></td></tr>
<tr><td>
This game is about the simulated life of a man given the chance to restart his fate. The choices he makes will have serious impacts on the reality he experiences.
You may choose what kind of life the character will live according to your play style, conscience or even personal beliefs.
This is an open world; make of it what you will.
All characters in this game are fictional and any similarities to any persons living or dead are purely coincidental.
All explicit images are performed by consenting adults aged 18 or older. Images are for illustrative purposes only.
</td>
</tr></table>
<hr>
<table><tr><td><<button "Start" "GameIntro">><</button>></td><td><<button "Start - Skip Intro" "Downtown">><<set $player.mood = 55>><</button>></td><td>
</td></tr></table><center>
<table width="90%" cellspacing="0" cellpadding="1px" valign="top">
<tr>
<th>
<a data-passage="profilePage" id='profilePage' class="inactiveButton">Character</a>
</th>
<th>
<a data-passage="clothingPage" id='clothingPage' class="inactiveButton">Clothing</a>
</th>
<th>
<a data-passage="bodyPage" id='bodyPage' class="inactiveButton">Body</a>
</th>
<th>
<a data-passage="traitsPage" id='traitsPage' class="inactiveButton">Traits</a>
</th>
<th>
<a data-passage="kinksPage" id='kinksPage' class="inactiveButton">Kinks</a>
</th>
</tr>
</table>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.profPage).classList.remove('inactiveButton');
document.getElementById(State.variables.profPage).classList.add('activeButton');
<</script>>
<</timed>>
</center><<if !$subMenu>>
<<set $subMenu = 'Outfit'>>
<</if>>
<div style="text-align: center;">
<span id="Outfit" class='inactiveMenu'><<button "Outfit" "clothingPage">><<set $subMenu = 'Outfit'>><</button>></span>
<span id="Jewelry" class='inactiveMenu'><<button "Jewelry" "clothingPage">><<set $subMenu = 'Jewelry'>><</button>></span>
</div>
<br>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.subMenu).classList.remove('inactiveMenu');
document.getElementById(State.variables.subMenu).classList.add('activeMenu');
<</script>>
<</timed>><<if ! $jewelryMenu>><<set $jewelryMenu = 'Earrings'>><</if>>
<div style="text-align: center;">
<span id="Earrings" class='inactiveMenu'><<button "Earrings" "JewelryBox">><<set $jewelryMenu = 'Earrings'>><<unset $tmpPick>><</button>></span>
<span id="Necklace" class='inactiveMenu'><<button "Necklaces" "JewelryBox">><<set $jewelryMenu = 'Necklace'>><<unset $tmpPick>><</button>></span>
<span id="Bracelet" class='inactiveMenu'><<button "Bracelets" "JewelryBox">><<set $jewelryMenu = 'Bracelet'>><<unset $tmpPick>><</button>></span>
<span id="Ring" class='inactiveMenu'><<button "Rings" "JewelryBox">><<set $jewelryMenu = 'Ring'>><<unset $tmpPick>><</button>></span>
</div>
<br>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.jewelryMenu).classList.remove('inactiveMenu');
document.getElementById(State.variables.jewelryMenu).classList.add('activeMenu');
<</script>>
<</timed>><div style="text-align: center;">
<span id="Casual" class='inactiveMenu'><<button "Casual" "viewWardrobe">><<set $currMenu = 'Casual'>><<unset $tmpPick>><</button>></span>
<span id="Fancy" class='inactiveMenu'><<button "Fancy" "viewWardrobe">><<set $currMenu = 'Fancy'>><<unset $tmpPick>><</button>></span>
<span id="Sleepwear" class='inactiveMenu'><<button "Sleepwear" "viewWardrobe">><<set $currMenu = 'Sleepwear'>><<unset $tmpPick>><</button>></span>
<span id="Swimwear" class='inactiveMenu'><<button "Swimwear" "viewWardrobe">><<set $currMenu = 'Swimwear'>><<unset $tmpPick>><</button>></span>
<span id="Athletic" class='inactiveMenu'><<button "Athletic" "viewWardrobe">><<set $currMenu = 'Athletic'>><<unset $tmpPick>><</button>></span>
</div>
<br>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.currMenu).classList.remove('inactiveMenu');
document.getElementById(State.variables.currMenu).classList.add('activeMenu');
<</script>>
<</timed>><<if !$planningCat>>
<<set $planningCat = 'Casual'>>
<</if>>
<div style="text-align: center;">
<span id="Casual" class='inactiveMenu'><<button "Casual" "WardPlanning">><<set $planningCat = 'Casual'>><<unset $plannedFit>><<unset $plannedFitIdx>><</button>></span>
<span id="Fancy" class='inactiveMenu'><<button "Fancy" "WardPlanning">><<set $planningCat = 'Fancy'>><<unset $plannedFit>><<unset $plannedFitIdx>><</button>></span>
<span id="Sleepwear" class='inactiveMenu'><<button "Sleepwear" "WardPlanning">><<set $planningCat = 'Sleepwear'>><<unset $plannedFit>><<unset $plannedFitIdx>><</button>></span>
<span id="Swimwear" class='inactiveMenu'><<button "Swimwear" "WardPlanning">><<set $planningCat = 'Swimwear'>><<unset $plannedFit>><<unset $plannedFitIdx>><</button>></span>
<span id="Athletic" class='inactiveMenu'><<button "Athletic" "WardPlanning">><<set $planningCat = 'Athletic'>><<unset $plannedFit>><<unset $plannedFitIdx>><</button>></span>
</div>
<br>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.planningCat).classList.remove('inactiveMenu');
document.getElementById(State.variables.planningCat).classList.add('activeMenu');
<</script>>
<</timed>><<if !$subPlanningMenu>>
<<set $subPlanningMenu = 'Outfit'>>
<</if>>
<div style="text-align: center;">
<span id="Outfit" class='inactiveMenu'><<button "Outfit" "WardPlanning">><<set $subPlanningMenu = 'Outfit'>><</button>></span>
<span id="Jewelry" class='inactiveMenu'><<button "Jewelry" "WardPlanning">><<set $subPlanningMenu = 'Jewelry'>><</button>></span>
</div>
<br>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.subPlanningMenu).classList.remove('inactiveMenu');
document.getElementById(State.variables.subPlanningMenu).classList.add('activeMenu');
<</script>>
<</timed>><div style="text-align: center;">
<span id="Casual" class='inactiveMenu'><<button "Casual" $storePassage>><<set $currMenu = 'Casual'>><</button>></span>
<span id="Fancy" class='inactiveMenu'><<button "Fancy" $storePassage>><<set $currMenu = 'Fancy'>><</button>></span>
<span id="Sleepwear" class='inactiveMenu'><<button "Sleepwear" $storePassage>><<set $currMenu = 'Sleepwear'>><</button>></span>
<span id="Swimwear" class='inactiveMenu'><<button "Swimwear" $storePassage>><<set $currMenu = 'Swimwear'>><</button>></span>
<span id="Athletic" class='inactiveMenu'><<button "Athletic" $storePassage>><<set $currMenu = 'Athletic'>><</button>></span>
</div>
<br>
<div>
<span id="wearableFilter" class='inactiveMenu'>
<<button "Wearable Filter" $storePassage>>
<<if $wearFilter>>
<<set $wearFilter = false>>
<<else>>
<<set $wearFilter = true>>
<</if>>
<</button>>
</span>
<span id="ownedFilter" class='inactiveMenu'>
<<button "Owned Filter" $storePassage>>
<<if $ownedFilter>>
<<set $ownedFilter = false>>
<<else>>
<<set $ownedFilter = true>>
<</if>>
<</button>>
</span>
</div>
<br>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.currMenu).classList.remove('inactiveMenu');
document.getElementById(State.variables.currMenu).classList.add('activeMenu');
<</script>>
<<if $wearFilter>>
<<script>>
document.getElementById('wearableFilter').classList.remove('inactiveMenu');
document.getElementById('wearableFilter').classList.add('activeMenu');
<</script>>
<</if>>
<<if $ownedFilter>>
<<script>>
document.getElementById('ownedFilter').classList.remove('inactiveMenu');
document.getElementById('ownedFilter').classList.add('activeMenu');
<</script>>
<</if>>
<</timed>><div>
<span id="wearableFilter" class='inactiveMenu'>
<<button "Wearable Filter" $storePassage>>
<<if $wearFilter>>
<<set $wearFilter = false>>
<<else>>
<<set $wearFilter = true>>
<</if>>
<</button>>
</span>
<span id="ownedFilter" class='inactiveMenu'>
<<button "Owned Filter" $storePassage>>
<<if $ownedFilter>>
<<set $ownedFilter = false>>
<<else>>
<<set $ownedFilter = true>>
<</if>>
<</button>>
</span>
</div>
<br>
<<timed 0s>>
<<if $wearFilter>>
<<script>>
document.getElementById('wearableFilter').classList.remove('inactiveMenu');
document.getElementById('wearableFilter').classList.add('activeMenu');
<</script>>
<</if>>
<<if $ownedFilter>>
<<script>>
document.getElementById('ownedFilter').classList.remove('inactiveMenu');
document.getElementById('ownedFilter').classList.add('activeMenu');
<</script>>
<</if>>
<</timed>><div style="text-align: center;">
<<if $shop.inventory.accessories[3].length > 0>>
<span id="Purses" class='inactiveMenu'><<button "Purses" $storePassage>><<set $currMenu = 'Purses'>><</button>></span>
<</if>>
<<if $shop.inventory.accessories[1].length > 0>>
<span id="Earrings" class='inactiveMenu'><<button "Earrings" $storePassage>><<set $currMenu = 'Earrings'>><</button>></span>
<</if>>
<<if $shop.inventory.accessories[4].length > 0>>
<span id="Rings" class='inactiveMenu'><<button "Rings" $storePassage>><<set $currMenu = 'Rings'>><</button>></span>
<</if>>
<<if $shop.inventory.accessories[2].length > 0>>
<span id="Necklaces" class='inactiveMenu'><<button "Necklaces" $storePassage>><<set $currMenu = 'Necklaces'>><</button>></span>
<</if>>
<<if $shop.inventory.accessories[0].length > 0>>
<span id="Bracelets" class='inactiveMenu'><<button "Bracelets" $storePassage>><<set $currMenu = 'Bracelets'>><</button>></span>
<</if>>
</div>
<br>
<div>
<<button "Owned Filter" $storePassage>><<set $ownedFilter = true>><</button>>
</div>
<br>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.currMenu).classList.remove('inactiveMenu');
document.getElementById(State.variables.currMenu).classList.add('activeMenu>');
<</script>>
<</timed>><div style="text-align: center;">
<span id="Quests" class='inactiveMenu'><<button "Quests" "notepadApp">><<set $noteTab = 'Quests'>><</button>></span>
<span id="Jobs" class='inactiveMenu'><<button "Jobs" "notepadApp">><<set $noteTab = 'Jobs'>><</button>></span>
<span id="Classes" class='inactiveMenu'><<button "Classes" "notepadApp">><<set $noteTab = 'Classes'>><</button>></span>
<span id="Relics" class='inactiveMenu'><<button "Relics" "notepadApp">><<set $noteTab = 'Relics'>><</button>></span>
<span id="Relationships" class='inactiveMenu'><<button "Relationships" "notepadApp">><<set $noteTab = 'Relationships'>><</button>></span>
<span id="Notes" class='inactiveMenu'><<button "Notes" "notepadApp">><<set $noteTab = 'Notes'>><</button>></span>
</div>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.noteTab).classList.remove('inactiveMenu');
document.getElementById(State.variables.noteTab).classList.add('activeMenu');
<</script>>
<</timed>><div style="text-align: center;">
<span id="McDougals" class='inactiveMenu'><<button "McDougals" "FoodCourtList">><<set $fcTab = 'McDougals'>><</button>></span>
<span id="Soubway" class='inactiveMenu'><<button "Soubway" "FoodCourtList">><<set $fcTab = 'Soubway'>><</button>></span>
<span id="Pizza Haus" class='inactiveMenu'><<button "Pizza Haus" "FoodCourtList">><<set $fcTab = 'Pizza Haus'>><</button>></span>
</div>
<<timed 0s>>
<<script>>
document.getElementById(State.variables.fcTab).classList.remove('inactiveMenu');
document.getElementById(State.variables.fcTab).classList.add('activeMenu');
<</script>>
<</timed>>/* version checker */
<<set _newVersion = '1.0.4'>>
<<if $version != _newVersion>>
<<set $version = _newVersion>>
<<if $player.statBuffs.mentalFem>>
<<set $player.statBuffs.femBuff = $player.statBuffs.mentalFem>>
<<run delete $player.statBuffs.mentalFem>>
<</if>>
<<if !$player.statBuffs.billiards>>
<<set $player.statBuffs.billiards = 0>>
<</if>>
<<if !$player.skills.billiards>>
<<set $player.skills.billiards = 0>>
<</if>>
<<if !$player.statBuffs.strength>>
<<set $player.statBuffs.strength = 0>>
<</if>>
<<if !$player.sexStats.anal_get>>
<<set
$player.sexStats.anal_get = 0;
$player.sexStats.anal_give = 0;
>>
<</if>>
<<if !$player.sexStats.tittyFuck_give>>
<<set
$player.sexStats.tittyFuck_give = 0;
$player.sexStats.tittyFuck_get = 0;
>>
<</if>>
<<if !$player.statBuffs.FPref>>
<<set
$player.statBuffs.MPref = 0;
$player.statBuffs.FPref = 0;
>>
<</if>>
<<if !$tfPool>>
<<set $tfPool = 0>>
<</if>>
<</if>>
<<if $player.outfit.purse != 0 and !$purseInventory>>
<<set $purseInventory = []>>
<</if>>
<<calcStats>>
<<calcSlutLevel>>
<<calcExpoLevel>>
<<if $player.outfit.fit === 0>>
<<removeCum 'shirt'>>
<</if>>
<<if $player.outfit.panties === 0>>
<<removeCum 'Panties'>>
<</if>>
<<if $onDate>>
<<dateTimeCheck>>
<</if>><<widget "calcStats">>
<<if ! tags().includes("NoCalc")>>
<!-- TIME -->
<<set _delta = 0>>
<<if $lastStatCheck.getTime() < $gameDate.getTime()>>
/*check if new day */
<<if $lastStatCheck.getDate() !== $gameDate.getDate()>>
<<set _newJulianDate = calcJulianDay($gameDate)>>
<<set _tmpLoop = Math.max(1,Math.abs(_newJulianDate - $currJulianDate))>>
<<for _timeIdx to _tmpLoop; _timeIdx > 0;_timeIdx-->>
<<cycleGameDay>>
<</for>>
<</if>>
<<set _delta = ($gameDate.getTime() - $lastStatCheck.getTime())/1000>>
<<set $lastStatCheck = clone($gameDate)>>
/* player stat drops
each value drops x-points-per-second.
some stats do not drain while sleeping
*/
<<if $player.awake>>
<<set $energyDrain += .0011*_delta>>
<<set $arousalGain += .0009*_delta>>
<<set $moodDrain += .001*_delta>>
/* gym trait */
<<if $player.traits.includes(22) and ($currJulianDate - $lastGymDate) > 1>>
<<set $moodDrain += .003*_args[0]>>
<</if>>
/*nympho trait */
<<if $player.traits.includes(5) and ($currJulianDate - $player.sexStats.lastSexDate) > 1>>
<<set $moodDrain += .0015*_delta>>
<<set $arousalGain += .0008*_delta>>
<</if>>
/* all heels trait but no heels*/
<<if $player.outfit.shoes != 0>>
<<genShoes $player.outfit.shoes>>
<<if $player.traits.includes(6) and $clothingObj.stats.heel < 1>>
<<set $moodDrain += .002*_delta>>
<<set $player.health -= .002*_delta>>
<</if>>
<</if>>
<<set $staminaDrain += .001*_delta>>
<<if $staminaDrain >= 1>>
<<set $player.stamina = ($player.stamina + $staminaDrain).clamp(0,$player.stamMax)>>
<<set $staminaDrain = 0>>
<</if>>
<<if $energyDrain >= 1>>
<<set $player.energy -= $energyDrain>>
<<if $player.stamina < $player.stamMax/10>><<set $player.energy -= $energyDrain>><</if>>
<<set $energyDrain = 0>>
<</if>>
<<if $arousalGain >= 1>>
<<set $player.arousal += $arousalGain>>
<<set $arousalGain = 0>>
<</if>>
<<if $moodDrain >= 1>>
<<set $player.mood = ($player.mood - $moodDrain).clamp(0,100)>>
<<set $moodDrain = 0>>
<</if>>
<<if (!$lastFitCheck or ($gameDate.getTime() -$lastFitCheck)/1000 > 14400)>>
<<set $lastFitCheck = $gameDate.getTime()>>
<<if $player.outfit.fit != 0>>
<<genFit $player.outfit.fit>>
<<if calcFitInhib($clothingObj) < $player.inhib >>
<<set $player.statBuffs.exhib += 1>>
<</if>>
<<if ($clothingObj.stats.fem === 1 and $player.mentalFem < 50) or ($clothingObj.stats.bimbo === 1 and $player.mentalFem < 75)>>
<<set $player.statBuffs.femBuff += 1>>
<</if>>
<</if>>
/* heels Impact */
<<if $player.outfit.shoes != 0>>
<<genShoes $player.outfit.shoes>>
<<if $clothingObj.stats.heel >= $player.skills.heels>>
<<set $player.statBuffs.heels += 1>>
<</if>>
<</if>>
<</if>>
<</if>>
<<if $locType === 'Outdoors' and $currTemp > 70>>
<<set _sweatDelta = (random(0,(Math.abs($currTemp - 70)))/1500)*_delta>>
<<if Math.floor($player.body.sweat + _sweatDelta) % 5 === 0>>
<<set $sweatTimer = $gameDate.getTime()>>
<</if>>
<<set $player.body.sweat += _sweatDelta>>
<</if>>
<<set $hairCleanDrain += .0009*_delta>>
<<if $hairCleanDrain >= 1>>
<<set $player.body.hair.clean = ($player.body.hair.clean - $hairCleanDrain).clamp(0,100)>>
<<set $hairCleanDrain = 0>>
<</if>>
/* Booze and drugs */
<<if $player.drunk > 0>>
<<if $player.body.breath > 0>>
<<set $breathDrain += 0.0005*_delta>>
<</if>>
<<set $player.drunk -= 0.011*_delta>>
<</if>>
<<set $thirstDrain += .00085*_delta>>
<<if $thirstDrain >= 1>>
<<set $player.thirst -= $thirstDrain>>
<<set $thirstDrain = 0>>
<</if>>
<<set $hungerDrain += .00075*_delta>>
<<if $hungerDrain >= 1>>
<<set $player.hunger -= $hungerDrain>>
<<set $hungerDrain = 0>>
<</if>>
<<if $player.body.breath > 0>>
<<set $breathDrain += 0.00009*_delta>>
<<if $breathDrain >= 1>>
<<set $player.body.breath -= 1>>
<<set $breathDrain = 0>>
<</if>>
<</if>>
/*end stat drains */
/* clothes soil level */
<<if $player.outfit.fit != 0 and $player.wardrobe.items.some(fit => fit.type === 'Fit' and fit.sku === $player.outfit.fit)>>
<<set _tmpPointer = $player.wardrobe.items.find(fit => fit.type === 'Fit' and fit.sku === $player.outfit.fit)>>
<<set _tmpPointer.stats.fitSoil += .0000075 + Math.min(30,$player.body.sweat)/150000*_delta>>
<<if $locType === 'outdoors' and $rainyDay and $player.inventory.checkInv('Umbrella') === 0>>
<<set _tmpPointer.stats.fitSoil += .000005*_delta>>
<</if>>
<</if>>
/*Day and Weather */
<<calcWeather _delta>>
/* cum manager */
<<cumTracker>>
/* purge old NPCs from list */
<<for _npcIdx = 0; _npcIdx < $NPCArray.length;_npcIdx++>>
<<if $NPCList.some(npc => npc.dna == $NPCArray[_npcIdx].dna)>>
<<if $gameDate.getTime() > $NPCList.find(npc => npc.dna == $NPCArray[_npcIdx].dna).timeLimit.getTime() >>
<<purgeNPC $NPCArray[_npcIdx].dna>>
<<set _npcIdx -= 1>>
<</if>>
<<elseif $NPCArray[_npcIdx].dna != $currDNA and !$player.phone.contacts.includes($NPCArray[_npcIdx].dna)>>
<<purgeNPC $NPCArray[_npcIdx].dna>>
<<set _npcIdx -= 1>>
<</if>>
<</for>>
/* nicotine */
<<if $player.nicLevel>>
<<set $player.nicLevel -= .02*_delta>>
<<if $player.nicLevel < $player.minNicotine*.75>>
<<set $player.mood -= .0019*_delta>>
<</if>>
<</if>>
/* check for morph stack purging */
<<if $morphStack and !tags().includes('noMenu')>>
<<set $morphLoc = passage()>>
<<morphMonitor>>
<</if>>
/* check for impregnation */
<<if $player.body.gender === 'Female'>>
/* if panties have been removed, remove any worn pad */
<<if $player.outfit.panties === 0 and $player.body.womb.sanitation>>
<<if $player.body.womb.sanitation = 'Sanitary Pads'>><<run delete $player.body.womb.sanitation>><</if>>
<</if>>
<<if $player.body.womb and $player.body.womb.cycle < 5 and $player.body.womb.unfertEggs > 0 and (!$lastPregCheck or (($gameDate.getTime() - $lastPregCheck)/1000)/60 > 45)>>
<<set $lastPregCheck = clone($gameDate.getTime())>>
<<checkImpregnation>>
<</if>>
/* check for birth event */
<<if $player.body.womb.isPreg and $player.questTracker.find(obj => obj.idx === "PregTracker").level >= 5>>
<<if $gameDate.getHours() >= $birthHour>>
<<script>>
Dialog.setup("WARNING");
Dialog.wiki('<center><div class="badText">A sharp pain pierces your abdomen, and you feel something flow down your legs. Your water has broken!</div></center>');
Dialog.open({top: "calc(50vh - 51px)"}, setup.done);
<</script>>
<<run $player.questLog.addQuest('PregQuest','Your due date is approaching fast! Watch for early labor signs.')>>
<<set $player.questTracker = $player.questTracker.filter(obj => obj.idx != "PregTracker")>>
<<goto "LaborStart">>
<</if>>
<</if>>
<</if>>
/* clear any missed dates */
<<set _tmpDateArr = $player.phone.calendar.items.filter(date => date.endTime < $gameDate)>>
<<if _tmpDateArr.length > 0>>>
<<for _dateIndx to 0; _dateIndx < _tmpDateArr.length; _dateIndx++>>
<<cleanDate _dateIndx>>
<</for>>
<</if>>
/*trigger texts */
<<TextEngine>>
/*arousal based TF increase */
<<if $player.arousal >= 50>>
<<set $tfPool += .00005*_delta>>
<</if>>
/*clothes and sensitive skin trait */
<<if !$player.body.womb or ($player.body.womb and !$player.body.womb.showPreg)>>
<<set _tmpCheck = $player.questTracker.find(item => item.idx === 'SkinTrial')>>
<<if $player.outfit.fit != 0 and _tmpCheck and (_tmpCheck.level >= 4 or $player.traits.includes(2))>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.stats.topSkin < 3 or $clothingObj.stats.btmSkin < 3>>
<<set $player.mood -= .002*_delta>>
<</if>>
<</if>>
<</if>>
/*lactation */
<<if $player.body.lactation>>
<<lactationCycle>>
<</if>>
<</if>>
<<unset _delta>>
<<MoodManager>>
<<if $player.drunk < 0>>
<<set $player.drunk = 0>>
<</if>>
<<set $player.body.weight = calcWeight($player)>>
<<set $player.beautyScore = calcBeauty($player)>>
<<calcGender>>
/* check for auto-updating quests */
<<if $player.questTracker>>
<<questTracker>>
<</if>>
/* clamp relationships */
<<for _idx = 0; _idx < $player.phone.contacts.length; _idx ++>>
<<if $NPCArray.some(npc => npc.dna == $player.phone.contacts[_idx])>>
<<if $NPCArray.find(npc => npc.dna == $player.phone.contacts[_idx]).sexTimes == 0>>
<<set $NPCArray.find(npc => npc.dna == $player.phone.contacts[_idx]).relationship = $NPCArray.find(npc => npc.dna == $player.phone.contacts[_idx]).relationship.clamp(0,25)>>
<</if>>
<<elseif $staticNPCList.some(npc => npc.dna == $player.phone.contacts[_idx])>>
<<if $staticNPCList.find(npc => npc.dna == $player.phone.contacts[_idx]).sexTimes == 0>>
<<set $staticNPCList.find(npc => npc.dna == $player.phone.contacts[_idx]).relationship = $staticNPCList.find(npc => npc.dna == $player.phone.contacts[_idx]).relationship.clamp(0,25)>>
<</if>>
<<else>>
<<set $player.phone.inbox = $player.phone.inbox.filter(msg => msg.txtNPC != $player.phone.contacts[_idx])>>
<<run $player.phone.contacts.delete($player.phone.contacts[_idx])>>
<<set _idx -= 1>>
<</if>>
<</for>>
/* check for auto laundry */
/* if at fairhaven (or has laundry service WIP) - outfits are auto-washed */
<<if !$lastAutoWash>><<set $lastAutoWash = 0>><</if>>
<<if $home.name === 'Fairhaven' and Math.abs($gameDate.getHours() - $lastAutoWash) > 2>>
<<set $lastAutoWash = $gameDate.getHours()>>
<<set _tmpLaundry = $player.wardrobe.items.filter(fit => fit.type === 'Fit' and fit.sku != $player.outfit.fit)>>
<<if _tmpLaundry>>
<<for _i to 0; _i < _tmpLaundry.length;_i++>>
<<set _tmpLaundry[_i].stats.fitSoil = 0>>
<</for>>
<</if>>
<</if>>
/* Nudity check */
<<set $nudeFit = {
bra: 0,
fit: 0,
panties: 0,
shoes: $player.outfit.shoes,
earrings: $player.outfit.earrings,
bracelet: $player.outfit.bracelet,
ring: $player.outfit.ring,
purse: $player.outfit.purse,
coat: $player.outfit.coat,
relic: $player.outfit.relic
}>>
<<if !compareObjects($player.outfit,$nudeFit)>>
<<set $player.isNude = false>>
<</if>>
<</if>>
<</widget>><<set $profPage = passage()>>
<center><b><font size="10em">Character Description</font></b></center>
<<include profileMenuTabs>>
<div id="Description">
<table>
<tr>
<td>
<center><<reflection>></center>
</td>
<td>
Your name is <<print $player.firstName>> <<print $player.lastName>>. You are currently $genderIDX and you are attracted to
<<if $player.prefs.gender == 'Male'>>
men.
<<elseif $player.prefs.gender == 'Female'>>
women.
<<else>>
both men and women.
<</if>>
You are <<if $player.virgin>>a<<else>>not a<</if>> virgin.
<br><br>
You are <<print $player.body.height>>cm tall and <<descBMI>>
<<if $player.beautyScore <= 0>>
Your looks are enough to scare children away. People openly shun you and gag at your appearance.
<<elseif $player.beautyScore === 1>>
Your looks are even worse than terrible. It's god-awful. No one wants to see or talk to you and people avoid you at any cost.
<<elseif $player.beautyScore === 2>>
Your looks are terrible. People try to avoid looking and talking to you.
<<elseif $player.beautyScore < 5>>
You're a wallflower. Hardly anyone notices you.
<<elseif $player.beautyScore < 7>>
You have good looks. Men and women check you out when they think you aren't looking.
<<elseif $player.beautyScore <= 9>>
You're unquestionably gorgeous. Men constantly get caught staring by you and their girlfriends.
<<elseif $player.beautyScore === 10>>
You have a simply stunning appearance. Other girls are a bit jealous and guys constantly check you out.
<<elseif $player.beautyScore === 11>>
Your appearance is divine! No one is able to take his or her eyes off of you.
<</if>>
<br><br>
<<calcGenderDysphoria>>
</td>
</tr>
</table>
</div>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close Profile" $menuPassage>><<addSecs 5>><</button>>
</div>
</div><<set $profPage = passage()>>
<center><b><font size="10em">Current Clothing</font></b></center>
<<include profileMenuTabs>>
<<include profileClothingTabs>>
<center>
<<if $subMenu === 'Outfit'>>
<div class="wardIcons">
<div>
<<genFit $player.outfit.fit>>
[img[Outfit|$clothingObj.image]]
</div>
<div class="iconList">
<div>
<<genBra $player.outfit.bra>>
[img[Bra|$clothingObj.image]]
</div>
<div>
<<genPanties $player.outfit.panties>>
[img[Panties|$clothingObj.image]]
</div>
</div>
<div>
<<genCoat $player.outfit.coat>>
[img[Coat|$clothingObj.image]]
</div>
</div>
<div class="subWardIcons">
<div>
<<genPurse $player.outfit.purse>>
[img[Purse|$clothingObj.image]]
</div>
<div>
<<genShoes $player.outfit.shoes>>
[img[Shoes|$clothingObj.image]]
</div>
</div>
<<else>>
<div class="vertContainer">
<div class="jewelryIcons">
<div class="vertContainer">
<<genEarrings $player.outfit.earrings>>
[img[Earrings|$clothingObj.image]]
</div>
<div class="vertContainer">
<<genNecklace $player.outfit.necklace>>
[img[Necklace|$clothingObj.image]]
</div>
</div>
<br>
<div class="jewelryIcons">
<div class="vertContainer">
<<genBracelet $player.outfit.bracelet>>
[img[Bracelet|$clothingObj.image]]
</div>
<div class="vertContainer">
<<genRing $player.outfit.ring>>
[img[Rings|$clothingObj.image]]
</div>
</div>
</div>
/*
<div class="subWardIcons">
<div>
<<genEarrings $player.outfit.earrings>>
[img[clothing|$clothingObj.image]]
</div>
<div>
<<genNecklace $player.outfit.necklace>>
[img[clothing|$clothingObj.image]]
</div>
</div>
<div class="subWardIcons">
<div>
<<genBracelet $player.outfit.bracelet>>
[img[clothing|$clothingObj.image]]
</div>
<div>
<<genRing $player.outfit.ring>>
[img[clothing|$clothingObj.image]]
</div>
</div>
*/
<</if>>
</center>
<hr>
<table>
<tr>
<td>
<<button "Close Profile" $menuPassage>>
<<unset $subMenu>>
<<addSecs 5>>
<</button>>
</td>
</tr>
</table><<set $profPage = passage()>>
<center><b><font size="10em">Body Details</font></b></center>
<<include profileMenuTabs>>
<center>
<table class="profileTable">
<tr>
<td>
/* pits */
<<getPits>>
</td>
<td>
/* Tits */
<<getTits>>
</td>
<td>
/* Strength */
<<getArms>>
</td>
</tr>
<tr>
<td>
/* Nails */
<<getNails>>
</td>
<td>
/* Waist */
<<getWaist>>
</td>
<td>
/* Hips */
<<getHips>>
</td>
</tr>
<tr>
<td>
/* ass */
<<getAss>>
</td>
<td>
/* pubes */
<<getPubes>>
</td>
<td>
/* leghair */
<<getLegHair>>
</td>
</tr>
</table>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close Profile" $menuPassage>><<addSecs 5>><</button>>
</div>
</div><<set $profPage = passage()>>
<center><b><font size="10em">Traits</font></b></center>
<<include profileMenuTabs>>
<<if $player.traits.length === 0>>
You don't have any traits
<<else>>
<center>
<<for _i to 0; _i < $player.traits.length;_i++>>
<<genTrait $player.traits[_i]>>
<div class='traitContainer'>
<div><b><u><<print $traitObj.title>></u></b></div>
<div><<print $traitObj.desc>></div>
</div>
<</for>>
</center>
<</if>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close Profile" $menuPassage>><<addSecs 5>><</button>>
</div>
</div><<set $profPage = passage()>>
<center><b><font size="10em">Traits</font></b></center>
<<include profileMenuTabs>>
<<if $player.kinks.length === 0>>
You don't have any kinks
<<else>>
<center>
<<for _i to 0; _i < $player.kinks.length;_i++>>
<<genTrait $player.kinks[_i]>>
<div class='traitContainer'>
<div><b><u><<print $traitObj.title>></u></b></div>
<div><<print $traitObj.desc>></div>
</div>
<</for>>
</center>
<</if>>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Close Profile" $menuPassage>><<addSecs 5>><</button>>
</div>
</div>/*
- check for location specific requirements
- check for 'habit' settings
*/
/* itchy Nips */
<<set _maxSleep = 100>>
<<if $player.outfit.fit != 0>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style != 'Sleepwear'>>
<<set _tmpQuest = $player.questTracker.find(item => item.idx === 'ItchyNips')>>
<<if !_tmpQuest>>
<<run $player.questTracker.push({idx: 'ItchyNips',level:1,lastItch: clone($currJulianDate)})>>
<</if>>
<</if>>
<</if>>
<<set _sleepDrain = 0>>
<<set _tmpQuest = $player.questTracker.find(item => item.idx === 'ItchyNips')>>
<<if _tmpQuest>>
<<switch _tmpQuest.level>>
<<case 1>>
<<set _sleepDrain = 0>>
<<case 2>>
<<set _sleepDrain = .25>>
<<case 3>>
<<set _sleepDrain = .5>>
<<case 4>>
<<set _sleepDrain = .75>>
<<default>>
<<set _sleepDrain = 1>>
<</switch>>
<</if>>
<<set $sleepStart = clone($gameDate)>>
<<sleepLoop>><<set $player.body.breath = 0>>
<<set $player.awake = true>>
/* check for due date on wake up */
<<set _tmpImg = 'Media/Shared/Bed/Wake/'>>
<<if $player.presenting === 'Female'>>
<<if $player.body.show_preg === 1>>
<<set _tmpImg += 'F/Preg/' + random(1,7) + '.webp'>>
<<else>>
<<set _tmpImg += 'F/' + random(1,6) + '.webp'>>
<</if>>
<<else>>
<<set _tmpImg += 'M/' + random(1,2) + '.webp'>>
<</if>>
<center>
<img @src='_tmpImg' height="450rem">
<br><br>
Your eyes flutter as you wake up and start to stretch; those first few seconds of conciousness are always blissfully absent of memory or context.
<br>
<<if $genderSwitchBack>>
<<if $player.presenting === 'Male'>>
<br>
<div class="badText">But soon you can tell something is different. You feel...bulkier somehow, maybe more utilitarian? A quick check of your body reveals you've regained some of your masculine appearance somehow.</div>
<br>
<span id = 'repCont'>
<<switch $genderSwitchBack>>
<<case 'Fairhaven'>>
<b>You recall the strange whole-body sensation you had when you first claimed to be a woman to stay at Fairhaven -- that effect must have worn off!</b>
<<default>>
<b>Whatever effect was forcing your appearance to be more feminine has finally worn off!</b>
<</switch>>
</span>
<<else>>
<span id = 'repCont'>
</span>
<</if>>
<<unset $genderSwitchBack>>
<<else>>
<span id= 'repCont'>
<<set _tmpQuest = $player.questTracker.find(item => item.idx === 'ItchyNips')>>
<<if _tmpQuest>>
<br>
<<if _tmpQuest.level >= 5>>
<div class="badText">
<<run $player.questLog.addQuest('ItchyNips','You need to do something to cure your itchy nipples problem')>>
<<set _tmpCream = $player.questTracker.find(item => item.idx === 'BreastCream')>>
<<if !_tmpCream>>
Enough is enough! You resolve to find something to relieve the horrible itching in your nipples at night. Maybe there's an anti-itch cream or something at Safeway.
<<elseif _tmpCream.level <= 2>>
Enough is enough! You've had enough of this horrible itching in your nipples at night. Maybe that Honeydrew cream from Safeway?
<<elseif _tmpCream.level > 2>>
You've had enough of this horrible itching in your nipples at night. You have no choice but to use more Honeydew Cream.
<</if>>
</div>
<<elseif _tmpQuest.level > 3>>
<b>You scratch and rub at your itchy chest; your nipples are getting <b>very</b> itchy and the unpleasant sensation is impacting the quality of your sleep. Maybe the detergent in the sheets is bothering you. You'll have to look for a solution if you want a good night's rest.</b>
<<elseif _tmpQuest.level > 1>>
<b>You absently rub at your chest, your nipples are extra itchy today.</b>
<</if>>
<</if>>
<<checkChanges>>
</span>
<</if>>
</center>
<hr>
<div id="actionsContainer">
<div class="buttonContainer">
<<button "Get up out of bed">>
<<addSecs 5>>
<<if $player.body.womb and $player.body.womb.isPreg>>
<<checkMorningSickness>>
<<else>>
<<if $player.phone.habitList.morning.length > 0>>
<<checkRoutine 'Morning'>>
<<else>>
<<addSecs 5>>
<<goto $bedLoc>>
<</if>>
<</if>>
<</button>>
</div>
</div>/*check for TF changes to trigger dreams */
<<widget "sleepLoop">>
<<set $player.awake = false>>
<<set _sleepMins = 0>>
<<set _sleepTimer = clone($gameDate)>>
<<for _i to 0; $player.energy < 100 and !_alarmTrigger; _i += 15>>
<<set _sleepMins += 15>>
<<run _sleepTimer.setUTCMinutes(_sleepTimer.getUTCMinutes() + 15)>>
<<if _i >= 60>>
<<set _i = 0>>
<<set $player.health = ($player.health + 20).clamp(0,1000)>>
<<set _tmpQuest = $player.questTracker.find(item => item.idx === 'ItchyNips')>>
<<set $player.energy = ($player.energy + 9 - _sleepDrain).clamp(0,100)>>
<<set $player.stamina = ($player.stamina + 7).clamp(0,$player.stamMax)>>
<<if $player.mood > 30>>
<<set $player.mood += 2>>
<<else>>
<<set $player.mood += 1>>
<</if>>
<</if>>
/* check for alarm */
<<set _tmpAlarm = $player.phone.alarmClock.alarms.find(alarm => alarm.weekDay === _sleepTimer.getDay())>>
<<if _tmpAlarm>>
<<if Math.abs(_sleepTimer.getHours()*60 + _sleepTimer.getMinutes() - _tmpAlarm.alarmTime) < 15>>
<<if _tmpAlarm.active>>
<<set _alarmTrigger = true>>
<</if>>
<</if>>
<</if>>
<</for>>
<<if $player.outfit.fit != 0>>
<<set _tmpPointer = $player.wardrobe.items.find(fit => fit.type === 'Fit' and fit.sku === $player.outfit.fit)>>
<<set _tmpPointer.stats.fitSoil += _sleepMins/40000>>
<</if>>
<<addMins _sleepMins>>
<<calcAttributes>>
<<calcSkills>>
<<genDream>>
<<if $dreamsArr.length > 0>>
<<set _dreamTriggered = true>>
<<if $genderSwitchBack>>
<<set _dreamTriggered = false>>
<</if>>
<<if $player.questTracker.some(obj => obj.idx == 'Nanobotics') and $player.questTracker.find(obj => obj.idx == 'Nanobotics').level === 3>>
<<set _dreamTriggered = false>>
<</if>>
<<if $player.body.womb and $player.body.womb.isPreg and $player.body.womb.dueDate <= $currJulianDate>>
<<set _dreamTriggered = false>>
<</if>>
<</if>>
<<if $FTVisit and $FTVisit === $currJulianDate>>
<<goto "FTReturnRelic">>
<<elseif _dreamTriggered>>
<<goto "Dreams">>
<<else>>
<<goto "Wakeup">>
<</if>>
<</widget>>
<<widget "checkRoutine">>
<<switch _args[0]>>
<<case 'Morning'>>
<<set _tmpLoc = $bedLoc>>
<<set _tmpHabits = $player.phone.habitList.morning>>
<<if _tmpHabits.length > 0>>
<<set _routineResult = []>>
<<set _tmpExclude = []>>
<<for _habitIdx to 0; _habitIdx < _tmpHabits.length; _habitIdx++>>
<<switch _tmpHabits[_habitIdx]>>
<<case 'Shower'>>
<<addMins 5>>
<<showerInit>>
<<unset '$showerInProg'>>
<<if $player.phone.habitList.shower.length > 0>>
<<for _subIdx to 0;_subIdx < $player.phone.habitList.shower.length;_subIdx++>>
<<switch $player.phone.habitList.shower[_subIdx]>>
<<case 'Use shampoo'>>
<<if $player.body.hair.clean < 9>>
<<if $player.inventory.checkInv('Shampoo') > 0>>
<<set $player.body.hair.clean = 10>>
<<set _tmpMins = $player.body.hair.length/10>>
<<addMins _tmpMins>>
<<run $player.inventory.removeItem('Shampoo',1)>>
<<set _routineResult.push('<div class="goodText">You wash your hair</div>')>>
<<else>>
<<set _routineResult.push('<div class="badText">You are out of shampoo and cannot wash your hair</div>')>>
<</if>>
<</if>>
<<case 'Shave your pits'>>
<<if $player.body.pitHair > 1>>
<<if $player.inventory.checkInv("Razor") > 0>>
<<set $player.body.pitHair = 0>>
<<run $player.inventory.removeItem('Razor',1)>>
<<addMins 2>>
<<set _routineResult.push('<div class="goodText">You shave your armpits</div>')>>
<<else>>
<<if !_tmpExclude.includes('razors')>>
<<set _tmpExclude.push('razors')>>
<<set _routineResult.push('<div class="badText">You are out of razors and cannot shave</div>')>>
<</if>>
<</if>>
<</if>>
<<case 'Shave your pubes'>>
<<if $player.body.pubes > 1>>
<<if $player.inventory.checkInv("Razor") > 0>>
<<set $player.body.pubes = 0>>
<<if $player.body.gender !== 'Male' and $player.mentalFem < 40>><<set $player.statBuffs.femBuff += 1>><</if>>
<<run $player.inventory.removeItem('Razor',1)>>
<<addMins 2>>
<<set _routineResult.push('<div class="goodText">You shave your pubic hair</div>')>>
<<else>>
<<if !_tmpExclude.includes('razors')>>
<<set _tmpExclude.push('razors')>>
<<set _routineResult.push('<div class="badText">You are out of razors and cannot shave</div>')>>
<</if>>
<</if>>
<</if>>
<<case 'Shave your legs'>>
<<if $player.body.legHair > 1>>
<<if $player.inventory.checkInv("Razor") > 0>>
<<set $player.body.legHair = 0>>
<<run $player.inventory.removeItem('Razor',1)>>
<<addMins 2>>
<<set _routineResult.push('<div class="goodText">You shave your legs</div>')>>
<<else>>
<<if !_tmpExclude.includes('razors')>>
<<set _tmpExclude.push('razors')>>
<<set _routineResult.push('<div class="badText">You are out of razors and cannot shave</div>')>>
<</if>>
<</if>>
<</if>>
<</switch>>
<</for>>
<</if>>
<<case 'Brush your teeth'>>
<<if $player.inventory.checkInv('Toothbrush') > 0>>
<<if $player.inventory.checkInv('Toothpaste') > 1>>
<<addMins 3>>
<<run $player.inventory.removeItem('Toothpase',1)>>
<<set $player.body.breath = 10>>
<<set _routineResult.push('<div class="goodText">You brush your teeth</div>')>>
<<else>>
<<set _routineResult.push('<div class="badText">You are out of toothpaste.</div>')>>
<</if>>
<<else>>
<<set _routineResult.push('<div class="badText">You don\'t have a toothbruth.</div>')>>
<</if>>
<<case 'Use feminine hygiene products'>>
<<case 'Wear Clean Clothes'>>
<<if $player.wardrobe.plannedFits.some(fit => fit.type === 'Casual')>>
<<set _fitUniverse = $player.wardrobe.plannedFits.filter(fit => fit.type === 'Casual')>>
<<if _fitUniverse.length > 0>>
<<set _cleanFits = []>>
<<for _idx to 0; _idx < _fitUniverse.length; _idx++ >>
<<if $player.wardrobe.items.some(fit => fit.type === 'Fit' and fit.stats.fitSoil <= 2 and fit.sku == _fitUniverse[_idx].clothes.fit)>>
<<run _cleanFits.push(_fitUniverse[_idx].clothes)>>
<</if>>
<</for>>
<</if>>
<<else>>
<<set _routineResult.push('<div class="badText">You don\'t have any planned Casual outfits</div>')>>
<<set _fitUniverse = $player.wardrobe.items.filter(fit => fit.type === 'Fit' and fit.stats.fitStyle === 'Casual')>>
<<if _fitUniverse.length > 0>>
<<set _cleanFits = []>>
<<for _idx to 0; _idx < _fitUniverse.length; _idx++ >>
<<if $player.wardrobe.items.some(fit => fit.type === 'Fit' and fit.stats.fitSoil <= 2 and fit.sku == _fitUniverse[_idx].sku)>>
<<run _cleanFits.push({
bra: 0,
bracelet: 0,
coat: 0,
earrings: 0,
fit: _fitUniverse[_idx].sku,
panties: 0,
purse: 0,
ring: 0,
shoes: 0
})
>>
<</if>>
<</for>>
<</if>>
<</if>>
<<if _cleanFits and _cleanFits.length > 0>>
<<set _triedFits = []>>
<<for _i to 0; _triedFits.length < _cleanFits.length; _i++>>
<<set _pickedFit = _cleanFits[random(0,_cleanFits.length-1)]>>
<<set $isWardrobe = true>>
<<wearFit _pickedFit "Auto">>
<<if $fitConflicts and $fitConflicts.length >= 0>>
<<set _triedFits = _cleanFits>>
<<else>>
<<unset $fitConflicts>>
<<set _triedFits.push(_pickedFit)>>
<</if>>
<</for>>
<<if $fitConflicts and $fitConflicts.length > 0>>
<<set _routineResult.push('<div class="badText">You can\'t wear any of your clean Casual outfits because of you no longer fit into them</div>')>>
<<else>>
<<set _routineResult.push('<div class="goodText">You get dressed in a random clean Casual outfit</div>')>>
<</if>>
<<else>>
<<set _routineResult.push('<div class="badText">You don\'t have any random clean Casual outfits</div>')>>
<</if>>
<<case 'Eat breakfast'>>
<<if $home.name === "Fairhaven">>
<<set $player.statBuffs.cooking += 1>>
<<addMins 15>>
<<set
$player.health = 1000;
$player.hunger = 100;
$player.calories += 600;
$player.thirst = $player.thirstMax
>>
<<set _routineResult.push('<div class="goodText">You get something to eat and drink</div>')>>
<<else>>
<<if $player.inventory.items.some(item => item.name.toLowerCase().includes('food'))>>
<<set $player.statBuffs.cooking += 1>>
<<addMins 15>>
<<set
$player.health = 1000;
$player.hunger = 100;
$player.calories += 600;
$player.thirst = $player.thirstMax
>>
<<set _routineResult.push('<div class="goodText">You get something to eat and drink</div>')>>
<<else>>
<<set _routineResult.push('<div class="badText">You don\'t have any food to eat.</div>')>>
<</if>>
<</if>>
<<case 'Use a mirror'>>
<<if $player.phone.habitList.mirror.length > 0>>
<<for _j to 0;_j < $player.phone.habitList.mirror.length;_j++>>
<<switch $player.phone.habitList.mirror[_j]>>
<<case 'Style your hair'>>
<<if !$player.body.hair.styled and $player.body.hair.length >= 30>>
<<if $player.inventory.checkInv('Hair Brush') >= 1 or ($player.outfit.purse != 0 and $purseInventory.some(obj => obj.name === 'Travel Brush'))>>
<<set $player.body.hair.styled = true>>
<<if $player.body.hair.length < 80>>
<<addMins 2>>
<<elseif $player.body.hair.length < 260>>
<<addMins 4>>
<<else>>
<<addMins 8>>
<</if>>
<<set _routineResult.push('<div class="goodText">You brush your hair.</div>')>>
<<else>>
<<set _routineResult.push('<div class="goodText">You don\'t have a hairbrush and cannot style your hair.</div>')>>
<</if>>
<</if>>
<<case 'Makeup style'>>
<<applyMakeup $player.knownStyles[$habitMakeupStyle]>>
<</switch>>
<</for>>
<</if>>
<</switch>>
<</for>>
<</if>>
<<case 'Evening'>>
<<set _tmpLoc = 'SleepPrep'>>
<<set _tmpList = $player.phone.habitList.evening>>
<<if _tmpList.length > 0>>
<<set _routineResult = []>>
<<set _tmpExclude = []>>
<<for _idx to 0; _idx < _tmpList.length; _idx++>>
<<switch _tmpList[_idx]>>
<<case 'Drink water'>>
<<addMins 2>>
<<set $player.thirst = $player.thirstMax>>
<<set _routineResult.push('<div class="goodText">You get a drink of water.</div>')>>
<<case 'Wash off Makeup'>>
<<if $player.body.makeup > 0>>
<<addMins 2>>
<<set $player.body.makeup = 0>>
<<set _routineResult.push('<div class="goodText">You wash off your makeup.</div>')>>
<</if>>
<<case 'Brush your teeth'>>
<<if $player.inventory.checkInv('Toothbrush') > 0>>
<<if $player.inventory.checkInv('Toothpaste') > 1>>
<<addMins 3>>
<<run $player.inventory.removeItem('Toothpase',1)>>
<<set $player.body.breath = 10>>
<<set _routineResult.push('<div class="goodText">You brush your teeth</div>')>>
<<else>>
<<set _routineResult.push('<div class="badText">You are out of toothpaste.</div>')>>
<</if>>
<<else>>
<<set _routineResult.push('<div class="badText">You don\'t have a toothbruth.</div>')>>
<</if>>
<<case 'Wear sleepwear'>>
<<genFit $player.outfit.fit>>
<<if $clothingObj.style !== 'Sleepwear'>>
<<if $player.wardrobe.plannedFits.some(fit => fit.type === 'Sleepwear')>>
<<set _fitUniverse = $player.wardrobe.plannedFits.filter(fit => fit.type === 'Sleepwear')>>
<<if _fitUniverse.length > 0>>
<<set _cleanFits = []>>
<<for _idx to 0; _idx < _fitUniverse.length; _idx++ >>
<<if $player.wardrobe.items.some(fit => fit.type === 'Fit' and fit.stats.fitSoil <= 2 and fit.sku == _fitUniverse[_idx].clothes.fit)>>
<<run _cleanFits.push(_fitUniverse[_idx].clothes)>>
<</if>>
<</for>>
<</if>>
<<else>>
<<set _routineResult.push('<div class="badText">You don\'t have any planned Sleepwear outfits</div>')>>
<<set _fitUniverse = $player.wardrobe.items.filter(fit => fit.type === 'Fit' and fit.stats.fitStyle === 'Sleepwear')>>
<<if _fitUniverse.length > 0>>
<<set _cleanFits = []>>
<<for _idx to 0; _idx < _fitUniverse.length; _idx++ >>
<<if $player.wardrobe.items.some(fit => fit.type === 'Fit' and fit.stats.fitSoil <= 2 and fit.sku == _fitUniverse[_idx].sku)>>
<<run _cleanFits.push({
bra: 0,
bracelet: 0,
coat: 0,
earrings: 0,
fit: _fitUniverse[_idx].sku,
panties: 0,
purse: 0,
ring: 0,
shoes: 0
})
>>
<</if>>
<</for>>
<</if>>
<</if>>
<<if _cleanFits and _cleanFits.length > 0>>
<<set _triedFits = []>>
<<for _i to 0; _triedFits.length < _cleanFits.length; _i++>>
<<set _pickedFit = _cleanFits[random(0,_cleanFits.length-1)]>>
<<set $isWardrobe = true>>
<<wearFit _pickedFit "Auto">>
<<if $fitConflicts and $fitConflicts.length >= 0>>
<<set _triedFits = _cleanFits>>
<<else>>
<<unset $fitConflicts>>
<<set _triedFits.push(_pickedFit)>>
<</if>>
<</for>>
<<if $fitConflicts and $fitConflicts.length > 0>>
<<set _routineResult.push('<div class="badText">You can\'t wear any of your clean Sleepwear outfits because of you no longer fit into them</div>')>>
<<else>>
<<set _routineResult.push('<div class="goodText">You get dressed in a random clean Sleepwear outfit</div>')>>
<</if>>
<<else>>
<<set _routineResult.push('<div class="badText">You don\'t have any random clean Sleepwear outfits</div>')>>
<</if>>
<</if>>
<</switch>>
<</for>>
<</if>>
<</switch>>
<<if _routineResult and _routineResult.length > 0>>
<<refreshCaption>>
<<replace "#repCont">>
<br>
<b><u>You go about your daily routines</u></b>
<<for _i to 0; _i < _routineResult.length; _i++>>
_routineResult[_i]
<</for>>
<</replace>>
<<replace '#actionsContainer'>>
<div class="buttonContainer">
<<button "Continue" _tmpLoc>>
<<addSecs 5>>
<</button>>
</div>
<</replace>>
<<else>>
<<addSecs 5>>
<<goto _tmpLoc>>
<</if>>
<</widget>>